use of org.eclipse.nebula.visualization.xygraph.dataprovider.CircularBufferDataProvider in project yamcs-studio by yamcs.
the class XYGraphEditPart method getXBuffer.
public double[] getXBuffer(int i) {
CircularBufferDataProvider dataProvider = (CircularBufferDataProvider) traceList.get(i).getDataProvider();
double[] XBuffer = new double[dataProvider.getSize()];
for (int j = 0; j < dataProvider.getSize(); j++) {
XBuffer[j] = dataProvider.getSample(j).getXValue();
}
return XBuffer;
}
use of org.eclipse.nebula.visualization.xygraph.dataprovider.CircularBufferDataProvider in project yamcs-studio by yamcs.
the class XYGraphEditPart method getYBuffer.
public double[] getYBuffer(int i) {
CircularBufferDataProvider dataProvider = (CircularBufferDataProvider) traceList.get(i).getDataProvider();
double[] YBuffer = new double[dataProvider.getSize()];
for (int j = 0; j < dataProvider.getSize(); j++) {
YBuffer[j] = dataProvider.getSample(j).getYValue();
}
return YBuffer;
}
use of org.eclipse.nebula.visualization.xygraph.dataprovider.CircularBufferDataProvider in project yamcs-studio by yamcs.
the class XYGraphEditPart method registerPropertyChangeHandlers.
@Override
protected void registerPropertyChangeHandlers() {
registerAxisPropertyChangeHandlers();
registerTracePropertyChangeHandlers();
// Title
IWidgetPropertyChangeHandler handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.getXYGraph().setTitle((String) newValue);
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_TITLE, handler);
// Title Font
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.getXYGraph().setTitleFont(CustomMediaFactory.getInstance().getFont(((OPIFont) newValue).getFontData()));
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_TITLE_FONT, handler);
// Show plot area border
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.getXYGraph().getPlotArea().setShowBorder((Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_SHOW_PLOTAREA_BORDER, handler);
// Plot area background color
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.getXYGraph().getPlotArea().setBackgroundColor(CustomMediaFactory.getInstance().getColor(((OPIColor) newValue).getRGBValue()));
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_PLOTAREA_BACKCOLOR, handler);
// Transparent
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.setTransparent((Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_TRANSPARENT, handler);
// Show legend
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.getXYGraph().setShowLegend((Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_SHOW_LEGEND, handler);
// Show Toolbar
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(final Object oldValue, final Object newValue, final IFigure refreshableFigure) {
ToolbarArmedXYGraph graph = (ToolbarArmedXYGraph) refreshableFigure;
graph.setShowToolbar((Boolean) newValue);
return true;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_SHOW_TOOLBAR, handler);
// trigger pv value
handler = new IWidgetPropertyChangeHandler() {
@Override
public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
for (int i = 0; i < getWidgetModel().getTracesAmount(); i++) {
CircularBufferDataProvider dataProvider = (CircularBufferDataProvider) traceList.get(i).getDataProvider();
if (dataProvider.getUpdateMode() == UpdateMode.TRIGGER) {
dataProvider.triggerUpdate();
}
}
return false;
}
};
setPropertyChangeHandler(XYGraphModel.PROP_TRIGGER_PV_VALUE, handler);
registerAxesAmountChangeHandler();
registerTraceAmountChangeHandler();
}
use of org.eclipse.nebula.visualization.xygraph.dataprovider.CircularBufferDataProvider in project yamcs-studio by yamcs.
the class XYGraphEditPart method doCreateFigure.
@Override
protected IFigure doCreateFigure() {
final XYGraphModel model = getWidgetModel();
ToolbarArmedXYGraph xyGraphFigure = new ToolbarArmedXYGraph();
IXYGraph xyGraph = xyGraphFigure.getXYGraph();
xyGraph.setTitle(model.getTitle());
xyGraph.setTitleFont(CustomMediaFactory.getInstance().getFont(model.getTitleFont().getFontData()));
xyGraph.getPlotArea().setShowBorder(model.isShowPlotAreaBorder());
xyGraph.getPlotArea().setBackgroundColor(CustomMediaFactory.getInstance().getColor(model.getPlotAreaBackColor()));
xyGraph.setShowLegend(model.isShowLegend());
xyGraphFigure.setShowToolbar(model.isShowToolbar());
xyGraphFigure.setTransparent(model.isTransprent());
axisList = new ArrayList<>();
axisList.add(xyGraph.getPrimaryXAxis());
axisList.add(xyGraph.getPrimaryYAxis());
traceList = new ArrayList<>();
// init all axes
for (int i = 0; i < XYGraphModel.MAX_AXES_AMOUNT; i++) {
if (i >= 2) {
axisList.add(new Axis("", true));
if (i < model.getAxesAmount())
xyGraphFigure.getXYGraph().addAxis(axisList.get(i));
}
for (AxisProperty axisProperty : AxisProperty.values()) {
// there is no primary and y-axis property for primary axes.
if (i < 2 && (axisProperty == AxisProperty.PRIMARY || axisProperty == AxisProperty.Y_AXIS)) {
continue;
}
String propID = XYGraphModel.makeAxisPropID(axisProperty.propIDPre, i);
setAxisProperty(axisList.get(i), axisProperty, model.getProperty(propID).getPropertyValue());
}
}
// init all traces
for (int i = 0; i < XYGraphModel.MAX_TRACES_AMOUNT; i++) {
traceList.add(new Trace("", xyGraph.getPrimaryXAxis(), xyGraph.getPrimaryYAxis(), new CircularBufferDataProvider(false)));
if (i < model.getTracesAmount()) {
xyGraph.addTrace(traceList.get(i));
}
String xPVPropID = XYGraphModel.makeTracePropID(TraceProperty.XPV.propIDPre, i);
String yPVPropID = XYGraphModel.makeTracePropID(TraceProperty.YPV.propIDPre, i);
for (TraceProperty traceProperty : TraceProperty.values()) {
String propID = XYGraphModel.makeTracePropID(traceProperty.propIDPre, i);
setTraceProperty(traceList.get(i), traceProperty, model.getProperty(propID).getPropertyValue(), xPVPropID, yPVPropID);
}
}
// all values should be buffered
getPVWidgetEditpartDelegate().setAllValuesBuffered(true);
return xyGraphFigure;
}
Aggregations