From 463dad60b956e176d6729425963d6b8d9afad7b6 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Tue, 28 Feb 2023 12:03:34 +0100 Subject: [PATCH 1/6] fixes color preferences handling --- .../parts/WaveformStyleProvider.java | 77 ++++++------------- 1 file changed, 24 insertions(+), 53 deletions(-) diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformStyleProvider.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformStyleProvider.java index d61b191..f7698cc 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformStyleProvider.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformStyleProvider.java @@ -8,7 +8,6 @@ import org.eclipse.jface.resource.StringConverter; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.wb.swt.SWTResourceManager; import org.osgi.service.prefs.Preferences; @@ -20,74 +19,46 @@ import com.minres.scviewer.e4.application.preferences.PreferenceConstants; public class WaveformStyleProvider implements IWaveformStyleProvider { - private Composite parent; - private Font nameFont; private Color[] colors = new Color[WaveformColors.values().length]; // list of random colors - private static Color[][] randomColors; + private static Color[][] randomColors = new Color[][] { + { SWTResourceManager.getColor( 170, 66, 37 ), SWTResourceManager.getColor( 190, 66, 37 ) }, + { SWTResourceManager.getColor( 96, 74, 110 ), SWTResourceManager.getColor( 96, 74, 130 ) }, + { SWTResourceManager.getColor( 133, 105, 128 ), SWTResourceManager.getColor( 153, 105, 128 ) }, + { SWTResourceManager.getColor( 0, 126, 135 ), SWTResourceManager.getColor( 0, 126, 155 ) }, + { SWTResourceManager.getColor( 243, 146, 75 ), SWTResourceManager.getColor( 255, 146, 75 ) }, + { SWTResourceManager.getColor( 206, 135, 163 ), SWTResourceManager.getColor( 226, 135, 163 ) }, + { SWTResourceManager.getColor( 124, 103, 74 ), SWTResourceManager.getColor( 144, 103, 74 ) }, + { SWTResourceManager.getColor( 194, 187, 169 ), SWTResourceManager.getColor( 214, 187, 169 ) }, + { SWTResourceManager.getColor( 104, 73, 71 ), SWTResourceManager.getColor( 124, 73, 71 ) }, + { SWTResourceManager.getColor( 75, 196, 213 ), SWTResourceManager.getColor( 75, 196, 233 ) }, + { SWTResourceManager.getColor( 206, 232, 229 ), SWTResourceManager.getColor( 206, 252, 229 ) }, + { SWTResourceManager.getColor( 169, 221, 199 ), SWTResourceManager.getColor( 169, 241, 199 ) }, + { SWTResourceManager.getColor( 100, 165, 197 ), SWTResourceManager.getColor( 100, 165, 217 ) }, + { SWTResourceManager.getColor( 150, 147, 178 ), SWTResourceManager.getColor( 150, 147, 198 ) }, + { SWTResourceManager.getColor( 200, 222, 182 ), SWTResourceManager.getColor( 200, 242, 182 ) }, + { SWTResourceManager.getColor( 147, 208, 197 ), SWTResourceManager.getColor( 147, 228, 197 ) } +}; private int trackHeigth=25; - public WaveformStyleProvider() { - setupDefaults(); - } - - private void setupDefaults() { - Display display = Display.getCurrent(); - - nameFont = display.getSystemFont(); - DefaultWaveformStyleProvider x = new DefaultWaveformStyleProvider(); - for (WaveformColors color : WaveformColors.values()) - colors[color.ordinal()] = x.getColor(color); - randomColors = new Color[][] { - { SWTResourceManager.getColor( 170, 66, 37 ), SWTResourceManager.getColor( 190, 66, 37 ) }, - { SWTResourceManager.getColor( 96, 74, 110 ), SWTResourceManager.getColor( 96, 74, 130 ) }, - { SWTResourceManager.getColor( 133, 105, 128 ), SWTResourceManager.getColor( 153, 105, 128 ) }, - { SWTResourceManager.getColor( 0, 126, 135 ), SWTResourceManager.getColor( 0, 126, 155 ) }, - { SWTResourceManager.getColor( 243, 146, 75 ), SWTResourceManager.getColor( 255, 146, 75 ) }, - { SWTResourceManager.getColor( 206, 135, 163 ), SWTResourceManager.getColor( 226, 135, 163 ) }, - { SWTResourceManager.getColor( 124, 103, 74 ), SWTResourceManager.getColor( 144, 103, 74 ) }, - { SWTResourceManager.getColor( 194, 187, 169 ), SWTResourceManager.getColor( 214, 187, 169 ) }, - { SWTResourceManager.getColor( 104, 73, 71 ), SWTResourceManager.getColor( 124, 73, 71 ) }, - { SWTResourceManager.getColor( 75, 196, 213 ), SWTResourceManager.getColor( 75, 196, 233 ) }, - { SWTResourceManager.getColor( 206, 232, 229 ), SWTResourceManager.getColor( 206, 252, 229 ) }, - { SWTResourceManager.getColor( 169, 221, 199 ), SWTResourceManager.getColor( 169, 241, 199 ) }, - { SWTResourceManager.getColor( 100, 165, 197 ), SWTResourceManager.getColor( 100, 165, 217 ) }, - { SWTResourceManager.getColor( 150, 147, 178 ), SWTResourceManager.getColor( 150, 147, 198 ) }, - { SWTResourceManager.getColor( 200, 222, 182 ), SWTResourceManager.getColor( 200, 242, 182 ) }, - { SWTResourceManager.getColor( 147, 208, 197 ), SWTResourceManager.getColor( 147, 228, 197 ) } - }; - } - public WaveformStyleProvider(IEclipsePreferences store) { - setupDefaults(); + Display display = Display.getCurrent(); + DefaultWaveformStyleProvider defaultStyleProvider = new DefaultWaveformStyleProvider(); Preferences defaultPrefs= store.parent().parent().node("/"+DefaultScope.SCOPE+"/"+PreferenceConstants.PREFERENCES_SCOPE); - HashMap colorPref = new HashMap<>(); for (WaveformColors c : WaveformColors.values()) { String key = c.name() + "_COLOR"; - String prefValue = store.get(key, defaultPrefs.get(key, "")); //$NON-NLS-1$ + String prefValue = store.get(key, defaultPrefs.get(key, defaultStyleProvider.getColor(c).toString())); //$NON-NLS-1$ RGB rgb = StringConverter.asRGB(prefValue); - colorPref.put(c, rgb); + colors[c.ordinal()] = new Color(display, rgb); } trackHeigth = store.getInt(PreferenceConstants.TRACK_HEIGHT, defaultPrefs.getInt(PreferenceConstants.TRACK_HEIGHT, 25)); //$NON-NLS-1$ + nameFont = display.getSystemFont(); } - /** - * needs redraw() afterwards - * @param colourMap - */ - public void initColors(HashMap colourMap) { - Display d = parent.getDisplay(); - if (colourMap != null) { - for (WaveformColors c : WaveformColors.values()) { - if (colourMap.containsKey(c)) - colors[c.ordinal()] = new Color(d, colourMap.get(c)); - } - } - } - + @Override public Font getNameFont() { return nameFont; From 5670977d523eefde682911d1dd6abefc327c8a7e Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Tue, 28 Feb 2023 12:12:47 +0100 Subject: [PATCH 2/6] fixes color handling --- .../com/minres/scviewer/database/ui/WaveformColors.java | 2 +- .../database/ui/swt/DefaultWaveformStyleProvider.java | 1 + .../scviewer/database/ui/swt/internal/SignalPainter.java | 7 +++++-- .../src/com/minres/scviewer/e4/application/Messages.java | 1 + .../com/minres/scviewer/e4/application/messages.properties | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java index 177f10c..090d28a 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java @@ -14,7 +14,7 @@ public enum WaveformColors { LINE, LINE_HIGHLITE, TRACK_BG_EVEN, TRACK_BG_ODD, TRACK_BG_HIGHLITE, TX_BG, TX_BG_HIGHLITE, TX_BORDER, - SIGNAL0, SIGNAL1, SIGNALZ, SIGNALX, SIGNALU, SIGNAL_TEXT, SIGNAL_REAL, SIGNAL_NAN, + SIGNAL0, SIGNAL1, SIGNALZ, SIGNALX, SIGNAL_CHANGE, SIGNALU, SIGNAL_TEXT, SIGNAL_REAL, SIGNAL_NAN, CURSOR, CURSOR_DRAG, CURSOR_TEXT, MARKER, MARKER_TEXT, REL_ARROW, REL_ARROW_HIGHLITE, BLANK } \ No newline at end of file diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java index 9eef6cf..8bd7cfb 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java @@ -39,6 +39,7 @@ public class DefaultWaveformStyleProvider implements IWaveformStyleProvider { colors[WaveformColors.SIGNALZ.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_YELLOW); colors[WaveformColors.SIGNALX.ordinal()] = SWTResourceManager.getColor(255, 51, 51); colors[WaveformColors.SIGNALU.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_YELLOW); + colors[WaveformColors.SIGNAL_CHANGE.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_GREEN); colors[WaveformColors.SIGNAL_TEXT.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_WHITE); colors[WaveformColors.SIGNAL_REAL.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_YELLOW); colors[WaveformColors.SIGNAL_NAN.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_RED); diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java index 3078fdc..4057305 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/SignalPainter.java @@ -191,7 +191,7 @@ public class SignalPainter extends TrackPainter { } public void draw(Projection proj, Rectangle area, IEvent left, IEvent right, int xBegin, int xEnd, boolean multiple) { - Color colorBorder = waveCanvas.styleProvider.getColor(WaveformColors.SIGNAL0); + Color colorBorder = waveCanvas.styleProvider.getColor(WaveformColors.SIGNAL_CHANGE); BitVector last = (BitVector) left; if (Arrays.toString(last.getValue()).contains("X")) { colorBorder = waveCanvas.styleProvider.getColor(WaveformColors.SIGNALX); @@ -340,8 +340,11 @@ public class SignalPainter extends TrackPainter { break; default: } - if (yOffset != yNext) + if (yOffset != yNext) { + Color transition_color = waveCanvas.styleProvider.getColor(WaveformColors.SIGNAL_CHANGE); + proj.setForeground(transition_color); proj.drawLine(xEnd, yOffset, xEnd, yNext); + } } } } diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java index 0deead7..9712d99 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java @@ -78,6 +78,7 @@ public class Messages extends NLS { public static String signalz; public static String signalx; public static String signalu; + public static String signal_change; public static String signal_text; public static String signal_real; public static String signal_nan; diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties index d040925..37aed50 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties @@ -72,6 +72,7 @@ signal1=Signal Value '1' signalz=Signal Value 'Z' signalx=Signal Value 'X' signalu=Signal Value 'U' +signal_change=Signal change signal_text=Signal text signal_real=Signal real Value signal_nan=Signal NaN Value From c39ca8884a464c8df13f5b586e804ed33ca6abb4 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Tue, 28 Feb 2023 13:23:42 +0100 Subject: [PATCH 3/6] renames blank to separator --- .../database/ui/swt/internal/ObservableList.java | 2 +- .../Application.e4xmi | 14 +++++++------- ...veformHandler.java => AddSeparatorHandler.java} | 4 ++-- .../scviewer/e4/application/messages.properties | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) rename plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/{AddBlankWaveformHandler.java => AddSeparatorHandler.java} (95%) diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ObservableList.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ObservableList.java index 20237d9..d6a95fc 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ObservableList.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ObservableList.java @@ -115,7 +115,7 @@ public class ObservableList implements List { public boolean addAll(int index, Collection c) { int oldSize = size(); - boolean success = this.delegate.addAll(index, c); + boolean success = this.delegate.addAll(index<0?0:index, c); if ((success) && (c != null)) { List values = new ArrayList<>(); diff --git a/plugins/com.minres.scviewer.e4.application/Application.e4xmi b/plugins/com.minres.scviewer.e4.application/Application.e4xmi index 3245ad3..e3f7410 100644 --- a/plugins/com.minres.scviewer.e4.application/Application.e4xmi +++ b/plugins/com.minres.scviewer.e4.application/Application.e4xmi @@ -117,7 +117,7 @@ - + type:user @@ -202,11 +202,11 @@ - - + + - - + + @@ -286,8 +286,8 @@ - - + + diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddBlankWaveformHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java similarity index 95% rename from plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddBlankWaveformHandler.java rename to plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java index 3055d93..50720e1 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddBlankWaveformHandler.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java @@ -24,9 +24,9 @@ import com.minres.scviewer.database.IWaveform; import com.minres.scviewer.database.ui.TrackEntry; import com.minres.scviewer.e4.application.parts.WaveformViewer; -public class AddBlankWaveformHandler { +public class AddSeparatorHandler { - public static final String PARAM_WHERE_ID="com.minres.scviewer.e4.application.commandparameter.add_blank"; //$NON-NLS-1$ + public static final String PARAM_WHERE_ID="com.minres.scviewer.e4.application.commandparameter.add_separator"; //$NON-NLS-1$ @CanExecute public Boolean canExecute(EPartService partService){ diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties index 37aed50..8c31e4f 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties @@ -83,7 +83,7 @@ marker=Marker marker_text=Marker TExt rel_arrow=Relation arrow rel_arrow_highlite=highlighted Relation arrorw -blank=blank waveform entry +blank=separator UpdateHandler_URI=http://https://minres.github.io/SCViewer/repository UpdateHandler_10=Information UpdateHandler_11=Error From 9be9671d3a3d20e5a21e0b15e87ff51dfdab06c5 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Tue, 28 Feb 2023 23:05:39 +0100 Subject: [PATCH 4/6] adds configurable label to separator --- .../minres/scviewer/database/ui/ICursor.java | 6 +- .../scviewer/database/ui/IWaveformView.java | 84 +++++++------- .../database/ui/IWaveformViewFactory.java | 6 +- .../ui/IWaveformviewEventListener.java | 16 +++ .../scviewer/database/ui/TrackEntryGroup.java | 15 ++- .../ui/swt/internal/WaveformView.java | 25 +++- ...{BlankWaveform.java => EmptyWaveform.java} | 19 +++- .../Application.e4xmi | 5 + .../scviewer/e4/application/AppModelId.java | 105 +++++++++++------ .../handlers/AddSeparatorHandler.java | 4 +- .../handlers/SetLabelTextHandler.java | 72 ++++++++++++ .../e4/application/parts/TextInputDialog.java | 107 ++++++++++++++++++ .../e4/application/parts/WaveformViewer.java | 18 +++ .../preferences/DefaultValuesInitializer.java | 2 +- 14 files changed, 394 insertions(+), 90 deletions(-) create mode 100644 plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformviewEventListener.java rename plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/{BlankWaveform.java => EmptyWaveform.java} (68%) create mode 100644 plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SetLabelTextHandler.java create mode 100644 plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TextInputDialog.java diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/ICursor.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/ICursor.java index 9c62a46..eb7b160 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/ICursor.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/ICursor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. * 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 @@ -12,8 +12,8 @@ package com.minres.scviewer.database.ui; public interface ICursor { - public long getTime(); + long getTime(); - public void setTime(long time); + void setTime(long time); } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformView.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformView.java index cdc41fc..aa87631 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformView.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. * 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 @@ -35,82 +35,86 @@ public interface IWaveformView extends PropertyChangeListener, ISelectionProvide static final int MARKER_POS = 1; - public static final RelationType NEXT_PREV_IN_STREAM = RelationTypeFactory.create("Prev/Next in stream"); + static final RelationType NEXT_PREV_IN_STREAM = RelationTypeFactory.create("Prev/Next in stream"); - public void addSelectionChangedListener(ISelectionChangedListener listener); + void addSelectionChangedListener(ISelectionChangedListener listener); - public void removeSelectionChangedListener(ISelectionChangedListener listener); + void removeSelectionChangedListener(ISelectionChangedListener listener); - public void setStyleProvider(IWaveformStyleProvider styleProvider); + void setStyleProvider(IWaveformStyleProvider styleProvider); - public void update(); + void update(); - public Control getControl(); + Control getControl(); - public Control getNameControl(); + Control getNameControl(); - public Control getValueControl(); + Control getValueControl(); - public Control getWaveformControl(); + Control getWaveformControl(); - public ISelection getSelection(); + ISelection getSelection(); - public void setSelection(ISelection selection); + void setSelection(ISelection selection); - public void setSelection(ISelection selection, boolean showIfNeeded); + void setSelection(ISelection selection, boolean showIfNeeded); - public void addToSelection(ISelection selection, boolean showIfNeeded); + void addToSelection(ISelection selection, boolean showIfNeeded); - public void moveSelection(GotoDirection direction); + void moveSelection(GotoDirection direction); - public void moveSelection(GotoDirection direction, RelationType relationType); + void moveSelection(GotoDirection direction, RelationType relationType); - public void moveCursor(GotoDirection direction); + void moveCursor(GotoDirection direction); - public List getStreamList(); + List getStreamList(); - public TrackEntry getEntryFor(ITx source); + TrackEntry getEntryFor(ITx source); - public TrackEntry getEntryFor(IWaveform source); + TrackEntry getEntryFor(IWaveform source); - public List getElementsAt(Point pt); + List getElementsAt(Point pt); - public void moveSelectedTrack(int i); + void moveSelectedTrack(int i); - public void setHighliteRelation(RelationType relationType); + void setHighliteRelation(RelationType relationType); - public void setMaxTime(long maxTime); + void setMaxTime(long maxTime); - public void setCursorTime(long time); + void setCursorTime(long time); - public void setMarkerTime(int marker, long time); + void setMarkerTime(int marker, long time); - public long getCursorTime(); + long getCursorTime(); - public int getSelectedMarker(); + int getSelectedMarker(); - public long getMarkerTime(int marker); + long getMarkerTime(int marker); - public void addPropertyChangeListener(PropertyChangeListener listener); + void addPropertyChangeListener(PropertyChangeListener listener); - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener); + void addPropertyChangeListener(String propertyName, PropertyChangeListener listener); - public void removePropertyChangeListener(PropertyChangeListener listener); + void removePropertyChangeListener(PropertyChangeListener listener); - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener); + void removePropertyChangeListener(String propertyName, PropertyChangeListener listener); - public List getCursorList(); + List getCursorList(); - public void scrollHorizontal(int percent); + void scrollHorizontal(int percent); - public void scrollTo(int pos); + void scrollTo(int pos); - public void addDisposeListener( DisposeListener listener ); + void addDisposeListener( DisposeListener listener ); - public void deleteSelectedTracks(); + void addEventListner(IWaveformviewEventListener listener); + + void removeEventListner(IWaveformviewEventListener listener); + + void deleteSelectedTracks(); - public TrackEntry addWaveform(IWaveform waveform, int pos); + TrackEntry addWaveform(IWaveform waveform, int pos); - public IWaveformZoom getWaveformZoom(); + IWaveformZoom getWaveformZoom(); } \ No newline at end of file diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformViewFactory.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformViewFactory.java index 730da62..b5fd1fb 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformViewFactory.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformViewFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. * 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 @@ -13,7 +13,7 @@ package com.minres.scviewer.database.ui; import org.eclipse.swt.widgets.Composite; public interface IWaveformViewFactory { - public IWaveformView createPanel(Composite parent); + IWaveformView createPanel(Composite parent); - public IWaveformView createPanel(Composite parent, IWaveformStyleProvider styleProvider); + IWaveformView createPanel(Composite parent, IWaveformStyleProvider styleProvider); } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformviewEventListener.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformviewEventListener.java new file mode 100644 index 0000000..5160d0d --- /dev/null +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/IWaveformviewEventListener.java @@ -0,0 +1,16 @@ +/******************************************************************************* + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. + * 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: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ + +package com.minres.scviewer.database.ui; + +public interface IWaveformviewEventListener { + void onTrackEntryDoubleClickEvent (TrackEntry trackEntry); +} diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntryGroup.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntryGroup.java index 00973b2..a209b66 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntryGroup.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntryGroup.java @@ -1,9 +1,20 @@ +/******************************************************************************* + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. + * 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: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ + package com.minres.scviewer.database.ui; import java.util.ArrayList; import java.util.List; -import com.minres.scviewer.database.BlankWaveform; +import com.minres.scviewer.database.EmptyWaveform; public class TrackEntryGroup extends TrackEntry { @@ -12,7 +23,7 @@ public class TrackEntryGroup extends TrackEntry { public Boolean is_open = true; public TrackEntryGroup(TrackEntry[] waveform, IWaveformStyleProvider styleProvider) { - super(new BlankWaveform(), styleProvider); + super(new EmptyWaveform(), styleProvider); for (TrackEntry iWaveform : waveform) { waveforms.add(iWaveform); } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java index d93e3a7..2c68d80 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. * 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 @@ -89,6 +89,7 @@ import com.minres.scviewer.database.ui.ICursor; import com.minres.scviewer.database.ui.IWaveformStyleProvider; import com.minres.scviewer.database.ui.IWaveformView; import com.minres.scviewer.database.ui.IWaveformZoom; +import com.minres.scviewer.database.ui.IWaveformviewEventListener; import com.minres.scviewer.database.ui.TrackEntry; import com.minres.scviewer.database.ui.TrackEntryGroup; import com.minres.scviewer.database.ui.swt.internal.slider.ZoomBar; @@ -98,6 +99,8 @@ public class WaveformView implements IWaveformView { private ListenerList selectionChangedListeners = new ListenerList<>(); private PropertyChangeSupport pcs; + + private List eventListener = new ArrayList<>(); private ITx currentTxSelection; @@ -176,6 +179,12 @@ public class WaveformView implements IWaveformView { @Override public void mouseDoubleClick(MouseEvent e) { + Entry entry = trackVerticalOffset.floorEntry(e.y); + if(entry != null) + setSelection(new StructuredSelection(entry.getValue()), false, false); + for (IWaveformviewEventListener listner : eventListener) { + listner.onTrackEntryDoubleClickEvent(entry.getValue()); + } } }; @@ -1537,6 +1546,20 @@ public class WaveformView implements IWaveformView { waveformCanvas.addDisposeListener(listener); } + @Override + public void addEventListner(IWaveformviewEventListener listener) { + if(!eventListener.contains(listener)) { + eventListener.add(listener); + } + } + + @Override + public void removeEventListner(IWaveformviewEventListener listener) { + if(eventListener.contains(listener)) { + eventListener.remove(listener); + } + } + @Override public void setStyleProvider(IWaveformStyleProvider styleProvider) { this.styleProvider = styleProvider; diff --git a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/BlankWaveform.java b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java similarity index 68% rename from plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/BlankWaveform.java rename to plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java index c4c0752..9fe311f 100644 --- a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/BlankWaveform.java +++ b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java @@ -1,11 +1,23 @@ +/******************************************************************************* + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. + * 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: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ + package com.minres.scviewer.database; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.List; -public class BlankWaveform implements IWaveform { +public class EmptyWaveform implements IWaveform { + private String label = ""; @Override public void addPropertyChangeListener(PropertyChangeListener l) { } @@ -16,16 +28,17 @@ public class BlankWaveform implements IWaveform { @Override public String getFullName() { - return ""; + return label; } @Override public String getName() { - return ""; + return label; } @Override public void setName(String name) { + label=name; } @Override diff --git a/plugins/com.minres.scviewer.e4.application/Application.e4xmi b/plugins/com.minres.scviewer.e4.application/Application.e4xmi index e3f7410..f7d3384 100644 --- a/plugins/com.minres.scviewer.e4.application/Application.e4xmi +++ b/plugins/com.minres.scviewer.e4.application/Application.e4xmi @@ -118,6 +118,7 @@ + type:user @@ -216,6 +217,9 @@ + + + @@ -315,6 +319,7 @@ + diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/AppModelId.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/AppModelId.java index a28bac2..b8673b6 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/AppModelId.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/AppModelId.java @@ -4,15 +4,17 @@ public class AppModelId { public static final String ADDON_ORG_ECLIPSE_E4_CORE_COMMANDS_SERVICE = "org.eclipse.e4.core.commands.service"; public static final String ADDON_ORG_ECLIPSE_E4_UI_BINDINGS_SERVICE = "org.eclipse.e4.ui.bindings.service"; public static final String ADDON_ORG_ECLIPSE_E4_UI_CONTEXTS_SERVICE = "org.eclipse.e4.ui.contexts.service"; + public static final String ADDON_ORG_ECLIPSE_E4_UI_WORKBENCH_ADDONS_DNDADDON_DNDADDON = "org.eclipse.e4.ui.workbench.addons.dndaddon.DnDAddon"; public static final String ADDON_ORG_ECLIPSE_E4_UI_WORKBENCH_BINDINGS_MODEL = "org.eclipse.e4.ui.workbench.bindings.model"; public static final String ADDON_ORG_ECLIPSE_E4_UI_WORKBENCH_COMMANDS_MODEL = "org.eclipse.e4.ui.workbench.commands.model"; public static final String ADDON_ORG_ECLIPSE_E4_UI_WORKBENCH_CONTEXTS_MODEL = "org.eclipse.e4.ui.workbench.contexts.model"; public static final String ADDON_ORG_ECLIPSE_E4_UI_WORKBENCH_HANDLER_MODEL = "org.eclipse.e4.ui.workbench.handler.model"; - public static final String ADDON_ORG_ECLIPSE_E4_UI_WORKBENCH_ADDONS_DNDADDON_DNDADDON = "org.eclipse.e4.ui.workbench.addons.dndaddon.DnDAddon"; public static final String APPLICATION_ORG_ECLIPSE_E4_IDE_APPLICATION = "org.eclipse.e4.ide.application"; public static final String BINDINGCONTEXT_ORG_ECLIPSE_UI_CONTEXTS_DIALOG = "org.eclipse.ui.contexts.dialog"; public static final String BINDINGCONTEXT_ORG_ECLIPSE_UI_CONTEXTS_DIALOGANDWINDOW = "org.eclipse.ui.contexts.dialogAndWindow"; public static final String BINDINGCONTEXT_ORG_ECLIPSE_UI_CONTEXTS_WINDOW = "org.eclipse.ui.contexts.window"; + public static final String BINDINGTABLE_COM_MINRES_SCVIEWER_E4_APPLICATION_BINDINGTABLE_WINDOW = "com.minres.scviewer.e4.application.bindingtable.window"; + public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMANDPARAMETER_ADD_SEPARATOR = "com.minres.scviewer.e4.application.commandparameter.add_separator"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMANDPARAMETER_CHANGEVALUEDISPLAY = "com.minres.scviewer.e4.application.commandparameter.changevaluedisplay"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMANDPARAMETER_CHANGEWAVEDISPLAY = "com.minres.scviewer.e4.application.commandparameter.changewavedisplay"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMANDPARAMETER_LOADSTORE = "com.minres.scviewer.e4.application.commandparameter.loadStore"; @@ -22,33 +24,40 @@ public class AppModelId { public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_MOVEWAVEFORMUPCOMMAND_PARAMETER_DIR = "com.minres.scviewer.e4.application.command.movewaveformupCommand.parameter.dir"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_NAVIGATEEVENTCOMMAND_PARAMETER_DIR = "com.minres.scviewer.e4.application.command.navigateEventCommand.parameter.dir"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_NAVIGATETRANSCOMMAND_PARAMETER_DIR = "com.minres.scviewer.e4.application.command.navigateTransCommand.parameter.dir"; + public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_PANCOMMAND_PARAMETER_DIRECTION = "com.minres.scviewer.e4.application.command.pancommand.parameter.direction"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_THEME_PARAMETER_ID = "com.minres.scviewer.e4.application.command.theme.parameter.id"; public static final String COMMANDPARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_ZOOMCOMMAND_PARAMETER_LEVEL = "com.minres.scviewer.e4.application.command.zoomcommand.parameter.level"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_ADDWAVEFORM = "com.minres.scviewer.e4.application.command.addwaveform"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_ADD_SEPARATOR = "com.minres.scviewer.e4.application.command.add_separator"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_CHANGEVALUEDISPLAY = "com.minres.scviewer.e4.application.command.changevaluedisplay"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_CHANGEWAVEDISPLAY = "com.minres.scviewer.e4.application.command.changewavedisplay"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_DELETEWAVEFORMCOMMAND = "com.minres.scviewer.e4.application.command.deletewaveformCommand"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_ENABLEHOVER = "com.minres.scviewer.e4.application.command.enablehover"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_ENABLETXDETAILS = "com.minres.scviewer.e4.application.command.enabletxdetails"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_LOADSTORESETTINGS = "com.minres.scviewer.e4.application.command.loadStoreSettings"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_MOVEWAVEFORMUPCOMMAND = "com.minres.scviewer.e4.application.command.movewaveformupCommand"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_NAVIGATEEVENTCOMMAND = "com.minres.scviewer.e4.application.command.navigateEventCommand"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_NAVIGATETRANSCOMMAND = "com.minres.scviewer.e4.application.command.navigateTransCommand"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_PANCOMMAND = "com.minres.scviewer.e4.application.command.pancommand"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_SELECTALLCOMMAND = "com.minres.scviewer.e4.application.command.selectallCommand"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_SETRELATIONTYPE = "com.minres.scviewer.e4.application.command.setrelationtype"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_SET_LABEL_TEXT = "com.minres.scviewer.e4.application.command.set_label_text"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_SET_THEM = "com.minres.scviewer.e4.application.command.set_them"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_UPDATE = "com.minres.scviewer.e4.application.command.update"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_ZOOMCOMMAND = "com.minres.scviewer.e4.application.command.zoomcommand"; public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_OPEN = "com.minres.scviewer.e4.application.open"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_RELOAD = "com.minres.scviewer.e4.application.reload"; + public static final String COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_TXSEARCH = "com.minres.scviewer.e4.application.txSearch"; public static final String COMMAND_ORG_ECLIPSE_UI_FILE_EXIT = "org.eclipse.ui.file.exit"; public static final String COMMAND_ORG_ECLIPSE_UI_FILE_SAVE = "org.eclipse.ui.file.save"; public static final String COMMAND_ORG_ECLIPSE_UI_HELP_ABOUTACTION = "org.eclipse.ui.help.aboutAction"; + public static final String COMMAND_ORG_ECLIPSE_UI_HELP_HELPCOMMAND = "org.eclipse.ui.help.helpCommand"; + public static final String COMMAND_ORG_ECLIPSE_UI_HELP_HELPCONTENTCOMMAND = "org.eclipse.ui.help.helpContentCommand"; public static final String COMMAND_ORG_ECLIPSE_UI_WINDOW_PREFERENCES = "org.eclipse.ui.window.preferences"; - public static final String DIRECTTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_DIRECTTOOLITEM_NEXTPREVINSTREAM = "com.minres.scviewer.e4.application.directtoolitem.nextprevinstream"; public static final String DYNAMICMENUCONTRIBUTION_COM_MINRES_SCVIEWER_E4_APPLICATION_DYNAMICMENUCONTRIBUTION_0 = "com.minres.scviewer.e4.application.dynamicmenucontribution.0"; - public static final String DYNAMICMENUCONTRIBUTION_COM_MINRES_SCVIEWER_E4_APPLICATION_DYNAMICMENUCONTRIBUTION_2 = "com.minres.scviewer.e4.application.dynamicmenucontribution.2"; - public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_APPEND = "com.minres.scviewer.e4.application.handledmenuitem.append"; - public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_APPENDALL = "com.minres.scviewer.e4.application.handledmenuitem.appendall"; + public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_ADD_SEPARATOR = "com.minres.scviewer.e4.application.handledmenuitem.add_separator"; + public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_CHECKFORUPDATE = "com.minres.scviewer.e4.application.handledmenuitem.checkforupdate"; public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_DELETE = "com.minres.scviewer.e4.application.handledmenuitem.delete"; - public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_INSERTALL = "com.minres.scviewer.e4.application.handledmenuitem.insertall"; - public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_INSERTBEFORE = "com.minres.scviewer.e4.application.handledmenuitem.insertbefore"; public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_MOVEDOWN = "com.minres.scviewer.e4.application.handledmenuitem.movedown"; public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_MOVEUP = "com.minres.scviewer.e4.application.handledmenuitem.moveup"; public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_NEXTCHANGE = "com.minres.scviewer.e4.application.handledmenuitem.nextchange"; @@ -58,36 +67,63 @@ public class AppModelId { public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_PREVIOUSEVENT = "com.minres.scviewer.e4.application.handledmenuitem.previousevent"; public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_PREVTX = "com.minres.scviewer.e4.application.handledmenuitem.prevtx"; public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_REMOVE = "com.minres.scviewer.e4.application.handledmenuitem.remove"; + public static final String HANDLEDMENUITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDMENUITEM_SEARCH = "com.minres.scviewer.e4.application.handledmenuitem.search"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_HOVER = "com.minres.scviewer.e4.application.handledtoolitem.hover"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_LOADSETTINGS = "com.minres.scviewer.e4.application.handledtoolitem.loadsettings"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_MOVESTREAMDOWN = "com.minres.scviewer.e4.application.handledtoolitem.movestreamdown"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_MOVESTREAMUP = "com.minres.scviewer.e4.application.handledtoolitem.movestreamup"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_NEXTEVENT = "com.minres.scviewer.e4.application.handledtoolitem.nextevent"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_NEXTTRANSACTION = "com.minres.scviewer.e4.application.handledtoolitem.nexttransaction"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_PANCURSOR = "com.minres.scviewer.e4.application.handledtoolitem.pancursor"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_PANLEFT = "com.minres.scviewer.e4.application.handledtoolitem.panleft"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_PANRIGHT = "com.minres.scviewer.e4.application.handledtoolitem.panright"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_PREVIOUSEVENT = "com.minres.scviewer.e4.application.handledtoolitem.previousevent"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_PREVIOUSTRANSACTION = "com.minres.scviewer.e4.application.handledtoolitem.previoustransaction"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_REMOVESTREAM = "com.minres.scviewer.e4.application.handledtoolitem.removestream"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_SAVESETTINGS = "com.minres.scviewer.e4.application.handledtoolitem.savesettings"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_TXDETAILS = "com.minres.scviewer.e4.application.handledtoolitem.txdetails"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_ZOOMFIT = "com.minres.scviewer.e4.application.handledtoolitem.zoomfit"; + public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_ZOOMFULL = "com.minres.scviewer.e4.application.handledtoolitem.zoomfull"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_ZOOMIN = "com.minres.scviewer.e4.application.handledtoolitem.zoomin"; public static final String HANDLEDTOOLITEM_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLEDTOOLITEM_ZOOMOUT = "com.minres.scviewer.e4.application.handledtoolitem.zoomout"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_ABOUTCOMMAND = "com.minres.scviewer.e4.application.handler.aboutCommand"; - public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_ADDWAVEFORMCOMMAND = "com.minres.scviewer.e4.application.handler.addWaveformCommand"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_ADD_SEPARATOR = "com.minres.scviewer.e4.application.handler.add_separator"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_CHANGEVALUEDISPLAY = "com.minres.scviewer.e4.application.handler.changeValueDisplay"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_CHANGEWAVEDISPLAY = "com.minres.scviewer.e4.application.handler.changeWaveDisplay"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_DELETEWAVEFORMCOMMAND = "com.minres.scviewer.e4.application.handler.deletewaveformCommand"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_ENABLEHOVER = "com.minres.scviewer.e4.application.handler.enablehover"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_ENABLETXDETAILS = "com.minres.scviewer.e4.application.handler.enabletxdetails"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_HELP = "com.minres.scviewer.e4.application.handler.help"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_HELPCONTENT = "com.minres.scviewer.e4.application.handler.helpContent"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_LOADSTORESETTINGS = "com.minres.scviewer.e4.application.handler.loadStoreSettings"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_MOVEWAVEFORMUPCOMMAND = "com.minres.scviewer.e4.application.handler.movewaveformupCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_NAVIGATEEVENTCOMMAND = "com.minres.scviewer.e4.application.handler.navigateEventCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_NAVIGATETRANSCOMMAND = "com.minres.scviewer.e4.application.handler.navigateTransCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_OPENCOMMAND = "com.minres.scviewer.e4.application.handler.openCommand"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_PANCOMMAND = "com.minres.scviewer.e4.application.handler.panCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_PREFERENCES = "com.minres.scviewer.e4.application.handler.preferences"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_QUITCOMMAND = "com.minres.scviewer.e4.application.handler.quitCommand"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_RELOADCOMMAND = "com.minres.scviewer.e4.application.handler.reloadCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_SAVECOMMAND = "com.minres.scviewer.e4.application.handler.saveCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_SELECTALLCOMMAND = "com.minres.scviewer.e4.application.handler.selectallCommand"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_SETRELEATIONTYPE = "com.minres.scviewer.e4.application.handler.setreleationtype"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_SET_LABEL_TEXT = "com.minres.scviewer.e4.application.handler.set_label_text"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_SET_THEM = "com.minres.scviewer.e4.application.handler.set_them"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_TXSEARCH = "com.minres.scviewer.e4.application.handler.txSearch"; + public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_UPDATE = "com.minres.scviewer.e4.application.handler.update"; public static final String HANDLER_COM_MINRES_SCVIEWER_E4_APPLICATION_HANDLER_ZOOMCOMMAND = "com.minres.scviewer.e4.application.handler.zoomCommand"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_0 = "com.minres.scviewer.e4.application.keybinding.0"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_1 = "com.minres.scviewer.e4.application.keybinding.1"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_HELP = "com.minres.scviewer.e4.application.keybinding.help"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_LOAD = "com.minres.scviewer.e4.application.keybinding.load"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_OPEN = "com.minres.scviewer.e4.application.keybinding.open"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_PREFERENCES = "com.minres.scviewer.e4.application.keybinding.preferences"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_QUIT = "com.minres.scviewer.e4.application.keybinding.quit"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_SAVE = "com.minres.scviewer.e4.application.keybinding.save"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_ZOOM_IN = "com.minres.scviewer.e4.application.keybinding.zoom_in"; + public static final String KEYBINDING_COM_MINRES_SCVIEWER_E4_APPLICATION_KEYBINDING_ZOOM_OUT = "com.minres.scviewer.e4.application.keybinding.zoom_out"; public static final String MENUSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_MENUSEPARATOR_0 = "com.minres.scviewer.e4.application.menuseparator.0"; - public static final String MENU_COM_MINRES_SCVIEWER_E4_APPLICATION_MENU_2 = "com.minres.scviewer.e4.application.menu.2"; + public static final String MENUSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_MENUSEPARATOR_1 = "com.minres.scviewer.e4.application.menuseparator.1"; public static final String MENU_COM_MINRES_SCVIEWER_E4_APPLICATION_MENU_CURSOR = "com.minres.scviewer.e4.application.menu.cursor"; public static final String MENU_COM_MINRES_SCVIEWER_E4_APPLICATION_MENU_FILE = "com.minres.scviewer.e4.application.menu.file"; public static final String MENU_COM_MINRES_SCVIEWER_E4_APPLICATION_MENU_HELP = "com.minres.scviewer.e4.application.menu.help"; @@ -99,14 +135,6 @@ public class AppModelId { public static final String MENU_MENU_ORG_ECLIPSE_UI_MAIN_MENU = "menu:org.eclipse.ui.main.menu"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_0 = "com.minres.scviewer.e4.application.parameter.0"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_1 = "com.minres.scviewer.e4.application.parameter.1"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_2 = "com.minres.scviewer.e4.application.parameter.2"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_3 = "com.minres.scviewer.e4.application.parameter.3"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_4 = "com.minres.scviewer.e4.application.parameter.4"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_5 = "com.minres.scviewer.e4.application.parameter.5"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_6 = "com.minres.scviewer.e4.application.parameter.6"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_7 = "com.minres.scviewer.e4.application.parameter.7"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_8 = "com.minres.scviewer.e4.application.parameter.8"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_9 = "com.minres.scviewer.e4.application.parameter.9"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_10 = "com.minres.scviewer.e4.application.parameter.10"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_11 = "com.minres.scviewer.e4.application.parameter.11"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_12 = "com.minres.scviewer.e4.application.parameter.12"; @@ -117,41 +145,48 @@ public class AppModelId { public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_17 = "com.minres.scviewer.e4.application.parameter.17"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_18 = "com.minres.scviewer.e4.application.parameter.18"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_19 = "com.minres.scviewer.e4.application.parameter.19"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_2 = "com.minres.scviewer.e4.application.parameter.2"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_20 = "com.minres.scviewer.e4.application.parameter.20"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_21 = "com.minres.scviewer.e4.application.parameter.21"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_22 = "com.minres.scviewer.e4.application.parameter.22"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_23 = "com.minres.scviewer.e4.application.parameter.23"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_24 = "com.minres.scviewer.e4.application.parameter.24"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_25 = "com.minres.scviewer.e4.application.parameter.25"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_26 = "com.minres.scviewer.e4.application.parameter.26"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_27 = "com.minres.scviewer.e4.application.parameter.27"; - public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_28 = "com.minres.scviewer.e4.application.parameter.28"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_29 = "com.minres.scviewer.e4.application.parameter.29"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_3 = "com.minres.scviewer.e4.application.parameter.3"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_30 = "com.minres.scviewer.e4.application.parameter.30"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_31 = "com.minres.scviewer.e4.application.parameter.31"; public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_32 = "com.minres.scviewer.e4.application.parameter.32"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_33 = "com.minres.scviewer.e4.application.parameter.33"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_34 = "com.minres.scviewer.e4.application.parameter.34"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_35 = "com.minres.scviewer.e4.application.parameter.35"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_36 = "com.minres.scviewer.e4.application.parameter.36"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_4 = "com.minres.scviewer.e4.application.parameter.4"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_5 = "com.minres.scviewer.e4.application.parameter.5"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_6 = "com.minres.scviewer.e4.application.parameter.6"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_7 = "com.minres.scviewer.e4.application.parameter.7"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_8 = "com.minres.scviewer.e4.application.parameter.8"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_9 = "com.minres.scviewer.e4.application.parameter.9"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_FIT = "com.minres.scviewer.e4.application.parameter.fit"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_FULL = "com.minres.scviewer.e4.application.parameter.full"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_IN = "com.minres.scviewer.e4.application.parameter.in"; + public static final String PARAMETER_COM_MINRES_SCVIEWER_E4_APPLICATION_PARAMETER_OUT = "com.minres.scviewer.e4.application.parameter.out"; public static final String PARTDESCRIPTOR_COM_MINRES_SCVIEWER_E4_APPLICATION_PARTDESCRIPTOR_WAVEFORMVIEWER = "com.minres.scviewer.e4.application.partdescriptor.waveformviewer"; public static final String PARTSTACK_ORG_ECLIPSE_EDITORSS = "org.eclipse.editorss"; - public static final String PART_COM_MINRES_SCVIEWER_E4_APPLICATION_PARTS_DESIGNBROWSER = "com.minres.scviewer.e4.application.parts.DesignBrowser"; - public static final String PART_COM_MINRES_SCVIEWER_E4_APPLICATION_PARTS_WAVEFORMDETAILS = "com.minres.scviewer.e4.application.parts.WaveformDetails"; - public static final String PART_COM_MINRES_SCVIEWER_E4_APPLICATION_PART_0 = "com.minres.scviewer.e4.application.part.0"; - public static final String POPUPMENU_COM_MINRES_SCVIEWER_E4_APPLICATION_PARTS_DESIGNBROWSER_POPUPMENU = "com.minres.scviewer.e4.application.parts.DesignBrowser.popupmenu"; + public static final String PART_COM_MINRES_SCVIEWER_E4_APPLICATION_DIALOG_ABOUTSCVIEWER = "com.minres.scviewer.e4.application.dialog.aboutscviewer"; + public static final String PART_COM_MINRES_SCVIEWER_E4_APPLICATION_DIALOG_ONLINEHELP = "com.minres.scviewer.e4.application.dialog.onlinehelp"; + public static final String PART_COM_MINRES_SCVIEWER_E4_APPLICATION_PART_CONTAINER = "com.minres.scviewer.e4.application.part.container"; public static final String POPUPMENU_COM_MINRES_SCVIEWER_E4_APPLICATION_POPUPMENU_NAMECONTEXT = "com.minres.scviewer.e4.application.popupmenu.namecontext"; public static final String POPUPMENU_COM_MINRES_SCVIEWER_E4_APPLICATION_POPUPMENU_WAVECONTEXT = "com.minres.scviewer.e4.application.popupmenu.wavecontext"; + public static final String TOOLBARSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBARSEPARATOR_0 = "com.minres.scviewer.e4.application.toolbarseparator.0"; public static final String TOOLBARSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBARSEPARATOR_1 = "com.minres.scviewer.e4.application.toolbarseparator.1"; public static final String TOOLBARSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBARSEPARATOR_2 = "com.minres.scviewer.e4.application.toolbarseparator.2"; - public static final String TOOLBARSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBARSEPARATOR_3 = "com.minres.scviewer.e4.application.toolbarseparator.3"; public static final String TOOLBARSEPARATOR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBARSEPARATOR_4 = "com.minres.scviewer.e4.application.toolbarseparator.4"; public static final String TOOLBAR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBAR_0 = "com.minres.scviewer.e4.application.toolbar.0"; - public static final String TOOLBAR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBAR_1 = "com.minres.scviewer.e4.application.toolbar.1"; + public static final String TOOLBAR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBAR_2 = "com.minres.scviewer.e4.application.toolbar.2"; + public static final String TOOLBAR_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLBAR_3 = "com.minres.scviewer.e4.application.toolbar.3"; public static final String TOOLBAR_TOOLBAR_ORG_ECLIPSE_UI_MAIN_TOOLBAR = "toolbar:org.eclipse.ui.main.toolbar"; public static final String TOOLCONTROL_COM_MINRES_SCVIEWER_E4_APPLICATION_TOOLCONTROL_0 = "com.minres.scviewer.e4.application.toolcontrol.0"; public static final String TOOLCONTROL_ORG_ECLIPSE_UI_HEAPSTATUS = "org.eclipse.ui.HeapStatus"; - public static final String TOOLCONTROL_ORG_ECLIPSE_UI_PROGRESSBAR = "org.eclipse.ui.ProgressBar"; public static final String TOOLCONTROL_ORG_ECLIPSE_UI_STATUSLINE = "org.eclipse.ui.StatusLine"; public static final String TRIMBAR_ORG_ECLIPSE_UI_MAIN_TOOLBAR = "org.eclipse.ui.main.toolbar"; public static final String TRIMBAR_ORG_ECLIPSE_UI_TRIM_STATUS = "org.eclipse.ui.trim.status"; - public static final String WINDOW_COM_MINRES_SCVIEWER_E4_APPLICATION_DIALOG_ABOUTSCVIEWER = "com.minres.scviewer.e4.application.dialog.aboutscviewer"; - - private AppModelId(){} + public static final String TRIMMEDWINDOW_COM_MINRES_SCVIEWER_E4_APPLICATION_TRIMMEDWINDOW_MAIN = "com.minres.scviewer.e4.application.trimmedwindow.main"; + public static final String WINDOW_COM_MINRES_SCVIEWER_E4_APPLICATION_WINDOW_HELP_CONTENT = "com.minres.scviewer.e4.application.window.help_content"; + public static final String WINDOW_COM_MINRES_SCVIEWER_E4_APPLICATION_WINDOW_WEB_HELP = "com.minres.scviewer.e4.application.window.web_help"; } \ No newline at end of file diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java index 50720e1..2af596a 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java @@ -19,7 +19,7 @@ import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.workbench.modeling.EPartService; import org.eclipse.jface.viewers.IStructuredSelection; -import com.minres.scviewer.database.BlankWaveform; +import com.minres.scviewer.database.EmptyWaveform; import com.minres.scviewer.database.IWaveform; import com.minres.scviewer.database.ui.TrackEntry; import com.minres.scviewer.e4.application.parts.WaveformViewer; @@ -47,7 +47,7 @@ public class AddSeparatorHandler { Object obj = partService.getActivePart().getObject(); if(obj instanceof WaveformViewer){ ((WaveformViewer)obj).addStreamsToList( - new IWaveform[]{new BlankWaveform()}, "before".equalsIgnoreCase(where)); //$NON-NLS-1$ + new IWaveform[]{new EmptyWaveform()}, "before".equalsIgnoreCase(where)); //$NON-NLS-1$ } } diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SetLabelTextHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SetLabelTextHandler.java new file mode 100644 index 0000000..2047555 --- /dev/null +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SetLabelTextHandler.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. + * 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: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ + +package com.minres.scviewer.e4.application.handlers; + +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.core.di.annotations.Evaluate; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.model.application.ui.basic.MPart; +import org.eclipse.e4.ui.workbench.modeling.EPartService; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Shell; + +import com.minres.scviewer.database.EmptyWaveform; +import com.minres.scviewer.database.ui.TrackEntry; +import com.minres.scviewer.e4.application.parts.TextInputDialog; +import com.minres.scviewer.e4.application.parts.WaveformViewer; + +public class SetLabelTextHandler { + + @Execute + public void execute(Shell shell, EPartService partService) { + MPart part = partService.getActivePart(); + if(part!=null && part.getObject() instanceof WaveformViewer){ + Object sel = ((WaveformViewer)part.getObject()).getSelection(); + if( sel instanceof IStructuredSelection) { + Object o= ((IStructuredSelection)sel).getFirstElement(); + if(o instanceof TrackEntry) { + TrackEntry te = (TrackEntry)o; + if(te.waveform instanceof EmptyWaveform) { + EmptyWaveform waveform= (EmptyWaveform)te.waveform; + TextInputDialog dialog = new TextInputDialog(shell); + dialog.create(); + dialog.setTitle("Change Separator Text"); + dialog.setText(waveform.getName()); + if (dialog.open() == Window.OK) { + waveform.setName(dialog.getText()); + } + } + } + } + } + } + + + @Evaluate + @CanExecute + public Boolean canExecute(MPart activePart){ + if(activePart!=null && activePart.getObject() instanceof WaveformViewer){ + Object sel = ((WaveformViewer)activePart.getObject()).getSelection(); + if( sel instanceof IStructuredSelection) { + if(((IStructuredSelection)sel).isEmpty()) return false; + Object o= ((IStructuredSelection)sel).getFirstElement(); + if(o instanceof TrackEntry) { + TrackEntry te = (TrackEntry)o; + return te.waveform instanceof EmptyWaveform; + } + } + } + return false; + } + +} \ No newline at end of file diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TextInputDialog.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TextInputDialog.java new file mode 100644 index 0000000..26098a2 --- /dev/null +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/TextInputDialog.java @@ -0,0 +1,107 @@ +/******************************************************************************* + * Copyright (c) 2023 MINRES Technologies GmbH and others. + * 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: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ +package com.minres.scviewer.e4.application.parts; + +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.TitleAreaDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.layout.RowLayout; + +public class TextInputDialog extends TitleAreaDialog { + + private Text txtLabel; + private String txt = ""; + /** + * Create the dialog. + * @param parentShell + */ + public TextInputDialog(Shell parentShell) { + super(parentShell); + } + + /** + * Create contents of the dialog. + * @param parent + */ + @Override + protected Control createDialogArea(Composite parent) { + Composite area = (Composite) super.createDialogArea(parent); + Composite container = new Composite(area, SWT.NONE); + container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + GridLayout layout = new GridLayout(2, false); + container.setLayout(layout); + + Label lbtFirstName = new Label(container, SWT.NONE); + lbtFirstName.setText("New Label: "); + + GridData dataFirstName = new GridData(); + dataFirstName.grabExcessHorizontalSpace = true; + dataFirstName.horizontalAlignment = GridData.FILL; + + txtLabel = new Text(container, SWT.BORDER); + txtLabel.setLayoutData(dataFirstName); + txtLabel.setText(txt); + + return area; + } + + /** + * Create contents of the button bar. + * @param parent + */ + @Override + protected void createButtonsForButtonBar(Composite parent) { + createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); + createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); + } + + @Override + protected boolean isResizable() { + return true; + } + + // save content of the Text fields because they get disposed + // as soon as the Dialog closes + private void saveInput() { + txt = txtLabel.getText(); + } + /** + * Return the initial size of the dialog. + */ + @Override + protected Point getInitialSize() { + return new Point(400, 250); + } + + @Override + protected void okPressed() { + saveInput(); + super.okPressed(); + } + + public String getText() { + return txt; + } + + public void setText(String text) { + txt=text; + if(txtLabel!=null) + txtLabel.setText(text); + } +} diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java index 7983dd6..8f46d01 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java @@ -17,6 +17,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -31,6 +32,8 @@ import javax.annotation.PostConstruct; import javax.inject.Inject; import javax.inject.Named; +import org.eclipse.core.commands.Command; +import org.eclipse.core.commands.ParameterizedCommand; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; @@ -40,6 +43,8 @@ import org.eclipse.core.runtime.jobs.JobGroup; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener; import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent; +import org.eclipse.e4.core.commands.ECommandService; +import org.eclipse.e4.core.commands.EHandlerService; import org.eclipse.e4.core.contexts.ContextInjectionFactory; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.core.di.annotations.Optional; @@ -93,6 +98,7 @@ import com.minres.scviewer.database.tx.ITxRelation; import com.minres.scviewer.database.ui.GotoDirection; import com.minres.scviewer.database.ui.ICursor; import com.minres.scviewer.database.ui.IWaveformView; +import com.minres.scviewer.database.ui.IWaveformviewEventListener; import com.minres.scviewer.database.ui.TrackEntry; import com.minres.scviewer.database.ui.TrackEntry.ValueDisplay; import com.minres.scviewer.database.ui.TrackEntry.WaveDisplay; @@ -101,6 +107,7 @@ import com.minres.scviewer.database.ui.swt.Constants; import com.minres.scviewer.database.ui.swt.IToolTipContentProvider; import com.minres.scviewer.database.ui.swt.IToolTipHelpTextProvider; import com.minres.scviewer.database.ui.swt.WaveformViewFactory; +import com.minres.scviewer.e4.application.AppModelId; import com.minres.scviewer.e4.application.Messages; import com.minres.scviewer.e4.application.internal.status.WaveStatusBarControl; import com.minres.scviewer.e4.application.internal.util.FileMonitor; @@ -238,6 +245,10 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis @Inject Composite parent; + @Inject ECommandService commandService; + + @Inject EHandlerService handlerService; + private boolean showHover; private SashForm topSash = null; @@ -402,6 +413,13 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis }); waveformPane.addDisposeListener(this); + waveformPane.addEventListner(new IWaveformviewEventListener() { + @Override + public void onTrackEntryDoubleClickEvent(TrackEntry trackEntry) { + ParameterizedCommand command = commandService.createCommand(AppModelId.COMMAND_COM_MINRES_SCVIEWER_E4_APPLICATION_COMMAND_SET_LABEL_TEXT); + handlerService.executeHandler(command); + } + }); waveformPane.getWaveformControl().setData(Constants.HELP_PROVIDER_TAG, new IToolTipHelpTextProvider() { @Override public String getHelpText(Widget widget) { diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java index c5c7553..1d0048b 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * Copyright (c) 2015-2023 MINRES Technologies GmbH and others. * 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 From f64a1baf022da3a1ffec07cb06dfaac43ac4ef57 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Wed, 1 Mar 2023 09:21:11 +0100 Subject: [PATCH 5/6] rename BLANK to EMPY, enhances separator render, fixes menu selection --- .../scviewer/database/ui/WaveformColors.java | 2 +- .../ui/swt/DefaultWaveformStyleProvider.java | 2 +- .../ui/swt/internal/BlankPainter.java | 45 ---------- .../ui/swt/internal/EmptyPainter.java | 85 +++++++++++++++++++ .../ui/swt/internal/WaveformView.java | 23 ++++- .../scviewer/database/EmptyWaveform.java | 13 ++- .../scviewer/database/WaveformType.java | 2 +- .../Application.e4xmi | 2 +- .../scviewer/e4/application/Messages.java | 2 +- .../e4/application/messages.properties | 2 +- .../e4/application/parts/WaveformViewer.java | 37 +++++--- 11 files changed, 149 insertions(+), 66 deletions(-) delete mode 100644 plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/BlankPainter.java create mode 100644 plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/EmptyPainter.java diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java index 090d28a..4bbbd33 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/WaveformColors.java @@ -16,5 +16,5 @@ public enum WaveformColors { TX_BG, TX_BG_HIGHLITE, TX_BORDER, SIGNAL0, SIGNAL1, SIGNALZ, SIGNALX, SIGNAL_CHANGE, SIGNALU, SIGNAL_TEXT, SIGNAL_REAL, SIGNAL_NAN, CURSOR, CURSOR_DRAG, CURSOR_TEXT, - MARKER, MARKER_TEXT, REL_ARROW, REL_ARROW_HIGHLITE, BLANK + MARKER, MARKER_TEXT, REL_ARROW, REL_ARROW_HIGHLITE, SEPARATOR } \ No newline at end of file diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java index 8bd7cfb..cc993ce 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DefaultWaveformStyleProvider.java @@ -50,7 +50,7 @@ public class DefaultWaveformStyleProvider implements IWaveformStyleProvider { colors[WaveformColors.MARKER_TEXT.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_WHITE); colors[WaveformColors.REL_ARROW.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_MAGENTA); colors[WaveformColors.REL_ARROW_HIGHLITE.ordinal()] = SWTResourceManager.getColor(255, 128, 255); - colors[WaveformColors.BLANK.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_RED); + colors[WaveformColors.SEPARATOR.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_RED); } /** * needs redraw() afterwards diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/BlankPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/BlankPainter.java deleted file mode 100644 index d704615..0000000 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/BlankPainter.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. - * 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: - * MINRES Technologies GmbH - initial API and implementation - *******************************************************************************/ -package com.minres.scviewer.database.ui.swt.internal; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Rectangle; - -import com.minres.scviewer.database.ui.TrackEntry; -import com.minres.scviewer.database.ui.WaveformColors; - -public class BlankPainter extends TrackPainter { - /** - * - */ - private final WaveformCanvas waveCanvas; - - public BlankPainter(WaveformCanvas txDisplay, boolean even, TrackEntry trackEntry) { - super(trackEntry, even); - this.waveCanvas = txDisplay; - } - - public void paintArea(Projection proj, Rectangle area) { - if (trackEntry.selected) - proj.setBackground(this.waveCanvas.styleProvider.getColor(WaveformColors.TRACK_BG_HIGHLITE)); - else - proj.setBackground(this.waveCanvas.styleProvider.getColor(even ? WaveformColors.TRACK_BG_EVEN : WaveformColors.TRACK_BG_ODD)); - proj.setFillRule(SWT.FILL_EVEN_ODD); - proj.fillRectangle(area); - int trackHeight=trackEntry.height; - int txBase=trackHeight*2/5; - int txHeight=trackHeight/5; - Rectangle bb = new Rectangle(area.x, area.y+txBase, area.width, txHeight); - proj.setBackground(this.waveCanvas.styleProvider.getColor(WaveformColors.BLANK)); - proj.fillRectangle(bb); - - } -} diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/EmptyPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/EmptyPainter.java new file mode 100644 index 0000000..6e3824f --- /dev/null +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/EmptyPainter.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * 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: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ +package com.minres.scviewer.database.ui.swt.internal; + +import javax.swing.JPanel; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; + +import com.minres.scviewer.database.ui.TrackEntry; +import com.minres.scviewer.database.ui.WaveformColors; + +public class EmptyPainter extends TrackPainter { + /** + * + */ + private final WaveformCanvas waveCanvas; + + private static final JPanel DUMMY_PANEL = new JPanel(); + + public EmptyPainter(WaveformCanvas txDisplay, boolean even, TrackEntry trackEntry) { + super(trackEntry, even); + this.waveCanvas = txDisplay; + } + + public void paintArea(Projection proj, Rectangle area) { + Color bgColor = trackEntry.selected?this.waveCanvas.styleProvider.getColor(WaveformColors.TRACK_BG_HIGHLITE):this.waveCanvas.styleProvider.getColor(even ? WaveformColors.TRACK_BG_EVEN : WaveformColors.TRACK_BG_ODD); + GC gc = proj.getGC(); + proj.setBackground(bgColor); + proj.setFillRule(SWT.FILL_EVEN_ODD); + proj.fillRectangle(area); + Color drawColor = this.waveCanvas.styleProvider.getColor(WaveformColors.SEPARATOR); + int trackHeight=trackEntry.height; + int txBase=trackHeight*2/5; + int txHeight=trackHeight/5; + proj.setBackground(drawColor); + proj.fillRectangle(new Rectangle(area.x, area.y+txBase, area.width, txHeight)); + + String label = trackEntry.waveform.getName(); + if(label.length()>0) { + Color textColor=waveCanvas.styleProvider.getColor(WaveformColors.SIGNAL_TEXT); + FontData fd = gc.getFont().getFontData()[0]; + int height = gc.getDevice().getDPI().y * fd.getHeight() / 72; + java.awt.Font tmpAwtFont = new java.awt.Font(fd.getName(), fd.getStyle(), height); + int width = DUMMY_PANEL.getFontMetrics(tmpAwtFont).stringWidth(label); + + int xBegin = (area.width-width)/2-5; + xBegin = xBegin<0?0:xBegin; + int xEnd = (area.width+width)/2+5; + xEnd = xEnd>area.width?area.width:xEnd; + int yOffsetT = this.waveCanvas.styleProvider.getTrackHeight() / 5 + area.y; + int yOffsetM = this.waveCanvas.styleProvider.getTrackHeight() / 2 + area.y; + int yOffsetB = 4 * this.waveCanvas.styleProvider.getTrackHeight() / 5 + area.y; + int[] points = { + xBegin, yOffsetM, + xBegin + 1, yOffsetT, + xEnd - 1, yOffsetT, + xEnd, yOffsetM, + xEnd - 1, yOffsetB, + xBegin + 1, yOffsetB + }; + gc.setBackground(bgColor); + gc.fillPolygon(points); + gc.setForeground(drawColor); + gc.drawPolygon(points); + Rectangle old = gc.getClipping(); + gc.setForeground(textColor); + gc.setClipping(xBegin + 3, yOffsetT, xEnd - xBegin - 5, yOffsetB - yOffsetT); + gc.drawText(label, xBegin + 3, yOffsetM - height / 2 - 1); + gc.setClipping(old); + } + } +} diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java index 2c68d80..dbd4823 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformView.java @@ -149,6 +149,24 @@ public class WaveformView implements IWaveformView { if (entry != null) entry.getValue().selected = true; } else if (e.button == 3) { + ISelection sel = getSelection(); + if(sel instanceof StructuredSelection) { + if(((StructuredSelection)sel).isEmpty()) { + Entry entry = trackVerticalOffset.floorEntry(e.y); + setSelection(new StructuredSelection(entry.getValue()), false, false); + lastClickedEntry = entry.getValue(); + } else { + StructuredSelection structuredSelection = (StructuredSelection) sel; + if(structuredSelection.size()== 1 && structuredSelection.getFirstElement() instanceof TrackEntry) { + Entry entry = trackVerticalOffset.floorEntry(e.y); + TrackEntry selEntry = (TrackEntry) structuredSelection.getFirstElement(); + if(!entry.getValue().equals(selEntry)) { + setSelection(new StructuredSelection(entry.getValue()), false, false); + lastClickedEntry = entry.getValue(); + } + } + } + } Menu topMenu = top.getMenu(); if (topMenu != null) topMenu.setVisible(true); @@ -182,6 +200,7 @@ public class WaveformView implements IWaveformView { Entry entry = trackVerticalOffset.floorEntry(e.y); if(entry != null) setSelection(new StructuredSelection(entry.getValue()), false, false); + lastClickedEntry = entry.getValue(); for (IWaveformviewEventListener listner : eventListener) { listner.onTrackEntryDoubleClickEvent(entry.getValue()); } @@ -613,9 +632,9 @@ public class WaveformView implements IWaveformView { } else if (streamEntry.waveform.getType() == WaveformType.SIGNAL) { streamEntry.currentValue = "---"; waveformCanvas.addWaveformPainter(new SignalPainter(waveformCanvas, even, streamEntry), false); - } else if (streamEntry.waveform.getType() == WaveformType.BLANK) { + } else if (streamEntry.waveform.getType() == WaveformType.EMPTY) { streamEntry.currentValue = ""; - waveformCanvas.addWaveformPainter(new BlankPainter(waveformCanvas, even, streamEntry), false); + waveformCanvas.addWaveformPainter(new EmptyPainter(waveformCanvas, even, streamEntry), false); } } diff --git a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java index 9fe311f..dcf7d74 100644 --- a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java +++ b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/EmptyWaveform.java @@ -18,6 +18,15 @@ import java.util.List; public class EmptyWaveform implements IWaveform { private String label = ""; + + + public EmptyWaveform() { + } + + public EmptyWaveform(String label) { + this.label = label; + } + @Override public void addPropertyChangeListener(PropertyChangeListener l) { } @@ -96,12 +105,12 @@ public class EmptyWaveform implements IWaveform { @Override public WaveformType getType() { - return WaveformType.BLANK; + return WaveformType.EMPTY; } @Override public String getKind() { - return "BLANK"; + return "separator"; } @Override diff --git a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/WaveformType.java b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/WaveformType.java index 6da5ed6..4ca0753 100644 --- a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/WaveformType.java +++ b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/WaveformType.java @@ -22,5 +22,5 @@ public enum WaveformType { /** The filter. */ FILTER, /** The blank line. */ - BLANK + EMPTY } diff --git a/plugins/com.minres.scviewer.e4.application/Application.e4xmi b/plugins/com.minres.scviewer.e4.application/Application.e4xmi index f7d3384..107c4ec 100644 --- a/plugins/com.minres.scviewer.e4.application/Application.e4xmi +++ b/plugins/com.minres.scviewer.e4.application/Application.e4xmi @@ -66,7 +66,7 @@ - + diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java index 9712d99..d7bff25 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/Messages.java @@ -89,7 +89,7 @@ public class Messages extends NLS { public static String marker_text; public static String rel_arrow; public static String rel_arrow_highlite; - public static String blank; + public static String separator; public static String HelpBrowser_0; public static String HelpBrowser_1; public static String HelpBrowser_2; diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties index 8c31e4f..cf5d91b 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/messages.properties @@ -83,7 +83,7 @@ marker=Marker marker_text=Marker TExt rel_arrow=Relation arrow rel_arrow_highlite=highlighted Relation arrorw -blank=separator +separator=separator UpdateHandler_URI=http://https://minres.github.io/SCViewer/repository UpdateHandler_10=Information UpdateHandler_11=Error diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java index 8f46d01..79e964a 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java @@ -84,6 +84,7 @@ import org.eclipse.wb.swt.SWTResourceManager; import org.osgi.service.prefs.BackingStoreException; import com.minres.scviewer.database.DataType; +import com.minres.scviewer.database.EmptyWaveform; import com.minres.scviewer.database.IHierNode; import com.minres.scviewer.database.IWaveform; import com.minres.scviewer.database.IWaveformDb; @@ -132,6 +133,8 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis /** The Constant SHOWN_WAVEFORM. */ protected static final String SHOWN_WAVEFORM = "SHOWN_WAVEFORM"; //$NON-NLS-1$ + protected static final String WAVEFORM_TYPE = ".WAVEFORM_TYPE"; //$NON-NLS-1$ + protected static final String VALUE_DISPLAY = ".VALUE_DISPLAY"; //$NON-NLS-1$ protected static final String WAVE_DISPLAY = ".WAVE_DISPLAY"; //$NON-NLS-1$ @@ -749,9 +752,12 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis Integer index = 0; for (TrackEntry trackEntry : waveformPane.getStreamList()) { persistingState.put(SHOWN_WAVEFORM + index, trackEntry.waveform.getFullName()); - persistingState.put(SHOWN_WAVEFORM + index + VALUE_DISPLAY, trackEntry.valueDisplay.toString()); - persistingState.put(SHOWN_WAVEFORM + index + WAVE_DISPLAY, trackEntry.waveDisplay.toString()); + persistingState.put(SHOWN_WAVEFORM + index + WAVEFORM_TYPE, trackEntry.waveform.getType().toString()); persistingState.put(SHOWN_WAVEFORM + index + WAVEFORM_SELECTED, String.valueOf(trackEntry.selected).toUpperCase()); + if (trackEntry.waveform.getType()!=WaveformType.EMPTY) { + persistingState.put(SHOWN_WAVEFORM + index + VALUE_DISPLAY, trackEntry.valueDisplay.toString()); + persistingState.put(SHOWN_WAVEFORM + index + WAVE_DISPLAY, trackEntry.waveDisplay.toString()); + } index++; } List cursors = waveformPane.getCursorList(); @@ -807,19 +813,28 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis List trackEntries = new LinkedList<>(); List selectedTrackEntries = new LinkedList<>(); for (int i = 0; i < waves; i++) { - IWaveform waveform = database.getStreamByName(state.get(SHOWN_WAVEFORM + i)); - if (waveform != null) { - TrackEntry trackEntry = waveformPane.addWaveform(waveform, -1); + String wtString = state.get(SHOWN_WAVEFORM + i + WAVEFORM_TYPE); + if(wtString!=null && WaveformType.valueOf(wtString)==WaveformType.EMPTY) { + TrackEntry trackEntry = waveformPane.addWaveform(new EmptyWaveform(state.get(SHOWN_WAVEFORM + i)), -1); //check if t is selected trackEntries.add(trackEntry); if(Boolean.parseBoolean(state.get(SHOWN_WAVEFORM + i + WAVEFORM_SELECTED))) selectedTrackEntries.add(trackEntry); - String v = state.get(SHOWN_WAVEFORM + i + VALUE_DISPLAY); - if(v!=null) - trackEntry.valueDisplay=ValueDisplay.valueOf(v); - String s = state.get(SHOWN_WAVEFORM + i + WAVE_DISPLAY); - if(s!=null) - trackEntry.waveDisplay=WaveDisplay.valueOf(s); + } else { + IWaveform waveform = database.getStreamByName(state.get(SHOWN_WAVEFORM + i)); + if (waveform != null) { + TrackEntry trackEntry = waveformPane.addWaveform(waveform, -1); + //check if t is selected + trackEntries.add(trackEntry); + if(Boolean.parseBoolean(state.get(SHOWN_WAVEFORM + i + WAVEFORM_SELECTED))) + selectedTrackEntries.add(trackEntry); + String v = state.get(SHOWN_WAVEFORM + i + VALUE_DISPLAY); + if(v!=null) + trackEntry.valueDisplay=ValueDisplay.valueOf(v); + String s = state.get(SHOWN_WAVEFORM + i + WAVE_DISPLAY); + if(s!=null) + trackEntry.waveDisplay=WaveDisplay.valueOf(s); + } } } Integer cursorLength = state.containsKey(SHOWN_CURSOR+"S")?Integer.parseInt(state.get(SHOWN_CURSOR + "S")):0; //$NON-NLS-1$ //$NON-NLS-2$ From 6769513e2de9b37c2dfe87b7b4459f937710f5e6 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Wed, 1 Mar 2023 12:53:34 +0100 Subject: [PATCH 6/6] fixes database reopening problem due to locking --- .../minres/scviewer/database/IWaveformDb.java | 9 ++++ .../database/internal/WaveformDb.java | 9 ++++ .../elements/RelationTypeToolControl.java | 2 +- .../handlers/AddSeparatorHandler.java | 8 ++- .../handlers/SelectAllHandler.java | 4 +- .../e4/application/parts/WaveformViewer.java | 7 +++ .../inputs/my_db.fst | Bin 1431 -> 805 bytes .../inputs/my_db.ftr | Bin 1774 -> 1793 bytes .../inputs/my_db.scview | 49 ++++++++++++++++++ 9 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 tests/com.minres.scviewer.database.test/inputs/my_db.scview diff --git a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/IWaveformDb.java b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/IWaveformDb.java index f7d1aa5..700cc04 100644 --- a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/IWaveformDb.java +++ b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/IWaveformDb.java @@ -62,4 +62,13 @@ public interface IWaveformDb extends IHierNode { */ public boolean isLoaded(); + /** + * close an open database. + * + * @param inp the inp + * @return true, if successful + */ + public void close(); + + } diff --git a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java index 6530b57..d56f2df 100644 --- a/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java +++ b/plugins/com.minres.scviewer.database/src/com/minres/scviewer/database/internal/WaveformDb.java @@ -18,6 +18,7 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; @@ -39,6 +40,7 @@ public class WaveformDb extends HierNode implements IWaveformDb, PropertyChangeL /** The loaders. */ private static List loaderFactories = new LinkedList<>(); + private List activeLoader = new ArrayList<>(); /** The loaded. */ private boolean loaded; @@ -136,6 +138,7 @@ public class WaveformDb extends HierNode implements IWaveformDb, PropertyChangeL loader.addPropertyChangeListener(this); try { loader.load(inp); + activeLoader.add(loader); } catch (Exception e) { LOG.error("error loading file "+inp.getName(), e); retval=false; @@ -158,6 +161,12 @@ public class WaveformDb extends HierNode implements IWaveformDb, PropertyChangeL return retval; } + @Override + public void close() { + for (IWaveformDbLoader entry : activeLoader) { + entry.dispose(); + } + } /** * Gets the file basename. * diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/RelationTypeToolControl.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/RelationTypeToolControl.java index bb24484..358282a 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/RelationTypeToolControl.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/elements/RelationTypeToolControl.java @@ -124,7 +124,7 @@ public class RelationTypeToolControl extends PartListener implements ISelectionC return; } } - if(comboViewer!=null) comboViewer.getCombo().setEnabled(false); + if(comboViewer!=null && !comboViewer.getCombo().isDisposed()) comboViewer.getCombo().setEnabled(false); } /* (non-Javadoc) diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java index 2af596a..91686c5 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/AddSeparatorHandler.java @@ -35,8 +35,12 @@ public class AddSeparatorHandler { Object sel = ((WaveformViewer)part.getObject()).getSelection(); if( sel instanceof IStructuredSelection) { if(((IStructuredSelection)sel).isEmpty()) return false; - Object o= ((IStructuredSelection)sel).getFirstElement(); - return o instanceof TrackEntry; + IStructuredSelection isel = (IStructuredSelection) sel; + if(isel.size()==1) + return isel.getFirstElement() instanceof TrackEntry; + else if(isel.size()==2) { + return isel.toArray()[1] instanceof TrackEntry; + } } } return false; diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SelectAllHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SelectAllHandler.java index 2c7aa58..00e8207 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SelectAllHandler.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/SelectAllHandler.java @@ -23,13 +23,13 @@ public class SelectAllHandler { @CanExecute public boolean canExecute(EPartService partService) { MPart part = partService.getActivePart(); - return part.getObject() instanceof WaveformViewer; + return part!=null && part.getObject() instanceof WaveformViewer; } @Execute public void execute(EPartService partService) { MPart part = partService.getActivePart(); - if(part.getObject() instanceof WaveformViewer) + if(part!=null && part.getObject() instanceof WaveformViewer) ((WaveformViewer) part.getObject()).selectAll(); } diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java index 79e964a..760107a 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java @@ -29,6 +29,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Named; @@ -512,6 +513,12 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis showTxDetails(false); } + @PreDestroy + public void closeDatabase() { + if(database.isLoaded()) + database.close(); + } + @Inject @Optional public void reactOnPrefsChange(@Preference(nodePath = PreferenceConstants.PREFERENCES_SCOPE) IEclipsePreferences prefs) { diff --git a/tests/com.minres.scviewer.database.test/inputs/my_db.fst b/tests/com.minres.scviewer.database.test/inputs/my_db.fst index 42f3e3eb17f9da8728ec53994df1121c9d5325ac..79137db3541211053959379ca12590302d2f8850 100644 GIT binary patch literal 805 zcmchV&ubGw6vw|a+3t>Oc4_MhIV^REsVqh8X44-Mgrpi`tVkskRstF}*$Ax#+wE4{ zTMl{>ya~M)FGbOdr=BX_R79_O(p!!m#Dj;Xvu1keKhSy1eBS%M2k*@=!2d;V3@Fd- zhpS7z^-SL%Dkln)vH+E?DXB@4^!@eNkCx(2B$bnf-wFAxAmTjF^Ip*_6uoKgxn4m( zp+V#$k?CXo#7hoh<;B_4+UC92yYDGh?w z`_I}E>6p~$oeW>#BJI@NJ%w1;9Ls%Y-E?<*T8SzuMZe$wc3V+}jqhNYT@|x59%{NvG`_01pc?Vq#y^4Xi FwL?Y+WYquw literal 1431 zcmZQz00Tx(2n`{vXD#}W87|VzwV%}iB*Fm^29bSF>-iuNO5Fw1aTMv=_rmWFwcuaiKB}V zC=|uv1Y|OVF}g5CRLF2^Ox8#?Fqfz^IHU2&pj}5wV}ptngB^z!P*oO?wBkqt>hR(a z;wS>rLL8GAff7+b1B^Hr9Qai1c-(aORLpq%WaM1>1ctm>B+#fnb!{Lh1+17v28vxR6q?%!^Df^F>t~^V4A4@HfkA*FrL;^hskAsgC9xz?A==!^AeMncoPj}@AvwM%rILYBkbyyi z!8KdPzoUH*8HZ4jm6l72>D(7ZUO3u+>&@U+}XJFJSDJo-N2D&MbfxVQ$ iprlAoh=H|)fkl9UrIGfjV!O&0P0c=)c^nh delta 13 VcmZqVd&kRi^XB*Y8^vF-0RSwa29E#$ diff --git a/tests/com.minres.scviewer.database.test/inputs/my_db.scview b/tests/com.minres.scviewer.database.test/inputs/my_db.scview new file mode 100644 index 0000000..819e4d1 --- /dev/null +++ b/tests/com.minres.scviewer.database.test/inputs/my_db.scview @@ -0,0 +1,49 @@ +#Written by SCViewer +#Wed Mar 01 08:49:19 CET 2023 +SHOWN_WAVEFORM0=tr.addr_ack +SHOWN_WAVEFORM2=tr.bus_addr[7\:0] +SHOWN_WAVEFORM1=tr.addr_req +SHOWN_WAVEFORM7=tr.rw +SHOWN_WAVEFORM5.WAVEFORM_TYPE=SIGNAL +SHOWN_WAVEFORM4=tr.bus_data[7\:0] +SHOWN_WAVEFORM3=Blank +SHOWN_WAVEFORM6=tr.data_rdy +SHOWN_WAVEFORM5=tr.clk +SHOWN_CURSOR1=100000000 +SHOWN_CURSOR0=10000000 +SHOWN_WAVEFORM0.WAVEFORM_TYPE=SIGNAL +SHOWN_WAVEFORM5.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORM0.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORMS=8 +SCALING_FACTOR=1000000 +SHOWN_CURSORS=2 +SHOWN_WAVEFORM0.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM7.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM3.WAVEFORM_TYPE=EMPTY +SHOWN_WAVEFORM2.WAVEFORM_TYPE=SIGNAL +SHOWN_WAVEFORM6.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORM2.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM4.WAVEFORM_TYPE=SIGNAL +DATABASE_FILE0=/scratch/eyck/workarea/MINRES/SCViewer/tests/com.minres.scviewer.database.test/inputs/my_db.vcd +SHOWN_WAVEFORM7.WAVE_DISPLAY=DEFAULT +SHOWN_WAVEFORM7.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORM4.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM5.WAVE_DISPLAY=DEFAULT +DATABASE_FILES=1 +SHOWN_WAVEFORM1.WAVE_DISPLAY=DEFAULT +SHOWN_WAVEFORM4.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORM5.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM1.WAVEFORM_TYPE=SIGNAL +SHOWN_WAVEFORM6.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM6.WAVEFORM_TYPE=SIGNAL +SHOWN_WAVEFORM1.WAVEFORM_SELECTED=FALSE +SHOWN_WAVEFORM4.WAVE_DISPLAY=DEFAULT +SHOWN_WAVEFORM1.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORM7.WAVEFORM_TYPE=SIGNAL +TX_DETAILS_SHOWN=false +SHOWN_WAVEFORM2.VALUE_DISPLAY=DEFAULT +SHOWN_WAVEFORM2.WAVE_DISPLAY=DEFAULT +SHOWN_WAVEFORM0.WAVE_DISPLAY=DEFAULT +SHOWN_WAVEFORM6.WAVE_DISPLAY=DEFAULT +BASE_LINE_TIME=0 +SHOWN_WAVEFORM3.WAVEFORM_SELECTED=TRUE