diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java index 7a817d3..7243110 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ArrowPainter.java @@ -110,48 +110,23 @@ public class ArrowPainter implements IPainter { protected void deriveGeom(Collection relations, List res, boolean useTarget) { for (ITxRelation iTxRelation : relations) { ITx otherTx = useTarget ? iTxRelation.getTarget() : iTxRelation.getSource(); - Rectangle bb = createLinkEntry(otherTx, otherTx.getStream()); - if(bb!=null){ - res.add(new LinkEntry(bb, iTxRelation.getRelationType())); - return; - } else { - for(IHierNode gen:otherTx.getStream().getChildNodes()) { - if(gen instanceof IWaveform) { - bb = createLinkEntry(otherTx, (IWaveform) gen); - if(bb!=null){ - res.add(new LinkEntry(bb, iTxRelation.getRelationType())); - return; - } + for(IWaveform iWaveform: new IWaveform[]{otherTx.getStream(), otherTx.getGenerator()}) { + if (waveCanvas.wave2painterMap.containsKey(iWaveform)) { + IWaveformPainter painter = waveCanvas.wave2painterMap.get(iWaveform); + if(painter!=null) { + int height = waveCanvas.styleProvider.getTrackHeight(); + Rectangle bb = new Rectangle( + (int) (otherTx.getBeginTime() / scaleFactor), + waveCanvas.rulerHeight + painter.getVerticalOffset() + height * getConcurrencyIndex(otherTx), + (int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor), + height); + res.add(new LinkEntry(bb, iTxRelation.getRelationType())); } } } } } - private Rectangle createLinkEntry(ITx otherTx, IWaveform iWaveform) { - if (waveCanvas.wave2painterMap.containsKey(iWaveform)) { - IWaveformPainter painter = waveCanvas.wave2painterMap.get(otherTx.getStream()); - if(painter==null) { - for(IHierNode gen:otherTx.getStream().getChildNodes()) { - if(gen instanceof IWaveform) { - painter = waveCanvas.wave2painterMap.get(gen); - if(painter!=null) - break; - } - } - } - if(painter!=null) { - int height = waveCanvas.styleProvider.getTrackHeight(); - return new Rectangle( - (int) (otherTx.getBeginTime() / scaleFactor), - waveCanvas.rulerHeight + painter.getVerticalOffset() + height * getConcurrencyIndex(otherTx), - (int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor), - height); - } - } - return null; - } - @Override public void paintArea(Projection proj, Rectangle clientRect) { yCtrlOffset = waveCanvas.styleProvider.getTrackHeight()/2; 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 54e71b3..40b389c 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 @@ -1035,15 +1035,20 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis boolean foundZoom=false; //try to find existing zoomlevel where scaleFactor*clientAreaWidth >= maxTime, if one is found set it as new zoomlevel - for (int level=0; level= maxTime) { - setZoomLevel(level); - foundZoom=true; - break; - } - } + int magnitude_factor=1; + for(int magnitude=0; magnitude= maxTime) { + setZoomLevel(level); + foundZoom=true; + break; + } + } + if(foundZoom) break; + magnitude_factor*=1000; + } //if no zoom level is found, set biggest one available if(!foundZoom) setZoomLevel(Constants.UNIT_MULTIPLIER.length*Constants.UNIT_STRING.length-1); diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbContentProvider.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbContentProvider.java index 8be23c4..668cf08 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbContentProvider.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbContentProvider.java @@ -52,9 +52,7 @@ public class TxDbContentProvider implements ITreeContentProvider { */ @Override public Object[] getElements(Object inputElement) { - if(tableEntries && inputElement instanceof IWaveformDb){ - return new Object[]{}; - }else if(inputElement instanceof IHierNode){ + if(inputElement instanceof IHierNode){ // make a copy as the laoder might continue to add waveforms ArrayList nodes = new ArrayList<>(((IHierNode)inputElement).getChildNodes()); return nodes.stream().filter(n -> diff --git a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000005.sst b/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000005.sst deleted file mode 100644 index 425b1dd..0000000 Binary files a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000005.sst and /dev/null differ diff --git a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000046.log b/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000046.log deleted file mode 100644 index 9e0f96a..0000000 Binary files a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/000046.log and /dev/null differ diff --git a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/CURRENT b/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/CURRENT deleted file mode 100644 index 800d995..0000000 --- a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/CURRENT +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000045 diff --git a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOCK b/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOCK deleted file mode 100644 index e69de29..0000000 diff --git a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOG b/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOG deleted file mode 100644 index 742e653..0000000 --- a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/LOG +++ /dev/null @@ -1 +0,0 @@ -2018/11/03-15:38:59.715484 139851522529088Delete type=3 #1 diff --git a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/MANIFEST-000045 b/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/MANIFEST-000045 deleted file mode 100644 index 0f6af62..0000000 Binary files a/tests/com.minres.scviewer.database.test/inputs/my_ldb.txldb/MANIFEST-000045 and /dev/null differ