import org.simantics.utils.ui.BundleUtils;
import org.simantics.utils.ui.ErrorLogger;
import org.simantics.utils.ui.ExceptionUtils;
+import org.simantics.utils.ui.SWTDPIUtil;
import org.simantics.utils.ui.SWTUtils;
import org.simantics.utils.ui.dialogs.ShowMessage;
import org.simantics.utils.ui.jface.ActiveSelectionProvider;
if (event.button != MouseEvent.RIGHT_BUTTON)
return false;
- final Point p = new Point((int) event.screenPosition.getX(), (int) event.screenPosition.getY());
- SWTUtils.asyncExec(chassis, new Runnable() {
- @Override
- public void run() {
- if (!canvas.isDisposed())
- showPopup(p);
- }
+ Point p = new Point(
+ SWTDPIUtil.downscaleSwt((int) event.screenPosition.getX()),
+ SWTDPIUtil.downscaleSwt((int) event.screenPosition.getY()));
+ SWTUtils.asyncExec(chassis, () -> {
+ if (!canvas.isDisposed())
+ showPopup(p);
});
return true;
}
// Track data source and preinitialize chartData
project.addHintListener(chartDataListener);
chartData.readFrom( (ChartData) project.getHint( chartDataKey ) );
+ chartData.reference();
if (chartData.run != null) {
milestoneListener = new MilestoneSpecListener();
if (chartItem != null) {
manager.add(new HideItemsAction("Hide Item", true, Collections.singletonList(chartItem)));
manager.add(new Separator());
+ manager.add(new ChartPreferencesAction(getSite()));
+ manager.add(new Separator());
manager.add(new PropertiesAction("Item Properties", canvas, chartItem));
manager.add(new PropertiesAction("Chart Properties", canvas, chart));
}
manager.add(new SendCommandAction("Zoom to Fit Vertically", IMG_ZOOM_TO_FIT_VERT, cvsCtx, Commands.ZOOM_TO_FIT_VERT));
manager.add(new SendCommandAction("Autoscale Chart", IMG_AUTOSCALE, cvsCtx, Commands.AUTOSCALE));
manager.add(new Separator());
+ manager.add(new ChartPreferencesAction(getSite()));
+ manager.add(new Separator());
manager.add(new PropertiesAction("Chart Properties", canvas, chart));
}
}
chartData.datasource.removeListener( stepListener );
if (chartData.experiment!=null)
chartData.experiment.removeListener( experimentStateListener );
+ chartData.dereference();
chartData.readFrom( null );
}
}
if (doLayout) trendNode.layout();
+ this.chartData.dereference();
this.chartData.readFrom( data );
+ this.chartData.reference();
tp.setDirty();
if (!ObjectUtils.objectEquals(oldExperimentResource, newExperimentResource)) {
tp.setDirty();
}
- @SuppressWarnings("rawtypes")
+ @SuppressWarnings("unchecked")
@Override
- public Object getAdapter(Class adapter) {
+ public <T> T getAdapter(Class<T> adapter) {
if (adapter == INode.class) {
ICanvasContext ctx = cvsCtx;
if (ctx != null)
- return ctx.getSceneGraph();
+ return (T) ctx.getSceneGraph();
}
if (adapter == IPropertyPage.class)
- return new StandardPropertyPage(getSite(), getPropertyPageContexts());
+ return (T) new StandardPropertyPage(getSite(), getPropertyPageContexts());
if (adapter == ICanvasContext.class)
- return cvsCtx;
+ return (T) cvsCtx;
return super.getAdapter(adapter);
}