diff options
author | jmisinco | 2017-01-05 15:25:40 +0000 |
---|---|---|
committer | jmisinco | 2017-01-05 15:25:40 +0000 |
commit | aed742d19930817512c071d5ca2dd01ce55b513f (patch) | |
tree | 6bd795f8543273ce505cfe602e789c688b6af7c2 | |
parent | 8fb718c088bf3c24f9e2c559e9f63dfa12507e07 (diff) | |
parent | daac28e3b23cdbe83f5eb1ee1db55d83a67d746e (diff) | |
download | org.eclipse.ote-sprint101.tar.gz org.eclipse.ote-sprint101.tar.xz org.eclipse.ote-sprint101.zip |
Merge branch 'sprint100'sprint101
60 files changed, 540 insertions, 726 deletions
diff --git a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessage.java b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessage.java index 0ebdf0920..2f6233d8d 100644 --- a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessage.java +++ b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessage.java @@ -31,6 +31,10 @@ public class OteByteMessage extends Message<ITestEnvironmentMessageSystemAccesso setMemSource(OteByteMessageType.OTE_BYTE_MESSAGE); } + public OteByteMessage(String name, String topic, int defaultByteSize) { + this(name, topic, 1, defaultByteSize); + } + public OteByteMessage(byte[] bytedata) { super("holder", 0, 0, false, 0, 0); data = new OteByteMessageData(this, bytedata.length); diff --git a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageListener.java b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageListener.java new file mode 100644 index 000000000..66e2f14b1 --- /dev/null +++ b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageListener.java @@ -0,0 +1,7 @@ +package org.eclipse.ote.bytemessage; + +public interface OteByteMessageListener<T extends OteByteMessage> { + + void onDataAvailable(T message); + +} diff --git a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java index 7c9025019..48e1806fc 100644 --- a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java +++ b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java @@ -138,5 +138,37 @@ public class OteByteMessageUtil { props.put("event.topics", signal.getHeader().TOPIC.getValue()); return context.registerService(EventHandler.class, eventHandler, props); } + + public static <T extends OteByteMessage> ServiceRegistration<EventHandler> subscribe(T signal, OteByteMessageListener<T> eventHandler) { + BundleContext context = ServiceUtility.getContext(); + if (context == null) { + return null; + } + Hashtable<String, Object> props = new Hashtable<String, Object>(); + props.put("event.topics", signal.getHeader().TOPIC.getValue()); + return context.registerService(EventHandler.class, new EventHandlerForOteByteMessage<T>(signal, eventHandler), props); + } + + private static class EventHandlerForOteByteMessage<T extends OteByteMessage> implements EventHandler { + + private final T message; + private OteByteMessageListener<T> listener; + + public EventHandlerForOteByteMessage(T message, OteByteMessageListener<T> listener){ + this.message = message; + this.listener = listener; + } + + @Override + public void handleEvent(Event arg0) { + try{ + message.getActiveDataSource().getMem().setData(OteByteMessageUtil.getBytes(arg0)); + listener.onDataAvailable(message); + } catch (Throwable th){ + th.printStackTrace(); + } + } + + } } diff --git a/org.eclipse.ote.event.bridge.jms/.classpath b/org.eclipse.ote.event.bridge.jms/.classpath deleted file mode 100644 index ad32c83a7..000000000 --- a/org.eclipse.ote.event.bridge.jms/.classpath +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> - <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> - <classpathentry kind="src" path="src"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/org.eclipse.ote.event.bridge.jms/.project b/org.eclipse.ote.event.bridge.jms/.project deleted file mode 100644 index 250ac9aaa..000000000 --- a/org.eclipse.ote.event.bridge.jms/.project +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.ote.event.bridge.jms</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.ManifestBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.SchemaBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.ds.core.builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.PluginNature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - </natures> -</projectDescription> diff --git a/org.eclipse.ote.event.bridge.jms/META-INF/MANIFEST.MF b/org.eclipse.ote.event.bridge.jms/META-INF/MANIFEST.MF deleted file mode 100644 index 9d5e35a10..000000000 --- a/org.eclipse.ote.event.bridge.jms/META-INF/MANIFEST.MF +++ /dev/null @@ -1,17 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: OTE Jms Event Bridge (Incubation) -Bundle-SymbolicName: org.eclipse.ote.event.bridge.jms;singleton:=true -Bundle-Version: 0.11.0.qualifier -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: org.eclipse.core.runtime;version="3.4.0", - org.eclipse.osee.framework.core.data, - org.eclipse.osee.framework.core.exception, - org.eclipse.osee.framework.jdk.core.type, - org.eclipse.osee.framework.logging, - org.eclipse.osee.framework.messaging, - org.eclipse.osee.ote.message, - org.eclipse.osee.ote.message.elements, - org.eclipse.ote.bytemessage, - org.eclipse.ote.jms.node, - org.osgi.service.event;version="1.3.0" diff --git a/org.eclipse.ote.event.bridge.jms/OSGI-INF/EventToJmsComponent.xml b/org.eclipse.ote.event.bridge.jms/OSGI-INF/EventToJmsComponent.xml deleted file mode 100644 index 46f0f20a9..000000000 --- a/org.eclipse.ote.event.bridge.jms/OSGI-INF/EventToJmsComponent.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop" enabled="true" immediate="true" name="org.eclipse.ote.event.bridge.jms.EventToJms"> - <implementation class="org.eclipse.ote.event.bridge.jms.EventToJmsComponent"/> - <property name="event.topics" type="String" value="ote/*"/> - <reference bind="bindConnectionNode" cardinality="1..1" interface="org.eclipse.ote.jms.node.JmsConnectionNodeProvider" name="JmsConnectionNodeProvider" policy="static" unbind="unbindConnectionNode"/> - <reference bind="bindEventAdmin" cardinality="1..1" interface="org.osgi.service.event.EventAdmin" name="EventAdmin" policy="static" unbind="unbindEventAdmin"/> - <service> - <provide interface="org.osgi.service.event.EventHandler"/> - </service> -</scr:component> diff --git a/org.eclipse.ote.event.bridge.jms/build.properties b/org.eclipse.ote.event.bridge.jms/build.properties deleted file mode 100644 index 6210e849b..000000000 --- a/org.eclipse.ote.event.bridge.jms/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/ -source.. = src/ diff --git a/org.eclipse.ote.event.bridge.jms/pom.xml b/org.eclipse.ote.event.bridge.jms/pom.xml deleted file mode 100644 index aba57b90e..000000000 --- a/org.eclipse.ote.event.bridge.jms/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - - <parent> - <groupId>org.eclipse.ote</groupId> - <artifactId>org.eclipse.ote.parent</artifactId> - <version>0.11.0-SNAPSHOT</version> - <relativePath>../org.eclipse.ote.parent</relativePath> - </parent> - - <artifactId>org.eclipse.ote.event.bridge.jms</artifactId> - <packaging>eclipse-plugin</packaging> - <name>Eclipse OTE Event Bridge (Incubation)</name> - -</project> diff --git a/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/BridgeMessages.java b/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/BridgeMessages.java deleted file mode 100644 index 772596b40..000000000 --- a/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/BridgeMessages.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.ote.event.bridge.jms; - -import org.eclipse.osee.framework.messaging.MessageID; - -public enum BridgeMessages implements MessageID { - - BYTE_MESSAGE("OTE_BYTE_MESSAGE"); - - private String id; - - BridgeMessages(String id){ - this.id = id; - } - - @Override - public Class<?> getSerializationClass() { - return null; - } - - @Override - public boolean isReplyRequired() { - return false; - } - - @Override - public boolean isTopic() { - return true; - } - - @Override - public String getId() { - return id; - } - - @Override - public String getName() { - return id; - } - -} diff --git a/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java b/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java deleted file mode 100644 index 03a0e2a27..000000000 --- a/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.ote.event.bridge.jms; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.logging.Level; - -import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.messaging.OseeMessagingListener; -import org.eclipse.osee.framework.messaging.ReplyConnection; -import org.eclipse.ote.bytemessage.OteByteMessage; -import org.eclipse.ote.bytemessage.OteByteMessageUtil; -import org.eclipse.ote.jms.node.JmsConnectionNodeProvider; -import org.osgi.service.event.Event; -import org.osgi.service.event.EventAdmin; -import org.osgi.service.event.EventHandler; - -public class EventToJmsComponent extends OseeMessagingListener implements EventHandler { - - private JmsConnectionNodeProvider connecitonNode; - private EventAdmin eventAdmin; - private final List<Event> eventQueue; - private final UUID MYID; - - public EventToJmsComponent(){ - eventQueue = new CopyOnWriteArrayList<Event>(); - MYID = UUID.randomUUID(); - } - - void start(){ - } - - void stop(){ - } - - public synchronized void bindConnectionNode(JmsConnectionNodeProvider connectionNode){ - this.connecitonNode = connectionNode; - connecitonNode.getConnectionNode().subscribe(BridgeMessages.BYTE_MESSAGE, this); - for(Event event:eventQueue){ - sendEvent(event); - } - eventQueue.clear(); - } - - public synchronized void unbindConnectionNode(JmsConnectionNodeProvider connectionNode){ - connecitonNode.getConnectionNode().unsubscribe(BridgeMessages.BYTE_MESSAGE, this); - this.connecitonNode = null; - } - - public void bindEventAdmin(EventAdmin eventAdmin){ - this.eventAdmin = eventAdmin; - } - - public void unbindEventAdmin(EventAdmin eventAdmin){ - this.eventAdmin = null; - } - - @Override - public synchronized void handleEvent(Event event) { - if(connecitonNode != null){ - sendEvent(event); - } else { - eventQueue.add(event); - } - } - - private void sendEvent(Event event){ - Object obj = event.getProperty("bytes"); - if(obj != null && obj instanceof byte[]){ - try { - UUID id = OteByteMessageUtil.getUUID((byte[])obj); - if(!id.equals(MYID)){ - OteByteMessage msg = new OteByteMessage((byte[])obj); - OteByteMessageUtil.setUUID(msg, MYID); - connecitonNode.getConnectionNode().send(BridgeMessages.BYTE_MESSAGE, obj); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public void process(Object message, Map<String, Object> headers, ReplyConnection replyConnection) { - if(message instanceof byte[]){ - UUID id = OteByteMessageUtil.getUUID((byte[])message); - if(!id.equals(MYID)){ - OteByteMessage msg = new OteByteMessage((byte[])message); - OteByteMessageUtil.setUUID(msg, MYID); - Map<String, Object> data = new HashMap<String, Object>(); - data.put("bytes", msg.getData()); - Event newevent = new Event(msg.getHeader().TOPIC.getValue(), data); - eventAdmin.sendEvent(newevent); - } - } else { - OseeLog.log(EventToJmsComponent.class, Level.SEVERE, "not a recognized message" + message.getClass()); - } - } -} diff --git a/org.eclipse.ote.jms.node/.classpath b/org.eclipse.ote.jms.node/.classpath deleted file mode 100644 index ad32c83a7..000000000 --- a/org.eclipse.ote.jms.node/.classpath +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> - <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> - <classpathentry kind="src" path="src"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/org.eclipse.ote.jms.node/.project b/org.eclipse.ote.jms.node/.project deleted file mode 100644 index 9c2b6a547..000000000 --- a/org.eclipse.ote.jms.node/.project +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.ote.jms.node</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.ManifestBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.SchemaBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.ds.core.builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.PluginNature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - </natures> -</projectDescription> diff --git a/org.eclipse.ote.jms.node/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.ote.jms.node/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index c537b6306..000000000 --- a/org.eclipse.ote.jms.node/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,7 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/org.eclipse.ote.jms.node/META-INF/MANIFEST.MF b/org.eclipse.ote.jms.node/META-INF/MANIFEST.MF deleted file mode 100644 index 2b50b7e8b..000000000 --- a/org.eclipse.ote.jms.node/META-INF/MANIFEST.MF +++ /dev/null @@ -1,20 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Ote JMS Node (Incubation) -Bundle-SymbolicName: org.eclipse.ote.jms.node;singleton:=true -Bundle-Version: 0.11.0.qualifier -Bundle-Vendor: The Boeing Company -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: org.eclipse.osee.connection.service, - org.eclipse.osee.framework.core.exception, - org.eclipse.osee.framework.jdk.core.type, - org.eclipse.osee.framework.jdk.core.util;resolution:=optional, - org.eclipse.osee.framework.logging, - org.eclipse.osee.framework.messaging, - org.eclipse.osee.ote.core.environment, - org.eclipse.osee.ote.core.environment.interfaces, - org.eclipse.osee.ote.service;resolution:=optional -Export-Package: org.eclipse.ote.jms.node -Require-Bundle: org.eclipse.core.runtime -Service-Component: OSGI-INF/*.xml -Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.ote.jms.node/OSGI-INF/ClientSideConnectionNodeLifecycleController.xml b/org.eclipse.ote.jms.node/OSGI-INF/ClientSideConnectionNodeLifecycleController.xml deleted file mode 100644 index 33dd49950..000000000 --- a/org.eclipse.ote.jms.node/OSGI-INF/ClientSideConnectionNodeLifecycleController.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop" name="org.eclipse.ote.jms.node.ClientSideConnectionNodeLifecycleController"> - <implementation class="org.eclipse.ote.jms.node.internal.ClientSideConnectionNodeLifecycleController"/> - <reference bind="setClientService" - cardinality="1..1" - interface="org.eclipse.osee.ote.service.IOteClientService" - name="IOteClientService" - policy="dynamic"/> - <reference bind="setMessageService" - cardinality="1..1" - interface="org.eclipse.osee.framework.messaging.MessageService" - name="MessageService" - policy="dynamic"/> -</scr:component> diff --git a/org.eclipse.ote.jms.node/OSGI-INF/ServerSideConnectionNodeProvider.xml b/org.eclipse.ote.jms.node/OSGI-INF/ServerSideConnectionNodeProvider.xml deleted file mode 100644 index 1e967db5c..000000000 --- a/org.eclipse.ote.jms.node/OSGI-INF/ServerSideConnectionNodeProvider.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop" enabled="true" immediate="true" name="org.eclipse.ote.jms.node.ServerSideConnectionNodeProvider"> - <implementation class="org.eclipse.ote.jms.node.internal.ServerSideConnectionNodeProviderImpl"/> - <reference - cardinality="1..1" - interface="org.eclipse.osee.framework.messaging.MessageService" - name="MessageService" - policy="static" - bind="setMessageService" - unbind="unsetMessageService"/> - <service> - <provide interface="org.eclipse.ote.jms.node.JmsConnectionNodeProvider"/> - </service> - <reference bind="bindHostTestEnvironment" cardinality="1..1" interface="org.eclipse.osee.ote.core.environment.interfaces.IHostTestEnvironment" name="IHostTestEnvironment" policy="static" unbind="unbindHostTestEnvironment"/> -</scr:component> diff --git a/org.eclipse.ote.jms.node/build.properties b/org.eclipse.ote.jms.node/build.properties deleted file mode 100644 index 6210e849b..000000000 --- a/org.eclipse.ote.jms.node/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/ -source.. = src/ diff --git a/org.eclipse.ote.jms.node/pom.xml b/org.eclipse.ote.jms.node/pom.xml deleted file mode 100644 index e26ebba72..000000000 --- a/org.eclipse.ote.jms.node/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.eclipse.ote</groupId> - <artifactId>org.eclipse.ote.parent</artifactId> - <version>0.11.0-SNAPSHOT</version> - <relativePath>../org.eclipse.ote.parent</relativePath> - </parent> - - <artifactId>org.eclipse.ote.jms.node</artifactId> - <packaging>eclipse-plugin</packaging> - <name>Eclipse OTE JMS Node Connection (Incubation)</name> - - - - -</project>
\ No newline at end of file diff --git a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/JmsConnectionNodeProvider.java b/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/JmsConnectionNodeProvider.java deleted file mode 100644 index ba5edb26e..000000000 --- a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/JmsConnectionNodeProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.ote.jms.node; - -import org.eclipse.osee.framework.messaging.ConnectionNode; - -public interface JmsConnectionNodeProvider { - ConnectionNode getConnectionNode(); -} diff --git a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ClientSideConnectionNodeLifecycleController.java b/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ClientSideConnectionNodeLifecycleController.java deleted file mode 100644 index dd9bef637..000000000 --- a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ClientSideConnectionNodeLifecycleController.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.ote.jms.node.internal; - -import java.io.Serializable; -import java.util.Map.Entry; -import java.util.logging.Level; - -import org.eclipse.osee.connection.service.IServiceConnector; -import org.eclipse.osee.framework.jdk.core.util.EnhancedProperties; -import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.messaging.ConnectionNode; -import org.eclipse.osee.framework.messaging.MessageService; -import org.eclipse.osee.framework.messaging.NodeInfo; -import org.eclipse.osee.ote.service.ConnectionEvent; -import org.eclipse.osee.ote.service.IOteClientService; -import org.eclipse.osee.ote.service.ITestConnectionListener; -import org.eclipse.ote.jms.node.JmsConnectionNodeProvider; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; - - - -/** - * @author Michael P. Masterson - */ -public final class ClientSideConnectionNodeLifecycleController implements ITestConnectionListener { - - private MessageService messageService; - private IOteClientService clientService; - private BundleContext context; - private ServiceRegistration<?> registration; - - public void start(BundleContext context) { - this.context = context; - clientService.addConnectionListener(this); - - } - - public void stop() { - clientService.removeConnectionListener(this); - unregisterConnectionNode(); - this.messageService = null; - this.clientService = null; - this.context = null; - - } - - public void setMessageService(MessageService messageService) { - this.messageService = messageService; - } - - public void setClientService(IOteClientService clientService) { - this.clientService = clientService; - } - - @Override - public void onPostConnect(ConnectionEvent event) { - if (context == null) { - OseeLog.log(getClass(), Level.SEVERE, "Received a onPostConnect event with a null context."); - return; - } - IServiceConnector connector = event.getConnector(); - registerConnectionNode(connector); - } - - /** - * @param connector - */ - private void registerConnectionNode(IServiceConnector connector) { - Object obj = connector.getProperty("OTEEmbeddedBroker", null); - if (obj != null && obj instanceof NodeInfo) { - debug("Registering client connection service"); - NodeInfo nodeInfo = (NodeInfo) obj; - registerConnectionNode(nodeInfo); - } else { - debug(String.format("Problem using connector...%s:%s", obj.getClass(), obj)); - EnhancedProperties properties = connector.getProperties(); - for( Entry<String, Serializable> entry : properties.entrySet() ) { - debug(String.format("\t%s = %s", entry.getKey(), entry.getValue())); - } - } - } - - /** - * @param nodeInfo - */ - private void registerConnectionNode(NodeInfo nodeInfo) { - try { - ConnectionNode node = messageService.get(nodeInfo); - registration = - context.registerService(JmsConnectionNodeProvider.class.getName(), new ClientSideConnectionNodeProviderImpl(node), null); - } catch (Exception ex) { - OseeLog.log(getClass(), Level.SEVERE, ex); - } - } - - @Override - public void onConnectionLost(IServiceConnector connector) { - unregisterConnectionNode(); - } - - - - private void unregisterConnectionNode() { - if (registration != null) { - registration.unregister(); - registration = null; - } - } - - @Override - public void onPreDisconnect(ConnectionEvent event) { - unregisterConnectionNode(); - } - - private void debug(String msg ) { - if( System.getProperty("ote.jms.node.debug") != null ) - System.out.println(msg); - } -} diff --git a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ClientSideConnectionNodeProviderImpl.java b/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ClientSideConnectionNodeProviderImpl.java deleted file mode 100644 index 60ad7819a..000000000 --- a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ClientSideConnectionNodeProviderImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.ote.jms.node.internal; - -import org.eclipse.osee.framework.messaging.ConnectionNode; -import org.eclipse.ote.jms.node.JmsConnectionNodeProvider; - - -public final class ClientSideConnectionNodeProviderImpl implements JmsConnectionNodeProvider{ - - private final ConnectionNode node; - - ClientSideConnectionNodeProviderImpl(ConnectionNode node) { - this.node = node; - } - - @Override - public ConnectionNode getConnectionNode() { - return node; - } -} diff --git a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ServerSideConnectionNodeProviderImpl.java b/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ServerSideConnectionNodeProviderImpl.java deleted file mode 100644 index 5de9eb14d..000000000 --- a/org.eclipse.ote.jms.node/src/org/eclipse/ote/jms/node/internal/ServerSideConnectionNodeProviderImpl.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Boeing. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.ote.jms.node.internal; - -import java.util.logging.Level; - -import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.messaging.ConnectionNode; -import org.eclipse.osee.framework.messaging.MessageService; -import org.eclipse.osee.framework.messaging.NodeInfo; -import org.eclipse.osee.ote.core.environment.interfaces.IHostTestEnvironment; -import org.eclipse.ote.jms.node.JmsConnectionNodeProvider; - - - -/** - * @author Michael P. Masterson - */ -public final class ServerSideConnectionNodeProviderImpl implements JmsConnectionNodeProvider { - private IHostTestEnvironment testEnv; - private MessageService messageService; - - private static JmsConnectionNodeProvider instance; - - public void start() { - instance = this; - } - - public void stop() { - } - - public synchronized void bindHostTestEnvironment(IHostTestEnvironment testEnv) { - this.testEnv = testEnv; - } - - public synchronized void unbindHostTestEnvironment(IHostTestEnvironment testEnv) { - this.testEnv = null; - } - - public synchronized void setMessageService(MessageService messageService) { - this.messageService = messageService; - } - - public synchronized void unsetMessageService(MessageService messageService) { - this.messageService = null; - } - - public static JmsConnectionNodeProvider getInstance() { - return instance; - } - - @Override - public synchronized ConnectionNode getConnectionNode() { - try { - NodeInfo info = testEnv.getBroker(); - ConnectionNode connection = messageService.get(info); - return connection; - } catch (Exception ex) { - OseeLog.log(this.getClass(), Level.SEVERE, ex); - } - return null; - } -} diff --git a/org.eclipse.ote.parent/pom.xml b/org.eclipse.ote.parent/pom.xml index ddaf5638a..2ae8a500d 100644 --- a/org.eclipse.ote.parent/pom.xml +++ b/org.eclipse.ote.parent/pom.xml @@ -18,11 +18,10 @@ <modules> <module>../org.eclipse.ote.bytemessage</module> <module>../org.eclipse.ote.bytemessage.test</module> - <module>../org.eclipse.ote.event.bridge.jms</module> + <module>../org.eclipse.ote.io</module> <module>../org.eclipse.ote.io.test</module> - <module>../org.eclipse.ote.jms.node</module> - <module>../org.eclipse.ote.services.core</module> + <module>../org.eclipse.ote.services.core</module> <module>../org.eclipse.ote.statemachine</module> <module>../org.eclipse.ote.statemachine.test</module> diff --git a/org.eclipse.ote.serverclient.feature/feature.xml b/org.eclipse.ote.serverclient.feature/feature.xml index 8fc56dee0..2a389c53e 100644 --- a/org.eclipse.ote.serverclient.feature/feature.xml +++ b/org.eclipse.ote.serverclient.feature/feature.xml @@ -30,19 +30,6 @@ version="0.0.0" unpack="false"/> - <plugin - id="org.eclipse.ote.event.bridge.jms" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - - <plugin - id="org.eclipse.ote.jms.node" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> <plugin id="org.eclipse.ote.services.core" diff --git a/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF index 39d86a970..9ac3415e6 100644 --- a/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF +++ b/org.eclipse.ote.ui.message.util/META-INF/MANIFEST.MF @@ -15,6 +15,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: org.eclipse.ote.ui.message.util Import-Package: org.eclipse.osee.framework.jdk.core.persistence, org.eclipse.osee.framework.plugin.core.util, + org.eclipse.osee.framework.ui.swt, org.eclipse.osee.ote.messaging.dds.service, org.eclipse.ote.message.lookup Bundle-Vendor: Eclipse Open System Engineering Environment diff --git a/org.eclipse.ote.ui.message.util/build.properties b/org.eclipse.ote.ui.message.util/build.properties index 34d2e4d2d..c6baffa00 100644 --- a/org.eclipse.ote.ui.message.util/build.properties +++ b/org.eclipse.ote.ui.message.util/build.properties @@ -1,4 +1,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ - . + .,\ + icons/ diff --git a/org.eclipse.ote.ui.message.util/icons/add.png b/org.eclipse.ote.ui.message.util/icons/add.png Binary files differnew file mode 100644 index 000000000..5b051f647 --- /dev/null +++ b/org.eclipse.ote.ui.message.util/icons/add.png diff --git a/org.eclipse.ote.ui.message.util/icons/deleteAll.gif b/org.eclipse.ote.ui.message.util/icons/deleteAll.gif Binary files differnew file mode 100644 index 000000000..28a3785aa --- /dev/null +++ b/org.eclipse.ote.ui.message.util/icons/deleteAll.gif diff --git a/org.eclipse.ote.ui.message.util/icons/remove.png b/org.eclipse.ote.ui.message.util/icons/remove.png Binary files differnew file mode 100644 index 000000000..7fb4e906f --- /dev/null +++ b/org.eclipse.ote.ui.message.util/icons/remove.png diff --git a/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/AddMessagesAction.java b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/AddMessagesAction.java new file mode 100644 index 000000000..4f53bf335 --- /dev/null +++ b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/AddMessagesAction.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2013 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.ote.ui.message.util; + +import java.util.ArrayList; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.window.Window; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.ote.message.lookup.MessageLookupResult; +import org.eclipse.ote.ui.message.util.MessageSelectionDialog; +import org.eclipse.swt.widgets.Shell; + +/** + * @author Ken J. Aguilar + */ +public class AddMessagesAction extends Action { + + + private final MessageSelectComposite composite; + + public AddMessagesAction(MessageSelectComposite composite) { + super("Select Messages", IAction.AS_PUSH_BUTTON); + setToolTipText("Select messages to append to the list of messages that will be recorded"); + this.composite = composite; + setImageDescriptor(Images.ADD.getImageDescriptor()); + + } + + @Override + public void run() { + Shell shell = Displays.getActiveShell(); + MessageSelectionDialog msgSelectionDialog = new MessageSelectionDialog(shell); + msgSelectionDialog.setMultipleSelection(true); + if (msgSelectionDialog.open() == Window.OK) { + Object[] result = (Object[])msgSelectionDialog.getResult(); + ArrayList<MessageLookupResult> list = new ArrayList<MessageLookupResult>(result.length); + for (Object item : result) { + MessageLookupResult lookupResult = (MessageLookupResult) item; + list.add(lookupResult); + } + composite.addMessages(list); + } + + } + +} diff --git a/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/DeleteAllMessagesAction.java b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/DeleteAllMessagesAction.java new file mode 100644 index 000000000..b13a3a175 --- /dev/null +++ b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/DeleteAllMessagesAction.java @@ -0,0 +1,20 @@ +package org.eclipse.ote.ui.message.util; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; + +public class DeleteAllMessagesAction extends Action{ + private final MessageSelectComposite composite; + + public DeleteAllMessagesAction(MessageSelectComposite composite) { + super("Delete All Messages", IAction.AS_PUSH_BUTTON); + setToolTipText("Delete all messages from the recording list"); + this.composite = composite; + setImageDescriptor(Images.DELETE_ALL.getImageDescriptor()); + + } + + public void run() { + composite.deleteAll(); + } +} diff --git a/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/DeleteMessagesAction.java b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/DeleteMessagesAction.java new file mode 100644 index 000000000..a61f5d9d9 --- /dev/null +++ b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/DeleteMessagesAction.java @@ -0,0 +1,19 @@ +package org.eclipse.ote.ui.message.util; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; + +public class DeleteMessagesAction extends Action{ + private final MessageSelectComposite composite; + + public DeleteMessagesAction(MessageSelectComposite composite) { + super("Delete Selected Messages", IAction.AS_PUSH_BUTTON); + setToolTipText("Delete all selected from the recording list"); + setImageDescriptor(Images.DELETE.getImageDescriptor()); + this.composite = composite; + } + + public void run() { + composite.deleteSelection(); + } +} diff --git a/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/Images.java b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/Images.java new file mode 100644 index 000000000..7904a3b40 --- /dev/null +++ b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/Images.java @@ -0,0 +1,64 @@ +package org.eclipse.ote.ui.message.util; + +import java.io.IOException; +import java.net.URL; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; +import org.eclipse.swt.graphics.Image; +import org.osgi.framework.FrameworkUtil; + +public enum Images { + ADD("icons/add.png"), + DELETE_ALL("icons/deleteAll.gif"), + DELETE("icons/remove.png"), + RECORD("icons/record_action.png"); + + private final String path; + + private static ImageRegistry ir = new ImageRegistry(); + /** + * @param path + */ + private Images(String path) { + this.path = path; + } + + /** + * @return the path + */ + public String getPath() { + return path; + } + + public Image getImage() { + Image image = ir.get(path); + if (image == null) { + image = ImageDescriptor.createFromURL(getFile(path)).createImage(); + ir.put(path, image); + } + return image; + } + + public ImageDescriptor getImageDescriptor() { + ImageDescriptor descriptor = ir.getDescriptor(path); + if (descriptor == null) { + descriptor = ImageDescriptor.createFromURL(getFile(path)); + ir.put(path, descriptor); + } + return descriptor; + } + + private static URL getFile(String path) { + URL url = FrameworkUtil.getBundle(Images.class).getEntry(path); + if (url == null) { + return null; + } + try { + return FileLocator.resolve(url); + } catch (IOException e) { + throw new RuntimeException("could not resolve URL from path: " + path, e); + } + } +} diff --git a/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/MessageSelectComposite.java b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/MessageSelectComposite.java new file mode 100644 index 000000000..5abf52342 --- /dev/null +++ b/org.eclipse.ote.ui.message.util/src/org/eclipse/ote/ui/message/util/MessageSelectComposite.java @@ -0,0 +1,224 @@ +package org.eclipse.ote.ui.message.util; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; + +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.osee.framework.ui.swt.Widgets; +import org.eclipse.ote.message.lookup.MessageLookupResult; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Menu; + +public class MessageSelectComposite extends Composite{ + + + private final TableViewer viewer; + + private final HashSet<MessageLookupResult> items = new HashSet<MessageLookupResult>(); + + private final AddMessagesAction addMessageAction; + private final DeleteMessagesAction deleteMessageAction; + private final DeleteAllMessagesAction deleteAllMessagesAction; + +// private Button browseBtn; + + public MessageSelectComposite(Composite parent, int style) { + super(parent, style); + Widgets.setFormLayout(this, 5, 5); +// Label label = new Label(this, SWT.RIGHT); +// label.setText("Output File:"); + +// outputFilePathTxt = new Text(this, SWT.SINGLE | SWT.BORDER); +// outputFilePathTxt.addModifyListener(new ModifyListener() { +// +// @Override +// public void modifyText(ModifyEvent e) { +//// updateUiStatus(); +// } +// }); +// browseBtn = new Button(this, SWT.PUSH); +// browseBtn.setText("Browse"); +// browseBtn.addSelectionListener(new SelectionAdapter() { +// +// @Override +// public void widgetSelected(SelectionEvent e) { +// doBrowseForFile(); +// } +// }); + addMessageAction = new AddMessagesAction(this); + deleteMessageAction = new DeleteMessagesAction(this); + deleteAllMessagesAction = new DeleteAllMessagesAction(this); + + Label titleLabel = new Label(this, SWT.LEFT); + titleLabel.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT)); + titleLabel.setText("Selected Messages"); + titleLabel.setBackground(getBackground()); + viewer = new TableViewer(this, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); + viewer.setContentProvider(new ArrayContentProvider()); + viewer.setLabelProvider(new LabelProvider() { + + @Override + public String getText(Object element) { + MessageLookupResult item = (MessageLookupResult) element; + return String.format("%s [%s]", item.getMessageName(), item.getMessageType()); + } + + + }); + + + ActionContributionItem addItem = new ActionContributionItem(addMessageAction); + addItem.fill(this); + Button addButton = (Button)addItem.getWidget(); + + ActionContributionItem delItem = new ActionContributionItem(deleteMessageAction); + delItem.fill(this); + Button delButton = (Button)delItem.getWidget(); + + ActionContributionItem delAllItem = new ActionContributionItem(deleteAllMessagesAction); + delAllItem.fill(this); + Button delAllButton = (Button)delAllItem.getWidget(); + + +// Label statusLabel = new Label(this, SWT.RIGHT); +// statusLabel.setText("Status:"); +// +// statusValueLabel = new Label(this, SWT.LEFT); +// statusValueLabel.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT)); + +// Widgets.attachToParent(outputFilePathTxt, SWT.TOP, 0, 5); +// Widgets.attachToControl(label, outputFilePathTxt, SWT.TOP, SWT.CENTER, 0); +// Widgets.attachToControl(browseBtn, outputFilePathTxt, SWT.TOP, SWT.CENTER, 0); +// +// Widgets.attachToParent(label, SWT.LEFT, 0, 0); +// Widgets.attachToControl(outputFilePathTxt, label, SWT.LEFT, SWT.RIGHT, 5); +// Widgets.attachToControl(outputFilePathTxt, browseBtn, SWT.RIGHT, SWT.LEFT, -5); + +// Widgets.attachToParent(browseBtn, SWT.RIGHT, 100, 0); +// +// Widgets.attachToControl(titleLabel, browseBtn, SWT.TOP, SWT.BOTTOM, 5); + Widgets.attachToParent(titleLabel, SWT.LEFT, 0, 0); + Widgets.attachToParent(titleLabel, SWT.RIGHT, 100, 0); + + Widgets.attachToControl(viewer.getControl(), titleLabel, SWT.TOP, SWT.BOTTOM, 0); + Widgets.attachToParent(viewer.getControl(), SWT.LEFT, 0, 0, 400, 600); +// final Object ld = viewer.getControl().getLayoutData(); +// final FormData fd = ld != null ? (FormData) ld : new FormData(); +// fd.bottom = new FormAttachment(100, 100, 0); + + Widgets.attachToParent(viewer.getControl(), SWT.BOTTOM, 100, 0); + + Widgets.attachToParent(addButton, SWT.RIGHT, 100, 0, 400, 600); + Widgets.attachToParent(delButton, SWT.RIGHT, 100, 0, 400, 600); + Widgets.attachToParent(delAllButton, SWT.RIGHT, 100, 0, 400, 600); + + Widgets.attachToControl(viewer.getControl(), addButton, SWT.RIGHT, SWT.LEFT, 0); + Widgets.attachToControl(viewer.getControl(), delButton, SWT.RIGHT, SWT.LEFT, 0); + Widgets.attachToControl(viewer.getControl(), delAllButton, SWT.RIGHT, SWT.LEFT, 0); + + Widgets.attachToControl(addButton, titleLabel, SWT.TOP, SWT.BOTTOM, 0); + Widgets.attachToControl(delButton, addButton, SWT.TOP, SWT.BOTTOM, 0); + Widgets.attachToControl(delAllButton, delButton, SWT.TOP, SWT.BOTTOM, 0); + + hookContextMenu(); + } + + private void hookContextMenu() { + MenuManager menuMgr = new MenuManager("#PopupMenu"); + menuMgr.setRemoveAllWhenShown(true); + menuMgr.addMenuListener(new IMenuListener() { + @Override + public void menuAboutToShow(IMenuManager manager) { + manager.add(addMessageAction); + manager.add(deleteMessageAction); + manager.add(deleteAllMessagesAction); + } + }); + Menu menu = menuMgr.createContextMenu(this.getViewer().getControl()); + this.getViewer().getControl().setMenu(menu); + } + + +// private void doBrowseForFile() { +// FileDialog dialog = new FileDialog(Display.getDefault().getActiveShell(), SWT.SAVE); +// dialog.setFilterExtensions(new String[]{"*.bmr"}); +// dialog.setFilterIndex(0); +// dialog.setOverwrite(false); +// String path = dialog.open(); +// if (path != null) { +// outputFilePathTxt.setText(path); +// } +// } + + TableViewer getViewer() { + return viewer; + } + + void addMessages(Collection<MessageLookupResult> messages) { + items.addAll(messages); + setInput(); + } + + void deleteAll() { + items.clear(); + setInput(); + } + + void deleteSelection() { + items.removeAll(Arrays.asList(((IStructuredSelection)viewer.getSelection()).toArray())); + setInput(); + } + + private void setInput() { + viewer.setInput(items.toArray()); + } + +// private static boolean isValidPath(String string) { +// if (string == null || string.isEmpty()) { +// return false; +// } +// File file = new File(string); +// // check parent directory +// File dir = file.getParentFile(); +// return dir != null && dir.isDirectory() && dir.exists(); +// } + + public AddMessagesAction getAddMessageAction() { + return addMessageAction; + } + + public DeleteMessagesAction getDeleteMessageAction() { + return deleteMessageAction; + } + + public DeleteAllMessagesAction getDeleteAllMessagesAction() { + return deleteAllMessagesAction; + } + + public HashSet<MessageLookupResult> getMessages() { + return items; + } + + public void setMessages(HashSet<MessageLookupResult> messages) { + if(messages != null){ + items.addAll(messages); + setInput(); + } + } + +} diff --git a/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF b/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF index 58c0e35f7..41c1b4b90 100644 --- a/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF +++ b/org.eclipse.ote.ui.message/META-INF/MANIFEST.MF @@ -25,7 +25,8 @@ Export-Package: org.eclipse.ote.ui.message, org.eclipse.ote.ui.message.tree, org.eclipse.ote.ui.message.watch Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: org.eclipse.osee.framework.core.exception, +Import-Package: org.eclipse.nebula.widgets.xviewer.core.model, + org.eclipse.osee.framework.core.exception, org.eclipse.osee.framework.core.operation, org.eclipse.osee.framework.jdk.core.type, org.eclipse.ote.bytemessage, diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponent.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponent.java index f9ce31b05..f026eba67 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponent.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponent.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.ote.ui.message; import java.util.List; - import org.eclipse.ote.message.lookup.MessageInput; import org.eclipse.ote.message.lookup.MessageInputItem; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponentAll.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponentAll.java index e257a33fd..b72858c34 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponentAll.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputComponentAll.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.ote.ui.message; import java.util.List; - import org.eclipse.ote.message.lookup.MessageInput; import org.eclipse.ote.message.lookup.MessageInputItem; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputUtil.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputUtil.java index 775fa394e..1d4e955cc 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputUtil.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/MessageInputUtil.java @@ -2,7 +2,6 @@ package org.eclipse.ote.ui.message; import java.util.List; import java.util.logging.Level; - import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.ote.message.lookup.MessageInputItem; import org.eclipse.ote.ui.message.watch.AddWatchParameter; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/internal/SWTResourceManager.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/internal/SWTResourceManager.java index 224e5d421..bdf4f81bc 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/internal/SWTResourceManager.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/internal/SWTResourceManager.java @@ -4,7 +4,6 @@ import java.io.FileInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; - import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Cursor; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/messageXViewer/MessageXViewerFactory.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/messageXViewer/MessageXViewerFactory.java index 04249bc18..5cbdcf603 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/messageXViewer/MessageXViewerFactory.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/messageXViewer/MessageXViewerFactory.java @@ -12,14 +12,14 @@ package org.eclipse.ote.ui.message.messageXViewer; import java.io.File; import java.util.logging.Level; -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; -import org.eclipse.nebula.widgets.xviewer.XViewerColumn.SortDataType; import org.eclipse.nebula.widgets.xviewer.XViewerFactory; +import org.eclipse.nebula.widgets.xviewer.core.model.SortDataType; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerAlign; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.nebula.widgets.xviewer.customize.FileStoreCustomizations; import org.eclipse.nebula.widgets.xviewer.customize.IXViewerCustomizations; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.plugin.core.util.OseeData; -import org.eclipse.swt.SWT; /** * @author Andrew M. Finkbeiner @@ -27,21 +27,21 @@ import org.eclipse.swt.SWT; public class MessageXViewerFactory extends XViewerFactory { private static String VIEWER_NAMESPACE = "org.eclipse.osee.ote.message.MessageXViewer"; - public static XViewerColumn name = new XViewerColumn("osee.message.name", "Name", 200, SWT.LEFT, true, + public static XViewerColumn name = new XViewerColumn("osee.message.name", "Name", 200, XViewerAlign.Left, true, SortDataType.String, false, null); - public static XViewerColumn psUpdateCount = new XViewerColumn("osee.message.udpates", "Updates", 60, SWT.LEFT, true, + public static XViewerColumn psUpdateCount = new XViewerColumn("osee.message.udpates", "Updates", 60, XViewerAlign.Left, true, SortDataType.Integer, false, null); - public static XViewerColumn value = new XViewerColumn("osee.message.value", "Value", 100, SWT.LEFT, true, + public static XViewerColumn value = new XViewerColumn("osee.message.value", "Value", 100, XViewerAlign.Left, true, SortDataType.String, false, null); - public static XViewerColumn byteOffset = new XViewerColumn("osee.message.offset", "Offset", 50, SWT.LEFT, true, + public static XViewerColumn byteOffset = new XViewerColumn("osee.message.offset", "Offset", 50, XViewerAlign.Left, true, SortDataType.Integer, false, null); - public static XViewerColumn msb = new XViewerColumn("osee.message.msb", "MSB", 50, SWT.LEFT, true, + public static XViewerColumn msb = new XViewerColumn("osee.message.msb", "MSB", 50, XViewerAlign.Left, true, SortDataType.Integer, false, null); - public static XViewerColumn lsb = new XViewerColumn("osee.message.lsb", "LSB", 50, SWT.LEFT, true, + public static XViewerColumn lsb = new XViewerColumn("osee.message.lsb", "LSB", 50, XViewerAlign.Left, true, SortDataType.Integer, false, null); - public static XViewerColumn bitSize = new XViewerColumn("osee.message.bitSize", "Bit Size", 60, SWT.LEFT, true, + public static XViewerColumn bitSize = new XViewerColumn("osee.message.bitSize", "Bit Size", 60, XViewerAlign.Left, true, SortDataType.Integer, false, null); - public static XViewerColumn elementType = new XViewerColumn("osee.message.type", "Type", 100, SWT.LEFT, true, + public static XViewerColumn elementType = new XViewerColumn("osee.message.type", "Type", 100, XViewerAlign.Left, true, SortDataType.String, false, null); private final FileStoreCustomizations propertyStoreCustomizations; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/navigate/MessageNavigateViewItems.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/navigate/MessageNavigateViewItems.java index ecd497234..9be484781 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/navigate/MessageNavigateViewItems.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/navigate/MessageNavigateViewItems.java @@ -12,7 +12,6 @@ package org.eclipse.ote.ui.message.navigate; import java.util.ArrayList; import java.util.List; - import org.eclipse.osee.framework.ui.plugin.xnavigate.IXNavigateContainer; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/AbstractTreeNode.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/AbstractTreeNode.java index 9c578925f..304c6a273 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/AbstractTreeNode.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/AbstractTreeNode.java @@ -12,8 +12,7 @@ package org.eclipse.ote.ui.message.tree; import java.util.Collection; import java.util.Collections; - -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/ElementNode.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/ElementNode.java index c417327f6..c002b326f 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/ElementNode.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/ElementNode.java @@ -15,9 +15,8 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.osee.framework.ui.swt.OverlayImage; import org.eclipse.osee.framework.ui.swt.OverlayImage.Location; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageNode.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageNode.java index 7c0834427..70c1d0ff5 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageNode.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageNode.java @@ -13,9 +13,8 @@ package org.eclipse.ote.ui.message.tree; import java.util.Collection; import java.util.HashMap; import java.util.Map; - import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.osee.framework.ui.swt.OverlayImage; import org.eclipse.osee.framework.ui.swt.OverlayImage.Location; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageTreeBuilder.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageTreeBuilder.java index 61e897efd..f43830b8d 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageTreeBuilder.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageTreeBuilder.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; - import org.eclipse.osee.ote.message.MessageDefinitionProvider; import org.eclipse.osee.ote.message.MessageSink; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageUpdateListener.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageUpdateListener.java index c9b4b5780..cac7c7079 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageUpdateListener.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageUpdateListener.java @@ -14,7 +14,6 @@ import java.nio.channels.IllegalSelectorException; import java.util.LinkedList; import java.util.Map.Entry; import java.util.logging.Level; - import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.ui.swt.Displays; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageWatchLabelProvider.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageWatchLabelProvider.java index 399bee3bc..feef5fd4c 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageWatchLabelProvider.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/MessageWatchLabelProvider.java @@ -11,8 +11,8 @@ package org.eclipse.ote.ui.message.tree; import org.eclipse.jface.viewers.ILabelProviderListener; -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.ote.ui.message.messageXViewer.MessageXViewer; import org.eclipse.swt.SWT; 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 3fc630506..80ece7e50 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 @@ -15,7 +15,6 @@ import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.Map; - import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.TreeViewer; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedElementNode.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedElementNode.java index 20d06a677..008d2d0aa 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedElementNode.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedElementNode.java @@ -12,8 +12,7 @@ package org.eclipse.ote.ui.message.tree; import java.util.Collection; import java.util.HashMap; - -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.osee.ote.client.msg.core.IMessageSubscription; import org.eclipse.osee.ote.message.Message; import org.eclipse.osee.ote.message.data.MessageData; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedMessageNode.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedMessageNode.java index c2b30b2f9..6fc7647a8 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedMessageNode.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/tree/WatchedMessageNode.java @@ -19,8 +19,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicLong; - -import org.eclipse.nebula.widgets.xviewer.XViewerColumn; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.osee.ote.client.msg.core.IMessageSubscription; import org.eclipse.osee.ote.message.commands.RecordCommand.MessageRecordDetails; import org.eclipse.osee.ote.message.enums.DataType; 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 7a23d42e0..fc041738b 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 @@ -8,7 +8,6 @@ import java.io.InputStreamReader; import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.jobs.Job; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/SignalStripper.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/SignalStripper.java index 7d069760a..2af0d9ecf 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/SignalStripper.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/SignalStripper.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; - import org.eclipse.osee.framework.jdk.core.type.HashCollection; import org.eclipse.osee.framework.jdk.core.util.Lib; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/ViewRefresher.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/ViewRefresher.java index 7c3ddf19d..7975a3c75 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/ViewRefresher.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/ViewRefresher.java @@ -15,7 +15,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; - import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; 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 f68264e4a..de0f96313 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 @@ -17,8 +17,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Map; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.logging.Level; - import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; @@ -169,6 +171,8 @@ public final class WatchView extends ViewPart implements ITestConnectionListener private IOteMessageService messageService = null; private final SelectionListener recBtnHandler = new SelectionListener() { + + ExecutorService executor = Executors.newSingleThreadExecutor(); @Override public void widgetDefaultSelected(SelectionEvent e) { @@ -179,35 +183,58 @@ public final class WatchView extends ViewPart implements ITestConnectionListener public void widgetSelected(SelectionEvent e) { if (recordButton.getSelection()) { - RecordingWizard recordingWizard = new RecordingWizard(watchList); + final RecordingWizard recordingWizard = new RecordingWizard(watchList); final WizardDialog recdialog = new WizardDialog(Displays.getActiveShell(), recordingWizard); int recResult = recdialog.open(); if (Window.OK == recResult) { - try { - saveWatchFile(); - messageService.startRecording(recordingWizard.getFileName(), - recordingWizard.getFilteredMessageRecordDetails()).addListener(recBtnListener); - } catch (FileNotFoundException ex) { - MessageDialog.openError(Displays.getActiveShell(), "Recording Error", - "Failed to open file for writing. " + "Make sure its not being used by another application"); - recordButton.setSelection(false); - } catch (Throwable ex) { - OseeLog.log(Activator.class, Level.SEVERE, "Failed to start message recording", ex); - MessageDialog.openError(Displays.getActiveShell(), "Recording Error", - "Exception ocurred while recording. see error log"); - recordButton.setSelection(false); - } + executor.submit(new Runnable() { + + @Override + public void run() { + try { + saveWatchFile(); + messageService.startRecording(recordingWizard.getFileName(), + recordingWizard.getFilteredMessageRecordDetails()).addListener(recBtnListener); + } catch (FileNotFoundException ex) { + Display.getCurrent().asyncExec(new Runnable() { + @Override + public void run() { + MessageDialog.openError(Displays.getActiveShell(), "Recording Error", + "Failed to open file for writing. " + "Make sure its not being used by another application"); + recordButton.setSelection(false); + } + }); + } catch (Throwable ex) { + OseeLog.log(Activator.class, Level.SEVERE, "Failed to start message recording", ex); + Display.getCurrent().asyncExec(new Runnable() { + + @Override + public void run() { + MessageDialog.openError(Displays.getActiveShell(), "Recording Error", + "Exception ocurred while recording. see error log"); + recordButton.setSelection(false); + } + }); + } + } + }); } else { recordButton.setSelection(false); } } else { - try { - messageService.stopRecording(); - } catch (IOException ioe) { - OseeLog.log(Activator.class, Level.WARNING, "problem when attempting to stop recording", ioe); - } catch (Throwable t) { - OseeLog.log(Activator.class, Level.SEVERE, "problem when attempting to stop recording", t); - } + executor.submit(new Runnable() { + + @Override + public void run() { + try { + messageService.stopRecording(); + } catch (IOException ioe) { + OseeLog.log(Activator.class, Level.WARNING, "problem when attempting to stop recording", ioe); + } catch (Throwable t) { + OseeLog.log(Activator.class, Level.SEVERE, "problem when attempting to stop recording", t); + } + } + }); } } }; @@ -696,37 +723,48 @@ public final class WatchView extends ViewPart implements ITestConnectionListener } public void addWatchMessage(final AddWatchParameter parameter) { - for (MessageParameter message : parameter.getMessageParameters()) { - Collection<ElementPath> elements = parameter.getMessageElements(message.getMessageName()); - OseeLog.logf(Activator.class, Level.FINEST, "Watch request for message %s", message); - try { - if (elements == null) { - elements = new ArrayList<ElementPath>(); - } - MessageMode mode = message.isWriter() ? MessageMode.WRITER : MessageMode.READER; - 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; - } else { - return; - } - } catch (InstantiationException ex1) { - if (openProceedWithProcessing("failed to instantiate " + message + "\n Do you wish to continue")) { - continue; - } else { - return; - } - } catch (Exception ex1) { - OseeLog.log(Activator.class, Level.SEVERE, "failed to create message node", ex1); - if (openProceedWithProcessing("Error processing " + message + ". See Error Log for details.\n Do you wish to continue")) { - continue; - } else { - return; + new Thread(new Runnable(){ + @Override + public void run() { + for (MessageParameter message : parameter.getMessageParameters()) { + Collection<ElementPath> elements = parameter.getMessageElements(message.getMessageName()); + OseeLog.logf(Activator.class, Level.FINEST, "Watch request for message %s", message); + try { + if (elements == null) { + elements = new ArrayList<ElementPath>(); + } + MessageMode mode = message.isWriter() ? MessageMode.WRITER : MessageMode.READER; + 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; + } else { + return; + } + } catch (InstantiationException ex1) { + if (openProceedWithProcessing("failed to instantiate " + message + "\n Do you wish to continue")) { + continue; + } else { + return; + } + } catch (Exception ex1) { + OseeLog.log(Activator.class, Level.SEVERE, "failed to create message node", ex1); + if (openProceedWithProcessing("Error processing " + message + ". See Error Log for details.\n Do you wish to continue")) { + continue; + } else { + return; + } + } } + + Display.getDefault().asyncExec(new Runnable(){ + @Override + public void run() { + refresh(); + } + }); } - } - refresh(); + }).start(); } public void refresh() { diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchViewDropAdapter.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchViewDropAdapter.java index b5dd183ba..6d5a00a2f 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchViewDropAdapter.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/WatchViewDropAdapter.java @@ -12,7 +12,6 @@ package org.eclipse.ote.ui.message.watch; import java.io.IOException; import java.util.logging.Level; - import org.eclipse.osee.framework.jdk.core.util.Lib; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.swt.dnd.DropTargetEvent; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/ConvertWritersToReadersAction.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/ConvertWritersToReadersAction.java index d71464012..aebc5e82e 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/ConvertWritersToReadersAction.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/ConvertWritersToReadersAction.java @@ -11,7 +11,6 @@ package org.eclipse.ote.ui.message.watch.action; import java.util.Collection; - import org.eclipse.jface.action.Action; import org.eclipse.osee.ote.message.tool.MessageMode; import org.eclipse.ote.ui.message.tree.MessageNode; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/SetValueAction.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/SetValueAction.java index 22b8542b9..1322f9680 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/SetValueAction.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/SetValueAction.java @@ -12,7 +12,6 @@ package org.eclipse.ote.ui.message.watch.action; import java.util.List; import java.util.logging.Level; - import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.jface.dialogs.InputDialog; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/WatchElementAction.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/WatchElementAction.java index 71189e378..42651bfd6 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/WatchElementAction.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/action/WatchElementAction.java @@ -12,7 +12,6 @@ package org.eclipse.ote.ui.message.watch.action; import java.util.Collection; import java.util.LinkedList; - import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.window.Window; diff --git a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/recording/RecordingFilter.java b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/recording/RecordingFilter.java index e79203082..83d2dcfa4 100644 --- a/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/recording/RecordingFilter.java +++ b/org.eclipse.ote.ui.message/src/org/eclipse/ote/ui/message/watch/recording/RecordingFilter.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; - import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTreeViewer; import org.eclipse.jface.viewers.ICheckStateListener; |