diff --git a/com.minres.scviewer.database.swt/swing2swt.jar b/com.minres.scviewer.database.swt/swing2swt.jar deleted file mode 100644 index ee261b5..0000000 Binary files a/com.minres.scviewer.database.swt/swing2swt.jar and /dev/null differ diff --git a/com.minres.scviewer.database.swt/.classpath b/com.minres.scviewer.database.ui.swt/.classpath similarity index 85% rename from com.minres.scviewer.database.swt/.classpath rename to com.minres.scviewer.database.ui.swt/.classpath index fffb3a2..46cec6e 100644 --- a/com.minres.scviewer.database.swt/.classpath +++ b/com.minres.scviewer.database.ui.swt/.classpath @@ -3,6 +3,5 @@ - diff --git a/com.minres.scviewer.database.swt/.gitignore b/com.minres.scviewer.database.ui.swt/.gitignore similarity index 100% rename from com.minres.scviewer.database.swt/.gitignore rename to com.minres.scviewer.database.ui.swt/.gitignore diff --git a/com.minres.scviewer.database.swt/.project b/com.minres.scviewer.database.ui.swt/.project similarity index 94% rename from com.minres.scviewer.database.swt/.project rename to com.minres.scviewer.database.ui.swt/.project index e661377..5774607 100644 --- a/com.minres.scviewer.database.swt/.project +++ b/com.minres.scviewer.database.ui.swt/.project @@ -1,6 +1,6 @@ - com.minres.scviewer.database.swt + com.minres.scviewer.database.ui.swt diff --git a/com.minres.scviewer.database.swt/.settings/org.eclipse.core.resources.prefs b/com.minres.scviewer.database.ui.swt/.settings/org.eclipse.core.resources.prefs similarity index 100% rename from com.minres.scviewer.database.swt/.settings/org.eclipse.core.resources.prefs rename to com.minres.scviewer.database.ui.swt/.settings/org.eclipse.core.resources.prefs diff --git a/com.minres.scviewer.database.swt/.settings/org.eclipse.jdt.core.prefs b/com.minres.scviewer.database.ui.swt/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from com.minres.scviewer.database.swt/.settings/org.eclipse.jdt.core.prefs rename to com.minres.scviewer.database.ui.swt/.settings/org.eclipse.jdt.core.prefs diff --git a/com.minres.scviewer.database.swt/.settings/org.eclipse.m2e.core.prefs b/com.minres.scviewer.database.ui.swt/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from com.minres.scviewer.database.swt/.settings/org.eclipse.m2e.core.prefs rename to com.minres.scviewer.database.ui.swt/.settings/org.eclipse.m2e.core.prefs diff --git a/com.minres.scviewer.database.swt/.settings/org.eclipse.pde.core.prefs b/com.minres.scviewer.database.ui.swt/.settings/org.eclipse.pde.core.prefs similarity index 100% rename from com.minres.scviewer.database.swt/.settings/org.eclipse.pde.core.prefs rename to com.minres.scviewer.database.ui.swt/.settings/org.eclipse.pde.core.prefs diff --git a/com.minres.scviewer.database.swt/META-INF/MANIFEST.MF b/com.minres.scviewer.database.ui.swt/META-INF/MANIFEST.MF similarity index 78% rename from com.minres.scviewer.database.swt/META-INF/MANIFEST.MF rename to com.minres.scviewer.database.ui.swt/META-INF/MANIFEST.MF index 99006e9..ac7633b 100644 --- a/com.minres.scviewer.database.swt/META-INF/MANIFEST.MF +++ b/com.minres.scviewer.database.ui.swt/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: SWT widget -Bundle-SymbolicName: com.minres.scviewer.database.swt +Bundle-SymbolicName: com.minres.scviewer.database.ui.swt Bundle-Version: 1.0.0.qualifier Bundle-Vendor: MINRES Technologies GmbH Bundle-RequiredExecutionEnvironment: JavaSE-1.7 @@ -9,7 +9,8 @@ Require-Bundle: org.eclipse.swt;bundle-version="3.103.1", com.minres.scviewer.database;bundle-version="1.0.0", com.google.guava;bundle-version="15.0.0", org.eclipse.jface, - org.eclipse.equinox.registry + org.eclipse.equinox.registry, + com.minres.scviewer.database.ui Export-Package: com.minres.scviewer.database.swt Bundle-ClassPath: ., swing2swt.jar diff --git a/com.minres.scviewer.database.swt/build.properties b/com.minres.scviewer.database.ui.swt/build.properties similarity index 92% rename from com.minres.scviewer.database.swt/build.properties rename to com.minres.scviewer.database.ui.swt/build.properties index 8a5bcac..4e2b05a 100644 --- a/com.minres.scviewer.database.swt/build.properties +++ b/com.minres.scviewer.database.ui.swt/build.properties @@ -9,7 +9,6 @@ # MINRES Technologies GmbH - initial API and implementation ############################################################################### bin.includes = META-INF/,\ - .,\ - swing2swt.jar + . source.. = src/ jars.compile.order = . diff --git a/com.minres.scviewer.database.ui.swt/pom.xml b/com.minres.scviewer.database.ui.swt/pom.xml new file mode 100644 index 0000000..52701bd --- /dev/null +++ b/com.minres.scviewer.database.ui.swt/pom.xml @@ -0,0 +1,11 @@ + + 4.0.0 + com.minres.scviewer.database.ui.swt + eclipse-plugin + + com.minres.scviewer + com.minres.scviewer.parent + 1.0.0-SNAPSHOT + ../com.minres.scviewer.parent + + \ No newline at end of file diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/TxDisplay.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/TxDisplay.java similarity index 83% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/TxDisplay.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/TxDisplay.java index 202c9e3..5e85e4e 100644 --- a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/TxDisplay.java +++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/TxDisplay.java @@ -25,7 +25,6 @@ import org.eclipse.core.runtime.ListenerList; import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; @@ -84,19 +83,15 @@ import com.minres.scviewer.database.swt.internal.SignalPainter; import com.minres.scviewer.database.swt.internal.StreamPainter; import com.minres.scviewer.database.swt.internal.TrackPainter; import com.minres.scviewer.database.swt.internal.WaveformCanvas; +import com.minres.scviewer.database.ui.GotoDirection; +import com.minres.scviewer.database.ui.IWaveformPanel; -import swing2swt.layout.BorderLayout; - -public class TxDisplay implements PropertyChangeListener, ISelectionProvider { +public class TxDisplay implements IWaveformPanel { private ListenerList selectionChangedListeners = new ListenerList(); private PropertyChangeSupport pcs; - public static final String CURSOR_PROPERTY = "cursor_time"; - - public static final String MARKER_PROPERTY = "marker_time"; - private static final String SELECTION = "selection"; private ITx currentTxSelection; @@ -111,7 +106,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { private Canvas valueList; - WaveformCanvas waveformList; + WaveformCanvas waveformCanvas; private Composite top; @@ -121,8 +116,6 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { int selectedMarker = 0; - private Composite trackPane; - private int trackVerticalHeight; private TreeMap> trackVerticalOffset; @@ -154,9 +147,9 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { public void mouseDown(MouseEvent e) { start=new Point(e.x, e.y); if (e.button == 1) { - initialSelected = waveformList.getClicked(start); + initialSelected = waveformCanvas.getClicked(start); } else if (e.button == 3) { - List hitted = waveformList.getClicked(start); + List hitted = waveformCanvas.getClicked(start); for(Object entry:hitted){ if(entry instanceof IWaveform){ setSelection(new StructuredSelection(entry)); @@ -182,7 +175,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { e.widget.getDisplay().asyncExec(new Runnable() { @Override public void run() { - waveformList.redraw(); + waveformCanvas.redraw(); updateValueList(); } }); @@ -192,7 +185,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { e.widget.getDisplay().asyncExec(new Runnable() { @Override public void run() { - waveformList.redraw(); + waveformCanvas.redraw(); updateValueList(); } }); @@ -200,9 +193,9 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { } protected long snapOffsetToEvent(MouseEvent e) { - long time= waveformList.getTimeForOffset(e.x); - long scaling=5*waveformList.getScaleFactor(); - for(Object o:waveformList.getClicked(start)){ + long time= waveformCanvas.getTimeForOffset(e.x); + long scaling=5*waveformCanvas.getScaleFactor(); + for(Object o:waveformCanvas.getClicked(start)){ Entry floorEntry=null, ceilEntry=null; if(o instanceof ISignal){ NavigableMap map = ((ISignal)o).getEvents(); @@ -256,11 +249,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { Composite composite = new Composite(topSash, SWT.NONE); composite.setLayout(new FillLayout(SWT.HORIZONTAL)); - trackPane = new Composite(topSash, SWT.NONE); - trackPane.setLayout(new BorderLayout(0, 0)); - - waveformList = new WaveformCanvas(trackPane, SWT.NONE); - waveformList.setLayoutData(BorderLayout.CENTER); + waveformCanvas = new WaveformCanvas(topSash, SWT.NONE); SashForm leftSash = new SashForm(composite, SWT.SMOOTH); leftSash.setBackground(leftSash.getDisplay().getSystemColor(SWT.COLOR_GRAY)); @@ -330,39 +319,39 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { valueList.addMouseListener(nameValueMouseListener); valueListScrolled.setContent(valueList); - waveformList.setStreams(streams); + waveformCanvas.setStreams(streams); // order is important: it is bottom to top - waveformList.addPainter(new TrackPainter(waveformList)); - waveformList.addPainter(new RulerPainter( - waveformList, waveformList.getDisplay().getSystemColor(SWT.COLOR_BLACK), waveformList.getDisplay().getSystemColor(SWT.COLOR_WHITE))); - CursorPainter cp = new CursorPainter(waveformList, waveformList.getScaleFactor() * 10, cursorPainters.size()-1); - waveformList.addPainter(cp); + waveformCanvas.addPainter(new TrackPainter(waveformCanvas)); + waveformCanvas.addPainter(new RulerPainter( + waveformCanvas, waveformCanvas.getDisplay().getSystemColor(SWT.COLOR_BLACK), waveformCanvas.getDisplay().getSystemColor(SWT.COLOR_WHITE))); + CursorPainter cp = new CursorPainter(waveformCanvas, waveformCanvas.getScaleFactor() * 10, cursorPainters.size()-1); + waveformCanvas.addPainter(cp); cursorPainters.add(cp); - CursorPainter marker = new CursorPainter(waveformList, waveformList.getScaleFactor() * 100, cursorPainters.size()-1); - waveformList.addPainter(marker); + CursorPainter marker = new CursorPainter(waveformCanvas, waveformCanvas.getScaleFactor() * 100, cursorPainters.size()-1); + waveformCanvas.addPainter(marker); cursorPainters.add(marker); - waveformList.setMaxTime(1); - waveformList.addMouseListener(waveformMouseListener); + waveformCanvas.setMaxTime(1); + waveformCanvas.addMouseListener(waveformMouseListener); nameListScrolled.getVerticalBar().addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int y = ((ScrollBar) e.widget).getSelection(); Point v = valueListScrolled.getOrigin(); valueListScrolled.setOrigin(v.x, y); - Point t = waveformList.getOrigin(); - waveformList.setOrigin(t.x, -y); + Point t = waveformCanvas.getOrigin(); + waveformCanvas.setOrigin(t.x, -y); } }); valueListScrolled.getVerticalBar().addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int y = ((ScrollBar) e.widget).getSelection(); nameListScrolled.setOrigin(nameListScrolled.getOrigin().x, y); - waveformList.setOrigin(waveformList.getOrigin().x, -y); + waveformCanvas.setOrigin(waveformCanvas.getOrigin().x, -y); } }); - waveformList.addSelectionListener(new SelectionAdapter() { + waveformCanvas.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { - int y = waveformList.getVerticalBar().getSelection(); + int y = waveformCanvas.getVerticalBar().getSelection(); nameListScrolled.setOrigin(nameListScrolled.getOrigin().x, y); valueListScrolled.setOrigin(valueListScrolled.getOrigin().x, y); } @@ -374,8 +363,8 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { createStreamDragSource(valueList); createStreamDropTarget(nameList); createStreamDropTarget(valueList); - createWaveformDragSource(waveformList); - createWaveformDropTarget(waveformList); + createWaveformDragSource(waveformCanvas); + createWaveformDropTarget(waveformCanvas); } private Composite createTextPane(SashForm leftSash, String text) { @@ -389,7 +378,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { CLabel nameLabel = new CLabel(namePane, SWT.NONE); GridData gd_nameLabel = new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1); - gd_nameLabel.heightHint = waveformList.getRulerHeight() - 2; + gd_nameLabel.heightHint = waveformCanvas.getRulerHeight() - 2; nameLabel.setLayoutData(gd_nameLabel); nameLabel.setText(text); @@ -417,24 +406,24 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { IWaveformPainter painter = null; trackVerticalOffset.clear(); actualValues.clear(); - waveformList.clearAllWavefromPainter(); + waveformCanvas.clearAllWavefromPainter(); boolean even = true; boolean clearSelection = true; - TextLayout tl = new TextLayout(waveformList.getDisplay()); + TextLayout tl = new TextLayout(waveformCanvas.getDisplay()); tl.setFont(nameFontB); for (IWaveform waveform : streams) { - int height = waveformList.getTrackHeight(); + int height = waveformCanvas.getTrackHeight(); clearSelection &= (waveform != currentWaveformSelection); if (waveform instanceof ITxStream) { ITxStream stream = (ITxStream) waveform; height *= stream.getMaxConcurrency(); - painter = new StreamPainter(waveformList, even, height, (ITxStream) waveform); + painter = new StreamPainter(waveformCanvas, even, height, (ITxStream) waveform); actualValues.put(stream, ""); } else if (waveform instanceof ISignal) { - painter = new SignalPainter(waveformList, even, height, (ISignal) waveform); + painter = new SignalPainter(waveformCanvas, even, height, (ISignal) waveform); actualValues.put(waveform, "---"); } - waveformList.addWavefromPainter(trackVerticalHeight, painter); + waveformCanvas.addWavefromPainter(trackVerticalHeight, painter); trackVerticalOffset.put(trackVerticalHeight, waveform); tl.setText(waveform.getFullName()); nameMaxWidth = Math.max(nameMaxWidth, tl.getBounds().width); @@ -447,11 +436,11 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { valueListScrolled.setMinSize(calculateValueWidth(), trackVerticalHeight); nameList.redraw(); updateValueList(); - waveformList.redraw(); - top.layout(new Control[] { valueList, nameList, waveformList }); + waveformCanvas.redraw(); + top.layout(new Control[] { valueList, nameList, waveformCanvas }); if (trackVerticalOffset.isEmpty() || previousHeight > trackVerticalOffset.lastKey()) { - Point o = waveformList.getOrigin(); - waveformList.setOrigin(o.x, o.y - (previousHeight - trackVerticalOffset.lastKey())); + Point o = waveformCanvas.getOrigin(); + waveformCanvas.setOrigin(o.x, o.y - (previousHeight - trackVerticalOffset.lastKey())); } if(clearSelection) setSelection(new StructuredSelection()); /* System.out.println("updateTracklist() state:"); @@ -461,7 +450,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { */ } private int calculateValueWidth() { - TextLayout tl = new TextLayout(waveformList.getDisplay()); + TextLayout tl = new TextLayout(waveformCanvas.getDisplay()); tl.setFont(nameFontB); int valueMaxWidth = 0; for (String v : actualValues.values()) { @@ -518,32 +507,57 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { return true; } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + */ @Override public void addSelectionChangedListener(ISelectionChangedListener listener) { selectionChangedListeners.add(listener); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + */ @Override public void removeSelectionChangedListener(ISelectionChangedListener listener) { selectionChangedListeners.remove(listener); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getControl() + */ + @Override public Control getControl() { return top; } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getNameControl() + */ + @Override public Control getNameControl() { return nameList; } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getValueControl() + */ + @Override public Control getValueControl() { return valueList; } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getWaveformControl() + */ + @Override public Control getWaveformControl() { - return waveformList; + return waveformCanvas; } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getSelection() + */ @Override public ISelection getSelection() { if (currentTxSelection != null) @@ -554,11 +568,18 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { return new StructuredSelection(); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#setSelection(org.eclipse.jface.viewers.ISelection) + */ @Override public void setSelection(ISelection selection) { setSelection(selection, false); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#setSelection(org.eclipse.jface.viewers.ISelection, boolean) + */ + @Override @SuppressWarnings("unchecked") public void setSelection(ISelection selection, boolean addIfNeeded) { boolean selectionChanged = false; @@ -595,7 +616,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { currentWaveformSelection = null; } if (selectionChanged) { - waveformList.setSelected(currentTxSelection, currentWaveformSelection); + waveformCanvas.setSelected(currentTxSelection, currentWaveformSelection); nameList.setData(SELECTION, currentWaveformSelection); valueList.redraw(); nameList.redraw(); @@ -606,6 +627,10 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { } } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#moveSelection(com.minres.scviewer.database.swt.GotoDirection) + */ + @Override @SuppressWarnings("unchecked") public void moveSelection(GotoDirection direction) { if (currentWaveformSelection instanceof ITxStream) { @@ -669,6 +694,10 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { } } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#moveCursor(com.minres.scviewer.database.swt.GotoDirection) + */ + @Override public void moveCursor(GotoDirection direction) { long time = getCursorTime(); NavigableMap map=null; @@ -682,17 +711,25 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { if(entry!=null) { time=entry.getKey(); setCursorTime(time); - waveformList.reveal(time); - waveformList.redraw(); + waveformCanvas.reveal(time); + waveformCanvas.redraw(); } } } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getStreamList() + */ + @Override public List> getStreamList() { return streams; } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#moveSelected(int) + */ + @Override public void moveSelected(int i) { if(currentWaveformSelection!=null){ ITx selectedTx=currentTxSelection; @@ -719,7 +756,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { if (firstKey == null) firstKey = trackVerticalOffset.firstKey(); Integer lastKey = trackVerticalOffset.floorKey(rect.y + rect.height); - Rectangle subArea = new Rectangle(rect.x, 0, rect.width, waveformList.getTrackHeight()); + Rectangle subArea = new Rectangle(rect.x, 0, rect.width, waveformCanvas.getTrackHeight()); if (lastKey == firstKey) { IWaveform w = trackVerticalOffset.get(firstKey); if (w instanceof ITxStream) @@ -729,7 +766,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { for (Entry> entry : trackVerticalOffset.subMap(firstKey, true, lastKey, true) .entrySet()) { IWaveform w = entry.getValue(); - subArea.height = waveformList.getTrackHeight(); + subArea.height = waveformCanvas.getTrackHeight(); if (w instanceof ITxStream) subArea.height *= ((ITxStream) w).getMaxConcurrency(); drawTextFormat(gc, subArea, entry.getKey(), w.getFullName(), w.equals(wave)); @@ -746,7 +783,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { if (firstKey == null) firstKey = trackVerticalOffset.firstKey(); Integer lastKey = trackVerticalOffset.floorKey(rect.y + rect.height); - Rectangle subArea = new Rectangle(rect.x, 0, rect.width, waveformList.getTrackHeight()); + Rectangle subArea = new Rectangle(rect.x, 0, rect.width, waveformCanvas.getTrackHeight()); if (lastKey == firstKey) { IWaveform w = trackVerticalOffset.get(firstKey); if (w instanceof ITxStream) @@ -756,7 +793,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { for (Entry> entry : trackVerticalOffset.subMap(firstKey, true, lastKey, true) .entrySet()) { IWaveform w = entry.getValue(); - subArea.height = waveformList.getTrackHeight(); + subArea.height = waveformCanvas.getTrackHeight(); if (w instanceof ITxStream) subArea.height *= ((ITxStream) w).getMaxConcurrency(); drawValue(gc, subArea, entry.getKey(), actualValues.get(w), w.equals(wave)); @@ -767,10 +804,10 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { protected void drawValue(GC gc, Rectangle subArea, Integer yOffset, String value, boolean highlite) { int beginIndex=0; - for(int offset=0; offsetindex+1){ final Long oldVal= cursorPainters.get(1+index).getTime(); @@ -821,14 +882,26 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { } } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getCursorTime() + */ + @Override public long getCursorTime(){ return cursorPainters.get(0).getTime(); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getActMarkerTime() + */ + @Override public long getActMarkerTime(){ return getMarkerTime(selectedMarker); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getMarkerTime(int) + */ + @Override public long getMarkerTime(int index){ return cursorPainters.get(index+1).getTime(); } @@ -895,7 +968,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { public void dropAccept(DropTargetEvent event) { Point offset = canvas.toControl(event.x, event.y); - if (event.detail != DND.DROP_MOVE || offset.y > trackVerticalOffset.lastKey() + waveformList.getTrackHeight()) { + if (event.detail != DND.DROP_MOVE || offset.y > trackVerticalOffset.lastKey() + waveformCanvas.getTrackHeight()) { event.detail = DND.DROP_NONE; } } @@ -910,7 +983,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { public void dragStart(DragSourceEvent event) { System.out.println("dragStart"); event.doit = false; - List clicked = waveformList.getClicked(new Point(event.x, event.y)); + List clicked = waveformCanvas.getClicked(new Point(event.x, event.y)); for(Object o:clicked){ if(o instanceof CursorPainter){ LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(o)); @@ -923,7 +996,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { public void dragSetData(DragSourceEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) { - event.data=waveformList.getClicked(new Point(event.x, event.y)); + event.data=waveformCanvas.getClicked(new Point(event.x, event.y)); } } }); @@ -948,7 +1021,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { public void dropAccept(DropTargetEvent event) { Point offset = canvas.toControl(event.x, event.y); - if (event.detail != DND.DROP_MOVE || offset.y > trackVerticalOffset.lastKey() + waveformList.getTrackHeight()) { + if (event.detail != DND.DROP_MOVE || offset.y > trackVerticalOffset.lastKey() + waveformCanvas.getTrackHeight()) { event.detail = DND.DROP_NONE; } } @@ -963,7 +1036,7 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { protected void updateWaveform(final Canvas canvas, DropTargetEvent event, CursorPainter painter) { Point dropPoint = canvas.toControl(event.x, event.y); - long time = waveformList.getTimeForOffset(dropPoint.x); + long time = waveformCanvas.getTimeForOffset(dropPoint.x); final Long oldVal= painter.getTime(); painter.setTime(time); if(painter.id<0){ @@ -986,10 +1059,18 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#addPropertyChangeListener(java.beans.PropertyChangeListener) + */ + @Override public void addPropertyChangeListener(PropertyChangeListener listener) { this.pcs.addPropertyChangeListener(listener); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener) + */ + @Override public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { this.pcs.addPropertyChangeListener(propertyName, listener); } @@ -1002,10 +1083,18 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { return this.pcs.getPropertyChangeListeners(propertyName); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#removePropertyChangeListener(java.beans.PropertyChangeListener) + */ + @Override public void removePropertyChangeListener(PropertyChangeListener listener) { this.pcs.removePropertyChangeListener(listener); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener) + */ + @Override public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { this.pcs.removePropertyChangeListener(propertyName, listener); } @@ -1014,12 +1103,20 @@ public class TxDisplay implements PropertyChangeListener, ISelectionProvider { return this.pcs.hasListeners(propertyName); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getScaledTime(long) + */ + @Override public String getScaledTime(long time) { StringBuilder sb = new StringBuilder(); Double dTime=new Double(time); - return sb.append(dTime/waveformList.getScaleFactorPow10()).append(waveformList.getUnitStr()).toString(); + return sb.append(dTime/waveformCanvas.getScaleFactorPow10()).append(waveformCanvas.getUnitStr()).toString(); } + /* (non-Javadoc) + * @see com.minres.scviewer.database.swt.IWaveformPanel#getZoomLevels() + */ + @Override public String[] getZoomLevels(){ String[] res = new String[WaveformCanvas.unitMultiplier.length*WaveformCanvas.unitString.length]; int index=0; diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/CursorPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/CursorPainter.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/CursorPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/CursorPainter.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/IPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/IPainter.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/IPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/IPainter.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/IWaveformPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/IWaveformPainter.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/IWaveformPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/IWaveformPainter.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/ObservableList.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/ObservableList.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/ObservableList.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/ObservableList.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/RulerPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/RulerPainter.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/RulerPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/RulerPainter.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java similarity index 100% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/TrackPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/TrackPainter.java similarity index 78% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/TrackPainter.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/TrackPainter.java index a02020c..728549c 100644 --- a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/TrackPainter.java +++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/TrackPainter.java @@ -11,6 +11,7 @@ package com.minres.scviewer.database.swt.internal; import java.util.Map.Entry; +import java.util.TreeMap; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.GC; @@ -35,18 +36,19 @@ public class TrackPainter implements IPainter { gc.setBackground(this.waveCanvas.colors[WaveformCanvas.Colors.TRACK_BG_EVEN.ordinal()]); gc.setFillRule(SWT.FILL_EVEN_ODD); gc.fillRectangle(area); + TreeMap offsets = this.waveCanvas.trackVerticalOffset; if(this.waveCanvas.streams.size()>0){ - Integer firstKey=this.waveCanvas.trackVerticalOffset.floorKey(area.y); - if(firstKey==null) firstKey=this.waveCanvas.trackVerticalOffset.firstKey(); - Integer lastKey = this.waveCanvas.trackVerticalOffset.floorKey(area.y+area.height); + Integer firstKey=offsets.floorKey(area.y); + if(firstKey==null) firstKey=offsets.firstKey(); + Integer lastKey = offsets.floorKey(area.y+area.height); Rectangle subArea = new Rectangle(area.x, 0, area.width, 0); if(lastKey==firstKey){ subArea.y=firstKey; - IWaveformPainter p = this.waveCanvas.trackVerticalOffset.get(firstKey); + IWaveformPainter p = offsets.get(firstKey); subArea.height=p.getMinHeight(); p.paintArea(gc, subArea); }else{ - for(Entry entry : this.waveCanvas.trackVerticalOffset.subMap(firstKey, true, lastKey, true).entrySet()){ + for(Entry entry : offsets.subMap(firstKey, true, lastKey, true).entrySet()){ subArea.y=entry.getKey(); subArea.height=entry.getValue().getMinHeight(); entry.getValue().paintArea(gc, subArea); diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java similarity index 99% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java rename to com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java index 810543d..04ddebd 100644 --- a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java +++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java @@ -400,7 +400,7 @@ public class WaveformCanvas extends Canvas { int top = entry.getKey() + trackHeight * tx.getConcurrencyIndex(); int bottom = top + trackHeight; if (top < -origin.y) { - setOrigin(origin.x, -top); + setOrigin(origin.x, -(top-trackHeight)); } else if (bottom > (size.y - origin.y)) { setOrigin(origin.x, size.y - bottom); } diff --git a/com.minres.scviewer.database.swt/src/org/eclipse/wb/swt/SWTResourceManager.java b/com.minres.scviewer.database.ui.swt/src/org/eclipse/wb/swt/SWTResourceManager.java similarity index 100% rename from com.minres.scviewer.database.swt/src/org/eclipse/wb/swt/SWTResourceManager.java rename to com.minres.scviewer.database.ui.swt/src/org/eclipse/wb/swt/SWTResourceManager.java diff --git a/com.minres.scviewer.database.ui/.classpath b/com.minres.scviewer.database.ui/.classpath new file mode 100644 index 0000000..098194c --- /dev/null +++ b/com.minres.scviewer.database.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/com.minres.scviewer.database.ui/.gitignore b/com.minres.scviewer.database.ui/.gitignore new file mode 100644 index 0000000..09e3bc9 --- /dev/null +++ b/com.minres.scviewer.database.ui/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/target/ diff --git a/com.minres.scviewer.database.ui/.project b/com.minres.scviewer.database.ui/.project new file mode 100644 index 0000000..4133603 --- /dev/null +++ b/com.minres.scviewer.database.ui/.project @@ -0,0 +1,28 @@ + + + com.minres.scviewer.database.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/com.minres.scviewer.database.ui/.settings/org.eclipse.jdt.core.prefs b/com.minres.scviewer.database.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f42de36 --- /dev/null +++ b/com.minres.scviewer.database.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/com.minres.scviewer.database.ui/.settings/org.eclipse.pde.core.prefs b/com.minres.scviewer.database.ui/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 0000000..f29e940 --- /dev/null +++ b/com.minres.scviewer.database.ui/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/com.minres.scviewer.database.ui/META-INF/MANIFEST.MF b/com.minres.scviewer.database.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000..56e5712 --- /dev/null +++ b/com.minres.scviewer.database.ui/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Database UI +Bundle-SymbolicName: com.minres.scviewer.database.ui +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: MINRES Technologies GmbH +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Export-Package: com.minres.scviewer.database.ui +Require-Bundle: com.minres.scviewer.database, + org.eclipse.jface diff --git a/com.minres.scviewer.database.ui/build.properties b/com.minres.scviewer.database.ui/build.properties new file mode 100644 index 0000000..34d2e4d --- /dev/null +++ b/com.minres.scviewer.database.ui/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/com.minres.scviewer.database.swt/pom.xml b/com.minres.scviewer.database.ui/pom.xml similarity index 82% rename from com.minres.scviewer.database.swt/pom.xml rename to com.minres.scviewer.database.ui/pom.xml index ab7a3e4..e7f049f 100644 --- a/com.minres.scviewer.database.swt/pom.xml +++ b/com.minres.scviewer.database.ui/pom.xml @@ -1,6 +1,6 @@ 4.0.0 - com.minres.scviewer.database.swt + com.minres.scviewer.database.ui 1.0.0-SNAPSHOT eclipse-plugin @@ -9,5 +9,4 @@ 1.0.0-SNAPSHOT ../com.minres.scviewer.parent - com.minres.scviewer - \ No newline at end of file + \ No newline at end of file diff --git a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/GotoDirection.java b/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/GotoDirection.java similarity index 87% rename from com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/GotoDirection.java rename to com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/GotoDirection.java index e87d8b3..4d3cd0b 100644 --- a/com.minres.scviewer.database.swt/src/com/minres/scviewer/database/swt/GotoDirection.java +++ b/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/GotoDirection.java @@ -8,6 +8,6 @@ * Contributors: * MINRES Technologies GmbH - initial API and implementation *******************************************************************************/ -package com.minres.scviewer.database.swt; +package com.minres.scviewer.database.ui; public enum GotoDirection {PREV, NEXT} \ No newline at end of file diff --git a/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/IWaveformPanel.java b/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/IWaveformPanel.java new file mode 100644 index 0000000..83e5417 --- /dev/null +++ b/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/IWaveformPanel.java @@ -0,0 +1,75 @@ +package com.minres.scviewer.database.ui; + +import java.beans.PropertyChangeListener; +import java.util.List; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.swt.widgets.Control; + +import com.minres.scviewer.database.IWaveform; +import com.minres.scviewer.database.IWaveformEvent; + +public interface IWaveformPanel extends PropertyChangeListener, ISelectionProvider{ + + String CURSOR_PROPERTY = "cursor_time"; + String MARKER_PROPERTY = "marker_time"; + + void addSelectionChangedListener(ISelectionChangedListener listener); + + void removeSelectionChangedListener(ISelectionChangedListener listener); + + Control getControl(); + + Control getNameControl(); + + Control getValueControl(); + + Control getWaveformControl(); + + ISelection getSelection(); + + void setSelection(ISelection selection); + + void setSelection(ISelection selection, boolean addIfNeeded); + + void moveSelection(GotoDirection direction); + + void moveCursor(GotoDirection direction); + + List> getStreamList(); + + void moveSelected(int i); + + long getMaxTime(); + + void setMaxTime(long maxTime); + + void setZoomLevel(int scale); + + int getZoomLevel(); + + void setCursorTime(long time); + + void setMarkerTime(long time, int index); + + long getCursorTime(); + + long getActMarkerTime(); + + long getMarkerTime(int index); + + void addPropertyChangeListener(PropertyChangeListener listener); + + void addPropertyChangeListener(String propertyName, PropertyChangeListener listener); + + void removePropertyChangeListener(PropertyChangeListener listener); + + void removePropertyChangeListener(String propertyName, PropertyChangeListener listener); + + String getScaledTime(long time); + + String[] getZoomLevels(); + +} \ No newline at end of file diff --git a/com.minres.scviewer.e4.application/Application.e4xmi b/com.minres.scviewer.e4.application/Application.e4xmi index 2532010..10cf343 100644 --- a/com.minres.scviewer.e4.application/Application.e4xmi +++ b/com.minres.scviewer.e4.application/Application.e4xmi @@ -5,7 +5,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -74,7 +74,6 @@ - diff --git a/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF b/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF index 503032b..2b30b1d 100644 --- a/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF +++ b/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF @@ -14,7 +14,7 @@ Require-Bundle: javax.inject;bundle-version="1.0.0", org.eclipse.e4.core.di;bundle-version="1.5.0", org.eclipse.e4.ui.di;bundle-version="1.1.0", org.eclipse.e4.core.contexts;bundle-version="1.4.0", - com.minres.scviewer.database.swt;bundle-version="1.0.0", + com.minres.scviewer.database.ui.swt;bundle-version="1.0.0", com.minres.scviewer.database;bundle-version="1.0.0", org.eclipse.equinox.ds;bundle-version="1.4.300", org.eclipse.equinox.util;bundle-version="1.0.500", @@ -26,7 +26,8 @@ Require-Bundle: javax.inject;bundle-version="1.0.0", com.google.guava, org.eclipse.equinox.preferences, org.eclipse.core.expressions, - org.eclipse.e4.core.commands;bundle-version="0.11.0" + org.eclipse.e4.core.commands;bundle-version="0.11.0", + com.minres.scviewer.database.ui Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Import-Package: com.minres.scviewer.database, javax.inject;version="1.0.0" diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/E4LifeCycle.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/E4LifeCycle.java index e8c0efb..8a617b8 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/E4LifeCycle.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/E4LifeCycle.java @@ -94,13 +94,14 @@ public class E4LifeCycle { @Inject EModelService modelService; @Inject EPartService partService; public void openViewForFile(String name){ + File file = new File(name); MPart part = partService.createPart("com.minres.scviewer.e4.application.partdescriptor.waveformviewer"); - part.setLabel(name); + part.setLabel(file.getName()); MPartStack partStack = (MPartStack)modelService.find("org.eclipse.editorss", app); partStack.getChildren().add(part); partService.showPart(part, PartState.ACTIVATE); IEclipseContext ctx=part.getContext(); - ctx.modify("input", new File(name)); + ctx.modify("input", file); ctx.declareModifiable("input"); } } diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateEvent.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateEvent.java index 1e19253..8a528d0 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateEvent.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateEvent.java @@ -22,7 +22,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import com.minres.scviewer.database.ITx; import com.minres.scviewer.database.IWaveform; -import com.minres.scviewer.database.swt.GotoDirection; +import com.minres.scviewer.database.ui.GotoDirection; import com.minres.scviewer.e4.application.parts.WaveformViewerPart; public class NavigateEvent { diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateTrans.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateTrans.java index e6e5341..28aeb58 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateTrans.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/NavigateTrans.java @@ -21,7 +21,7 @@ import org.eclipse.e4.ui.workbench.modeling.ESelectionService; import org.eclipse.jface.viewers.IStructuredSelection; import com.minres.scviewer.database.ITx; -import com.minres.scviewer.database.swt.GotoDirection; +import com.minres.scviewer.database.ui.GotoDirection; import com.minres.scviewer.e4.application.parts.WaveformViewerPart; public class NavigateTrans { diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java index 203ba8c..785596c 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/OpenHandler.java @@ -39,7 +39,7 @@ public class OpenHandler { // part.setContributionURI("bundleclass://com.minres.scviewer.e4.application/"+ // WaveformViewerPart.class.getName()); MPart part = partService .createPart("com.minres.scviewer.e4.application.partdescriptor.waveformviewer"); - part.setLabel(fileName); + part.setLabel(file.getName()); MPartStack partStack = (MPartStack)modelService.find("org.eclipse.editorss", app); diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewerPart.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewerPart.java index d529b36..54c9d2b 100644 --- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewerPart.java +++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewerPart.java @@ -52,8 +52,9 @@ import com.minres.scviewer.database.IWaveform; import com.minres.scviewer.database.IWaveformDb; import com.minres.scviewer.database.IWaveformDbFactory; import com.minres.scviewer.database.IWaveformEvent; -import com.minres.scviewer.database.swt.GotoDirection; import com.minres.scviewer.database.swt.TxDisplay; +import com.minres.scviewer.database.ui.GotoDirection; +import com.minres.scviewer.database.ui.IWaveformPanel; import com.minres.scviewer.e4.application.internal.WaveStatusBarControl; public class WaveformViewerPart { @@ -70,7 +71,7 @@ public class WaveformViewerPart { public static final String WAVE_ACTION_ID = "com.minres.scviewer.ui.action.AddToWave"; - private TxDisplay txDisplay; + private IWaveformPanel waveformPane; @Inject private IEventBroker eventBroker; @@ -98,41 +99,41 @@ public class WaveformViewerPart { myParent.getDisplay().syncExec(new Runnable() { @Override public void run() { - txDisplay.setMaxTime(database.getMaxTime()); + waveformPane.setMaxTime(database.getMaxTime()); } }); } } }); - txDisplay = new TxDisplay(parent); - txDisplay.setMaxTime(0); - txDisplay.addPropertyChangeListener(TxDisplay.CURSOR_PROPERTY, new PropertyChangeListener() { + waveformPane = new TxDisplay(parent); + waveformPane.setMaxTime(0); + waveformPane.addPropertyChangeListener(IWaveformPanel.CURSOR_PROPERTY, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { Long time = (Long) evt.getNewValue(); - eventBroker.post(WaveStatusBarControl.CURSOR_TIME, txDisplay.getScaledTime(time)); - long marker=txDisplay.getActMarkerTime(); - eventBroker.post(WaveStatusBarControl.MARKER_DIFF, txDisplay.getScaledTime(time-marker)); + eventBroker.post(WaveStatusBarControl.CURSOR_TIME, waveformPane.getScaledTime(time)); + long marker=waveformPane.getActMarkerTime(); + eventBroker.post(WaveStatusBarControl.MARKER_DIFF, waveformPane.getScaledTime(time-marker)); } }); - txDisplay.addPropertyChangeListener(TxDisplay.MARKER_PROPERTY, new PropertyChangeListener() { + waveformPane.addPropertyChangeListener(IWaveformPanel.MARKER_PROPERTY, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { Long time = (Long) evt.getNewValue(); - eventBroker.post(WaveStatusBarControl.MARKER_TIME, txDisplay.getScaledTime(time)); - long cursor=txDisplay.getCursorTime(); - eventBroker.post(WaveStatusBarControl.MARKER_DIFF, txDisplay.getScaledTime(cursor-time)); + eventBroker.post(WaveStatusBarControl.MARKER_TIME, waveformPane.getScaledTime(time)); + long cursor=waveformPane.getCursorTime(); + eventBroker.post(WaveStatusBarControl.MARKER_DIFF, waveformPane.getScaledTime(cursor-time)); } }); - txDisplay.addSelectionChangedListener(new ISelectionChangedListener() { + waveformPane.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { if(event.getSelection() instanceof IStructuredSelection) selectionService.setSelection(event.getSelection()); } }); - zoomLevel=txDisplay.getZoomLevels(); + zoomLevel=waveformPane.getZoomLevels(); filesToLoad=new ArrayList(); persistedState = part.getPersistedState(); Integer files = persistedState.containsKey(DATABASE_FILE+"S")?Integer.parseInt(persistedState.get(DATABASE_FILE+"S")):0; @@ -141,10 +142,10 @@ public class WaveformViewerPart { } if(filesToLoad.size()>0) loadDatabase(); - eventBroker.post(WaveStatusBarControl.ZOOM_LEVEL, zoomLevel[txDisplay.getZoomLevel()]); - menuService.registerContextMenu(txDisplay.getNameControl(), "com.minres.scviewer.e4.application.popupmenu.namecontext"); - menuService.registerContextMenu(txDisplay.getValueControl(), "com.minres.scviewer.e4.application.popupmenu.namecontext"); - menuService.registerContextMenu(txDisplay.getWaveformControl(), "com.minres.scviewer.e4.application.popupmenu.wavecontext"); + eventBroker.post(WaveStatusBarControl.ZOOM_LEVEL, zoomLevel[waveformPane.getZoomLevel()]); + menuService.registerContextMenu(waveformPane.getNameControl(), "com.minres.scviewer.e4.application.popupmenu.namecontext"); + menuService.registerContextMenu(waveformPane.getValueControl(), "com.minres.scviewer.e4.application.popupmenu.namecontext"); + menuService.registerContextMenu(waveformPane.getWaveformControl(), "com.minres.scviewer.e4.application.popupmenu.wavecontext"); } protected void loadDatabase() { @@ -158,7 +159,7 @@ public class WaveformViewerPart { for(File file: filesToLoad){ //TimeUnit.SECONDS.sleep(2); database.load(file); - database.addPropertyChangeListener(txDisplay); + database.addPropertyChangeListener(waveformPane); subMonitor.worked(1); if(monitor.isCanceled()) return Status.CANCEL_STATUS; } @@ -180,7 +181,7 @@ public class WaveformViewerPart { myParent.getDisplay().asyncExec(new Runnable() { @Override public void run() { - txDisplay.setMaxTime(database.getMaxTime()); + waveformPane.setMaxTime(database.getMaxTime()); restoreState(); } }); @@ -234,9 +235,9 @@ public class WaveformViewerPart { persistedState.put(DATABASE_FILE+index, file.getAbsolutePath()); index++; } - persistedState.put(SHOWN_WAVEFORM+"S", Integer.toString(txDisplay.getStreamList().size())); + persistedState.put(SHOWN_WAVEFORM+"S", Integer.toString(waveformPane.getStreamList().size())); index=0; - for(IWaveform waveform:txDisplay.getStreamList()){ + for(IWaveform waveform:waveformPane.getStreamList()){ persistedState.put(SHOWN_WAVEFORM+index, waveform.getFullName()); index++; } @@ -250,17 +251,17 @@ public class WaveformViewerPart { IWaveform waveform = database.getStreamByName(persistedState.get(SHOWN_WAVEFORM+i)); if(waveform!=null) res.add(waveform); } - if(res.size()>0) txDisplay.getStreamList().addAll(res); + if(res.size()>0) waveformPane.getStreamList().addAll(res); } private void updateAll() { eventBroker.post(ACTIVE_WAVEFORMVIEW, this); - eventBroker.post(WaveStatusBarControl.ZOOM_LEVEL, zoomLevel[txDisplay.getZoomLevel()]); - long cursor=txDisplay.getCursorTime(); - long marker=txDisplay.getActMarkerTime(); - eventBroker.post(WaveStatusBarControl.CURSOR_TIME, txDisplay.getScaledTime(cursor)); - eventBroker.post(WaveStatusBarControl.MARKER_TIME, txDisplay.getScaledTime(marker)); - eventBroker.post(WaveStatusBarControl.MARKER_DIFF, txDisplay.getScaledTime(cursor-marker)); + eventBroker.post(WaveStatusBarControl.ZOOM_LEVEL, zoomLevel[waveformPane.getZoomLevel()]); + long cursor=waveformPane.getCursorTime(); + long marker=waveformPane.getActMarkerTime(); + eventBroker.post(WaveStatusBarControl.CURSOR_TIME, waveformPane.getScaledTime(cursor)); + eventBroker.post(WaveStatusBarControl.MARKER_TIME, waveformPane.getScaledTime(marker)); + eventBroker.post(WaveStatusBarControl.MARKER_DIFF, waveformPane.getScaledTime(cursor-marker)); } @Inject @Optional @@ -327,20 +328,20 @@ public class WaveformViewerPart { List> streams= new LinkedList<>(); for(IWaveform stream:iWaveforms) streams.add(stream); - IStructuredSelection selection = (IStructuredSelection) txDisplay.getSelection(); + IStructuredSelection selection = (IStructuredSelection) waveformPane.getSelection(); if(selection.size()==0) - txDisplay.getStreamList().addAll(streams); + waveformPane.getStreamList().addAll(streams); else { IWaveform selectedStream = (selection.getFirstElement() instanceof ITx)? ((ITx)selection.getFirstElement()).getStream():(IWaveform)selection.getFirstElement(); - int index = txDisplay.getStreamList().indexOf(selectedStream); + int index = waveformPane.getStreamList().indexOf(selectedStream); if(!insert) index++; - txDisplay.getStreamList().addAll(index, streams); + waveformPane.getStreamList().addAll(index, streams); } } public void removeStreamFromList(IWaveform obj){ - txDisplay.getStreamList().remove(obj); + waveformPane.getStreamList().remove(obj); } public void removeStreamsFromList(IWaveform[] iWaveforms){ @@ -349,43 +350,43 @@ public class WaveformViewerPart { } public List> getStreamList(){ - return txDisplay.getStreamList(); + return waveformPane.getStreamList(); } public void moveSelected(int i) { - txDisplay.moveSelected(i); + waveformPane.moveSelected(i); } public void moveSelection(GotoDirection direction) { - txDisplay.moveSelection(direction); + waveformPane.moveSelection(direction); } public void moveCursor(GotoDirection direction) { - txDisplay.moveCursor(direction); } + waveformPane.moveCursor(direction); } public void setZoomLevel(Integer level) { if(level<0) level=0; if(level>zoomLevel.length-1) level=zoomLevel.length-1; - txDisplay.setZoomLevel(level); + waveformPane.setZoomLevel(level); updateAll(); } public void setZoomFit() { - txDisplay.setZoomLevel(6); + waveformPane.setZoomLevel(6); updateAll(); } public int getZoomLevel() { - return txDisplay.getZoomLevel(); + return waveformPane.getZoomLevel(); } public ISelection getSelection() { - return txDisplay.getSelection(); + return waveformPane.getSelection(); } public void setSelection(IStructuredSelection structuredSelection) { - txDisplay.setSelection(structuredSelection, true); + waveformPane.setSelection(structuredSelection, true); } public String getScaledTime(Long time) { - return txDisplay.getScaledTime(time); + return waveformPane.getScaledTime(time); } } diff --git a/com.minres.scviewer.e4.product/SCViewer.launch b/com.minres.scviewer.e4.product/SCViewer.launch index 950fc88..c5fab17 100644 --- a/com.minres.scviewer.e4.product/SCViewer.launch +++ b/com.minres.scviewer.e4.product/SCViewer.launch @@ -23,7 +23,7 @@ - + diff --git a/com.minres.scviewer.e4.product/scviewer.product b/com.minres.scviewer.e4.product/scviewer.product index af56310..9f47bdd 100644 --- a/com.minres.scviewer.e4.product/scviewer.product +++ b/com.minres.scviewer.e4.product/scviewer.product @@ -38,8 +38,9 @@ - + + diff --git a/com.minres.scviewer.feature/feature.xml b/com.minres.scviewer.feature/feature.xml index dc97d88..289e335 100644 --- a/com.minres.scviewer.feature/feature.xml +++ b/com.minres.scviewer.feature/feature.xml @@ -45,7 +45,8 @@ http://www.eclipse.org/legal/epl-v10.html - + + @@ -88,7 +89,14 @@ http://www.eclipse.org/legal/epl-v10.html version="0.0.0"/> + + ../com.minres.scviewer.database.sqlite ../com.minres.scviewer.database.text ../com.minres.scviewer.database.vcd - ../com.minres.scviewer.database.swt + ../com.minres.scviewer.database.ui + ../com.minres.scviewer.database.ui.swt ../com.minres.scviewer.e4.application ../com.minres.scviewer.ui - ../com.minres.scviewer.feature + ../com.minres.scviewer.feature ../com.minres.scviewer.updateSite ../com.minres.scviewer.e4.product 0.23.1 - 2.8.0-01 - + ${tycho-version} + 2.8.0-01 + 2.1.8-01 - + @@ -82,6 +84,59 @@ + + + org.eclipse.tycho.extras + tycho-source-feature-plugin + ${tycho-extras-version} + + + + source-feature + package + + source-feature + + + + + + + + + + + + + + org.eclipse.tycho + tycho-source-plugin + ${tycho-version} + + + + plugin-source + + plugin-source + + + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + attached-p2-metadata + package + + p2-metadata + + + + \ No newline at end of file diff --git a/com.minres.scviewer.ui/META-INF/MANIFEST.MF b/com.minres.scviewer.ui/META-INF/MANIFEST.MF index 9d1cdbc..e0f930a 100644 --- a/com.minres.scviewer.ui/META-INF/MANIFEST.MF +++ b/com.minres.scviewer.ui/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 1.0.0.qualifier Bundle-Activator: com.minres.scviewer.ui.TxEditorPlugin Bundle-Vendor: MINRES Technologies GmbH Require-Bundle: com.minres.scviewer.database;bundle-version="1.0.0", - com.minres.scviewer.database.swt;bundle-version="1.0.0", + com.minres.scviewer.database.ui;bundle-version="1.0.0", + com.minres.scviewer.database.ui.swt;bundle-version="1.0.0", org.eclipse.core.runtime, org.eclipse.core.resources, org.eclipse.jface.text, diff --git a/com.minres.scviewer.ui/src/com/minres/scviewer/ui/TxEditorPart.java b/com.minres.scviewer.ui/src/com/minres/scviewer/ui/TxEditorPart.java index 31e608a..5c39c8c 100644 --- a/com.minres.scviewer.ui/src/com/minres/scviewer/ui/TxEditorPart.java +++ b/com.minres.scviewer.ui/src/com/minres/scviewer/ui/TxEditorPart.java @@ -48,8 +48,9 @@ import com.minres.scviewer.database.IWaveform; import com.minres.scviewer.database.IWaveformDb; import com.minres.scviewer.database.IWaveformDbFactory; import com.minres.scviewer.database.IWaveformEvent; -import com.minres.scviewer.database.swt.GotoDirection; import com.minres.scviewer.database.swt.TxDisplay; +import com.minres.scviewer.database.ui.GotoDirection; +import com.minres.scviewer.database.ui.IWaveformPanel; import com.minres.scviewer.ui.views.TxOutlinePage; public class TxEditorPart extends EditorPart implements ITabbedPropertySheetPageContributor { @@ -112,7 +113,7 @@ public class TxEditorPart extends EditorPart implements ITabbedPropertySheetPage }); txDisplay = new TxDisplay(parent); txDisplay.setMaxTime(0); - txDisplay.addPropertyChangeListener(TxDisplay.CURSOR_PROPERTY, new PropertyChangeListener() { + txDisplay.addPropertyChangeListener(IWaveformPanel.CURSOR_PROPERTY, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { Long time = (Long) evt.getNewValue(); diff --git a/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoNext.java b/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoNext.java index a4db93e..2e8b036 100644 --- a/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoNext.java +++ b/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoNext.java @@ -16,7 +16,7 @@ import org.eclipse.core.commands.ExecutionException; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.handlers.HandlerUtil; -import com.minres.scviewer.database.swt.GotoDirection; +import com.minres.scviewer.database.ui.GotoDirection; import com.minres.scviewer.ui.TxEditorPart; public class GotoNext extends AbstractHandler { diff --git a/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoPrev.java b/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoPrev.java index 7900321..b1f5f72 100644 --- a/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoPrev.java +++ b/com.minres.scviewer.ui/src/com/minres/scviewer/ui/handler/GotoPrev.java @@ -16,7 +16,7 @@ import org.eclipse.core.commands.ExecutionException; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.handlers.HandlerUtil; -import com.minres.scviewer.database.swt.GotoDirection; +import com.minres.scviewer.database.ui.GotoDirection; import com.minres.scviewer.ui.TxEditorPart; public class GotoPrev extends AbstractHandler { diff --git a/com.minres.scviewer.updateSite/pom.xml b/com.minres.scviewer.updateSite/pom.xml index 9262df2..eb71dbd 100644 --- a/com.minres.scviewer.updateSite/pom.xml +++ b/com.minres.scviewer.updateSite/pom.xml @@ -17,6 +17,4 @@ --> - com.minres.scviewer - 1.0.0-SNAPSHOT - \ No newline at end of file + \ No newline at end of file