diff --git a/com.minres.scviewer.database.test/DatabaseServicesTest.launch b/com.minres.scviewer.database.test/DatabaseServicesTest.launch
index c68ede6..c44770d 100644
--- a/com.minres.scviewer.database.test/DatabaseServicesTest.launch
+++ b/com.minres.scviewer.database.test/DatabaseServicesTest.launch
@@ -31,7 +31,7 @@
-
+
diff --git a/com.minres.scviewer.database.test/inputs/simple_system.vcd b/com.minres.scviewer.database.test/inputs/simple_system.vcd
index 0345ff2..539f4a6 100755
--- a/com.minres.scviewer.database.test/inputs/simple_system.vcd
+++ b/com.minres.scviewer.database.test/inputs/simple_system.vcd
@@ -1622,7 +1622,7 @@ b1110100011010100101001010 aabdd
0aabdv
0aabdw
0aabdx
-r0.0 bbbbb
+r1.0 bbbbb
$end
#10000
@@ -1643,7 +1643,6 @@ $end
#1287121272
b1000000000100000000000000000100 aabcr
-r1.0 bbbbb
#1288121272
b111111110100111110 aaabi
@@ -1659,43 +1658,33 @@ b11000000000100000000000000000100 aabcr
b111111110100111110 aabcw
b101010 aabdb
b111111110100111110 aabdc
-r2.0 bbbbb
#1303801016
b1000 aaacx
-r3.0 bbbbb
#1311382718
b100000000 aabcu
-r2.0 bbbbb
#1312689908
b1000000010111110001 aabct
-r1.0 bbbbb
#1315304288
b10000000000000000000010111110001 aabct
-r0.0 bbbbb
#1317395792
b101011 aabdb
-r-1.0 bbbbb
#1345892534
b101100 aabdb
-r-2.0 bbbbb
#1375173590
b101101 aabdb
-r-3.0 bbbbb
#1404454646
b101110 aabdb
-r-2.0 bbbbb
#1437918710
b101111 aabdb
-r-1.0 bbbbb
#1443670346
b11111111010100 aaabi
@@ -1710,7 +1699,6 @@ b11111111010100 aabac
b10000000000000010000010111110001 aabct
b11111111010100 aabcw
b11111111010100 aabdc
-r0.0 bbbbb
#1444438324
1aaaar
diff --git a/com.minres.scviewer.database.text/src/com/minres/scviewer/database/text/TextDbLoader.groovy b/com.minres.scviewer.database.text/src/com/minres/scviewer/database/text/TextDbLoader.groovy
index fc6bf7e..8d0038e 100644
--- a/com.minres.scviewer.database.text/src/com/minres/scviewer/database/text/TextDbLoader.groovy
+++ b/com.minres.scviewer.database.text/src/com/minres/scviewer/database/text/TextDbLoader.groovy
@@ -13,8 +13,6 @@ package com.minres.scviewer.database.text;
import java.nio.charset.CharsetDecoder;
import java.util.Collection;
import java.util.zip.GZIPInputStream
-import org.apache.jdbm.DB
-import org.apache.jdbm.DBMaker
import groovy.io.FileType
import com.minres.scviewer.database.AssociationType
@@ -32,8 +30,6 @@ public class TextDbLoader implements IWaveformDbLoader{
IWaveformDb db;
- DB backingDb;
-
def streams = []
def relationTypes=[:]
@@ -65,20 +61,6 @@ public class TextDbLoader implements IWaveformDbLoader{
this.streams=[]
def gzipped = isGzipped(file)
if(isTxfile(gzipped?new GZIPInputStream(new FileInputStream(file)):new FileInputStream(file))){
- if(true) {
- def parentDir=file.absoluteFile.parent
- def filename=file.name
- new File(parentDir).eachFileRecurse (FileType.FILES) { f -> if(f.name=~/^\.${filename}/) f.delete() }
- this.backingDb = DBMaker.openFile(parentDir+File.separator+"."+filename+"_bdb")
- .deleteFilesAfterClose()
- .useRandomAccessFile()
- .setMRUCacheSize(4096)
- //.disableTransactions()
- .disableLocking()
- .make();
- } else {
- this.backingDb = DBMaker.openMemory().disableLocking().make()
- }
parseInput(gzipped?new GZIPInputStream(new FileInputStream(file)):new FileInputStream(file))
calculateConcurrencyIndicees()
return true
@@ -140,7 +122,7 @@ public class TextDbLoader implements IWaveformDbLoader{
case "end_attribute":
if ((matcher = line =~ /^scv_tr_stream\s+\(ID (\d+),\s+name\s+"([^"]+)",\s+kind\s+"([^"]+)"\)$/)) {
def id = Integer.parseInt(matcher[0][1])
- def stream = new TxStream(db, id, matcher[0][2], matcher[0][3], backingDb)
+ def stream = new TxStream(db, id, matcher[0][2], matcher[0][3])
streams<> events
- TxStream(IWaveformDb db, int id, String name, String kind, DB backingStore){
+ TxStream(IWaveformDb db, int id, String name, String kind){
super(name)
this.id=id
this.database=db
this.fullName=name
this.kind=kind
this.maxConcurrency=0
- //events = new TreeMap>()
- events=backingStore.createTreeMap("stream-"+name)
+ events = new TreeMap>()
}
List getGenerators(){
diff --git a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java
index 42ead12..b924b83 100644
--- a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java
+++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/SignalPainter.java
@@ -10,9 +10,8 @@
*******************************************************************************/
package com.minres.scviewer.database.swt.internal;
-import java.util.Map.Entry;
import java.util.Collection;
-import java.util.Map;
+import java.util.Map.Entry;
import java.util.NavigableMap;
import javax.swing.JPanel;
@@ -26,9 +25,9 @@ import org.eclipse.swt.graphics.Rectangle;
import com.minres.scviewer.database.ISignal;
import com.minres.scviewer.database.ISignalChange;
+import com.minres.scviewer.database.ISignalChangeBit;
import com.minres.scviewer.database.ISignalChangeBitVector;
import com.minres.scviewer.database.ISignalChangeReal;
-import com.minres.scviewer.database.ISignalChangeBit;
import com.minres.scviewer.database.ui.TrackEntry;
import com.minres.scviewer.database.ui.WaveformColors;
@@ -110,7 +109,6 @@ public class SignalPainter extends TrackPainter {
NavigableMap entries = signal.getEvents().subMap(first.getKey(), false, last.getKey(), true);
SignalChange left = new SignalChange(first);
SignalChange right = new SignalChange(entries.size() > 0 ? entries.firstEntry() : first);
-
maxX = area.x + area.width;
yOffsetT = this.waveCanvas.getTrackHeight() / 5 + area.y;
yOffsetM = this.waveCanvas.getTrackHeight() / 2 + area.y;
@@ -124,7 +122,6 @@ public class SignalPainter extends TrackPainter {
// b) left to close to right
if (left.time == right.time) {
right.time = endTime;
-
} else {
multiple = true;
long eTime = (xBegin + 1) * this.waveCanvas.getScaleFactor();
@@ -147,7 +144,9 @@ public class SignalPainter extends TrackPainter {
if (xEnd == xBegin) {
multiple = true;
long eTime = (xBegin + 1) * this.waveCanvas.getScaleFactor();
- right.set(entries.floorEntry(eTime), endTime);
+ Entry entry = entries.floorEntry(eTime);
+ if(entry!=null && entry.getKey()> right.time)
+ right.set(entry, endTime);
xEnd = getXEnd(eTime);
}
} while (left.time < endTime);
@@ -269,9 +268,86 @@ public class SignalPainter extends TrackPainter {
}
}
}
-
}
+/*
+ private class RealStencil implements SignalStencil {
+ double min;
+ double max;
+ double diff;
+
+ public RealStencil(ISignalChange value, NavigableMap entries) {
+ min=((ISignalChangeReal) value).getValue();
+ max=min;
+ for (ISignalChange e : entries.values()) {
+ double v = ((ISignalChangeReal)e).getValue();
+ max= Double.isNaN(max)? v : Math.max(max, v);
+ min= Double.isNaN(min)? v : Math.min(min, v);
+ }
+ int nans = (Double.isNaN(max)?2:0) + (Double.isNaN(max)?1:0);
+ switch(nans) {
+ case 0:
+ break;
+ case 1:
+ max=min;
+ break;
+ case 2:
+ min=max;
+ case 3:
+ max=min=0;
+ }
+ diff=max-min;
+ if(diff==0.0) {
+ if(max>0)
+ min=0.0;
+ else if(min<0.0)
+ max=0.0;
+ else {
+ max=1.0;
+ min=0.0;
+ }
+ diff=max-min;
+ }
+ }
+ public void draw(GC gc, Rectangle area, ISignalChange left, ISignalChange right, int xBegin, int xEnd, boolean multiple) {
+ double value = ((ISignalChangeReal)left).getValue();
+ if(Double.isNaN(value)) {
+ Color color = waveCanvas.colors[WaveformColors.SIGNAL_NAN.ordinal()];
+ int width = xEnd - xBegin;
+ if (width > 1) {
+ int[] points = {
+ xBegin, yOffsetT,
+ xEnd, yOffsetT,
+ xEnd, yOffsetB,
+ xBegin, yOffsetB
+ };
+ gc.setForeground(color);
+ gc.drawPolygon(points);
+ gc.setBackground(color);
+ gc.fillPolygon(points);
+ } else {
+ gc.setForeground(color);
+ gc.drawLine(xEnd, yOffsetT, xEnd, yOffsetB);
+ }
+ } else {
+ Color color = waveCanvas.colors[WaveformColors.SIGNAL_ANALOG.ordinal()];
+ int height=yOffsetT-yOffsetB;
+ double offset=value-min;
+ int yOffset=diff>0?(int)(height*(offset/diff)) + yOffsetB:yOffsetM;
+ gc.setForeground(color);
+ if (xEnd > maxX) {
+ gc.drawLine(xBegin, yOffset, maxX, yOffset);
+ } else {
+ gc.drawLine(xBegin, yOffset, xEnd, yOffset);
+ double nextOffset = ((ISignalChangeReal)right).getValue()-min;
+ int yNext = diff>0?(int)(height*(nextOffset/diff)) + yOffsetB:height/2;
+ if (yOffset != yNext)
+ gc.drawLine(xEnd, yOffset, xEnd, yNext);
+ }
+ }
+ }
+ }
+*/
private class RealStencil implements SignalStencil {
double minVal, range;
diff --git a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java
index 4730c33..81f8faf 100644
--- a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java
+++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/StreamPainter.java
@@ -110,6 +110,17 @@ public class StreamPainter extends TrackPainter{
gc.fillRectangle(bb);
gc.drawRectangle(bb);
} else {
+ // adjusting drawing width to circumvent issues in canvas algos
+ if(bb.x < area.x) {
+ 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;
+ }
gc.fillRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5);
gc.drawRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5);
}
diff --git a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java
index 4621e54..815ae84 100644
--- a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java
+++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformCanvas.java
@@ -56,7 +56,7 @@ public class WaveformCanvas extends Canvas {
private int level = 12;
- public final static String[] unitString={"fs", "ps", "ns", "µs", "ms"};//, "s"};
+ public final static String[] unitString={"fs", "ps", "ns", "us", "ms"};//, "s"};
public final static int[] unitMultiplier={1, 3, 10, 30, 100, 300};
@@ -142,6 +142,7 @@ public class WaveformCanvas extends Canvas {
colors[WaveformColors.SIGNALU.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_YELLOW);
colors[WaveformColors.SIGNAL_TEXT.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_WHITE);
colors[WaveformColors.SIGNAL_REAL.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_YELLOW);
+ colors[WaveformColors.SIGNAL_NAN.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_RED);
colors[WaveformColors.CURSOR.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_RED);
colors[WaveformColors.CURSOR_DRAG.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_GRAY);
colors[WaveformColors.CURSOR_TEXT.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_WHITE);
diff --git a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformViewer.java b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformViewer.java
index 470b3af..ac95951 100644
--- a/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformViewer.java
+++ b/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/swt/internal/WaveformViewer.java
@@ -13,7 +13,6 @@ package com.minres.scviewer.database.swt.internal;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
diff --git a/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/WaveformColors.java b/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/WaveformColors.java
index 72fb07e..3c77796 100644
--- a/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/WaveformColors.java
+++ b/com.minres.scviewer.database.ui/src/com/minres/scviewer/database/ui/WaveformColors.java
@@ -14,7 +14,7 @@ public enum WaveformColors {
LINE, LINE_HIGHLITE,
TRACK_BG_EVEN, TRACK_BG_ODD, TRACK_BG_HIGHLITE,
TX_BG, TX_BG_HIGHLITE, TX_BORDER,
- SIGNAL0, SIGNAL1, SIGNALZ, SIGNALX, SIGNALU, SIGNAL_TEXT, SIGNAL_REAL,
+ SIGNAL0, SIGNAL1, SIGNALZ, SIGNALX, SIGNALU, SIGNAL_TEXT, SIGNAL_REAL, SIGNAL_NAN,
CURSOR, CURSOR_DRAG, CURSOR_TEXT,
MARKER, MARKER_TEXT, REL_ARROW, REL_ARROW_HIGHLITE
}
\ No newline at end of file
diff --git a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/IVCDDatabaseBuilder.java b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/IVCDDatabaseBuilder.java
index 812b2ba..9e4bab8 100644
--- a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/IVCDDatabaseBuilder.java
+++ b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/IVCDDatabaseBuilder.java
@@ -52,7 +52,7 @@ public interface IVCDDatabaseBuilder {
*
* @param netId the int value
* @param currentTime the current time in ps
- * @param decodedValues the decoded values
+ * @param decodedValues the decoded bit values
*/
public void appendTransition(int netId, long currentTime, char decodedValue);
diff --git a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java
index 0616e4c..15c5f79 100644
--- a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java
+++ b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java
@@ -184,7 +184,7 @@ public class VCDDbLoader implements IWaveformDbLoader, IVCDDatabaseBuilder {
@Override
public void appendTransition(int signalId, long currentTime, char decodedValues) {
VCDSignal extends IWaveformEvent> signal = (VCDSignal extends IWaveformEvent>) signals.get(signalId);
- Long time = currentTime* TIME_RES;
+ Long time = currentTime*TIME_RES;
if(signal.getWidth()==1){
((VCDSignal)signal).values.put(time, new VCDSignalChangeBit(time, decodedValues));
}
diff --git a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDFileParser.java b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDFileParser.java
index c714dec..06976f8 100644
--- a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDFileParser.java
+++ b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDFileParser.java
@@ -149,6 +149,7 @@ class VCDFileParser {
if (tokenizer.sval.charAt(0) == '#') { // If the line begins with a #, this is a timestamp.
currentTime = Long.parseLong(tokenizer.sval.substring(1)) * picoSecondsPerIncrement;
} else {
+ boolean isReal=false;
if(tokenizer.sval.equals("$comment")){
do {
if (!nextToken()) return false;
diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
index 78699a0..928de0f 100644
--- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
+++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java
@@ -17,6 +17,7 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -55,8 +56,11 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import com.minres.scviewer.database.ITx;
@@ -79,6 +83,7 @@ import com.minres.scviewer.e4.application.internal.util.IFileChangeListener;
import com.minres.scviewer.e4.application.internal.util.IModificationChecker;
import com.minres.scviewer.e4.application.preferences.DefaultValuesInitializer;
import com.minres.scviewer.e4.application.preferences.PreferenceConstants;
+//import com.minres.scviewer.database.swt.internal.WaveformCanvas;
/**
* The Class WaveformViewerPart.
@@ -727,6 +732,7 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
* @param level the new zoom level
*/
public void setZoomLevel(Integer level) {
+ //System.out.println("setZoomLevel() - ZoomLevel: " + level);
if (level < 0)
level = 0;
if (level > zoomLevel.length - 1)
@@ -735,11 +741,43 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
updateAll();
}
+ //FIXME: need to use unitString and unitMultiplier from class WaveformCanvas which is located in >com.minres.scviewer.database.swt.internal.
+ //Trying to import com.minres.scviewer.database.swt.internal.WaveformCanvas results in the error:
+ //'Access restriction: The type 'WaveformCanvas' is not API (restriction on required project 'com.minres.scviewer.database.ui.swt')'.
+ public final static String[] unitString={"fs", "ps", "ns", "µs", "ms"};//, "s"};
+ public final static int[] unitMultiplier={1, 3, 10, 30, 100, 300};
+
/**
* Sets the zoom fit.
*/
public void setZoomFit() {
- waveformPane.setZoomLevel(6);
+
+ //actual max time of signal
+ long maxTime = waveformPane.getMaxTime();
+
+ //get area actually capable of displaying data, i.e. area of the receiver which is capable of displaying data
+ Rectangle clientArea = myParent.getClientArea();
+ long clientAreaWidth = clientArea.width;
+
+ //System.out.println("ZoomLevel[] Array (Length " + zoomLevel.length + "): " + Arrays.toString(zoomLevel));
+ //System.out.println("ClientArea myParent: " + myParent.getClientArea());
+ //System.out.println("MaxTime: " + maxTime);
+ //System.out.println("clientAreaWidth: " + clientAreaWidth);
+
+ boolean foundZoom=false;
+ //try to find existing zoomlevel where scaleFactor*clientAreaWidth >= maxTime, if one is found set it as new zoomlevel
+ for (int level=0; level= maxTime) {
+ setZoomLevel(level);
+ foundZoom=true;
+ break;
+ }
+ }
+ //if no zoom level is found, set biggest one available
+ if(!foundZoom) setZoomLevel(unitMultiplier.length*unitString.length-1);
+
updateAll();
}
diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java
index 4cdcf2b..2851277 100644
--- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java
+++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/preferences/DefaultValuesInitializer.java
@@ -41,11 +41,13 @@ public class DefaultValuesInitializer extends AbstractPreferenceInitializer {
colors[WaveformColors.TX_BG.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_GREEN);
colors[WaveformColors.TX_BG_HIGHLITE.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_GREEN);
colors[WaveformColors.TX_BORDER.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_RED);
- colors[WaveformColors.SIGNAL0.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_GREEN);
- colors[WaveformColors.SIGNAL1.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_GREEN);
+ colors[WaveformColors.SIGNAL0.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_GREEN);
+ colors[WaveformColors.SIGNAL1.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_GREEN);
colors[WaveformColors.SIGNALZ.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_YELLOW);
colors[WaveformColors.SIGNALX.ordinal()] = SWTResourceManager.getColor(255, 51, 51);
colors[WaveformColors.SIGNALU.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_DARK_YELLOW);
+ colors[WaveformColors.SIGNAL_REAL.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_YELLOW);
+ colors[WaveformColors.SIGNAL_NAN.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_RED);
colors[WaveformColors.SIGNAL_TEXT.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_WHITE);
colors[WaveformColors.CURSOR.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_RED);
colors[WaveformColors.CURSOR_DRAG.ordinal()] = SWTResourceManager.getColor(SWT.COLOR_GRAY);
diff --git a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbLabelProvider.java b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbLabelProvider.java
index eab365c..ab0bd3b 100644
--- a/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbLabelProvider.java
+++ b/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/provider/TxDbLabelProvider.java
@@ -20,7 +20,7 @@ import org.eclipse.wb.swt.ResourceManager;
import com.minres.scviewer.database.IHierNode;
import com.minres.scviewer.database.ISignal;
-import com.minres.scviewer.database.ISignalChangeMulti;
+import com.minres.scviewer.database.ISignalChangeBitVector;
import com.minres.scviewer.database.ITxStream;
import com.minres.scviewer.database.IWaveformDb;
import com.minres.scviewer.e4.application.parts.LoadingWaveformDb;
@@ -101,7 +101,7 @@ public class TxDbLabelProvider implements ILabelProvider {
return stream;
}else if(element instanceof ISignal>){
Object o = ((ISignal>)element).getEvents().firstEntry().getValue();
- if(o instanceof ISignalChangeMulti)
+ if(o instanceof ISignalChangeBitVector)
return wave;
else
return signal;
diff --git a/com.minres.scviewer.e4.product/scviewer.product b/com.minres.scviewer.e4.product/scviewer.product
index c5b250e..d500d8d 100644
--- a/com.minres.scviewer.e4.product/scviewer.product
+++ b/com.minres.scviewer.e4.product/scviewer.product
@@ -33,6 +33,7 @@
+
@@ -72,8 +73,10 @@
+
+
@@ -118,6 +121,7 @@
+
diff --git a/com.minres.scviewer.target/neon.target b/com.minres.scviewer.target/neon.target
new file mode 100644
index 0000000..d84fbf9
--- /dev/null
+++ b/com.minres.scviewer.target/neon.target
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+x86_64
+de_DE
+
+
+-Dosgi.requiredJavaVersion=1.7 -XX:MaxPermSize=256 -Xms40m -Xmx2G
+
+
\ No newline at end of file
diff --git a/com.minres.scviewer.target/photon.target b/com.minres.scviewer.target/photon.target
index 91b11cc..5d6c71b 100644
--- a/com.minres.scviewer.target/photon.target
+++ b/com.minres.scviewer.target/photon.target
@@ -6,6 +6,8 @@
+
+
diff --git a/com.minres.scviewer.ui/.settings/org.eclipse.jdt.groovy.core.prefs b/com.minres.scviewer.ui/.settings/org.eclipse.jdt.groovy.core.prefs
index 021403d..bde59a0 100644
--- a/com.minres.scviewer.ui/.settings/org.eclipse.jdt.groovy.core.prefs
+++ b/com.minres.scviewer.ui/.settings/org.eclipse.jdt.groovy.core.prefs
@@ -1,2 +1,3 @@
eclipse.preferences.version=1
groovy.compiler.level=26
+groovy.script.filters=**/*.dsld,y,**/*.gradle,n