Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.ote.ui.message')
-rw-r--r--plugins/org.eclipse.osee.ote.ui.message/src/org/eclipse/osee/ote/ui/message/watch/WatchView.java349
1 files changed, 202 insertions, 147 deletions
diff --git a/plugins/org.eclipse.osee.ote.ui.message/src/org/eclipse/osee/ote/ui/message/watch/WatchView.java b/plugins/org.eclipse.osee.ote.ui.message/src/org/eclipse/osee/ote/ui/message/watch/WatchView.java
index 02df6c6e16e..70908120159 100644
--- a/plugins/org.eclipse.osee.ote.ui.message/src/org/eclipse/osee/ote/ui/message/watch/WatchView.java
+++ b/plugins/org.eclipse.osee.ote.ui.message/src/org/eclipse/osee/ote/ui/message/watch/WatchView.java
@@ -26,6 +26,7 @@ import java.util.Set;
import java.util.logging.Level;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -94,6 +95,10 @@ import org.eclipse.osee.ote.ui.message.watch.action.ZeroizeMessageAction;
import org.eclipse.osee.ote.ui.message.watch.recording.RecordingWizard;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionEvent;
@@ -105,6 +110,7 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
@@ -123,7 +129,7 @@ public final class WatchView extends ViewPart implements IActionable, IMessageDi
private final ClientMessageServiceTracker msgServiceTracker;
private Label statusTxt;
-
+ private Clipboard cb;
private final File watchFile;
private Button recordButton;
private final Benchmark benchMark = new Benchmark("Message Watch Update Time");
@@ -238,6 +244,8 @@ public final class WatchView extends ViewPart implements IActionable, IMessageDi
private Composite parentComposite;
private WatchList watchList;
+ private MessageFinder messageFinder;
+
public WatchView() {
watchFile = OseeData.getFile("msgWatch.txt");
msgServiceTracker = new ClientMessageServiceTracker(Activator.getDefault().getBundle().getBundleContext(), this);
@@ -403,6 +411,28 @@ public final class WatchView extends ViewPart implements IActionable, IMessageDi
clientService.addDictionaryListener(this);
clientService.addConnectionListener(this);
loadWatchFile();
+
+ cb = new Clipboard(Display.getCurrent());
+
+ treeViewer.getControl().addKeyListener(new KeyListener(){
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if(e.stateMask == SWT.CTRL && e.keyCode == 'v'){
+ TextTransfer transfer = TextTransfer.getInstance();
+ String data = (String) cb.getContents(transfer);
+ if (data != null) {
+ SignalStripper signalStripper = new SignalStripper();
+ String mwi = signalStripper.generateStringToWrite(data);
+ loadWatchFile(mwi);
+ }
+ }
+ }
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+ }
+ });
}
@Override
@@ -677,156 +707,179 @@ public final class WatchView extends ViewPart implements IActionable, IMessageDi
public void loadWatchFile(final File watchFile) {
if (watchFile != null && watchFile.exists()) {
- final Job job = new Job("Loading watch file") {
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
- String text = Lib.fileToString(watchFile);
- final String[] msgs = text.split("\n");
- monitor.beginTask("loading watch elements", msgs.length + 10);
-
- if (msgs.length > 0) {
- if (msgs[0].equals("version=2.0")) {
- final Map<String, ArrayList<ElementPath>> pathsToAdd =
- new HashMap<String, ArrayList<ElementPath>>();
- final List<ElementPath> recBodyElementsToAdd = new ArrayList<ElementPath>();
- final List<ElementPath> recHeaderElementsToAdd = new ArrayList<ElementPath>();
- final Set<String> recHeaderHex = new HashSet<String>();
- final Set<String> recBodyHex = new HashSet<String>();
- for (int i = 1; i < msgs.length; i++) {
- if (msgs[i].startsWith("#rec#")) {
- // #rec#,message,[body|header|bodyHex|
- // headerHex],[boolean|path]
- String[] els = msgs[i].split(",");
- if (els.length == 4) {
- String message = els[1];
- String type = els[2];
- String value = els[3];
- if (type.equals("body")) {
- recBodyElementsToAdd.add(new ElementPath(value));
- } else if (type.equals("header")) {
- recHeaderElementsToAdd.add(new ElementPath(value));
- } else if (type.equals("headerHex")) {
- if (Boolean.parseBoolean(value)) {
- recHeaderHex.add(message);
- }
- } else if (type.equals("bodyHex")) {
- if (Boolean.parseBoolean(value)) {
- recBodyHex.add(message);
- }
- }
- }
- monitor.worked(1);
- } else {
- ElementPath path = new ElementPath(msgs[i]);
- ArrayList<ElementPath> collection = pathsToAdd.get(path.getMessageName());
- if (collection == null) {
- collection = new ArrayList<ElementPath>();
- pathsToAdd.put(path.getMessageName(), collection);
- }
- collection.add(path);
- monitor.worked(1);
- }
- }
- Displays.pendInDisplayThread(new Runnable() {
- @Override
- public void run() {
- try {
- treeViewer.getTree().setRedraw(false);
- addWatchMessage(new AddWatchParameter(pathsToAdd));
- for (ElementPath path : recBodyElementsToAdd) {
- WatchedMessageNode msgNode = watchList.getMessageNode(path.getMessageName());
- if (msgNode != null) {
- msgNode.getRecordingState().addBody(path);
- }
- }
- for (ElementPath path : recHeaderElementsToAdd) {
- WatchedMessageNode msgNode = watchList.getMessageNode(path.getMessageName());
- if (msgNode != null) {
- msgNode.getRecordingState().addHeader(path);
- }
- }
- for (String msg : recBodyHex) {
- WatchedMessageNode msgNode = watchList.getMessageNode(msg);
- if (msgNode != null) {
- msgNode.getRecordingState().setBodyDump(true);
- }
- }
- for (String msg : recHeaderHex) {
- WatchedMessageNode msgNode = watchList.getMessageNode(msg);
- if (msgNode != null) {
- msgNode.getRecordingState().setHeaderDump(true);
- }
- }
- } finally {
- treeViewer.getTree().setRedraw(true);
- treeViewer.refresh();
- }
- }
- });
-
- Displays.pendInDisplayThread(new Runnable() {
- @Override
- public void run() {
- saveWatchFile();
- treeViewer.refresh();
- }
- });
- monitor.worked(10);
- } else {
-
- for (String msg : msgs) {
- // final Matcher jarMatch =
- // jarPattern.matcher(msg);
- final Matcher elmMatch = elmPattern.matcher(msg);
- final Matcher msgMatch = msgPattern.matcher(msg);
-
- if (elmMatch.find()) {
- Displays.pendInDisplayThread(new Runnable() {
- @Override
- public void run() {
- String msg = elmMatch.group(1);
- String elm = elmMatch.group(2);
- ElementPath element = new ElementPath(msg, elm);
- AddWatchParameter parameter = new AddWatchParameter(elmMatch.group(1), element);
- addWatchMessage(parameter);
- }
- });
- } else if (msgMatch.find()) {
- Displays.pendInDisplayThread(new Runnable() {
- @Override
- public void run() {
- addWatchMessage(new AddWatchParameter(msgMatch.group(1)));
- }
- });
- }
- monitor.worked(1);
- }
- Displays.pendInDisplayThread(new Runnable() {
- @Override
- public void run() {
- saveWatchFile();
- treeViewer.refresh();
- }
- });
- monitor.worked(10);
-
- }
- }
- } catch (Throwable t) {
- OseeLog.log(Activator.class, Level.SEVERE, "error loading watch file", t);
- return org.eclipse.core.runtime.Status.CANCEL_STATUS;
- } finally {
- monitor.done();
- }
- return org.eclipse.core.runtime.Status.OK_STATUS;
- }
- };
+ final Job job = new LoadWatchList(watchFile);
Jobs.startJob(job);
}
}
+
+ public void loadWatchFile(final String watchFileText) {
+ final Job job = new LoadWatchList(watchFileText);
+ Jobs.startJob(job);
+ }
+ private class LoadWatchList extends Job{
+
+ private File watchFile;
+ private String text;
+
+ LoadWatchList(File watchFile){
+ super("Loading watch file");
+ this.watchFile = watchFile;
+ }
+
+ LoadWatchList(String watchFileText){
+ super("Loading watch file");
+ this.text = watchFileText;
+ }
+
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ if(watchFile != null){
+ text = Lib.fileToString(watchFile);
+ }
+ final String[] msgs = text.split("\n");
+ monitor.beginTask("loading watch elements", msgs.length + 10);
+
+ if (msgs.length > 0) {
+ if (msgs[0].equals("version=2.0")) {
+ final Map<String, ArrayList<ElementPath>> pathsToAdd =
+ new HashMap<String, ArrayList<ElementPath>>();
+ final List<ElementPath> recBodyElementsToAdd = new ArrayList<ElementPath>();
+ final List<ElementPath> recHeaderElementsToAdd = new ArrayList<ElementPath>();
+ final Set<String> recHeaderHex = new HashSet<String>();
+ final Set<String> recBodyHex = new HashSet<String>();
+ for (int i = 1; i < msgs.length; i++) {
+ if (msgs[i].startsWith("#rec#")) {
+ // #rec#,message,[body|header|bodyHex|
+ // headerHex],[boolean|path]
+ String[] els = msgs[i].split(",");
+ if (els.length == 4) {
+ String message = els[1];
+ String type = els[2];
+ String value = els[3];
+ if (type.equals("body")) {
+ recBodyElementsToAdd.add(new ElementPath(value));
+ } else if (type.equals("header")) {
+ recHeaderElementsToAdd.add(new ElementPath(value));
+ } else if (type.equals("headerHex")) {
+ if (Boolean.parseBoolean(value)) {
+ recHeaderHex.add(message);
+ }
+ } else if (type.equals("bodyHex")) {
+ if (Boolean.parseBoolean(value)) {
+ recBodyHex.add(message);
+ }
+ }
+ }
+ monitor.worked(1);
+ } else {
+ ElementPath path = new ElementPath(msgs[i]);
+ ArrayList<ElementPath> collection = pathsToAdd.get(path.getMessageName());
+ if (collection == null) {
+ collection = new ArrayList<ElementPath>();
+ pathsToAdd.put(path.getMessageName(), collection);
+ }
+ collection.add(path);
+ monitor.worked(1);
+ }
+ }
+ Displays.pendInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ treeViewer.getTree().setRedraw(false);
+ addWatchMessage(new AddWatchParameter(pathsToAdd));
+ for (ElementPath path : recBodyElementsToAdd) {
+ WatchedMessageNode msgNode = watchList.getMessageNode(path.getMessageName());
+ if (msgNode != null) {
+ msgNode.getRecordingState().addBody(path);
+ }
+ }
+ for (ElementPath path : recHeaderElementsToAdd) {
+ WatchedMessageNode msgNode = watchList.getMessageNode(path.getMessageName());
+ if (msgNode != null) {
+ msgNode.getRecordingState().addHeader(path);
+ }
+ }
+ for (String msg : recBodyHex) {
+ WatchedMessageNode msgNode = watchList.getMessageNode(msg);
+ if (msgNode != null) {
+ msgNode.getRecordingState().setBodyDump(true);
+ }
+ }
+ for (String msg : recHeaderHex) {
+ WatchedMessageNode msgNode = watchList.getMessageNode(msg);
+ if (msgNode != null) {
+ msgNode.getRecordingState().setHeaderDump(true);
+ }
+ }
+ } finally {
+ treeViewer.getTree().setRedraw(true);
+ treeViewer.refresh();
+ }
+ }
+ });
+
+ Displays.pendInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ saveWatchFile();
+ treeViewer.refresh();
+ }
+ });
+ monitor.worked(10);
+ } else {
+
+ for (String msg : msgs) {
+ // final Matcher jarMatch =
+ // jarPattern.matcher(msg);
+ final Matcher elmMatch = elmPattern.matcher(msg);
+ final Matcher msgMatch = msgPattern.matcher(msg);
+
+ if (elmMatch.find()) {
+ Displays.pendInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ String msg = elmMatch.group(1);
+ String elm = elmMatch.group(2);
+ ElementPath element = new ElementPath(msg, elm);
+ AddWatchParameter parameter = new AddWatchParameter(elmMatch.group(1), element);
+ addWatchMessage(parameter);
+ }
+ });
+ } else if (msgMatch.find()) {
+ Displays.pendInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ addWatchMessage(new AddWatchParameter(msgMatch.group(1)));
+ }
+ });
+ }
+ monitor.worked(1);
+ }
+ Displays.pendInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ saveWatchFile();
+ treeViewer.refresh();
+ }
+ });
+ monitor.worked(10);
+
+ }
+ }
+ } catch (Throwable t) {
+ OseeLog.log(Activator.class, Level.SEVERE, "error loading watch file", t);
+ return org.eclipse.core.runtime.Status.CANCEL_STATUS;
+ } finally {
+ monitor.done();
+ }
+ return org.eclipse.core.runtime.Status.OK_STATUS;
+ }
+ }
+
public void saveWatchFile() {
saveWatchFile(watchFile);
}
@@ -952,6 +1005,8 @@ public final class WatchView extends ViewPart implements IActionable, IMessageDi
@Override
public void onDictionaryLoaded(final IMessageDictionary dictionary) {
+ messageFinder = new MessageFinder(dictionary);
+
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {

Back to the top