While using the visualization widgets API I stumbled accross some hurdles that
limited my ability to utilize the xygraph in the way I wanted (multiple linked
graphs in a SahForm). To implement as I wanted I modified the source to add
more flexibility. The changes I made are discussed below and would welcome
their consideration for implementation in the API.
Proposed modifications are divided into type 1 (backwards campatible) and type
2 (non backwards compatible) and are outlined below.
Type 1) compliant with applications that use the
org.eclipse.nebula.visulaization plugin.
Created interfaces for all public methods for:
org.eclipse.nebula.visualization.xygraph.figures
Axis → IAxis
Legend → ILegend
XYGraph ->IXYGraph
org.eclipse.nebula.visualization.xygraph.linearscale
AbstractScale → IAbstractScale
LinearScale → ILinearScale
Other Code modifications:
org.eclipse.nebula.visualization.xygraph.figures
Axis Changed visibility of pan and zoomInOut methods to public so they could
be added to the IAxis interface.
public void pan(final Range temp, double t1, double t2);
public void zoomInOut(final double center, final double factor);
Type 2) - creates incompatibility with applications that utilize the org.eclipse.nebula.visulaization plugin.
XYGraph - change.
final public IAxis primaryXAxis;
final public IAxis primaryYAxis;
to
private IAxis primaryXAxis;
private IAxis primaryYAxis;
and add getter/setters and add the getters/setters to IXYGraph (and concrete
implementations).
public abstract IAxis getPrimaryXAxis();
public abstract void setPrimaryXAxis(IAxis primaryXAxis);
public abstract IAxis getPrimaryYAxis();
public abstract void setPrimaryYAxis(IAxis primaryYAxis);
All other classes that access the public fields to be changed to access the
public getter (ie AddAnnotationDialog, AxisConfigPage, and all the examples!).
Rationale for interface extraction and code modification:
To allow me to create SWT-XY-Graph plots inside a SashForm, where an axis can
be located in a child of the sashform and the plot itself can be in another
child. This way I can have multiple plots that can be resized which all share a
common axis.
I can understand if the type 1 changes only are considered, at least these will
allow users more flexibility in implemation of the plugin.
I can attach/send the modified source code if required.
-Adrian
To participate in the discussion, go here:
//www.eclipse.org/forums/index.php?t=rview&frm_id=64
_______________________________________________
nebula-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/nebula-dev