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