Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/TableV3/org.eclipse.papyrus.infra.nattable.views.config/src/org/eclipse/papyrus/infra/nattable/views/config/manager/axis/EditorContextSynchronizerAxisManager.java')
-rw-r--r--sandbox/TableV3/org.eclipse.papyrus.infra.nattable.views.config/src/org/eclipse/papyrus/infra/nattable/views/config/manager/axis/EditorContextSynchronizerAxisManager.java39
1 files changed, 35 insertions, 4 deletions
diff --git a/sandbox/TableV3/org.eclipse.papyrus.infra.nattable.views.config/src/org/eclipse/papyrus/infra/nattable/views/config/manager/axis/EditorContextSynchronizerAxisManager.java b/sandbox/TableV3/org.eclipse.papyrus.infra.nattable.views.config/src/org/eclipse/papyrus/infra/nattable/views/config/manager/axis/EditorContextSynchronizerAxisManager.java
index 24ed50e8333..2bdc55b1e39 100644
--- a/sandbox/TableV3/org.eclipse.papyrus.infra.nattable.views.config/src/org/eclipse/papyrus/infra/nattable/views/config/manager/axis/EditorContextSynchronizerAxisManager.java
+++ b/sandbox/TableV3/org.eclipse.papyrus.infra.nattable.views.config/src/org/eclipse/papyrus/infra/nattable/views/config/manager/axis/EditorContextSynchronizerAxisManager.java
@@ -25,6 +25,9 @@ import org.eclipse.papyrus.infra.core.sashwindows.di.PageList;
import org.eclipse.papyrus.infra.core.sashwindows.di.PageRef;
import org.eclipse.papyrus.infra.nattable.manager.axis.AbstractSynchronizedOnFeatureAxisManager;
import org.eclipse.papyrus.infra.nattable.manager.cell.CellManagerFactory;
+import org.eclipse.papyrus.infra.nattable.manager.table.INattableModelManager;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxisconfiguration.AxisManagerRepresentation;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxisprovider.AbstractAxisProvider;
import org.eclipse.papyrus.infra.nattable.views.config.utils.Utils;
/**
@@ -35,6 +38,26 @@ import org.eclipse.papyrus.infra.nattable.views.config.utils.Utils;
public class EditorContextSynchronizerAxisManager extends AbstractSynchronizedOnFeatureAxisManager {
/**
+ * we keep it to be able to remove the listener during the destruction of the table
+ */
+ private PageList pageList;
+
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.nattable.manager.axis.AbstractSynchronizedOnFeatureAxisManager#init(org.eclipse.papyrus.infra.nattable.manager.table.INattableModelManager,
+ * org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxisconfiguration.AxisManagerRepresentation,
+ * org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxisprovider.AbstractAxisProvider)
+ *
+ * @param manager
+ * @param rep
+ * @param provider
+ */
+ @Override
+ public void init(INattableModelManager manager, AxisManagerRepresentation rep, AbstractAxisProvider provider) {
+ super.init(manager, rep, provider);
+ }
+
+ /**
*
* @see org.eclipse.papyrus.infra.nattable.manager.axis.AbstractSynchronizedOnFeatureAxisManager#addContextFeatureValueListener()
*
@@ -50,8 +73,14 @@ public class EditorContextSynchronizerAxisManager extends AbstractSynchronizedOn
}
}
};
- final PageList pageList = Utils.getPageList(getTableManager().getTable());
- pageList.eAdapters().add(this.featureListener);
+ getPageList().eAdapters().add(this.featureListener);
+ }
+
+ private PageList getPageList() {
+ if(this.pageList == null) {
+ this.pageList = Utils.getPageList(getTableManager().getTable());
+ }
+ return this.pageList;
}
/**
@@ -94,8 +123,10 @@ public class EditorContextSynchronizerAxisManager extends AbstractSynchronizedOn
*/
@Override
public void dispose() {
- final PageList pageList = Utils.getPageList(getTableManager().getTable());
- pageList.eAdapters().remove(this.featureListener);
+ if(getPageList() != null) {
+ getPageList().eAdapters().remove(this.featureListener);
+ }
+ this.pageList = null;
super.dispose();
}

Back to the top