Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamille Letavernier2014-03-07 16:45:19 +0000
committerCamille Letavernier2014-03-07 16:45:19 +0000
commit2029d305ac0457f9de0c79eeadf5865bc90d1e89 (patch)
tree332e2dc303c507d6a50c7537483c89c5e36a3ee2 /plugins/views
parent2e78449cd38c9307bd45e114fcb8bd28b98f8dd2 (diff)
parent8812639e3fcf949d67e43f9a53182ff241c329a5 (diff)
downloadorg.eclipse.papyrus-2029d305ac0457f9de0c79eeadf5865bc90d1e89.tar.gz
org.eclipse.papyrus-2029d305ac0457f9de0c79eeadf5865bc90d1e89.tar.xz
org.eclipse.papyrus-2029d305ac0457f9de0c79eeadf5865bc90d1e89.zip
Merge remote-tracking branch 'eclipse/master' into 386118-emf-facet
Conflicts: plugins/customization/org.eclipse.papyrus.customization.paletteconfiguration/facet/PaletteConfiguration.querySet plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableLabelProvider.java plugins/infra/org.eclipse.papyrus.infra.hyperlink/src/org/eclipse/papyrus/infra/hyperlink/ui/EditorLookForEditorShell.java plugins/sysml/modelexplorer/org.eclipse.papyrus.sysml.modelexplorer/resources/SysMLDefaultExplorerCustomization.uiCustom plugins/sysml/modelexplorer/org.eclipse.papyrus.sysml.modelexplorer/resources/SysMLDefaultExplorerQueries.querySet plugins/uml/modelexplorer/org.eclipse.papyrus.uml.modelexplorer/resource/PapyrusBrowserQuery.querySet plugins/uml/modelexplorer/org.eclipse.papyrus.uml.modelexplorer/resource/PapyrusUMLFacet.facetSet plugins/uml/modelexplorer/org.eclipse.papyrus.uml.modelexplorer/resource/SimpleUML.uiCustom plugins/uml/modelexplorer/org.eclipse.papyrus.uml.modelexplorer/resource/UMLPapyrusDefaultBrowserCustomization.uiCustom
Diffstat (limited to 'plugins/views')
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CloseHandler.java56
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/OpenHandler.java43
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/listener/DoubleClickListener.java27
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/provider/PropertyTester.java41
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/AbstractGetEditorIconQuery.java15
5 files changed, 62 insertions, 120 deletions
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CloseHandler.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CloseHandler.java
index a798ccad0e2..204b8312b33 100644
--- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CloseHandler.java
+++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CloseHandler.java
@@ -1,7 +1,7 @@
/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
- *
+ *
* 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
@@ -14,7 +14,6 @@
package org.eclipse.papyrus.views.modelexplorer.handler;
import java.util.Hashtable;
-import java.util.LinkedList;
import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
@@ -23,8 +22,6 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExecutableExtension;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
@@ -32,9 +29,9 @@ import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
/**
* This handler allows to Close Diagrams and Tables
- *
- *
- *
+ *
+ *
+ *
*/
public class CloseHandler extends AbstractModelExplorerHandler implements IExecutableExtension {
@@ -56,9 +53,9 @@ public class CloseHandler extends AbstractModelExplorerHandler implements IExecu
protected String parameterID = "close_parameter"; //$NON-NLS-1$
/**
- *
+ *
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- *
+ *
* @param event
* @return
* @throws ExecutionException
@@ -66,34 +63,17 @@ public class CloseHandler extends AbstractModelExplorerHandler implements IExecu
public Object execute(ExecutionEvent event) throws ExecutionException {
final IPageManager pageMngr;
- TransactionalEditingDomain editingDomain;
try {
ServicesRegistry registry = ServiceUtilsForHandlers.getInstance().getServiceRegistry(event);
pageMngr = registry.getService(IPageManager.class);
- editingDomain = registry.getService(TransactionalEditingDomain.class);
} catch (ServiceException ex) {
throw new ExecutionException(ex.getMessage(), ex);
}
// What kind of command ?
if(PARAMETER_ALL.equals(parameter)) {
- boolean atLeastOneOpenedPage = false;
- for(Object page : pageMngr.allPages()) {
- if(pageMngr.isOpen(page)) {
- atLeastOneOpenedPage = true;
- break;
- }
- }
- if(atLeastOneOpenedPage) {
- editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain, "Close all pages") {
-
- @Override
- protected void doExecute() {
- pageMngr.closeAllOpenedPages();
- }
- });
- }
+ pageMngr.closeAllOpenedPages();
return null;
}
@@ -107,37 +87,21 @@ public class CloseHandler extends AbstractModelExplorerHandler implements IExecu
return null;
}
-
- final List<EObject> pagesToClose = new LinkedList<EObject>();
// Check each selected object
for(EObject selected : selectedProperties) {
if(pageMngr.isOpen(selected)) {
- pagesToClose.add(selected);
+ pageMngr.closePage(selected);
}
}
- if(pagesToClose.isEmpty()) {
- return null;
- }
-
- editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain, "Close pages") {
-
- @Override
- protected void doExecute() {
- for(EObject page : pagesToClose) {
- pageMngr.closePage(page);
- }
- }
- });
-
return null;
}
/**
- *
+ *
* @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String,
* java.lang.Object)
- *
+ *
* @param config
* @param propertyName
* @param data
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/OpenHandler.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/OpenHandler.java
index c858bece6b4..5fc445d33d5 100644
--- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/OpenHandler.java
+++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/OpenHandler.java
@@ -1,7 +1,7 @@
/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
- *
+ *
* 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
@@ -23,17 +23,13 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExecutableExtension;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
-import org.eclipse.papyrus.infra.core.services.ServiceException;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForHandlers;
/**
* This handler allows to Open Diagrams and Tables
- *
- *
- *
+ *
+ *
+ *
*/
public class OpenHandler extends AbstractModelExplorerHandler implements IExecutableExtension {
@@ -54,16 +50,16 @@ public class OpenHandler extends AbstractModelExplorerHandler implements IExecut
/**
- *
+ *
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- *
+ *
* @param event
* @return
* @throws ExecutionException
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
- final IPageManager pageMngr = getPageManager();
- if(pageMngr == null) {
+ final IPageManager pageManager = getPageManager();
+ if(pageManager == null) {
return null;
}
@@ -80,7 +76,7 @@ public class OpenHandler extends AbstractModelExplorerHandler implements IExecut
final List<EObject> pagesToOpen = new LinkedList<EObject>();
List<EObject> pagesToSelect = new LinkedList<EObject>();
for(EObject selected : selectedProperties) {
- if(!pageMngr.isOpen(selected) || isDuplicateDiagramAllowed) {
+ if(!pageManager.isOpen(selected) || isDuplicateDiagramAllowed) {
pagesToOpen.add(selected);
} else {
pagesToSelect.add(selected);
@@ -88,34 +84,23 @@ public class OpenHandler extends AbstractModelExplorerHandler implements IExecut
}
if(!pagesToOpen.isEmpty()) {
- try {
- TransactionalEditingDomain editingDomain = ServiceUtilsForHandlers.getInstance().getTransactionalEditingDomain(event);
- editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain, "Open pages") {
-
- @Override
- protected void doExecute() {
- for(EObject page : pagesToOpen) {
- pageMngr.openPage(page);
- }
- }
- });
- } catch (ServiceException ex) {
- throw new ExecutionException(ex.getMessage(), ex);
+ for(EObject page : pagesToOpen) {
+ pageManager.openPage(page);
}
}
for(EObject page : pagesToSelect) {
- pageMngr.selectPage(page);
+ pageManager.selectPage(page);
}
return null;
}
/**
- *
+ *
* @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String,
* java.lang.Object)
- *
+ *
* @param config
* @param propertyName
* @param data
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/listener/DoubleClickListener.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/listener/DoubleClickListener.java
index 960fcd2f068..0e5a3107912 100644
--- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/listener/DoubleClickListener.java
+++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/listener/DoubleClickListener.java
@@ -1,7 +1,7 @@
/*****************************************************************************
* Copyright (c) 2010 CEA LIST.
*
- *
+ *
* 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
@@ -19,25 +19,21 @@ import java.util.List;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IOpenable;
-import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForSelection;
import org.eclipse.papyrus.views.modelexplorer.Activator;
import org.eclipse.papyrus.views.modelexplorer.Messages;
/**
* this class is a listener in charge to manage double on element of the model explorer
- *
+ *
*/
public class DoubleClickListener implements IDoubleClickListener {
@@ -48,9 +44,9 @@ public class DoubleClickListener implements IDoubleClickListener {
}
/**
- *
+ *
* @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
- *
+ *
*/
public void doubleClick(DoubleClickEvent event) {
ISelection selection = event.getSelection();
@@ -82,19 +78,8 @@ public class DoubleClickListener implements IDoubleClickListener {
}
if(!pagesToOpen.isEmpty()) {
- try {
- TransactionalEditingDomain editingDomain = ServiceUtilsForSelection.getInstance().getTransactionalEditingDomain(selection);
- editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain, "Open pages") {
-
- @Override
- protected void doExecute() {
- for(EObject page : pagesToOpen) {
- pageManager.openPage(page);
- }
- }
- });
- } catch (ServiceException ex) {
- Activator.log.error(ex);
+ for(EObject page : pagesToOpen) {
+ pageManager.openPage(page);
}
} else if(pageToSelect != null) {
pageManager.selectPage(pageToSelect);
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/provider/PropertyTester.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/provider/PropertyTester.java
index a806fa0a130..0d6c3fdbe08 100644
--- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/provider/PropertyTester.java
+++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/provider/PropertyTester.java
@@ -1,7 +1,7 @@
/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
- *
+ *
* 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
@@ -21,19 +21,19 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
import org.eclipse.papyrus.infra.core.sasheditor.di.contentprovider.IOpenable;
import org.eclipse.papyrus.infra.core.services.ServiceException;
-import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForSelection;
import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView;
import org.eclipse.ui.IWorkbenchPart;
/**
* This class provides test called by the plugin.xml in order to know if handlers should be active or not.
- *
+ *
* Sometimes these test can be done directly in the plugin.xml in the activeWhen (with instanceof, adapt, ...),
* but in this case, Eclipse doesn't refresh correctly the status of the command in the menu Edit or in other menu.
- *
- *
- *
+ *
+ *
+ *
*/
public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
@@ -47,9 +47,9 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester
public static final String IS_PAGE = "isPage";//$NON-NLS-1$
/**
- *
+ *
* @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
- *
+ *
* @param receiver
* @param property
* @param args
@@ -73,14 +73,14 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester
}
/**
- *
+ *
* @param selection
* the current selection
* @return
* <code>true</code> if all selected elements are pages
*/
private boolean isPage(IStructuredSelection selection) {
- IPageManager pageManager = getPageManager();
+ IPageManager pageManager = getPageManager(selection);
if(pageManager != null) {
if(!selection.isEmpty()) {
Iterator<?> iter = selection.iterator();
@@ -98,6 +98,10 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester
}
protected boolean isPage(EObject element, IPageManager pageManager) {
+ if(element == null) {
+ return false;
+ }
+
if(pageManager.allPages().contains(element)) {
return true;
}
@@ -108,29 +112,28 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester
/**
* Returns the page manager
- *
+ *
* @return
* the page manager
*/
- protected IPageManager getPageManager() {
+ protected IPageManager getPageManager(IStructuredSelection selection) {
IPageManager pageMngr = null;
try {
- ServiceUtilsForActionHandlers instance = org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers.getInstance();
+ ServiceUtilsForSelection instance = ServiceUtilsForSelection.getInstance();
if(instance != null) {
- pageMngr = instance.getIPageManager();
+ pageMngr = instance.getIPageManager(selection);
}
} catch (NullPointerException npe) {
- //NPE
+ //We cannot find the page manager. Just return null.
} catch (ServiceException e) {
- //we are closing the editor, so the model explorer has nothing to display
- // e.printStackTrace();
+ //We cannot find the page manager. Just return null.
}
return pageMngr;
}
/**
* Tests if the current activePart is the Model Explorer
- *
+ *
* @param receiver
* @return
*/
@@ -140,7 +143,7 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester
/**
* Tests if all elements in the selection are EObject
- *
+ *
* @param selection
* @return
*/
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/AbstractGetEditorIconQuery.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/AbstractGetEditorIconQuery.java
index a828c2feafa..38dceee2bd5 100644
--- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/AbstractGetEditorIconQuery.java
+++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/queries/AbstractGetEditorIconQuery.java
@@ -1,7 +1,7 @@
/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
- *
+ *
* 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,9 +22,9 @@ import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
/**
- *
+ *
* An abstract class to get the iconRegistery
- *
+ *
*/
public abstract class AbstractGetEditorIconQuery {//we don't need to implements IJavaModelQuery here
@@ -37,10 +37,15 @@ public abstract class AbstractGetEditorIconQuery {//we don't need to implements
* Get the EditorRegistry used to create editor instances. This default
* implementation return the singleton eINSTANCE. This method can be
* subclassed to return another registry.
- *
+ *
* @return the singleton eINSTANCE of editor registry
*/
protected IPageIconsRegistryExtended getEditorRegistry(EObject context) {
+ try {
+ return (IPageIconsRegistryExtended)ServiceUtilsForEObject.getInstance().getService(IPageIconsRegistry.class, context);
+ } catch (Exception ex) {
+ //Skip
+ }
if(editorRegistry == null) {
editorRegistry = createEditorRegistry(context);
}
@@ -54,7 +59,7 @@ public abstract class AbstractGetEditorIconQuery {//we don't need to implements
* Return the EditorRegistry for nested editor descriptors. Subclass should
* implements this method in order to return the registry associated to the
* extension point namespace.
- *
+ *
* @return the EditorRegistry for nested editor descriptors
*/
protected IPageIconsRegistry createEditorRegistry(EObject context) {

Back to the top