diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java index f1fc0ab..e8dbd1d 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/TrackEntry.java @@ -17,7 +17,6 @@ public class TrackEntry { IWaveformStyleProvider styleProvider; - public enum ValueDisplay { DEFAULT, SIGNED, UNSIGNED @@ -49,10 +48,6 @@ public class TrackEntry { selected=false; } - public IWaveform getWaveform(){ - return waveform; - } - @Override public boolean equals(Object obj) { if(obj instanceof TrackEntry){ diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/Constants.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/Constants.java index 31b43eb..7e8563f 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/Constants.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/Constants.java @@ -2,11 +2,13 @@ package com.minres.scviewer.database.ui.swt; public class Constants { - public static final String[] unitString={"fs", "ps", "ns", "us", "ms"};//, "s"}; + public static final String[] UNIT_STRING={"fs", "ps", "ns", "us", "ms"};//, "s"}; - public static final int[] unitMultiplier={1, 3, 10, 30, 100, 300}; + public static final int[] UNIT_MULTIPLIER={1, 3, 10, 30, 100, 300}; public static final String CONTENT_PROVIDER_TAG = "TOOLTIP_CONTENT_PROVIDER"; public static final String HELP_PROVIDER_TAG = "TOOLTIP_HELP_PROVIDER"; + + private Constants() {} } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DatabaseUiPlugin.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DatabaseUiPlugin.java index f274d1d..26fa9ac 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DatabaseUiPlugin.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/DatabaseUiPlugin.java @@ -16,12 +16,14 @@ import org.eclipse.core.runtime.Status; import org.osgi.framework.BundleContext; public class DatabaseUiPlugin extends Plugin { - - public void start(BundleContext context) throws Exception { - getLog().log(new Status(IStatus.OK, "org.eclipse.e4.core", "Starting org.eclipse.e4.core bundle...")); - } - - public void stop(BundleContext context) throws Exception { - getLog().log(new Status(IStatus.OK, "org.eclipse.e4.core", "Stopping org.eclipse.e4.core bundle...")); - } + + @Override + public void start(BundleContext context) throws Exception { + getLog().log(new Status(IStatus.OK, "org.eclipse.e4.core", "Starting org.eclipse.e4.core bundle...")); + } + + @Override + public void stop(BundleContext context) throws Exception { + getLog().log(new Status(IStatus.OK, "org.eclipse.e4.core", "Stopping org.eclipse.e4.core bundle...")); + } } \ 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 1ab88e6..a0a1e85 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 @@ -1,6 +1,6 @@ package com.minres.scviewer.database.ui.swt; -import java.util.HashMap; +import java.util.Map; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; @@ -54,7 +54,7 @@ public class DefaultWaveformStyleProvider implements IWaveformStyleProvider { * needs redraw() afterwards * @param colourMap */ - public void initColors(HashMap colourMap) { + public void initColors(Map colourMap) { Display d = parent.getDisplay(); if (colourMap != null) { for (WaveformColors c : WaveformColors.values()) { @@ -80,7 +80,6 @@ public class DefaultWaveformStyleProvider implements IWaveformStyleProvider { } @Override public Color getColor(WaveformColors type) { - // TODO Auto-generated method stub return colors[type.ordinal()]; } @Override 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 61d5cfd..4e21fba 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 @@ -28,7 +28,7 @@ import com.minres.scviewer.database.ui.WaveformColors; public class ArrowPainter implements IPainter { - private final int xCtrlOffset = 50; + private static final float X_CTRL_OFFSET = 50; private int yCtrlOffset = 30; @@ -151,10 +151,10 @@ public class ArrowPainter implements IPainter { path.moveTo(point1.x, point1.y); if (point1.y == point2.y) { Point center = new Point((point1.x + point2.x) / 2, point1.y - yCtrlOffset); - path.cubicTo(point1.x + xCtrlOffset, point1.y, center.x - xCtrlOffset, center.y, center.x, center.y); - path.cubicTo(center.x + xCtrlOffset, center.y, point2.x - xCtrlOffset, point2.y, point2.x, point2.y); + path.cubicTo(point1.x + X_CTRL_OFFSET, point1.y, center.x - X_CTRL_OFFSET, center.y, center.x, center.y); + path.cubicTo(center.x + X_CTRL_OFFSET, center.y, point2.x - X_CTRL_OFFSET, point2.y, point2.x, point2.y); } else - path.cubicTo(point1.x + xCtrlOffset, point1.y, point2.x - xCtrlOffset, point2.y, point2.x, point2.y); + path.cubicTo(point1.x + X_CTRL_OFFSET, point1.y, point2.x - X_CTRL_OFFSET, point2.y, point2.x, point2.y); proj.setAntialias(SWT.ON); proj.setForeground(fgColor); @@ -167,8 +167,8 @@ public class ArrowPainter implements IPainter { } class LinkEntry { - public Rectangle rectangle; - public RelationType relationType; + public final Rectangle rectangle; + public final RelationType relationType; public LinkEntry(Rectangle rectangle, RelationType relationType) { super(); diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/CursorPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/CursorPainter.java index e0778bb..a5dcde9 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/CursorPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/CursorPainter.java @@ -63,7 +63,7 @@ public class CursorPainter implements IPainter, ICursor { public void paintArea(Projection proj, Rectangle clientRect) { Rectangle area = proj.unProject(clientRect); - if(this.waveCanvas.painterList.size()>0){ + if(!waveCanvas.painterList.isEmpty()){ long scaleFactor=waveCanvas.getScaleFactor(); long beginPos = area.x; @@ -83,7 +83,7 @@ public class CursorPainter implements IPainter, ICursor { proj.drawLine(x, top, x, area.y+area.height); proj.setBackground(drawColor); proj.setForeground(textColor); - Double dTime=new Double(time); + double dTime=time; proj.drawText((dTime/waveCanvas.getScaleFactorPow10())+waveCanvas.getUnitStr(), x+1, top); } } 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 9adfe03..21f90d4 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 @@ -27,7 +27,7 @@ public class ObservableList implements List { public static final String CONTENT_PROPERTY = "content"; public ObservableList() { - this(new ArrayList()); + this(new ArrayList<>()); } public ObservableList(List delegate) { @@ -100,7 +100,7 @@ public class ObservableList implements List { boolean success = this.delegate.addAll(c); if ((success) && (c != null)) { - List values = new ArrayList(); + List values = new ArrayList<>(); for (Iterator i = c.iterator(); i.hasNext();) { values.add(i.next()); } @@ -118,7 +118,7 @@ public class ObservableList implements List { boolean success = this.delegate.addAll(index, c); if ((success) && (c != null)) { - List values = new ArrayList(); + List values = new ArrayList<>(); for (Iterator i = c.iterator(); i.hasNext();) { values.add(i.next()); } @@ -133,7 +133,7 @@ public class ObservableList implements List { public void clear() { int oldSize = size(); - List values = new ArrayList(); + List values = new ArrayList<>(); values.addAll(this.delegate); this.delegate.clear(); if (!(values.isEmpty())) { @@ -215,14 +215,12 @@ public class ObservableList implements List { return false; } - List values = new ArrayList(); - if (c != null) { - for (Iterator i = c.iterator(); i.hasNext();) { - @SuppressWarnings("unchecked") - E element = (E) i.next(); - if (this.delegate.contains(element)) { - values.add(element); - } + List values = new ArrayList<>(); + for (Iterator i = c.iterator(); i.hasNext();) { + @SuppressWarnings("unchecked") + E element = (E) i.next(); + if (this.delegate.contains(element)) { + values.add(element); } } @@ -241,14 +239,12 @@ public class ObservableList implements List { return false; } - List values = new ArrayList(); + List values = new ArrayList<>(); Iterator i; - if (c != null) { - for (i = this.delegate.iterator(); i.hasNext();) { - E element = i.next(); - if (!(c.contains(element))) { - values.add(element); - } + for (i = this.delegate.iterator(); i.hasNext();) { + E element = i.next(); + if (!(c.contains(element))) { + values.add(element); } } @@ -327,7 +323,7 @@ public class ObservableList implements List { */ private static final long serialVersionUID = 7819626246672640599L; - private List values = new ArrayList(); + private List values = new ArrayList<>(); public MultiElementUpdatedEvent(Object source, List values) { super(source, ObservableList.ChangeType.oldValue, ObservableList.ChangeType.newValue, 0, @@ -336,7 +332,7 @@ public class ObservableList implements List { this.values.addAll(values); } - public List getValues() { + public List getValues() { return Collections.unmodifiableList(this.values); } } @@ -347,7 +343,7 @@ public class ObservableList implements List { */ private static final long serialVersionUID = 7819626246672640599L; - private List values = new ArrayList(); + private List values = new ArrayList<>(); public MultiElementRemovedEvent(Object source, List values) { super(source, ObservableList.ChangeType.oldValue, ObservableList.ChangeType.newValue, 0, @@ -356,7 +352,7 @@ public class ObservableList implements List { this.values.addAll(values); } - public List getValues() { + public List getValues() { return Collections.unmodifiableList(this.values); } } @@ -366,7 +362,7 @@ public class ObservableList implements List { * */ private static final long serialVersionUID = -116376519087713082L; - private List values = new ArrayList(); + private List values = new ArrayList<>(); public MultiElementAddedEvent(Object source, int index, List values) { super(source, ObservableList.ChangeType.oldValue, ObservableList.ChangeType.newValue, index, @@ -375,7 +371,7 @@ public class ObservableList implements List { this.values.addAll(values); } - public List getValues() { + public List getValues() { return Collections.unmodifiableList(this.values); } } @@ -385,7 +381,7 @@ public class ObservableList implements List { * */ private static final long serialVersionUID = -8654027608903811577L; - private List values = new ArrayList(); + private List values = new ArrayList<>(); public ElementClearedEvent(Object source, List values) { super(source, ObservableList.ChangeType.oldValue, ObservableList.ChangeType.newValue, 0, @@ -394,7 +390,7 @@ public class ObservableList implements List { this.values.addAll(values); } - public List getValues() { + public List getValues() { return Collections.unmodifiableList(this.values); } } @@ -432,7 +428,7 @@ public class ObservableList implements List { } } - public static abstract class ElementEvent extends PropertyChangeEvent { + public abstract static class ElementEvent extends PropertyChangeEvent { /** * */ @@ -441,7 +437,7 @@ public class ObservableList implements List { private final int index; public ElementEvent(Object source, Object oldValue, Object newValue, int index, ObservableList.ChangeType type) { - super(source, "content", oldValue, newValue); + super(source, CONTENT_PROPERTY, oldValue, newValue); this.type = type; this.index = index; } @@ -463,7 +459,7 @@ public class ObservableList implements List { } } - public static enum ChangeType { + public enum ChangeType { ADDED, UPDATED, REMOVED, CLEARED, MULTI_ADD, MULTI_UPDATED, MULTI_REMOVE, NONE; public static final Object oldValue; @@ -483,9 +479,9 @@ public class ObservableList implements List { return MULTI_REMOVE; case 6: return NONE; - case 1: + default: + return UPDATED; } - return UPDATED; } static { @@ -554,6 +550,7 @@ public class ObservableList implements List { return this.iterDelegate.next(); } + @Override public void remove() { int oldSize = ObservableList.this.size(); Object element = ObservableList.this.get(this.cursor); diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RelSelectionDialog.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RelSelectionDialog.java index 0a381c9..124ec0e 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RelSelectionDialog.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RelSelectionDialog.java @@ -24,7 +24,7 @@ class RelSelectionDialog extends Dialog { private ITxRelation selected = null; - public RelSelectionDialog(Shell shell, ArrayList candidates, boolean target) { + public RelSelectionDialog(Shell shell, java.util.List candidates, boolean target) { super(shell); entries = candidates; entryTx = entries.stream().map(r->target?r.getTarget():r.getSource()).collect(Collectors.toCollection(ArrayList::new)); diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RulerPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RulerPainter.java index 85c0364..be31f05 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RulerPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/RulerPainter.java @@ -21,8 +21,8 @@ import org.eclipse.wb.swt.SWTResourceManager; public class RulerPainter implements IPainter { protected WaveformCanvas waveCanvas; - static final int rulerTickMinorC = 10; - static final int rulerTickMajorC = 100; + static final int RULER_TICK_MINOR = 10; + static final int RULER_TICK_MAJOR = 100; static final DecimalFormat df = new DecimalFormat("#.00####"); @@ -47,8 +47,8 @@ public class RulerPainter implements IPainter { long startVal=startPos - proj.getTranslation().x*scaleFactor; long endPos=startPos+area.width*scaleFactor; - long rulerTickMinor = rulerTickMinorC*scaleFactor; - long rulerTickMajor = rulerTickMajorC*scaleFactor; + long rulerTickMinor = RULER_TICK_MINOR*scaleFactor; + long rulerTickMajor = RULER_TICK_MAJOR*scaleFactor; int minorTickY = waveCanvas.rulerHeight-5; int majorTickY = waveCanvas.rulerHeight-15; @@ -68,13 +68,13 @@ public class RulerPainter implements IPainter { gc.drawLine(area.x, area.y+bottom, area.x+area.width, area.y+bottom); for (long pos = startMinorIncrPos, tick = startMinorIncrVal; pos < endPos; pos+= rulerTickMinor, tick += rulerTickMinor) { - int x0_pos = (int) (pos/scaleFactor); - long x0_val = tick/scaleFactor; + int x0Pos = (int) (pos/scaleFactor); + long x0Val = tick/scaleFactor; if ((tick % rulerTickMajor) == 0) { - gc.drawText(df.format(x0_val*unitMultiplier)+unit, x0_pos, area.y+textY); - gc.drawLine(x0_pos, area.y+majorTickY, x0_pos,area.y+ bottom); + gc.drawText(df.format(x0Val*unitMultiplier)+unit, x0Pos, area.y+textY); + gc.drawLine(x0Pos, area.y+majorTickY, x0Pos,area.y+ bottom); } else { - gc.drawLine(x0_pos, area.y+minorTickY, x0_pos, area.y+bottom); + gc.drawLine(x0Pos, area.y+minorTickY, x0Pos, area.y+bottom); } } } 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 6362196..896d7fb 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 @@ -10,6 +10,7 @@ *******************************************************************************/ package com.minres.scviewer.database.ui.swt.internal; +import java.util.Arrays; import java.util.Collection; import java.util.Map.Entry; import java.util.NavigableMap; @@ -140,7 +141,7 @@ public class SignalPainter extends TrackPainter { SignalStencil stencil = getStencil(proj.getGC(), left, entries); - do { + if(stencil!=null) do { stencil.draw(proj, area, left.value, right.value, xSigChangeBeginPos, xSigChangeEndPos, multiple); if (right.time >= endTime) break; @@ -197,9 +198,9 @@ 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); BitVector last = (BitVector) left; - if (last.getValue().toString().contains("X")) { + if (Arrays.toString(last.getValue()).contains("X")) { colorBorder = waveCanvas.styleProvider.getColor(WaveformColors.SIGNALX); - } else if (last.getValue().toString().contains("Z")) { + } else if (Arrays.toString(last.getValue()).contains("Z")) { colorBorder = waveCanvas.styleProvider.getColor(WaveformColors.SIGNALZ); } int width = xEnd - xBegin; @@ -215,7 +216,6 @@ public class SignalPainter extends TrackPainter { proj.setForeground(colorBorder); proj.drawPolygon(points); proj.setForeground(waveCanvas.styleProvider.getColor(WaveformColors.SIGNAL_TEXT)); - //TODO: this code should be provided from a central location String label = null; switch(trackEntry.valueDisplay) { case SIGNED: @@ -351,7 +351,8 @@ public class SignalPainter extends TrackPainter { private class RealStencil implements SignalStencil { - double minVal, range; + double minVal; + double range; final double scaleFactor = 1.05; @@ -359,22 +360,23 @@ public class SignalPainter extends TrackPainter { public RealStencil(NavigableMap entries, Object left, boolean continous) { this.continous=continous; - Collection values = ((NavigableMap) entries).values(); + Collection values = entries.values(); minVal=(Double) left; range=2.0; if(!values.isEmpty()) { double maxVal=minVal; - for (Object e : entries.values()) { - double v = ((Double)e); - if(Double.isNaN(maxVal)) - maxVal=v; - else if(!Double.isNaN(v)) - maxVal=Math.max(maxVal, v); - if(Double.isNaN(minVal)) - minVal=v; - else if(!Double.isNaN(v)) - minVal=Math.min(minVal, v); - } + for (IEvent[] val : entries.values()) + for(IEvent e:val) { + double v = ((DoubleVal)e).value; + if(Double.isNaN(maxVal)) + maxVal=v; + else if(!Double.isNaN(v)) + maxVal=Math.max(maxVal, v); + if(Double.isNaN(minVal)) + minVal=v; + else if(!Double.isNaN(v)) + minVal=Math.min(minVal, v); + } if(Double.isNaN(maxVal)){ maxVal=minVal=0.0; } diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/StreamPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/StreamPainter.java index ff62e35..2b06b4b 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/StreamPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/StreamPainter.java @@ -35,15 +35,15 @@ public class StreamPainter extends TrackPainter{ */ private final WaveformCanvas waveCanvas; private IWaveform stream; - private int txBase, txHeight; - private boolean even; + private int txBase; + private int txHeight; private TreeSet seenTx; public StreamPainter(WaveformCanvas waveCanvas, boolean even, TrackEntry trackEntry) { super(trackEntry, even); this.waveCanvas = waveCanvas; this.stream=trackEntry.waveform; - this.seenTx=new TreeSet(); + this.seenTx=new TreeSet<>(); } @SuppressWarnings("unchecked") @@ -63,7 +63,6 @@ public class StreamPainter extends TrackPainter{ long scaleFactor = this.waveCanvas.getScaleFactor(); long beginPos = area.x; long beginTime = beginPos*scaleFactor; - //long endPos = beginPos + area.width; long endTime = beginTime + area.width*scaleFactor; Entry firstTx=stream.getEvents().floorEntry(beginTime); @@ -127,11 +126,11 @@ public class StreamPainter extends TrackPainter{ bb.width = bb.width-(area.x-bb.x)+5; bb.x=area.x-5; } - int bb_x2 = bb.x+bb.width; - int area_x2 = area.x+area.width; - if(bb_x2>area_x2){ - bb_x2=area_x2+5; - bb.width= bb_x2-bb.x; + int bbX2 = bb.x+bb.width; + int areaX2 = area.x+area.width; + if(bbX2>areaX2){ + bbX2=areaX2+5; + bb.width= bbX2-bb.x; } int arc = bb.width<10?1:5; proj.fillRoundRectangle(bb.x, bb.y, bb.width, bb.height, arc, arc); diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ToolTipHandler.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ToolTipHandler.java index b86ad5b..9c62d72 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ToolTipHandler.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/ToolTipHandler.java @@ -26,7 +26,7 @@ class ToolTipHandler { private Widget tipWidget; // widget this tooltip is hovering over private Point tipPosition; // the position being hovered over - private static final int hoverYOffset = 1; + private static final int HOVER_YOFFSET = 1; /** * Creates a new tooltip handler @@ -45,56 +45,57 @@ class ToolTipHandler { */ public void activateHoverHelp(final Control control) { Listener listener = new Listener () { - Shell tip = null; + Shell shell = null; @Override public void handleEvent (Event event) { switch (event.type) { - case SWT.KeyDown:{ - if (tip != null && tip.isVisible() && event.keyCode == SWT.F2) { - tip.setFocus(); - break; - } - } + case SWT.KeyDown: + if (shell != null && shell.isVisible() && event.keyCode == SWT.F2) + shell.setFocus(); + break; case SWT.Dispose: case SWT.MouseMove: - case SWT.MouseDown: { - if (tip != null){ - tip.dispose (); - tip = null; + case SWT.MouseDown: + if (shell != null){ + shell.dispose (); + shell = null; tipWidget=null; } break; + case SWT.MouseHover: + createHoverWindow(control, event); + break; + default: + /* do nothing */ } - case SWT.MouseHover: { - Object o = control.getData(Constants.CONTENT_PROVIDER_TAG); - if(o != null && o instanceof ToolTipContentProvider) { - ToolTipContentProvider provider = ((ToolTipContentProvider)o); - Point pt = new Point (event.x, event.y); - tipPosition = control.toDisplay(pt); - if (tip != null && !tip.isDisposed ()) tip.dispose (); - tip = new Shell (parentShell, SWT.NO_FOCUS | SWT.TOOL); - tip.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND)); - GridLayout layout = new GridLayout(1, true); - layout.verticalSpacing=0; - layout.horizontalSpacing=0; - layout.marginWidth = 0; - layout.marginHeight = 0; - tip.setLayout(layout); - boolean visible = provider.createContent(tip, pt); - tip.pack(); - tip.setSize(tip.computeSize(SWT.DEFAULT, SWT.DEFAULT)); - setHoverLocation(tip, tipPosition); - tip.setVisible (visible); - if(visible) - tipWidget=event.widget; - } - } + } + private void createHoverWindow(final Control control, Event event) { + Object o = control.getData(Constants.CONTENT_PROVIDER_TAG); + if(o instanceof ToolTipContentProvider) { + ToolTipContentProvider provider = ((ToolTipContentProvider)o); + Point pt = new Point (event.x, event.y); + tipPosition = control.toDisplay(pt); + if (shell != null && !shell.isDisposed ()) shell.dispose (); + shell = new Shell (parentShell, SWT.NO_FOCUS | SWT.TOOL); + shell.setBackground (display.getSystemColor (SWT.COLOR_INFO_BACKGROUND)); + GridLayout layout = new GridLayout(1, true); + layout.verticalSpacing=0; + layout.horizontalSpacing=0; + layout.marginWidth = 0; + layout.marginHeight = 0; + shell.setLayout(layout); + boolean visible = provider.createContent(shell, pt); + shell.pack(); + shell.setSize(shell.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + setHoverLocation(shell, tipPosition); + shell.setVisible (visible); + if(visible) + tipWidget=event.widget; } } }; control.addListener (SWT.Dispose, listener); control.addListener (SWT.KeyDown, listener); - //control.addListener (SWT.MouseMove, listener); control.addListener (SWT.MouseHover, listener); control.addListener (SWT.MouseDown, listener); @@ -119,11 +120,6 @@ class ToolTipHandler { helpShell.open(); } }); - // control.addKeyListener(KeyListener.keyPressedAdapter( e-> { - // if (e.keyCode == SWT.F2 && shell.isVisible()) { - // shell.setFocus(); - // } - // })); } /** @@ -136,7 +132,7 @@ class ToolTipHandler { Rectangle displayBounds = shell.getDisplay().getBounds(); Rectangle shellBounds = shell.getBounds(); shellBounds.x = Math.max(Math.min(position.x, displayBounds.width - shellBounds.width), 0); - shellBounds.y = Math.max(Math.min(position.y + hoverYOffset, displayBounds.height - shellBounds.height), 0); + shellBounds.y = Math.max(Math.min(position.y + HOVER_YOFFSET, displayBounds.height - shellBounds.height), 0); shell.setBounds(shellBounds); } } \ No newline at end of file diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/TrackAreaPainter.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/TrackAreaPainter.java index bee3352..5f2ecb8 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/TrackAreaPainter.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/TrackAreaPainter.java @@ -25,7 +25,7 @@ public class TrackAreaPainter implements IPainter { */ private final WaveformCanvas waveCanvas; - TreeMap trackVerticalOffset; + final TreeMap trackVerticalOffset; /** * @param txDisplay */ @@ -44,7 +44,7 @@ public class TrackAreaPainter implements IPainter { if(firstKey==null) firstKey=trackVerticalOffset.firstKey(); Integer lastKey = trackVerticalOffset.floorKey(area.y+area.height); Rectangle subArea = new Rectangle(area.x, 0, area.width, 0); - if(lastKey==firstKey){ + if(lastKey.equals(firstKey)){ subArea.y=firstKey; IWaveformPainter p = trackVerticalOffset.get(firstKey); subArea.height=p.getHeight(); @@ -59,10 +59,6 @@ public class TrackAreaPainter implements IPainter { } } - public TreeMap getTrackVerticalOffset() { - return trackVerticalOffset; - } - public void addTrackPainter(IWaveformPainter trackPainter){ trackVerticalOffset.put(trackPainter.getVerticalOffset()+waveCanvas.rulerHeight, trackPainter); diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java index afba1eb..f08178b 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java @@ -20,7 +20,6 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.GC; @@ -86,16 +85,13 @@ public class WaveformCanvas extends Canvas { super(parent, style | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND | SWT.V_SCROLL | SWT.H_SCROLL); this.styleProvider=styleProvider; addControlListener(new ControlAdapter() { /* resize listener. */ - public void controlResized(ControlEvent event) { + @Override + public void controlResized(ControlEvent event) { syncScrollBars(); } }); - addPaintListener(new PaintListener() { /* paint listener. */ - public void paintControl(final PaintEvent event) { - paint(event.gc); - } - }); - painterList = new LinkedList(); + addPaintListener((final PaintEvent event) -> paint(event.gc)); + painterList = new LinkedList<>(); origin = new Point(0, 0); selectionListeners = new LinkedList<>(); cursorPainters= new ArrayList<>(); @@ -169,7 +165,7 @@ public class WaveformCanvas extends Canvas { } public int getMaxZoomLevel(){ - return Constants.unitMultiplier.length*Constants.unitString.length-1; + return Constants.UNIT_MULTIPLIER.length*Constants.UNIT_STRING.length-1; } public void setZoomLevel(int level) { @@ -181,8 +177,8 @@ public class WaveformCanvas extends Canvas { //FIXME: keep center if zoom-out and cursor is not in view long oldScaleFactor=scaleFactor; if(level<0) level = 0; - if(level transform, image size, client area. */ public void syncScrollBars() { - if (painterList.size() == 0) { + if (painterList.isEmpty()) { redraw(); return; } @@ -302,14 +300,14 @@ public class WaveformCanvas extends Canvas { long width = maxTime / scaleFactor; Rectangle clientArea=getClientArea(); ScrollBar horizontal = getHorizontalBar(); - horizontal.setIncrement((int) (getClientArea().width / 100)); + horizontal.setIncrement(getClientArea().width / 100); horizontal.setPageIncrement(getClientArea().width); int clientWidthw = clientArea.width; if (width > clientWidthw) { /* image is wider than client area */ horizontal.setMinimum(0); horizontal.setMaximum((int)width); horizontal.setEnabled(true); - if (((int) -origin.x) > horizontal.getMaximum() - clientWidthw) { + if (-origin.x > horizontal.getMaximum() - clientWidthw) { origin.x = -horizontal.getMaximum() + clientWidthw; } } else { /* image is narrower than client area */ @@ -319,18 +317,18 @@ public class WaveformCanvas extends Canvas { horizontal.setSelection(-origin.x); ScrollBar vertical = getVerticalBar(); - vertical.setIncrement((int) (getClientArea().height / 100)); - vertical.setPageIncrement((int) (getClientArea().height)); + vertical.setIncrement(getClientArea().height / 100); + vertical.setPageIncrement(getClientArea().height); int clientHeighth = clientArea.height; if (height > clientHeighth) { /* image is higher than client area */ vertical.setMinimum(0); vertical.setMaximum(height); vertical.setEnabled(true); - if (((int) -origin.y) > vertical.getMaximum() - clientHeighth) { + if ( -origin.y > vertical.getMaximum() - clientHeighth) { origin.y = -vertical.getMaximum() + clientHeighth; } } else { /* image is less higher than client area */ - vertical.setMaximum((int) (clientHeighth)); + vertical.setMaximum(clientHeighth); vertical.setEnabled(false); } vertical.setThumb(clientHeighth); @@ -345,10 +343,10 @@ public class WaveformCanvas extends Canvas { if(pt.x==0 || pt.y==0) return; Rectangle clientRect = getClientArea(); /* Canvas' painting area */ GC thisGc = gc; - Image d_backingImg = null; + Image dBackingImg = null; if(doubleBuffering) { - d_backingImg = new Image(getDisplay(), pt.x, pt.y); - thisGc = new GC(d_backingImg); + dBackingImg = new Image(getDisplay(), pt.x, pt.y); + thisGc = new GC(dBackingImg); thisGc.setBackground(gc.getBackground()); thisGc.setForeground(gc.getForeground()); thisGc.setFont(gc.getFont()); @@ -356,7 +354,7 @@ public class WaveformCanvas extends Canvas { } Projection p = new Projection(thisGc); p.setTranslation(origin); - if (painterList.size() > 0 ) { + if (!painterList.isEmpty() ) { for (IPainter painter : painterList) painter.paintArea(p, clientRect); } else { @@ -364,8 +362,8 @@ public class WaveformCanvas extends Canvas { initScrollBars(); } if(doubleBuffering) { - gc.drawImage(d_backingImg, 0, 0); - d_backingImg.dispose(); + gc.drawImage(dBackingImg, 0, 0); + if(dBackingImg!=null) dBackingImg.dispose(); thisGc.dispose(); } } @@ -376,7 +374,7 @@ public class WaveformCanvas extends Canvas { if (p instanceof TrackAreaPainter) { int y = point.y - origin.y; int x = point.x - origin.x; - Entry entry = trackAreaPainter.getTrackVerticalOffset().floorEntry(y); + Entry entry = trackAreaPainter.trackVerticalOffset.floorEntry(y); if (entry != null) { if (entry.getValue() instanceof StreamPainter) { ITx tx = ((StreamPainter) entry.getValue()).getClicked(new Point(x, y - entry.getKey())); @@ -397,7 +395,7 @@ public class WaveformCanvas extends Canvas { public List getEntriesAtPosition(IWaveform iWaveform, int i) { LinkedList result=new LinkedList<>(); int x = i - origin.x; - for(IPainter p: wave2painterMap.values()){ + for(IWaveformPainter p: wave2painterMap.values()){ if (p instanceof StreamPainter && ((StreamPainter)p).getStream()==iWaveform) { result.add(((StreamPainter) p).getClicked(new Point(x, styleProvider.getTrackHeight()/2))); } @@ -442,10 +440,9 @@ public class WaveformCanvas extends Canvas { TrackEntry te = painter.getTrackEntry(); if(te.waveform == waveform) { Point size = getSize(); - //size.x -= getVerticalBar().getSize().x + 2; size.y -=+rulerHeight; ScrollBar sb = getHorizontalBar(); - if((sb.getStyle()&SWT.SCROLLBAR_OVERLAY)!=0 && sb.isVisible()) // TODO: check on other platform than MacOSX + if((sb.getStyle()&SWT.SCROLLBAR_OVERLAY)!=0 && sb.isVisible()) size.y-= getHorizontalBar().getSize().y; int top = te.vOffset; int bottom = top + styleProvider.getTrackHeight(); 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 ce62095..205ad87 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 @@ -93,7 +93,7 @@ import com.minres.scviewer.database.ui.swt.Constants; public class WaveformView implements IWaveformView { - private ListenerList selectionChangedListeners = new ListenerList(); + private ListenerList selectionChangedListeners = new ListenerList<>(); private PropertyChangeSupport pcs; @@ -109,9 +109,9 @@ public class WaveformView implements IWaveformView { private Control namePaneHeader; - final private Canvas nameList; + private final Canvas nameList; - final private Canvas valueList; + private final Canvas valueList; final WaveformCanvas waveformCanvas; @@ -170,7 +170,8 @@ public class WaveformView implements IWaveformView { }; class WaveformMouseListener implements PaintListener, Listener { - Point start, end; + Point start; + Point end; List initialSelected; boolean down=false; @@ -181,9 +182,9 @@ public class WaveformView implements IWaveformView { gc.setAlpha(128); int minX = Math.min(start.x, end.x); int width = Math.max(start.x, end.x) - minX; - int y_top = waveformCanvas.getRulerHeight(); - int y_bottom = waveformCanvas.getSize().y; - gc.fillRectangle(minX, y_top, width,y_bottom); + int yTop = waveformCanvas.getRulerHeight(); + int yBottom = waveformCanvas.getSize().y; + gc.fillRectangle(minX, yTop, width,yBottom); } } @@ -200,7 +201,7 @@ public class WaveformView implements IWaveformView { if(targetTimeRange==0) return; long relation = currentTimeRange/targetTimeRange; long i = 1; - int level=0;//relation>0?0:0; + int level=0; do { if(relation<0 ) { if(-relation floorEntry=null, ceilEntry=null; + Entry floorEntry=null; + Entry ceilEntry=null; if(o instanceof TrackEntry){ TrackEntry entry = (TrackEntry) o; NavigableMap map = entry.waveform.getEvents(); @@ -293,9 +295,6 @@ public class WaveformView implements IWaveformView { case SWT.MouseUp: mouseUp(new MouseEvent(e)); break; - //case SWT.MouseDoubleClick: - //mouseDoubleClick(new MouseEvent(e)); - //break; case SWT.MouseMove: if(down) { end=new Point(e.x, e.y); @@ -308,7 +307,7 @@ public class WaveformView implements IWaveformView { } - }; + } protected WaveformMouseListener waveformMouseListener = new WaveformMouseListener(); public WaveformView(Composite parent, IWaveformStyleProvider styleProvider) { @@ -316,7 +315,7 @@ public class WaveformView implements IWaveformView { pcs=new PropertyChangeSupport(this); - trackVerticalOffset = new TreeMap(); + trackVerticalOffset = new TreeMap<>(); tracksVerticalHeight=0; streams = new ObservableList<>(); @@ -363,14 +362,11 @@ public class WaveformView implements IWaveformView { return new Point(bounds.width, bounds.height); } }; - nameList.addListener(SWT.Paint, new Listener() { - @Override - public void handleEvent(Event event) { - if(!trackVerticalOffset.isEmpty()) { - GC gc = event.gc; - Rectangle rect = ((Canvas) event.widget).getClientArea(); - paintNames(gc, rect); - } + nameList.addListener(SWT.Paint, (Event event) -> { + if(!trackVerticalOffset.isEmpty()) { + GC gc = event.gc; + Rectangle rect = ((Canvas) event.widget).getClientArea(); + paintNames(gc, rect); } }); nameList.addMouseListener(nameValueMouseListener); @@ -398,14 +394,11 @@ public class WaveformView implements IWaveformView { return new Point(bounds.width, bounds.height); } }; - valueList.addListener(SWT.Paint, new Listener() { - @Override - public void handleEvent(Event event) { - if(!trackVerticalOffset.isEmpty()) { - GC gc = event.gc; - Rectangle rect = ((Canvas) event.widget).getClientArea(); - paintValues(gc, rect); - } + valueList.addListener(SWT.Paint, (Event event) -> { + if(!trackVerticalOffset.isEmpty()) { + GC gc = event.gc; + Rectangle rect = ((Canvas) event.widget).getClientArea(); + paintValues(gc, rect); } }); valueList.addMouseListener(nameValueMouseListener); @@ -415,11 +408,11 @@ public class WaveformView implements IWaveformView { waveformCanvas.addPaintListener(waveformMouseListener); waveformCanvas.addListener(SWT.MouseDown,waveformMouseListener); waveformCanvas.addListener(SWT.MouseUp,waveformMouseListener); - //waveformCanvas.addListener(SWT.MouseDoubleClick,waveformMouseListener); waveformCanvas.addListener(SWT.MouseMove,waveformMouseListener); waveformCanvas.addListener(SWT.MouseWheel, waveformMouseListener); nameListScrolled.getVerticalBar().addSelectionListener(new SelectionAdapter() { + @Override public void widgetSelected(SelectionEvent e) { int y = ((ScrollBar) e.widget).getSelection(); Point v = valueListScrolled.getOrigin(); @@ -429,6 +422,7 @@ public class WaveformView implements IWaveformView { } }); valueListScrolled.getVerticalBar().addSelectionListener(new SelectionAdapter() { + @Override public void widgetSelected(SelectionEvent e) { int y = ((ScrollBar) e.widget).getSelection(); nameListScrolled.setOrigin(nameListScrolled.getOrigin().x, y); @@ -436,6 +430,7 @@ public class WaveformView implements IWaveformView { } }); waveformCanvas.addSelectionListener(new SelectionAdapter() { + @Override public void widgetSelected(SelectionEvent e) { int y = waveformCanvas.getVerticalBar().getSelection(); nameListScrolled.setOrigin(nameListScrolled.getOrigin().x, y); @@ -457,48 +452,40 @@ public class WaveformView implements IWaveformView { } private void createTextPane(Composite namePane, String text) { - GridLayout gl_namePane = new GridLayout(1, false); - gl_namePane.verticalSpacing = 0; - gl_namePane.marginWidth = 0; - gl_namePane.horizontalSpacing = 0; - gl_namePane.marginHeight = 0; - namePane.setLayout(gl_namePane); + GridLayout glNamePane = new GridLayout(1, false); + glNamePane.verticalSpacing = 0; + glNamePane.marginWidth = 0; + glNamePane.horizontalSpacing = 0; + glNamePane.marginHeight = 0; + namePane.setLayout(glNamePane); CLabel nameLabel = new CLabel(namePane, SWT.NONE); - GridData gd_nameLabel = new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1); - gd_nameLabel.heightHint = waveformCanvas.getRulerHeight() - 2; - nameLabel.setLayoutData(gd_nameLabel); + GridData gdNameLabel = new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1); + gdNameLabel.heightHint = waveformCanvas.getRulerHeight() - 2; + nameLabel.setLayoutData(gdNameLabel); nameLabel.setText(text); Label nameSep = new Label(namePane, SWT.SEPARATOR | SWT.HORIZONTAL); nameSep.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_GRAY)); nameSep.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLACK)); - GridData gd_nameSep = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); - gd_nameSep.heightHint = 2; - nameSep.setLayoutData(gd_nameSep); + GridData gdNameSep = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); + gdNameSep.heightHint = 2; + nameSep.setLayoutData(gdNameSep); } @Override public void propertyChange(PropertyChangeEvent pce) { if ("size".equals(pce.getPropertyName()) || "content".equals(pce.getPropertyName())) { if(revealSelected) { - waveformCanvas.getDisplay().asyncExec(new Runnable() { - @Override - public void run() { + waveformCanvas.getDisplay().asyncExec(() ->{ update(); currentWaveformSelection.stream().forEach(e -> waveformCanvas.reveal(e.waveform)); valueList.redraw(); nameList.redraw(); - } }); revealSelected=false; } else - waveformCanvas.getDisplay().asyncExec(new Runnable() { - @Override - public void run() { - update(); - } - }); + waveformCanvas.getDisplay().asyncExec(WaveformView.this::update); } } @@ -562,7 +549,6 @@ public class WaveformView implements IWaveformView { if(bv.getWidth()==1) entry.currentValue="b'"+bv; else { - // TODO: same code resides in SignalPainter, fix it switch(entry.valueDisplay) { case SIGNED: entry.currentValue=Long.toString(bv.toSignedValue()); @@ -597,15 +583,15 @@ public class WaveformView implements IWaveformView { } firstTx=entry.waveform.getEvents().lowerEntry(firstTx.getKey()); }while(firstTx!=null && !isArrayFull(resultsList)); - entry.currentValue=""; boolean separator=false; - + StringBuilder sb = new StringBuilder(); for(ITx o:resultsList){ - if(separator) entry.currentValue+="|"; - if(o!=null) entry.currentValue+=((ITx)o).getGenerator().getName(); - + if(separator) sb.append("|"); + if(o!=null) sb.append(o.getGenerator().getName()); separator=true; } + entry.currentValue=sb.toString(); + } } } @@ -680,7 +666,6 @@ public class WaveformView implements IWaveformView { if (currentTxSelection != null) { sel.add(currentTxSelection); } - // sel.addAll(currentWaveformSelection.stream().map(e -> e.waveform).collect(Collectors.toList())); sel.addAll(currentWaveformSelection); return new StructuredSelection(sel.toArray()); } @@ -736,7 +721,7 @@ public class WaveformView implements IWaveformView { } } } else { - if (currentTxSelection != null || currentWaveformSelection.size() > 0) + if (currentTxSelection != null || !currentWaveformSelection.isEmpty()) selectionChanged = true; currentTxSelection = null; currentWaveformSelection.clear(); @@ -864,13 +849,12 @@ public class WaveformView implements IWaveformView { private ITxRelation selectTxToNavigateTo(Collection rel, RelationType relationType, boolean target) { ArrayList candidates = rel.stream().filter(r -> relationType.equals(r.getRelationType())).collect(Collectors.toCollection(ArrayList::new)); - //new RelSelectionDialog(waveformCanvas.getShell(), candidates, target).open(); switch (candidates.size()) { case 0: return null; case 1: return candidates.get(0); default: - ArrayList visibleCandidates = candidates.stream().filter(r -> streamsVisible(r)).collect(Collectors.toCollection(ArrayList::new)); - if(visibleCandidates.size()==0) { + ArrayList visibleCandidates = candidates.stream().filter(this::streamsVisible).collect(Collectors.toCollection(ArrayList::new)); + if(visibleCandidates.isEmpty()) { return new RelSelectionDialog(waveformCanvas.getShell(), candidates, target).open(); } else if(visibleCandidates.size()==1) { return visibleCandidates.size()==1?visibleCandidates.get(0):null; @@ -895,9 +879,7 @@ public class WaveformView implements IWaveformView { TrackEntry sel = currentWaveformSelection.get(0); long time = getCursorTime(); NavigableMap map=null; - if(sel.waveform.getType()==WaveformType.TRANSACTION){ - map=sel.waveform.getEvents(); - } else if(sel.waveform.getType()==WaveformType.SIGNAL){ + if(sel.waveform.getType()==WaveformType.TRANSACTION || sel.waveform.getType()==WaveformType.SIGNAL){ map=sel.waveform.getEvents(); } if(map!=null){ @@ -925,12 +907,12 @@ public class WaveformView implements IWaveformView { */ @Override public void deleteSelectedTracks() { - List streams = getStreamList(); + List streamList = getStreamList(); for (Object o : (IStructuredSelection)getSelection()) { if(o instanceof TrackEntry) { TrackEntry e = (TrackEntry) o; e.selected=false; - streams.remove(e); + streamList.remove(e); } } setSelection(new StructuredSelection()); @@ -941,7 +923,7 @@ public class WaveformView implements IWaveformView { */ @Override public void moveSelectedTrack(int i) { - if(currentWaveformSelection.size()>0){ + if(!currentWaveformSelection.isEmpty()){ int idx = streams.indexOf(currentWaveformSelection.get(0)); for(Object o: currentWaveformSelection) streams.remove(o); @@ -956,14 +938,14 @@ public class WaveformView implements IWaveformView { protected void paintNames(GC gc, Rectangle rect) { - if (streams.size() > 0) { + if (!streams.isEmpty()) { try { Integer firstKey = trackVerticalOffset.floorKey(rect.y); if (firstKey == null) firstKey = trackVerticalOffset.firstKey(); Integer lastKey = trackVerticalOffset.floorKey(rect.y + rect.height); Rectangle subArea = new Rectangle(rect.x, 0, rect.width, styleProvider.getTrackHeight()); - if (lastKey == firstKey) { + if (lastKey.equals(firstKey)) { TrackEntry trackEntry=trackVerticalOffset.get(firstKey); IWaveform w = trackEntry.waveform; if (w.getType()==WaveformType.TRANSACTION) @@ -983,14 +965,14 @@ public class WaveformView implements IWaveformView { } protected void paintValues(GC gc, Rectangle rect) { - if (streams.size() > 0) { + if (!streams.isEmpty()) { try { Integer firstKey = trackVerticalOffset.floorKey(rect.y); if (firstKey == null) firstKey = trackVerticalOffset.firstKey(); Integer lastKey = trackVerticalOffset.floorKey(rect.y + rect.height); Rectangle subArea = new Rectangle(rect.x, 0, rect.width, styleProvider.getTrackHeight()); - if (lastKey == firstKey) { + if (lastKey.equals(firstKey)) { TrackEntry trackEntry=trackVerticalOffset.get(firstKey); IWaveform w = trackEntry.waveform; if (w.getType()==WaveformType.TRANSACTION) @@ -1131,13 +1113,14 @@ public class WaveformView implements IWaveformView { DragSource dragSource = new DragSource(canvas, DND.DROP_MOVE); dragSource.setTransfer(types); dragSource.addDragListener(new DragSourceAdapter() { + @Override public void dragStart(DragSourceEvent event) { if (event.y < tracksVerticalHeight) { event.doit = true; LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(currentWaveformSelection)); } } - + @Override public void dragSetData(DragSourceEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) { event.data =getSelection(); @@ -1153,10 +1136,11 @@ public class WaveformView implements IWaveformView { dropTarget.addDropListener(new DropTargetAdapter() { @SuppressWarnings("unchecked") + @Override public void drop(DropTargetEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType)){ ISelection s = LocalSelectionTransfer.getTransfer().getSelection(); - if(s!=null && s instanceof IStructuredSelection){ + if(s instanceof IStructuredSelection){ IStructuredSelection sel = (IStructuredSelection) s; for(Object o: sel.toList()) streams.remove(o); @@ -1173,7 +1157,7 @@ public class WaveformView implements IWaveformView { } } } - + @Override public void dropAccept(DropTargetEvent event) { if (event.detail != DND.DROP_MOVE) { event.detail = DND.DROP_NONE; @@ -1197,6 +1181,7 @@ public class WaveformView implements IWaveformView { DragSource dragSource = new DragSource(canvas, DND.DROP_MOVE); dragSource.setTransfer(types); dragSource.addDragListener(new DragSourceAdapter() { + @Override public void dragStart(DragSourceEvent event) { event.doit = false; List clicked = waveformCanvas.getElementsAt(new Point(event.x, event.y)); @@ -1209,13 +1194,22 @@ public class WaveformView implements IWaveformView { } } } - + @Override public void dragSetData(DragSourceEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) { event.data=waveformCanvas.getElementsAt(new Point(event.x, event.y)); } } }); +// int style = SWT.MULTI | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; +// final StyledText text = new StyledText(waveformCanvas, style); +// text.setText("Dragging"); +// dragSource.setDragSourceEffect(new DragSourceEffect(text) { +// @Override +// public void dragStart(DragSourceEvent event) { +// event.image = waveformCanvas.getDisplay().getSystemImage(SWT.ICON_WARNING); +// } +// }); } private void createWaveformDropTarget(final Canvas canvas) { @@ -1223,10 +1217,11 @@ public class WaveformView implements IWaveformView { DropTarget dropTarget = new DropTarget(canvas, DND.DROP_MOVE); dropTarget.setTransfer(types); dropTarget.addDropListener(new DropTargetAdapter() { + @Override public void drop(DropTargetEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType)){ ISelection sel = LocalSelectionTransfer.getTransfer().getSelection(); - if(sel!=null && sel instanceof IStructuredSelection && + if(sel instanceof IStructuredSelection && ((IStructuredSelection)sel).getFirstElement() instanceof CursorPainter){ CursorPainter painter = (CursorPainter)((IStructuredSelection)sel).getFirstElement(); painter.setDragging(false); @@ -1234,17 +1229,17 @@ public class WaveformView implements IWaveformView { } } } - + @Override public void dropAccept(DropTargetEvent event) { Point offset = canvas.toControl(event.x, event.y); if (event.detail != DND.DROP_MOVE || offset.y > trackVerticalOffset.lastKey() + styleProvider.getTrackHeight()) { event.detail = DND.DROP_NONE; } } - + @Override public void dragOver(DropTargetEvent event){ ISelection sel = LocalSelectionTransfer.getTransfer().getSelection(); - if(sel!=null && sel instanceof IStructuredSelection && + if(sel instanceof IStructuredSelection && ((IStructuredSelection)sel).getFirstElement() instanceof CursorPainter){ updateWaveform(canvas, event, (CursorPainter) ((IStructuredSelection)sel).getFirstElement()); } @@ -1261,13 +1256,10 @@ public class WaveformView implements IWaveformView { pcs.firePropertyChange(MARKER_PROPERTY, oldVal, time); pcs.firePropertyChange(MARKER_PROPERTY+painter.id, oldVal, time); } - canvas.getDisplay().asyncExec(new Runnable() { - @Override - public void run() { - if(!canvas.isDisposed()){ - canvas.redraw(); - updateValueList(); - } + canvas.getDisplay().asyncExec(() -> { + if(!canvas.isDisposed()){ + canvas.redraw(); + updateValueList(); } }); } @@ -1325,8 +1317,8 @@ public class WaveformView implements IWaveformView { @Override public String getScaledTime(long time) { StringBuilder sb = new StringBuilder(); - Double dTime=new Double(time); - Double scaledTime = dTime/waveformCanvas.getScaleFactorPow10(); + double dTime=time; + double scaledTime = dTime/waveformCanvas.getScaleFactorPow10(); return sb.append(df.format(scaledTime)).append(waveformCanvas.getUnitStr()).toString(); } @@ -1335,11 +1327,11 @@ public class WaveformView implements IWaveformView { */ @Override public String[] getZoomLevels(){ - String[] res = new String[Constants.unitMultiplier.length*Constants.unitString.length]; + String[] res = new String[Constants.UNIT_MULTIPLIER.length*Constants.UNIT_STRING.length]; int index=0; - for(String unit:Constants.unitString){ - for(int factor:Constants.unitMultiplier){ - res[index++]= new Integer(factor).toString()+unit; + for(String unit:Constants.UNIT_STRING){ + for(int factor:Constants.UNIT_MULTIPLIER){ + res[index++]= Integer.toString(factor)+unit; } } return res; @@ -1368,12 +1360,9 @@ public class WaveformView implements IWaveformView { } public void asyncUpdate(Widget widget) { - widget.getDisplay().asyncExec(new Runnable() { - @Override - public void run() { - waveformCanvas.redraw(); - updateValueList(); - } + widget.getDisplay().asyncExec(() -> { + waveformCanvas.redraw(); + updateValueList(); }); } 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 c39e95b..98bfa41 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 @@ -1093,7 +1093,7 @@ 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) { @@ -1103,7 +1103,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis } } //if no zoom level is found, set biggest one available - if(!foundZoom) setZoomLevel(Constants.unitMultiplier.length*Constants.unitString.length-1); + if(!foundZoom) setZoomLevel(Constants.UNIT_MULTIPLIER.length*Constants.UNIT_STRING.length-1); updateAll(); }