Merge branch 'release/2.0.5'
This commit is contained in:
		| @@ -2,7 +2,7 @@ Manifest-Version: 1.0 | |||||||
| Bundle-ManifestVersion: 2 | Bundle-ManifestVersion: 2 | ||||||
| Bundle-Name: SWT widget | Bundle-Name: SWT widget | ||||||
| Bundle-SymbolicName: com.minres.scviewer.database.ui.swt | Bundle-SymbolicName: com.minres.scviewer.database.ui.swt | ||||||
| Bundle-Version: 2.0.0.qualifier | Bundle-Version: 2.0.1.qualifier | ||||||
| Bundle-Vendor: MINRES Technologies GmbH | Bundle-Vendor: MINRES Technologies GmbH | ||||||
| Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | ||||||
| Require-Bundle: org.eclipse.swt;bundle-version="3.103.1", | Require-Bundle: org.eclipse.swt;bundle-version="3.103.1", | ||||||
|   | |||||||
| @@ -8,4 +8,5 @@ | |||||||
|   	<version>2.0.0-SNAPSHOT</version> |   	<version>2.0.0-SNAPSHOT</version> | ||||||
|   	<relativePath>../com.minres.scviewer.parent</relativePath> |   	<relativePath>../com.minres.scviewer.parent</relativePath> | ||||||
|   </parent> |   </parent> | ||||||
|  |   <version>2.0.1-SNAPSHOT</version> | ||||||
| </project> | </project> | ||||||
| @@ -46,6 +46,8 @@ public class ArrowPainter implements IPainter { | |||||||
|  |  | ||||||
| 	private RelationType highlightType; | 	private RelationType highlightType; | ||||||
|  |  | ||||||
|  | 	private long selectionOffset; | ||||||
|  | 	 | ||||||
| 	long scaleFactor; | 	long scaleFactor; | ||||||
|  |  | ||||||
| 	boolean deferredUpdate; | 	boolean deferredUpdate; | ||||||
| @@ -87,8 +89,9 @@ public class ArrowPainter implements IPainter { | |||||||
| 			deferredUpdate = true; | 			deferredUpdate = true; | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
|  | 		selectionOffset = waveCanvas.getXOffset(); | ||||||
| 		int laneHeight = painter.getHeight() / stream.getMaxConcurrency(); | 		int laneHeight = painter.getHeight() / stream.getMaxConcurrency(); | ||||||
| 		txRectangle = new Rectangle((int) (tx.getBeginTime() / scaleFactor), | 		txRectangle = new Rectangle((int) (tx.getBeginTime() / scaleFactor-waveCanvas.getXOffset()), | ||||||
| 				waveCanvas.rulerHeight + painter.getVerticalOffset() + laneHeight * tx.getConcurrencyIndex(), | 				waveCanvas.rulerHeight + painter.getVerticalOffset() + laneHeight * tx.getConcurrencyIndex(), | ||||||
| 				(int) ((tx.getEndTime() - tx.getBeginTime()) / scaleFactor), laneHeight); | 				(int) ((tx.getEndTime() - tx.getBeginTime()) / scaleFactor), laneHeight); | ||||||
| 		deriveGeom(tx.getIncomingRelations(), iRect, false); | 		deriveGeom(tx.getIncomingRelations(), iRect, false); | ||||||
| @@ -102,7 +105,7 @@ public class ArrowPainter implements IPainter { | |||||||
| 				ITxStream<?> stream = otherTx.getStream(); | 				ITxStream<?> stream = otherTx.getStream(); | ||||||
| 				IWaveformPainter painter = waveCanvas.wave2painterMap.get(stream); | 				IWaveformPainter painter = waveCanvas.wave2painterMap.get(stream); | ||||||
| 				int laneHeight = painter.getHeight() / stream.getMaxConcurrency(); | 				int laneHeight = painter.getHeight() / stream.getMaxConcurrency(); | ||||||
| 				Rectangle bb = new Rectangle((int) (otherTx.getBeginTime() / scaleFactor), | 				Rectangle bb = new Rectangle((int) (otherTx.getBeginTime() / scaleFactor-waveCanvas.getXOffset()), | ||||||
| 						waveCanvas.rulerHeight + painter.getVerticalOffset() | 						waveCanvas.rulerHeight + painter.getVerticalOffset() | ||||||
| 								+ laneHeight * otherTx.getConcurrencyIndex(), | 								+ laneHeight * otherTx.getConcurrencyIndex(), | ||||||
| 						(int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor), laneHeight); | 						(int) ((otherTx.getEndTime() - otherTx.getBeginTime()) / scaleFactor), laneHeight); | ||||||
| @@ -120,14 +123,19 @@ public class ArrowPainter implements IPainter { | |||||||
| 			scaleFactor = waveCanvas.getScaleFactor(); | 			scaleFactor = waveCanvas.getScaleFactor(); | ||||||
| 			calculateGeometries(); | 			calculateGeometries(); | ||||||
| 		} | 		} | ||||||
|  | 		if(txRectangle == null) return; | ||||||
|  | 		int correctionValue = (int)(selectionOffset - waveCanvas.getXOffset()); | ||||||
|  | 		Rectangle correctedTargetRectangle = new Rectangle(txRectangle.x+correctionValue, txRectangle.y, txRectangle.width, txRectangle.height); | ||||||
| 		for (LinkEntry entry : iRect) { | 		for (LinkEntry entry : iRect) { | ||||||
|  | 			Rectangle correctedRectangle = new Rectangle(entry.rectangle.x+correctionValue, entry.rectangle.y, entry.rectangle.width, entry.rectangle.height); | ||||||
| 			Point target = drawPath(gc, highlightType.equals(entry.relationType) ? highliteColor : fgColor, | 			Point target = drawPath(gc, highlightType.equals(entry.relationType) ? highliteColor : fgColor, | ||||||
| 					entry.rectangle, txRectangle); | 					correctedRectangle, correctedTargetRectangle); | ||||||
| 			drawArrow(gc, target); | 			drawArrow(gc, target); | ||||||
| 		} | 		} | ||||||
| 		for (LinkEntry entry : oRect) { | 		for (LinkEntry entry : oRect) { | ||||||
| 			Point target = drawPath(gc, highlightType.equals(entry.relationType) ? highliteColor : fgColor, txRectangle, | 			Rectangle correctedRectangle = new Rectangle(entry.rectangle.x+correctionValue, entry.rectangle.y, entry.rectangle.width, entry.rectangle.height); | ||||||
| 					entry.rectangle); | 			Point target = drawPath(gc, highlightType.equals(entry.relationType) ? highliteColor : fgColor, correctedTargetRectangle, | ||||||
|  | 					correctedRectangle); | ||||||
| 			drawArrow(gc, target); | 			drawArrow(gc, target); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -30,6 +30,11 @@ public class CursorPainter implements IPainter, ICursor { | |||||||
| 	 | 	 | ||||||
| 	public final int id; | 	public final int id; | ||||||
| 	 | 	 | ||||||
|  | 	/// maximum visible canvas position in canvas coordinates | ||||||
|  | 	int maxPosX; | ||||||
|  | 	/// maximum visible position in waveform coordinates | ||||||
|  | 	int maxValX; | ||||||
|  | 	 | ||||||
| 	/** | 	/** | ||||||
| 	 * @param i  | 	 * @param i  | ||||||
| 	 * @param txDisplay | 	 * @param txDisplay | ||||||
| @@ -56,23 +61,32 @@ public class CursorPainter implements IPainter, ICursor { | |||||||
| 		this.isDragging = isDragging; | 		this.isDragging = isDragging; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	 | ||||||
| 	public void paintArea(GC gc, Rectangle area) {			 | 	public void paintArea(GC gc, Rectangle area) {			 | ||||||
| 		if(this.waveCanvas.painterList.size()>0){ | 		if(this.waveCanvas.painterList.size()>0){ | ||||||
|  | 			 | ||||||
| 			long scaleFactor=waveCanvas.getScaleFactor(); | 			long scaleFactor=waveCanvas.getScaleFactor(); | ||||||
|  | 			long beginPos = area.x; | ||||||
|  | 			 | ||||||
|  | 			maxPosX = area.x + area.width; | ||||||
|  | 			maxValX = maxPosX + (int)waveCanvas.getXOffset(); | ||||||
|  | 	         | ||||||
|  | 			// x position of marker in pixels on canvas | ||||||
| 			int x = (int) (time/scaleFactor); | 			int x = (int) (time/scaleFactor); | ||||||
|  | 			// distance of marker from the top of Canvas' painting area | ||||||
| 			int top = id<0?area.y:area.y+15; | 			int top = id<0?area.y:area.y+15; | ||||||
|  | 			 | ||||||
| 			Color drawColor=waveCanvas.colors[id<0?WaveformColors.CURSOR.ordinal():WaveformColors.MARKER.ordinal()]; | 			Color drawColor=waveCanvas.colors[id<0?WaveformColors.CURSOR.ordinal():WaveformColors.MARKER.ordinal()]; | ||||||
| 			Color dragColor = waveCanvas.colors[WaveformColors.CURSOR_DRAG.ordinal()]; | 			Color dragColor = waveCanvas.colors[WaveformColors.CURSOR_DRAG.ordinal()]; | ||||||
| 			Color textColor=waveCanvas.colors[id<0?WaveformColors.CURSOR_TEXT.ordinal():WaveformColors.MARKER_TEXT.ordinal()]; | 			Color textColor=waveCanvas.colors[id<0?WaveformColors.CURSOR_TEXT.ordinal():WaveformColors.MARKER_TEXT.ordinal()]; | ||||||
| 			if(x>=area.x && x<=(area.x+area.width)){ | 			if(x>=beginPos && x<=maxValX){ | ||||||
| 				gc.setForeground(isDragging?dragColor:drawColor); | 				gc.setForeground(isDragging?dragColor:drawColor); | ||||||
| 				gc.drawLine(x, top, x, area.y+area.height); | 				gc.drawLine(x-(int)waveCanvas.getXOffset(), top, x-(int)waveCanvas.getXOffset(), area.y+area.height); | ||||||
| 				gc.setBackground(drawColor); | 				gc.setBackground(drawColor); | ||||||
| 				gc.setForeground(textColor); | 				gc.setForeground(textColor); | ||||||
| 				Double dTime=new Double(time); | 				Double dTime=new Double(time); | ||||||
| 				gc.drawText((dTime/waveCanvas.getScaleFactorPow10())+waveCanvas.getUnitStr(), x+1, top); | 				gc.drawText((dTime/waveCanvas.getScaleFactorPow10())+waveCanvas.getUnitStr(), x+1-(int)waveCanvas.getXOffset(), top); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	}	 | 	}	 | ||||||
|  |  | ||||||
| } | } | ||||||
| @@ -32,6 +32,7 @@ public class RulerPainter implements IPainter { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void paintArea(GC gc, Rectangle area) { |     public void paintArea(GC gc, Rectangle area) { | ||||||
|  |  | ||||||
|     	Color headerFgColor=waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND); |     	Color headerFgColor=waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND); | ||||||
|     	if(headerFgColor.isDisposed()) |     	if(headerFgColor.isDisposed()) | ||||||
|     		headerFgColor=SWTResourceManager.getColor(0,0,0); |     		headerFgColor=SWTResourceManager.getColor(0,0,0); | ||||||
| @@ -41,9 +42,11 @@ public class RulerPainter implements IPainter { | |||||||
|         String unit=waveCanvas.getUnitStr(); |         String unit=waveCanvas.getUnitStr(); | ||||||
|         int unitMultiplier=waveCanvas.getUnitMultiplier(); |         int unitMultiplier=waveCanvas.getUnitMultiplier(); | ||||||
|         long scaleFactor=waveCanvas.getScaleFactor(); |         long scaleFactor=waveCanvas.getScaleFactor(); | ||||||
| //        long zoomLevel = waveCanvas.getZoomLevel(); |  | ||||||
|         long start=area.x*scaleFactor; |         long startPos=area.x*scaleFactor;  | ||||||
|         long end=start+area.width*scaleFactor; |         long startVal=startPos + waveCanvas.getXOffset()*scaleFactor; | ||||||
|  |         long endPos=startPos+area.width*scaleFactor; | ||||||
|  |         long endVal=startVal+area.width*scaleFactor; | ||||||
|  |  | ||||||
|         long rulerTickMinor = rulerTickMinorC*scaleFactor; |         long rulerTickMinor = rulerTickMinorC*scaleFactor; | ||||||
|         long rulerTickMajor = rulerTickMajorC*scaleFactor; |         long rulerTickMajor = rulerTickMajorC*scaleFactor; | ||||||
| @@ -54,9 +57,9 @@ public class RulerPainter implements IPainter { | |||||||
|         int baselineY=waveCanvas.rulerHeight - 1; |         int baselineY=waveCanvas.rulerHeight - 1; | ||||||
|         int bottom=waveCanvas.rulerHeight - 2; |         int bottom=waveCanvas.rulerHeight - 2; | ||||||
|  |  | ||||||
|         long startMinorIncr = start; |         long modulo = startVal % rulerTickMinor; | ||||||
|         long modulo = start % rulerTickMinor; |         long startMinorIncrPos = startPos+rulerTickMinor-modulo; | ||||||
|         startMinorIncr+=rulerTickMinor-modulo; |         long startMinorIncrVal = startVal+rulerTickMinor-modulo; | ||||||
|          |          | ||||||
|         gc.setBackground(waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); |         gc.setBackground(waveCanvas.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); | ||||||
|         gc.fillRectangle(new Rectangle(area.x, area.y, area.width, waveCanvas.rulerHeight)); |         gc.fillRectangle(new Rectangle(area.x, area.y, area.width, waveCanvas.rulerHeight)); | ||||||
| @@ -65,15 +68,18 @@ public class RulerPainter implements IPainter { | |||||||
|         gc.setForeground(headerFgColor); |         gc.setForeground(headerFgColor); | ||||||
|         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 tick = startMinorIncr; tick < end; tick += rulerTickMinor) { |         int x0_max = 0; | ||||||
|             int x0 = (int) (tick/scaleFactor); |          | ||||||
|  |         for (long pos = startMinorIncrPos, tick = startMinorIncrVal; pos < endPos; pos+= rulerTickMinor, tick += rulerTickMinor) { | ||||||
|  |             int x0_pos = (int) (pos/scaleFactor); | ||||||
|  |             long x0_val = tick/scaleFactor; | ||||||
|  |             x0_max = x0_pos; | ||||||
|             if ((tick % rulerTickMajor) == 0) { |             if ((tick % rulerTickMajor) == 0) { | ||||||
|                 gc.drawText(df.format(tick/scaleFactor*unitMultiplier)+unit, x0, area.y+textY); |                 gc.drawText(df.format(x0_val*unitMultiplier)+unit, x0_pos, area.y+textY); | ||||||
|                 gc.drawLine(x0, area.y+majorTickY, x0,area.y+ bottom); |                 gc.drawLine(x0_pos, area.y+majorTickY, x0_pos,area.y+ bottom); | ||||||
|             } else { |             } else { | ||||||
|                 gc.drawLine(x0, area.y+minorTickY, x0, area.y+bottom); |                 gc.drawLine(x0_pos, area.y+minorTickY, x0_pos, area.y+bottom); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|          |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -68,16 +68,24 @@ public class SignalPainter extends TrackPainter { | |||||||
| 	int yOffsetT; | 	int yOffsetT; | ||||||
| 	int yOffsetM; | 	int yOffsetM; | ||||||
| 	int yOffsetB; | 	int yOffsetB; | ||||||
| 	int maxX; | 	/// maximum visible canvas position in canvas coordinates | ||||||
|  | 	int maxPosX; | ||||||
|  | 	/// maximum visible position in waveform coordinates | ||||||
|  | 	int maxValX; | ||||||
|  |  | ||||||
| 	public SignalPainter(WaveformCanvas txDisplay, boolean even, TrackEntry trackEntry) { | 	public SignalPainter(WaveformCanvas txDisplay, boolean even, TrackEntry trackEntry) { | ||||||
| 		super(trackEntry, even); | 		super(trackEntry, even); | ||||||
| 		this.waveCanvas = txDisplay; | 		this.waveCanvas = txDisplay; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	private int getXEnd(long time) { | 	private int getXValEnd(long time) { | ||||||
| 		long ltmp = time / this.waveCanvas.getScaleFactor(); | 		long ltmp = time / this.waveCanvas.getScaleFactor(); | ||||||
| 		return ltmp > maxX ? maxX : (int) ltmp; | 		return ltmp > maxValX ? maxValX : (int) ltmp; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	private int getXPosEnd(long time) { | ||||||
|  | 		long ltmp = time / this.waveCanvas.getScaleFactor() - waveCanvas.getXOffset(); | ||||||
|  | 		return ltmp > maxPosX ? maxPosX : (int) ltmp; | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	public void paintArea(GC gc, Rectangle area) { | 	public void paintArea(GC gc, Rectangle area) { | ||||||
| @@ -88,8 +96,13 @@ public class SignalPainter extends TrackPainter { | |||||||
| 			gc.setBackground(this.waveCanvas.colors[even ? WaveformColors.TRACK_BG_EVEN.ordinal() : WaveformColors.TRACK_BG_ODD.ordinal()]); | 			gc.setBackground(this.waveCanvas.colors[even ? WaveformColors.TRACK_BG_EVEN.ordinal() : WaveformColors.TRACK_BG_ODD.ordinal()]); | ||||||
| 		gc.setFillRule(SWT.FILL_EVEN_ODD); | 		gc.setFillRule(SWT.FILL_EVEN_ODD); | ||||||
| 		gc.fillRectangle(area); | 		gc.fillRectangle(area); | ||||||
| 		long beginTime = area.x * this.waveCanvas.getScaleFactor(); |  | ||||||
| 		long endTime = (area.x + area.width) * this.waveCanvas.getScaleFactor(); | 		long scaleFactor = this.waveCanvas.getScaleFactor(); | ||||||
|  | 		long beginPos = area.x; | ||||||
|  | 		long beginTime = (beginPos + waveCanvas.getXOffset())*scaleFactor; | ||||||
|  | 		long endPos = beginPos + area.width; | ||||||
|  |         long endTime = beginTime + area.width*scaleFactor; | ||||||
|  | 		 | ||||||
| 		Entry<Long, ?> first = signal.getEvents().floorEntry(beginTime); | 		Entry<Long, ?> first = signal.getEvents().floorEntry(beginTime); | ||||||
| 		Entry<Long, ?> last = signal.getEvents().floorEntry(endTime); | 		Entry<Long, ?> last = signal.getEvents().floorEntry(endTime); | ||||||
| 		if (first == null) { | 		if (first == null) { | ||||||
| @@ -105,14 +118,18 @@ public class SignalPainter extends TrackPainter { | |||||||
| 		NavigableMap<Long, ?> entries = signal.getEvents().subMap(first.getKey(), false, last.getKey(), true); | 		NavigableMap<Long, ?> entries = signal.getEvents().subMap(first.getKey(), false, last.getKey(), true); | ||||||
| 		SignalChange left = new SignalChange(first); | 		SignalChange left = new SignalChange(first); | ||||||
| 		SignalChange right = new SignalChange(entries.size() > 0 ? entries.firstEntry() : first); | 		SignalChange right = new SignalChange(entries.size() > 0 ? entries.firstEntry() : first); | ||||||
| 		maxX = area.x + area.width; | 		maxPosX = area.x + area.width; | ||||||
|  | 		maxValX = maxPosX + (int)waveCanvas.getXOffset(); | ||||||
| 		yOffsetT = this.waveCanvas.getTrackHeight() / 5 + area.y; | 		yOffsetT = this.waveCanvas.getTrackHeight() / 5 + area.y; | ||||||
| 		yOffsetM = this.waveCanvas.getTrackHeight() / 2 + area.y; | 		yOffsetM = this.waveCanvas.getTrackHeight() / 2 + area.y; | ||||||
| 		yOffsetB = 4 * this.waveCanvas.getTrackHeight() / 5 + area.y; | 		yOffsetB = 4 * this.waveCanvas.getTrackHeight() / 5 + area.y; | ||||||
| 		int xBegin = Math.max(area.x, (int) (left.time / this.waveCanvas.getScaleFactor())); | 		int xSigChangeBeginVal = Math.max(area.x + (int)waveCanvas.getXOffset(), (int) (left.time / this.waveCanvas.getScaleFactor())); | ||||||
| 		int xEnd = Math.max(area.x, getXEnd(right.time)); | 		int xSigChangeBeginPos = area.x; | ||||||
|  | 		int xSigChangeEndVal = Math.max(area.x + (int)waveCanvas.getXOffset(), getXValEnd(right.time)); | ||||||
|  | 		int xSigChangeEndPos = Math.max(area.x, getXPosEnd(right.time)); | ||||||
|  | 		 | ||||||
| 		boolean multiple = false; | 		boolean multiple = false; | ||||||
| 		if (xEnd == xBegin) { | 		if (xSigChangeEndPos == xSigChangeBeginPos) { | ||||||
| 			// this can trigger if | 			// this can trigger if | ||||||
| 			// a) left == right | 			// a) left == right | ||||||
| 			// b) left to close to right | 			// b) left to close to right | ||||||
| @@ -120,30 +137,31 @@ public class SignalPainter extends TrackPainter { | |||||||
| 				right.time = endTime; | 				right.time = endTime; | ||||||
| 			} else { | 			} else { | ||||||
| 				multiple = true; | 				multiple = true; | ||||||
| 				long eTime = (xBegin + 1) * this.waveCanvas.getScaleFactor(); | 				long eTime = (xSigChangeBeginVal + 1) * this.waveCanvas.getScaleFactor(); | ||||||
| 				right.set(entries.floorEntry(eTime), endTime); | 				right.set(entries.floorEntry(eTime), endTime); | ||||||
| 				right.time = eTime; | 				right.time = eTime; | ||||||
| 			} | 			} | ||||||
| 			xEnd = getXEnd(right.time); | 			xSigChangeEndPos = getXPosEnd(right.time); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		 | ||||||
| 		SignalStencil stencil = getStencil(gc, left, entries); | 		SignalStencil stencil = getStencil(gc, left, entries); | ||||||
| 		do { | 		do { | ||||||
| 			stencil.draw(gc, area, left.value, right.value, xBegin, xEnd, multiple); | 			stencil.draw(gc, area, left.value, right.value, xSigChangeBeginPos, xSigChangeEndPos, multiple); | ||||||
| 			if (right.time >= endTime) | 			if (right.time >= endTime) | ||||||
| 				break; | 				break; | ||||||
| 			left.assign(right); | 			left.assign(right); | ||||||
| 			xBegin = xEnd; | 			xSigChangeBeginPos = xSigChangeEndPos; | ||||||
| 			right.set(entries.higherEntry(left.time), endTime); | 			right.set(entries.higherEntry(left.time), endTime); | ||||||
| 			xEnd = getXEnd(right.time); | 			xSigChangeEndPos = getXPosEnd(right.time); | ||||||
| 			multiple = false; | 			multiple = false; | ||||||
| 			if (xEnd == xBegin) { | 			if (xSigChangeEndPos == xSigChangeBeginPos) { | ||||||
| 				multiple = true; | 				multiple = true; | ||||||
| 				long eTime = (xBegin + 1) * this.waveCanvas.getScaleFactor(); | 				long eTime = (xSigChangeBeginPos + 1) * this.waveCanvas.getScaleFactor(); | ||||||
| 				Entry<Long, ?> entry = entries.floorEntry(eTime); | 				Entry<Long, ?> entry = entries.floorEntry(eTime); | ||||||
| 				if(entry!=null && entry.getKey()> right.time) | 				if(entry!=null && entry.getKey()> right.time) | ||||||
| 					right.set(entry, endTime); | 					right.set(entry, endTime); | ||||||
| 				xEnd = getXEnd(eTime); | 				xSigChangeEndPos = getXPosEnd(eTime); | ||||||
| 			} | 			} | ||||||
| 		} while (left.time < endTime); | 		} while (left.time < endTime); | ||||||
| 	} | 	} | ||||||
| @@ -273,14 +291,14 @@ public class SignalPainter extends TrackPainter { | |||||||
| 			int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT)); | 			int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT)); | ||||||
| 			int yOffsetRight = (int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT)); | 			int yOffsetRight = (int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT)); | ||||||
| 			if(continous) { | 			if(continous) { | ||||||
| 				if (xEnd > maxX) { | 				if (xEnd > maxPosX) { | ||||||
| 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxX, yOffsetB-yOffsetRight); | 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetRight); | ||||||
| 				} else { | 				} else { | ||||||
| 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight); | 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight); | ||||||
| 				} | 				} | ||||||
| 			} else { | 			} else { | ||||||
| 				if (xEnd > maxX) { | 				if (xEnd > maxPosX) { | ||||||
| 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxX, yOffsetB-yOffsetLeft); | 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetLeft); | ||||||
| 				} else { | 				} else { | ||||||
| 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft); | 					gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft); | ||||||
| 					if(yOffsetRight!=yOffsetLeft) { | 					if(yOffsetRight!=yOffsetLeft) { | ||||||
| @@ -316,8 +334,8 @@ public class SignalPainter extends TrackPainter { | |||||||
| 				default: | 				default: | ||||||
| 				} | 				} | ||||||
| 				gc.setForeground(color); | 				gc.setForeground(color); | ||||||
| 				if (xEnd > maxX) { | 				if (xEnd > maxPosX) { | ||||||
| 					gc.drawLine(xBegin, yOffset, maxX, yOffset); | 					gc.drawLine(xBegin, yOffset, maxPosX, yOffset); | ||||||
| 				} else { | 				} else { | ||||||
| 					gc.drawLine(xBegin, yOffset, xEnd, yOffset); | 					gc.drawLine(xBegin, yOffset, xEnd, yOffset); | ||||||
| 					int yNext = yOffsetM; | 					int yNext = yOffsetM; | ||||||
| @@ -398,14 +416,14 @@ public class SignalPainter extends TrackPainter { | |||||||
| 				int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT)); | 				int yOffsetLeft = (int) ((leftVal-minVal) / range * (yOffsetB-yOffsetT)); | ||||||
| 				int yOffsetRight = Double.isNaN(rightVal)?yOffsetLeft:(int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT)); | 				int yOffsetRight = Double.isNaN(rightVal)?yOffsetLeft:(int) ((rightVal-minVal) / range * (yOffsetB-yOffsetT)); | ||||||
| 				if(continous) { | 				if(continous) { | ||||||
| 					if (xEnd > maxX) { | 					if (xEnd > maxPosX) { | ||||||
| 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxX, yOffsetB-yOffsetRight); | 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetRight); | ||||||
| 					} else { | 					} else { | ||||||
| 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight); | 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetRight); | ||||||
| 					} | 					} | ||||||
| 				} else { | 				} else { | ||||||
| 					if (xEnd > maxX) { | 					if (xEnd > maxPosX) { | ||||||
| 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxX, yOffsetB-yOffsetLeft); | 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, maxPosX, yOffsetB-yOffsetLeft); | ||||||
| 					} else { | 					} else { | ||||||
| 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft); | 						gc.drawLine(xBegin, yOffsetB-yOffsetLeft, xEnd, yOffsetB-yOffsetLeft); | ||||||
| 						if(yOffsetRight!=yOffsetLeft) { | 						if(yOffsetRight!=yOffsetLeft) { | ||||||
|   | |||||||
| @@ -57,15 +57,23 @@ public class StreamPainter extends TrackPainter{ | |||||||
| 			gc.setBackground(this.waveCanvas.colors[even?WaveformColors.TRACK_BG_EVEN.ordinal():WaveformColors.TRACK_BG_ODD.ordinal()]); | 			gc.setBackground(this.waveCanvas.colors[even?WaveformColors.TRACK_BG_EVEN.ordinal():WaveformColors.TRACK_BG_ODD.ordinal()]); | ||||||
| 		gc.setFillRule(SWT.FILL_EVEN_ODD); | 		gc.setFillRule(SWT.FILL_EVEN_ODD); | ||||||
| 		gc.fillRectangle(area); | 		gc.fillRectangle(area); | ||||||
| 		Entry<Long, ?> firstTx=stream.getEvents().floorEntry(area.x*waveCanvas.getScaleFactor()); | 		 | ||||||
| 		Entry<Long, ?> lastTx=stream.getEvents().ceilingEntry((area.x+area.width)*waveCanvas.getScaleFactor()); | 		long scaleFactor = this.waveCanvas.getScaleFactor(); | ||||||
|  | 		long beginPos = area.x; | ||||||
|  | 		long beginTime = (beginPos + waveCanvas.getXOffset())*scaleFactor; | ||||||
|  | 		long endPos = beginPos + area.width; | ||||||
|  |         long endTime = beginTime + area.width*scaleFactor; | ||||||
|  |  | ||||||
|  | 		Entry<Long, ?> firstTx=stream.getEvents().floorEntry(beginTime); | ||||||
|  | 		Entry<Long, ?> lastTx=stream.getEvents().ceilingEntry(endTime); | ||||||
| 		if(firstTx==null) firstTx = stream.getEvents().firstEntry(); | 		if(firstTx==null) firstTx = stream.getEvents().firstEntry(); | ||||||
| 		if(lastTx==null) lastTx=stream.getEvents().lastEntry(); | 		if(lastTx==null) lastTx=stream.getEvents().lastEntry(); | ||||||
|         gc.setFillRule(SWT.FILL_EVEN_ODD); |         gc.setFillRule(SWT.FILL_EVEN_ODD); | ||||||
|         gc.setLineStyle(SWT.LINE_SOLID); |         gc.setLineStyle(SWT.LINE_SOLID); | ||||||
|         gc.setLineWidth(1); |         gc.setLineWidth(1); | ||||||
|         gc.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]); |         gc.setForeground(this.waveCanvas.colors[WaveformColors.LINE.ordinal()]); | ||||||
|         for(int y1=area.y+trackHeight/2; y1<area.y+trackEntry.height; y1+=trackHeight) |          | ||||||
|  |         for( int y1=area.y+trackHeight/2; y1<area.y+trackEntry.height; y1+=trackHeight) | ||||||
|         	gc.drawLine(area.x, y1, area.x+area.width, y1); |         	gc.drawLine(area.x, y1, area.x+area.width, y1); | ||||||
| 		if(firstTx==lastTx) | 		if(firstTx==lastTx) | ||||||
| 			for(ITxEvent txEvent:(Collection<?  extends ITxEvent>)firstTx.getValue()) | 			for(ITxEvent txEvent:(Collection<?  extends ITxEvent>)firstTx.getValue()) | ||||||
| @@ -101,8 +109,9 @@ public class StreamPainter extends TrackPainter{ | |||||||
| 	protected void drawTx(GC gc, Rectangle area, ITx tx) { | 	protected void drawTx(GC gc, Rectangle area, ITx tx) { | ||||||
| 		int offset = tx.getConcurrencyIndex()*this.waveCanvas.getTrackHeight(); | 		int offset = tx.getConcurrencyIndex()*this.waveCanvas.getTrackHeight(); | ||||||
| 		Rectangle bb = new Rectangle( | 		Rectangle bb = new Rectangle( | ||||||
| 				(int)(tx.getBeginTime()/this.waveCanvas.getScaleFactor()), area.y+offset+txBase, | 				(int)(tx.getBeginTime()/this.waveCanvas.getScaleFactor()-waveCanvas.getXOffset()), area.y+offset+txBase, | ||||||
| 				(int)((tx.getEndTime()-tx.getBeginTime())/this.waveCanvas.getScaleFactor()), txHeight); | 				(int)((tx.getEndTime()-tx.getBeginTime())/this.waveCanvas.getScaleFactor()), txHeight); | ||||||
|  |  | ||||||
| 		if(bb.x+bb.width<area.x || bb.x>area.x+area.width) return; | 		if(bb.x+bb.width<area.x || bb.x>area.x+area.width) return; | ||||||
| 		if(bb.width==0){ | 		if(bb.width==0){ | ||||||
| 			gc.drawLine(bb.x, bb.y, bb.x, bb.y+bb.height); | 			gc.drawLine(bb.x, bb.y, bb.x, bb.y+bb.height); | ||||||
| @@ -110,7 +119,6 @@ public class StreamPainter extends TrackPainter{ | |||||||
| 			gc.fillRectangle(bb); | 			gc.fillRectangle(bb); | ||||||
| 			gc.drawRectangle(bb); | 			gc.drawRectangle(bb); | ||||||
| 		} else { | 		} else { | ||||||
| 			// adjusting drawing width to circumvent issues in canvas algos |  | ||||||
| 			if(bb.x < area.x) { | 			if(bb.x < area.x) { | ||||||
| 				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; | ||||||
| @@ -121,7 +129,7 @@ public class StreamPainter extends TrackPainter{ | |||||||
| 				bb_x2=area_x2+5; | 				bb_x2=area_x2+5; | ||||||
| 				bb.width= bb_x2-bb.x; | 				bb.width= bb_x2-bb.x; | ||||||
| 			} | 			} | ||||||
| 		    gc.fillRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5); | 			gc.fillRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5); | ||||||
| 		    gc.drawRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5); | 		    gc.drawRoundRectangle(bb.x, bb.y, bb.width, bb.height, 5, 5); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ import com.minres.scviewer.database.ui.IWaveformViewer; | |||||||
| import com.minres.scviewer.database.ui.TrackEntry; | import com.minres.scviewer.database.ui.TrackEntry; | ||||||
| import com.minres.scviewer.database.ui.WaveformColors; | import com.minres.scviewer.database.ui.WaveformColors; | ||||||
|  |  | ||||||
| public class WaveformCanvas extends Canvas { | public class WaveformCanvas extends Canvas{ | ||||||
| 	 | 	 | ||||||
|     Color[] colors = new Color[WaveformColors.values().length]; |     Color[] colors = new Color[WaveformColors.values().length]; | ||||||
|  |  | ||||||
| @@ -84,13 +84,13 @@ public class WaveformCanvas extends Canvas { | |||||||
|      * Constructor for ScrollableCanvas. |      * Constructor for ScrollableCanvas. | ||||||
|      *  |      *  | ||||||
|      * @param parent |      * @param parent | ||||||
|      *            the parent of this control. |      *            the parent of this control.super(parent, style | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL | SWT.H_SCROLL); | ||||||
|      * @param style |      * @param style | ||||||
|      *            the style of this control. |      *            the style of this control. | ||||||
|      */ |      */ | ||||||
|     public WaveformCanvas(final Composite parent, int style) { |     public WaveformCanvas(final Composite parent, int style) { | ||||||
|         super(parent, style | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL | SWT.H_SCROLL); |         super(parent, style | SWT.DOUBLE_BUFFERED | SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL | SWT.H_SCROLL); | ||||||
|         addControlListener(new ControlAdapter() { /* resize listener. */ |     	addControlListener(new ControlAdapter() { /* resize listener. */ | ||||||
|             public void controlResized(ControlEvent event) { |             public void controlResized(ControlEvent event) { | ||||||
|                 syncScrollBars(); |                 syncScrollBars(); | ||||||
|             } |             } | ||||||
| @@ -150,6 +150,10 @@ public class WaveformCanvas extends Canvas { | |||||||
|  |  | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     public long getXOffset() { | ||||||
|  |     	return -origin.x; | ||||||
|  |     } | ||||||
|  |      | ||||||
| 	public void addCursoPainter(CursorPainter cursorPainter){ | 	public void addCursoPainter(CursorPainter cursorPainter){ | ||||||
| 		painterList.add(cursorPainter); | 		painterList.add(cursorPainter); | ||||||
| 		cursorPainters.add(cursorPainter); | 		cursorPainters.add(cursorPainter); | ||||||
| @@ -243,10 +247,11 @@ public class WaveformCanvas extends Canvas { | |||||||
|     		long xoffs=xc+origin.x; // cursor offset relative to left border |     		long xoffs=xc+origin.x; // cursor offset relative to left border | ||||||
|     		long xcn=tc/scaleFactor; // new total x-offset |     		long xcn=tc/scaleFactor; // new total x-offset | ||||||
|     		long originX=xcn-xoffs; |     		long originX=xcn-xoffs; | ||||||
|     		if(originX>0) |     		if(originX>0) { | ||||||
|     			origin.x=(int) -originX; // new cursor time offset relative to left border |     			origin.x=(int) -originX; // new cursor time offset relative to left border | ||||||
|     		else |     		}else { | ||||||
|     			origin.x=0; |     			origin.x=0; | ||||||
|  |     		} | ||||||
|     		syncScrollBars(); |     		syncScrollBars(); | ||||||
|     		arrowPainter.setTx(tx);    		 |     		arrowPainter.setTx(tx);    		 | ||||||
|     		redraw(); |     		redraw(); | ||||||
| @@ -354,7 +359,7 @@ public class WaveformCanvas extends Canvas { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         int height = trackAreaPainter.getHeight(); // incl. Ruler |         int height = trackAreaPainter.getHeight(); // incl. Ruler | ||||||
|         int width = (int) (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((int) (getClientArea().width / 100)); | ||||||
| @@ -362,10 +367,11 @@ public class WaveformCanvas extends Canvas { | |||||||
|         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(width); |             horizontal.setMaximum((int)width); | ||||||
|             horizontal.setEnabled(true); |             horizontal.setEnabled(true); | ||||||
|             if (((int) -origin.x) > horizontal.getMaximum() - clientWidthw) |             if (((int) -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 */ | ||||||
|             horizontal.setEnabled(false); |             horizontal.setEnabled(false); | ||||||
|         } |         } | ||||||
| @@ -380,8 +386,9 @@ public class WaveformCanvas extends Canvas { | |||||||
|             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 (((int) -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((int) (clientHeighth)); | ||||||
|             vertical.setEnabled(false); |             vertical.setEnabled(false); | ||||||
| @@ -396,12 +403,13 @@ public class WaveformCanvas extends Canvas { | |||||||
|     /* Paint function */ |     /* Paint function */ | ||||||
|     private void paint(GC gc) { |     private void paint(GC gc) { | ||||||
|         Rectangle clientRect = getClientArea(); /* Canvas' painting area */ |         Rectangle clientRect = getClientArea(); /* Canvas' painting area */ | ||||||
|         clientRect.x = -origin.x; | //      clientRect.x = -origin.x; | ||||||
|         clientRect.y = -origin.y; |         clientRect.y = -origin.y; | ||||||
|         // reset the transform |         // reset the transform | ||||||
|         transform.identity(); |         transform.identity(); | ||||||
|         // shift the content |         // shift the content | ||||||
|         transform.translate(origin.x, origin.y); |         // DO NOT SHIFT HORIZONTALLY, the range is WAY TOO BIG for float!!! | ||||||
|  |         transform.translate(0, origin.y); | ||||||
|         gc.setTransform(transform); |         gc.setTransform(transform); | ||||||
|         gc.setClipping(clientRect); |         gc.setClipping(clientRect); | ||||||
|         if (painterList.size() > 0 ) { |         if (painterList.size() > 0 ) { | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ Manifest-Version: 1.0 | |||||||
| Bundle-ManifestVersion: 2 | Bundle-ManifestVersion: 2 | ||||||
| Bundle-Name: %Bundle-Name | Bundle-Name: %Bundle-Name | ||||||
| Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true | Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true | ||||||
| Bundle-Version: 2.0.4.qualifier | Bundle-Version: 2.0.5.qualifier | ||||||
| Bundle-Vendor: %Bundle-Vendor | Bundle-Vendor: %Bundle-Vendor | ||||||
| Require-Bundle: javax.inject;bundle-version="1.0.0", | Require-Bundle: javax.inject;bundle-version="1.0.0", | ||||||
|   org.eclipse.core.runtime;bundle-version="3.11.1", |   org.eclipse.core.runtime;bundle-version="3.11.1", | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||||
|   <modelVersion>4.0.0</modelVersion> |   <modelVersion>4.0.0</modelVersion> | ||||||
|   <artifactId>com.minres.scviewer.e4.application</artifactId> |   <artifactId>com.minres.scviewer.e4.application</artifactId> | ||||||
|   <version>2.0.4-SNAPSHOT</version> |   <version>2.0.5-SNAPSHOT</version> | ||||||
|   <parent> |   <parent> | ||||||
|   	<groupId>com.minres.scviewer</groupId> |   	<groupId>com.minres.scviewer</groupId> | ||||||
|   	<artifactId>com.minres.scviewer.parent</artifactId> |   	<artifactId>com.minres.scviewer.parent</artifactId> | ||||||
|   | |||||||
| @@ -59,7 +59,7 @@ public class WaveStatusBarControl extends StatusBarControl { | |||||||
| 		final String labelString; | 		final String labelString; | ||||||
| 		 | 		 | ||||||
| 		/** The width. */ | 		/** The width. */ | ||||||
| 		final int width; | 		//final int width; | ||||||
| 		 | 		 | ||||||
| 		/** The text. */ | 		/** The text. */ | ||||||
| 		CLabel label, text; | 		CLabel label, text; | ||||||
| @@ -73,10 +73,10 @@ public class WaveStatusBarControl extends StatusBarControl { | |||||||
| 		 * @param labelString the label string | 		 * @param labelString the label string | ||||||
| 		 * @param width the width | 		 * @param width the width | ||||||
| 		 */ | 		 */ | ||||||
| 		public TextContributionItem(String labelString, int width) { | 		public TextContributionItem(String labelString /*, int width */) { | ||||||
| 			super(); | 			super(); | ||||||
| 			this.labelString = labelString; | 			this.labelString = labelString; | ||||||
| 			this.width=width; | 			//this.width=width; | ||||||
| 			content=""; //$NON-NLS-1$ | 			content=""; //$NON-NLS-1$ | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -85,14 +85,16 @@ public class WaveStatusBarControl extends StatusBarControl { | |||||||
| 		 */ | 		 */ | ||||||
| 		@Override | 		@Override | ||||||
| 		public void fill(Composite parent) { | 		public void fill(Composite parent) { | ||||||
| 			Composite box=new Composite(parent, SWT.NONE); | 			Composite box=new Composite(parent, SWT.NONE); //NONE | ||||||
| 			box.setLayout(new GridLayout(2, false)); | 			box.setLayout(new GridLayout(2, false)); | ||||||
| 			label=new CLabel(box, SWT.SHADOW_NONE);	 | 			label=new CLabel(box, SWT.SHADOW_NONE);	 | ||||||
| 			label.setText(labelString); | 			label.setText(labelString); | ||||||
| 			text=new CLabel(box, SWT.SHADOW_IN); | 			text=new CLabel(box, SWT.SHADOW_IN); | ||||||
| 			text.setAlignment(SWT.RIGHT); | 			text.setAlignment(SWT.RIGHT); | ||||||
|  | 			//GridData layoutData=new GridData(SWT.DEFAULT, SWT.DEFAULT, true, false); | ||||||
| 			GridData layoutData=new GridData(SWT.DEFAULT, SWT.DEFAULT, true, false); | 			GridData layoutData=new GridData(SWT.DEFAULT, SWT.DEFAULT, true, false); | ||||||
| 			layoutData.minimumWidth=width; | 			layoutData.minimumWidth=70; | ||||||
|  | 			//layoutData.minimumWidth=width; | ||||||
| 			text.setLayoutData(layoutData); | 			text.setLayoutData(layoutData); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -127,10 +129,11 @@ public class WaveStatusBarControl extends StatusBarControl { | |||||||
| 	@Inject | 	@Inject | ||||||
| 	public WaveStatusBarControl(UISynchronize sync) { | 	public WaveStatusBarControl(UISynchronize sync) { | ||||||
| 		super(sync); | 		super(sync); | ||||||
| 		cursorContribution = new TextContributionItem(Messages.WaveStatusBarControl_5, 150); | 				 | ||||||
| 		markerContribution = new TextContributionItem(Messages.WaveStatusBarControl_6, 150); | 		cursorContribution = new TextContributionItem(Messages.WaveStatusBarControl_5 /*, 150 */); //150 | ||||||
| 		markerDiffContribution = new TextContributionItem(Messages.WaveStatusBarControl_7, 150); | 		markerContribution = new TextContributionItem(Messages.WaveStatusBarControl_6 /*, 150 */); //150 | ||||||
| 		zoomContribution = new TextContributionItem(Messages.WaveStatusBarControl_8, 60); | 		markerDiffContribution = new TextContributionItem(Messages.WaveStatusBarControl_7 /*, 150 */); //150 | ||||||
|  | 		zoomContribution = new TextContributionItem(Messages.WaveStatusBarControl_8 /*, 60 */); //60 | ||||||
| 		manager.appendToGroup(StatusLineManager.BEGIN_GROUP,cursorContribution); | 		manager.appendToGroup(StatusLineManager.BEGIN_GROUP,cursorContribution); | ||||||
| 		manager.appendToGroup(StatusLineManager.BEGIN_GROUP,markerContribution); | 		manager.appendToGroup(StatusLineManager.BEGIN_GROUP,markerContribution); | ||||||
| 		manager.appendToGroup(StatusLineManager.BEGIN_GROUP,markerDiffContribution); | 		manager.appendToGroup(StatusLineManager.BEGIN_GROUP,markerDiffContribution); | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
| 		<relativePath>../com.minres.scviewer.parent</relativePath> | 		<relativePath>../com.minres.scviewer.parent</relativePath> | ||||||
| 	</parent> | 	</parent> | ||||||
| 	<artifactId>com.minres.scviewer.e4.product</artifactId> | 	<artifactId>com.minres.scviewer.e4.product</artifactId> | ||||||
|   	<version>2.0.4-SNAPSHOT</version> |   	<version>2.0.5-SNAPSHOT</version> | ||||||
| 	<packaging>eclipse-repository</packaging> | 	<packaging>eclipse-repository</packaging> | ||||||
| 	<groupId>com.minres.scviewer</groupId> | 	<groupId>com.minres.scviewer</groupId> | ||||||
| 	<build> | 	<build> | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <?pde version="3.5"?> | <?pde version="3.5"?> | ||||||
|  |  | ||||||
| <product name="SCViewer" uid="scviewer" id="com.minres.scviewer.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.0.4.qualifier" useFeatures="false" includeLaunchers="true"> | <product name="SCViewer" uid="scviewer" id="com.minres.scviewer.e4.application.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="2.0.5.qualifier" useFeatures="false" includeLaunchers="true"> | ||||||
|  |  | ||||||
|    <configIni use="default"> |    <configIni use="default"> | ||||||
|    </configIni> |    </configIni> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user