diff options
author | Andrew M Finkbeiner | 2012-08-08 21:52:29 +0000 |
---|---|---|
committer | Andrew M Finkbeiner | 2012-08-08 21:53:26 +0000 |
commit | 9c45345f522942bb4687a991a47f824ac8b895d7 (patch) | |
tree | ef10589deab86d74337edb592a2f8efd7db3036e /plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse | |
parent | 262342123124ec4d53615cf3f0b5348471105ce6 (diff) | |
download | org.eclipse.osee-9c45345f522942bb4687a991a47f824ac8b895d7.tar.gz org.eclipse.osee-9c45345f522942bb4687a991a47f824ac8b895d7.tar.xz org.eclipse.osee-9c45345f522942bb4687a991a47f824ac8b895d7.zip |
feature[ats_VJVZG]: Fix message watch data selection for playback situation.
Diffstat (limited to 'plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse')
-rw-r--r-- | plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java b/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java index 77b89059d62..21b6c61be11 100644 --- a/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java +++ b/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java @@ -10,8 +10,10 @@ *******************************************************************************/ package org.eclipse.osee.ote.client.msg.core.db; +import java.rmi.RemoteException; import java.util.HashSet; import java.util.Set; + import org.eclipse.osee.ote.message.Message; import org.eclipse.osee.ote.message.commands.SubscribeToMessage; import org.eclipse.osee.ote.message.commands.UnSubscribeToMessage; @@ -32,8 +34,8 @@ public class MessageInstance { private final Message msg; private SubscriptionKey serverSubscriptionKey = null; private int refcount = 0; - private final Set<DataType> availableTypes = new HashSet<DataType>(); private boolean supported = true; + private IRemoteMessageService service; public MessageInstance(Message msg, MessageMode mode, DataType type) { this.msg = msg; @@ -66,8 +68,7 @@ public class MessageInstance { } supported = true; msg.setData(details.getCurrentData()); - availableTypes.clear(); - availableTypes.addAll(details.getAvailableMemTypes()); + this.service = service; serverSubscriptionKey = details.getKey(); return serverSubscriptionKey.getId(); } @@ -77,7 +78,7 @@ public class MessageInstance { service.unsubscribeToMessage(new UnSubscribeToMessage(msg.getClass().getName(), mode, type, client.getAddressByType(msg.getClass().getName(), type))); } - availableTypes.clear(); + this.service = null; serverSubscriptionKey = null; } @@ -106,7 +107,20 @@ public class MessageInstance { } public Set<DataType> getAvailableTypes() { - return availableTypes; + HashSet<DataType> set = new HashSet<DataType>(); + if(service != null){ + try { + Set<? extends DataType> envSet = service.getAvailablePhysicalTypes(); + Set<DataType> available = msg.getAvailableMemTypes(); + for(DataType type : available.toArray(new DataType[available.size()])){ + if(envSet.contains(type)){ + set.add(type); + } + } + } catch (RemoteException e) { + } + } + return set; } public boolean isSupported() { |