Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime PORHEL2014-04-01 07:35:40 +0000
committerMaxime PORHEL2014-04-02 09:22:26 +0000
commit47215779f12a8d69693471db64da5550e19673bc (patch)
treec17e6bc1c4409be4db0da8e54cc01edf8ea9ab75
parent5b3575d07690f60f842e94f47c5ad8b40b971045 (diff)
downloadorg.eclipse.sirius-47215779f12a8d69693471db64da5550e19673bc.tar.gz
org.eclipse.sirius-47215779f12a8d69693471db64da5550e19673bc.tar.xz
org.eclipse.sirius-47215779f12a8d69693471db64da5550e19673bc.zip
[431634] Additional cleanup
Several dispose have been completed, a final static image has been removed (its descriptor is still use as constant, the image is not created on each call, as it is contained in the DiagramUIPlugin image cache. Bug: 431634 Change-Id: I9c279d5a590e17764e5cf8934d2ef2f720ca2546 Signed-off-by: Maxime PORHEL <maxime.porhel@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java6
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java10
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java26
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java15
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java3
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java3
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java3
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java8
8 files changed, 45 insertions, 29 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java
index cc43d82096..95e135bbb9 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/delete/DeleteFromDiagramAction.java
@@ -273,4 +273,10 @@ public class DeleteFromDiagramAction extends RetargetAction implements IObjectAc
return Lists.newArrayList();
}
+ @Override
+ public void dispose() {
+ selection = null;
+ super.dispose();
+ }
+
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java
index 6119ce4ff3..0473141d07 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/actions/visibility/HideDDiagramElementLabelAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2010 THALES GLOBAL SERVICES.
+ * Copyright (c) 2007, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gef.Disposable;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.RootEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
@@ -50,7 +51,7 @@ import org.eclipse.ui.PlatformUI;
* @author lredor
*
*/
-public class HideDDiagramElementLabelAction extends Action implements IObjectActionDelegate {
+public class HideDDiagramElementLabelAction extends Action implements IObjectActionDelegate, Disposable {
/** The selection. */
private ISelection selection;
@@ -236,11 +237,14 @@ public class HideDDiagramElementLabelAction extends Action implements IObjectAct
if (s instanceof DiagramOutlinePage.TreeSelectionWrapper) {
// Action of the outline
this.setEnabled(HideDDiagramElementLabelAction.isEnabled(((DiagramOutlinePage.TreeSelectionWrapper) s).toList()));
-
} else if (s instanceof IStructuredSelection) {
// Action of the tabber or
this.setEnabled(HideDDiagramElementLabelAction.isEnabled(((IStructuredSelection) s).toList()));
}
+ }
+ @Override
+ public void dispose() {
+ selection = null;
}
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java
index ed7c4a1c12..1b2b635336 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/AbstractMenuContributionItem.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 THALES GLOBAL SERVICES.
+ * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -65,9 +65,7 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib
* @see org.eclipse.sirius.diagram.tools.internal.editor.tabbar.TabbarContribution#create(org.eclipse.swt.widgets.ToolBar)
*/
public void create(final ToolBarManager tb, String groupId) {
-
tb.insertAfter(groupId, createContributionItem(tb));
-
}
/**
@@ -186,6 +184,7 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib
menuManager.dispose();
menuManager = null;
}
+ tooltips = null;
listener = null;
}
@@ -197,7 +196,7 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib
*/
private class TabbarContributionItem extends ContributionItem {
- private ToolItem layersItem;
+ private ToolItem menuItem;
private ToolBarManager toolBarManager;
@@ -207,13 +206,13 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib
@Override
public void fill(final ToolBar parent, final int index) {
- layersItem = new ToolItem(parent, SWT.DROP_DOWN, index);
- layersItem.setToolTipText(getLabel());
+ menuItem = new ToolItem(parent, SWT.DROP_DOWN, index);
+ menuItem.setToolTipText(getLabel());
computeEnable();
- layersItem.setImage(getMenuImage());
- layersItem.addSelectionListener(new SelectionAdapter() {
+ menuItem.setImage(getMenuImage());
+ menuItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
final int offset = computeOffset(parent);
@@ -237,21 +236,26 @@ public abstract class AbstractMenuContributionItem extends AbstractTabbarContrib
final DDiagram editorDiagram = (DDiagram) editor.getRepresentation();
IPermissionAuthority permissionAuthority = PermissionAuthorityRegistry.getDefault().getPermissionAuthority(editor.getSession().getSessionResource().getResourceSet());
canEditInstance = permissionAuthority.canEditInstance(editorDiagram);
- layersItem.setEnabled(canEditInstance);
+ menuItem.setEnabled(canEditInstance);
}
}
@Override
public void dispose() {
doDispose();
+ if (menuItem != null) {
+ menuItem.dispose();
+ menuItem = null;
+ }
+ toolBarManager = null;
super.dispose();
}
@Override
public void update() {
super.update();
- if (layersItem != null && !layersItem.isDisposed()) {
- layersItem.setImage(getMenuImage());
+ if (menuItem != null && !menuItem.isDisposed()) {
+ menuItem.setImage(getMenuImage());
computeEnable();
}
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java
index fcadb75c48..0562d8b14d 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/LayoutingModeSwitchingAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2014 THALES GLOBAL SERVICES.
+ * Copyright (c) 2011, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -35,7 +35,6 @@ import org.eclipse.sirius.diagram.ui.edit.api.part.IDDiagramEditPart;
import org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin;
import org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath;
import org.eclipse.sirius.diagram.ui.tools.api.ui.actions.ActionIds;
-import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IWorkbenchPage;
@@ -66,17 +65,13 @@ public class LayoutingModeSwitchingAction extends DiagramAction {
private static final String MESSAGE_STATUS_LINE_LAYOUTING_MODE_IS_OFF = ""; //$NON-NLS-1$
/**
- * Icon used in the tabbar to allow end-user to activate layouting mode.
+ * Icon used in the tabbar to allow end-user to activate layouting mode. It
+ * is also used in the editor's status line to indicate that LayoutingMode
+ * is active.
*/
private static final ImageDescriptor ACTIVATE_LAYOUTING_MODE_IMAGE_DESCRIPTOR = DiagramUIPlugin.Implementation.getBundledImageDescriptor(DiagramImagesPath.LAYOUTING_MODE_ACTIVE_ICON);
/**
- * The Image used in the editor's status line to indicate that LayoutingMode
- * is on.
- */
- private static final Image ACTIVATE_LAYOUTING_MODE_IMAGE = DiagramUIPlugin.getPlugin().getImage(ACTIVATE_LAYOUTING_MODE_IMAGE_DESCRIPTOR);
-
- /**
* The {@link DDiagram} on witch the layouting mode should be switched.
*/
private DDiagram ddiagram;
@@ -132,7 +127,7 @@ public class LayoutingModeSwitchingAction extends DiagramAction {
// we update it according to the DDiagram layouting mode status
if (this.ddiagram != null && this.ddiagram.isIsInLayoutingMode()) {
String statusMessage = MESSAGE_STATUS_LINE_LAYOUTING_MODE_IS_ON;
- statusLineManager.setMessage(ACTIVATE_LAYOUTING_MODE_IMAGE, statusMessage);
+ statusLineManager.setMessage(DiagramUIPlugin.getPlugin().getImage(ACTIVATE_LAYOUTING_MODE_IMAGE_DESCRIPTOR), statusMessage);
} else {
statusLineManager.setMessage(MESSAGE_STATUS_LINE_LAYOUTING_MODE_IS_OFF);
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java
index b5150eb450..f010eaba71 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarAlignMenuManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 THALES GLOBAL SERVICES.
+ * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -78,6 +78,7 @@ public class TabbarAlignMenuManager extends AlignMenuManager {
@Override
public void dispose() {
removeAll();
+ page = null;
super.dispose();
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java
index 769abb8e25..9841df1851 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarRouterMenuManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 THALES GLOBAL SERVICES.
+ * Copyright (c) 2012, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -60,6 +60,7 @@ public class TabbarRouterMenuManager extends RouterMenuManager {
@Override
public void dispose() {
removeAll();
+ page = null;
super.dispose();
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java
index d65287eda0..ecfb7824b8 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/actions/TabbarSelectMenuManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 THALES GLOBAL SERVICES.
+ * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -76,6 +76,7 @@ public class TabbarSelectMenuManager extends SelectMenuManager {
@Override
public void dispose() {
removeAll();
+ page = null;
super.dispose();
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java
index 3a32fa9200..a34049caed 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/ZoomExtensionContributionFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 THALES GLOBAL SERVICES.
+ * Copyright (c) 2012, 2014 THALES GLOBAL SERVICES and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -123,7 +123,11 @@ public class ZoomExtensionContributionFactory extends SiriusTabbarExtensionContr
@Override
public void dispose() {
super.dispose();
- page.removePartListener(listener);
+ if (page != null) {
+ page.removePartListener(listener);
+ page = null;
+ }
+ listener = null;
}
}

Back to the top