private void initialize() { nameText.setText(annotation.getName()); nameText.setSelection(0, nameText.getText().length()); snapToTrace.setSelection(!annotation.isFree()); xAxisLabel.setText( snapToTrace.getSelection() ? Messages.Annotation_Trace : Messages.Annotation_XAxis); xAxisOrTraceCombo.removeAll(); if (!annotation.isFree()) { for (Trace trace : xyGraph.getPlotArea().getTraceList()) xAxisOrTraceCombo.add(trace.getName()); xAxisOrTraceCombo.select(xyGraph.getPlotArea().getTraceList().indexOf(annotation.getTrace())); } else { for (Axis axis : xyGraph.getXAxisList()) xAxisOrTraceCombo.add(axis.getTitle()); xAxisOrTraceCombo.select(xyGraph.getXAxisList().indexOf(annotation.getXAxis())); } for (Axis axis : xyGraph.getYAxisList()) yAxisCombo.add(axis.getTitle()); yAxisCombo.select(xyGraph.getYAxisList().indexOf(annotation.getYAxis())); yAxisLabel.setVisible(!snapToTrace.getSelection()); yAxisCombo.setVisible(!snapToTrace.getSelection()); useDefaultColorButton.setSelection(annotation.getAnnotationColor() == null); colorLabel.setVisible(!useDefaultColorButton.getSelection()); colorSelector.getButton().setVisible(annotation.getAnnotationColor() != null); colorSelector.setColorValue( annotation.getAnnotationColor() == null ? annotation.getYAxis().getForegroundColor().getRGB() : annotation.getAnnotationColor().getRGB()); fontLabel.setText( Messages.Annotation_Font + (font == null ? Messages.Annotation_SystemDefault : font.getFontData()[0].getName())); fontLabel.setFont(font); cursorLineCombo.select(annotation.getCursorLineStyle().getIndex()); showNameButton.setSelection(annotation.isShowName()); showSampleInfoButton.setSelection(annotation.isShowSampleInfo()); showPositionButton.setSelection(annotation.isShowPosition()); }
public XYGraphTest() { xyGraph = new XYGraph(); xyGraph.setTitle("XY Graph Test"); xyGraph.setFont(XYGraphMediaFactory.getInstance().getFont(XYGraphMediaFactory.FONT_TAHOMA)); xyGraph.primaryXAxis.setTitle("Time"); xyGraph.primaryYAxis.setTitle("Amplitude"); xyGraph.primaryXAxis.setRange(new Range(0, 200)); xyGraph.primaryXAxis.setDateEnabled(true); xyGraph.primaryYAxis.setAutoScale(true); xyGraph.primaryXAxis.setAutoScale(true); xyGraph.primaryXAxis.setShowMajorGrid(true); xyGraph.primaryYAxis.setShowMajorGrid(true); xyGraph.primaryXAxis.setAutoScaleThreshold(0); final Axis x2Axis = new Axis("X-2", false); x2Axis.setTickLableSide(LabelSide.Secondary); // x2Axis.setAutoScale(true); xyGraph.addAxis(x2Axis); final Axis y2Axis = new Axis("Log Scale", true); y2Axis.setRange(10, 500); y2Axis.setLogScale(true); // y2Axis.setAutoScale(true); y2Axis.setForegroundColor( XYGraphMediaFactory.getInstance().getColor(XYGraphMediaFactory.COLOR_PINK)); y2Axis.setTickLableSide(LabelSide.Secondary); xyGraph.addAxis(y2Axis); Axis y3Axis = new Axis("Y-3", true); y3Axis.setForegroundColor( XYGraphMediaFactory.getInstance().getColor(XYGraphMediaFactory.COLOR_BLUE)); y3Axis.setTickLableSide(LabelSide.Secondary); y3Axis.setRange(new Range(-2, 3)); y3Axis.setShowMajorGrid(false); y3Axis.setAutoScale(true); // xyGraph.addAxis(y3Axis); trace2Provider = new CircularBufferDataProvider(true); trace2Provider.setBufferSize(100); trace2Provider.setUpdateDelay(100); trace2 = new Trace("Trace 2", xyGraph.primaryXAxis, xyGraph.primaryYAxis, trace2Provider); trace2.setDataProvider(trace2Provider); trace2.setTraceType(TraceType.SOLID_LINE); trace2.setLineWidth(1); trace2.setPointStyle(PointStyle.POINT); trace2.setPointSize(4); trace2.setBaseLine(BaseLine.NEGATIVE_INFINITY); trace2.setAreaAlpha(100); trace2.setAntiAliasing(true); trace2.setErrorBarEnabled(false); // trace2.setDrawYErrorInArea(true); trace2.setYErrorBarType(ErrorBarType.BOTH); trace2.setXErrorBarType(ErrorBarType.NONE); trace2.setErrorBarCapWidth(3); final CircularBufferDataProvider trace3Provider = new CircularBufferDataProvider(true); trace3 = new Trace("Trace3", xyGraph.primaryXAxis, xyGraph.primaryYAxis, trace3Provider); trace3.setPointStyle(PointStyle.XCROSS); trace3.setTraceType(TraceType.BAR); trace3.setLineWidth(4); trace3Provider.setUpdateDelay(100); xyGraph.addTrace(trace3); xyGraph.addTrace(trace2); final CircularBufferDataProvider trace4Provider = new CircularBufferDataProvider(false); trace4 = new Trace("Trace 4-Lissajous", x2Axis, y2Axis, trace4Provider); // trace4.setPointStyle(PointStyle.POINT); trace4.setPointSize(2); trace4Provider.setUpdateDelay(100); trace4Provider.setBufferSize(100); xyGraph.addTrace(trace4); toolbarArmedXYGraph = new ToolbarArmedXYGraph(xyGraph); add(toolbarArmedXYGraph); // add key listener to XY-Graph. The key pressing will only be monitored when the // graph gains focus. xyGraph.setFocusTraversable(true); xyGraph.setRequestFocusEnabled(true); xyGraph .getPlotArea() .addMouseListener( new MouseListener.Stub() { @Override public void mousePressed(final MouseEvent me) { xyGraph.requestFocus(); } }); xyGraph.addKeyListener( new KeyListener.Stub() { @Override public void keyPressed(final KeyEvent ke) { if ((ke.getState() == SWT.CONTROL) && (ke.keycode == 'z')) { xyGraph.getOperationsManager().undo(); } if ((ke.getState() == SWT.CONTROL) && (ke.keycode == 'y')) { xyGraph.getOperationsManager().redo(); } if ((ke.getState() == SWT.CONTROL) && (ke.keycode == 'x')) { xyGraph.performAutoScale(); } if ((ke.getState() == SWT.CONTROL) && (ke.keycode == 's')) { final ImageLoader loader = new ImageLoader(); loader.data = new ImageData[] {xyGraph.getImage().getImageData()}; final FileDialog dialog = new FileDialog(Display.getDefault().getShells()[0], SWT.SAVE); dialog.setFilterNames(new String[] {"PNG Files", "All Files (*.*)"}); dialog.setFilterExtensions(new String[] {"*.png", "*.*"}); // Windows final String path = dialog.open(); if ((path != null) && !path.equals("")) { loader.save(path, SWT.IMAGE_PNG); } } if ((ke.getState() == SWT.CONTROL) && (ke.keycode + 'a' - 97 == 't')) { switch (xyGraph.getZoomType()) { case RUBBERBAND_ZOOM: xyGraph.setZoomType(ZoomType.HORIZONTAL_ZOOM); break; case HORIZONTAL_ZOOM: xyGraph.setZoomType(ZoomType.VERTICAL_ZOOM); break; case VERTICAL_ZOOM: xyGraph.setZoomType(ZoomType.ZOOM_IN); break; case ZOOM_IN: xyGraph.setZoomType(ZoomType.ZOOM_OUT); break; case ZOOM_OUT: xyGraph.setZoomType(ZoomType.PANNING); break; case PANNING: xyGraph.setZoomType(ZoomType.NONE); break; case NONE: xyGraph.setZoomType(ZoomType.RUBBERBAND_ZOOM); break; default: break; } } } }); updater = new Runnable() { public void run() { t += 60000; trace3Provider.setCurrentYData(Math.cos(updateIndex), t); if (((updateIndex >= 10) && (updateIndex <= 10.5)) || ((updateIndex >= 20) && (updateIndex <= 20.2))) { trace2Provider.addSample(new Sample(t, Double.NaN)); running = false; } else { final Sample sampe = new Sample( t, Math.sin(updateIndex), 0.1 * Math.random(), 0.1 * Math.random(), t * 0.0000001 * Math.random(), t * 0.0000001 * Math.random(), "sdfsf"); trace2Provider.addSample(sampe); } trace2Provider.setCurrentYDataTimestamp(t); trace4Provider.setCurrentXData(Math.sin(updateIndex + 10) * 20 + 50); trace4Provider.setCurrentYData(Math.cos(updateIndex) * 30 + 50); updateIndex += 0.1; if (running) { Display.getCurrent().timerExec(100, this); } } }; Display.getCurrent().timerExec(100, updater); running = true; t = Calendar.getInstance().getTimeInMillis(); }