feature[ats_K4H1K]: add ability to save amd restore data type
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchList.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchList.java
index c88ee79..4392b96 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchList.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchList.java
@@ -100,15 +100,19 @@
}
}
- public WatchedMessageNode createElements(String message, Collection<ElementPath> elements, MessageMode mode) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception {
- return createElements(message, elements, mode, null);
+ public WatchedMessageNode createElements(String message, MessageMode mode, Collection<ElementPath> elements) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception {
+ return createElements(message, null, mode, elements, null);
}
- public WatchedMessageNode createElements(String message, Collection<ElementPath> elements, MessageMode mode, Map<ElementPath, String> valueMap) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception {
+ public WatchedMessageNode createElements(String message, String dataType, MessageMode mode, Collection<ElementPath> elements, Map<ElementPath, String> valueMap) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception {
boolean needToRegisterListener = false;
WatchedMessageNode messageNode = (WatchedMessageNode) rootNode.getMessageByName(message);
if (messageNode == null) {
- messageNode = createMessageNode(message, mode);
+ if (dataType == null) {
+ messageNode = createMessageNode(message, mode);
+ } else {
+ messageNode = createMessageNode(message, mode, dataType);
+ }
messageNode.setRequestedValueMap(valueMap);
needToRegisterListener = true;
}
@@ -217,7 +221,15 @@
}
private WatchedMessageNode createMessageNode(String message, MessageMode mode) throws Exception {
- IMessageSubscription subscription = service.subscribe(message, mode);
+ IMessageSubscription subscription = service.subscribe(message, mode);
+ WatchedMessageNode node = new WatchedMessageNode(subscription);
+ rootNode.addChild(node);
+ return node;
+ }
+
+
+ private WatchedMessageNode createMessageNode(String message, MessageMode mode, String dataType) throws Exception {
+ IMessageSubscription subscription = service.subscribe(message, dataType, mode);
WatchedMessageNode node = new WatchedMessageNode(subscription);
rootNode.addChild(node);
return node;
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/AddWatchParameter.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/AddWatchParameter.java
index 33db6e0..996fe0d 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/AddWatchParameter.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/AddWatchParameter.java
@@ -98,6 +98,15 @@
parameter.setIsWriter(isWriter);
}
+ public void setDataType(String messageName, String type) {
+ MessageParameter parameter = watchMap.get(messageName);
+ if (parameter == null) {
+ parameter = new MessageParameter(messageName);
+ watchMap.put(messageName, parameter);
+ }
+ parameter.setDataType(type);
+ }
+
public void setValue(ElementPath path, String value) {
String messageName = path.getMessageName();
MessageParameter parameter = watchMap.get(messageName);
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/LoadWatchListJob.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/LoadWatchListJob.java
index 9488c73..7a23d42 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/LoadWatchListJob.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/LoadWatchListJob.java
@@ -140,6 +140,13 @@
} catch (NumberFormatException e) {
e.printStackTrace();
}
+ } else if (line.startsWith("data type=")) {
+ try {
+ String type = line.substring(10);
+ watchListConfiguration.setDataType(message, type);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ }
} else {
break;
}
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageInfoSelectionHandler.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageInfoSelectionHandler.java
index 3b60a57..9977590 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageInfoSelectionHandler.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageInfoSelectionHandler.java
@@ -27,7 +27,7 @@
try {
WatchedMessageNode node = view.getWatchList().getMessageNode(className);
if (node == null) {
- node = (WatchedMessageNode) view.getWatchList().createElements(className, new ArrayList<ElementPath>(), MessageMode.READER);
+ node = (WatchedMessageNode) view.getWatchList().createElements(className, MessageMode.READER, new ArrayList<ElementPath>());
}
new WatchElementAction(view, node).run();
} catch (Throwable th) {
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageParameter.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageParameter.java
index 41db3e1..22bee65 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageParameter.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/MessageParameter.java
@@ -10,10 +10,12 @@
private final HashMap<ElementPath, String> valueMap = new HashMap<ElementPath, String>();
private final String messageName;
private boolean isWriter;
+ private String dataType;
MessageParameter(String messageName) {
this.messageName = messageName;
this.isWriter = false;
+ dataType = null;
}
public void addAll(Collection<ElementPath> paths) {
@@ -49,6 +51,14 @@
public HashMap<ElementPath, String> getValueMap() {
return valueMap;
}
+
+ public String getDataType() {
+ return dataType;
+ }
+
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
}
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchListConfiguration.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchListConfiguration.java
index 861af34..f21c9fb 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchListConfiguration.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchListConfiguration.java
@@ -11,7 +11,7 @@
private final List<ElementPath> recHeaderElementsToAdd;
private final Set<String> recHeaderHex;
private final Set<String> recBodyHex;
-
+
public WatchListConfiguration() {
recBodyElementsToAdd = new ArrayList<ElementPath>();
recHeaderElementsToAdd = new ArrayList<ElementPath>();
@@ -32,6 +32,10 @@
addWatchParameter.setIsWriter(message, isWriter);
}
+ public void setDataType(String message, String type) {
+ addWatchParameter.setDataType(message, type);
+ }
+
public List<ElementPath> getRecBodyElementsToAdd() {
return recBodyElementsToAdd;
}
diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchView.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchView.java
index bd64686..56b6b50 100644
--- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchView.java
+++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchView.java
@@ -637,7 +637,7 @@
elements = new ArrayList<ElementPath>();
}
MessageMode mode = message.isWriter() ? MessageMode.WRITER : MessageMode.READER;
- watchList.createElements(message.getMessageName(), elements, mode, message.getValueMap());
+ watchList.createElements(message.getMessageName(),message.getDataType(), mode, elements, message.getValueMap());
} catch (ClassNotFoundException ex1) {
if (openProceedWithProcessing("Could not find a class definition for " + message + "\n Do you wish to continue")) {
continue;
@@ -737,11 +737,15 @@
fw.write(msg.getMessageClassName());
fw.write('\n');
fw.write("isWriter=");
- descendants.clear();
-
boolean isWriter = msg.getSubscription().getMessageMode() == MessageMode.WRITER;
fw.write(Boolean.toString(isWriter));
fw.write('\n');
+
+ fw.write("data type=");
+ fw.write(msg.getSubscription().getMemType().name());
+ fw.write('\n');
+
+ descendants.clear();
msg.collectDescendants(descendants);
Map<ElementPath, String> map = msg.getRequestedValueMap();