X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.charts%2Fsrc%2Forg%2Fsimantics%2Fcharts%2Feditor%2FTimeSeriesEditor.java;fp=bundles%2Forg.simantics.charts%2Fsrc%2Forg%2Fsimantics%2Fcharts%2Feditor%2FTimeSeriesEditor.java;h=cadb5bd4b372e5841479497d672cd1fde938511e;hp=4f633fbe6924c5478277604500b9ada221b2334d;hb=908f3683f6cd21dcff70a8f3b1a9d1e3368ca5af;hpb=74045ae2a729ae2ec57db0816709a948eea7d392 diff --git a/bundles/org.simantics.charts/src/org/simantics/charts/editor/TimeSeriesEditor.java b/bundles/org.simantics.charts/src/org/simantics/charts/editor/TimeSeriesEditor.java index 4f633fbe6..cadb5bd4b 100644 --- a/bundles/org.simantics.charts/src/org/simantics/charts/editor/TimeSeriesEditor.java +++ b/bundles/org.simantics.charts/src/org/simantics/charts/editor/TimeSeriesEditor.java @@ -586,6 +586,7 @@ public class TimeSeriesEditor extends ResourceEditorPart { // Track data source and preinitialize chartData project.addHintListener(chartDataListener); chartData.readFrom( (ChartData) project.getHint( chartDataKey ) ); + chartData.reference(); if (chartData.run != null) { milestoneListener = new MilestoneSpecListener(); @@ -748,6 +749,7 @@ public class TimeSeriesEditor extends ResourceEditorPart { chartData.datasource.removeListener( stepListener ); if (chartData.experiment!=null) chartData.experiment.removeListener( experimentStateListener ); + chartData.dereference(); chartData.readFrom( null ); } @@ -840,7 +842,9 @@ public class TimeSeriesEditor extends ResourceEditorPart { } if (doLayout) trendNode.layout(); + this.chartData.dereference(); this.chartData.readFrom( data ); + this.chartData.reference(); tp.setDirty(); if (!ObjectUtils.objectEquals(oldExperimentResource, newExperimentResource)) { @@ -989,18 +993,18 @@ public class TimeSeriesEditor extends ResourceEditorPart { tp.setDirty(); } - @SuppressWarnings("rawtypes") + @SuppressWarnings("unchecked") @Override - public Object getAdapter(Class adapter) { + public T getAdapter(Class 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); }