diff options
author | Camille Letavernier | 2013-09-13 12:27:52 +0000 |
---|---|---|
committer | Camille Letavernier | 2013-12-06 15:45:41 +0000 |
commit | 2fb7db014beb195d947ffa41394b1f81d9053196 (patch) | |
tree | 1b8de4c335a4210bb5756a46edbc272abb8157be /plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common | |
parent | 9e2c38706bbbe131a87c21bf8ba4279026cd8e5f (diff) | |
download | org.eclipse.papyrus-2fb7db014beb195d947ffa41394b1f81d9053196.tar.gz org.eclipse.papyrus-2fb7db014beb195d947ffa41394b1f81d9053196.tar.xz org.eclipse.papyrus-2fb7db014beb195d947ffa41394b1f81d9053196.zip |
417180: [CSS] The CSS Engine shall support element visibility
https://bugs.eclipse.org/bugs/show_bug.cgi?id=417180
417178: [CSS] The CSS Engine shall support compartments (Show/Hide,
collapse, show title...)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=417178
390534: [CSS - Appearance] Undoing graphical changes results in
unexpected behavior
https://bugs.eclipse.org/bugs/show_bug.cgi?id=390534
351433: [General] IllegalArgumentException: An EditPart has to be
selectable...
https://bugs.eclipse.org/bugs/show_bug.cgi?id=351433
Initial contribution:
- Support visibility on Shapes and Compartments
- Added Compartments in the DOM (As DOM Elements)
- Fix the "undo" bug on graphical changes (Bug 390534)
- Remove the exception "An EditPart has to be selectable..." on creation
(Bug 351433)
Todo:
- Support visibility on all Views
- Add compartment contents as children of the compartment's parent (The
compartment contents must be owned by both the Compartment itself, and
the Compartment's parent, in the DOM tree), to be able to write simple
and complex Style rules
- Add a mapping between Notation ID (type="7017") and human-readable IDs
(type="attribute")
Diffstat (limited to 'plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common')
-rw-r--r-- | plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeCreationTool.java | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeCreationTool.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeCreationTool.java index 30bd63f14d0..52c7f2f948d 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeCreationTool.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeCreationTool.java @@ -16,10 +16,14 @@ package org.eclipse.papyrus.uml.diagram.common.service; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; +import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.emf.transaction.util.TransactionUtil; @@ -70,7 +74,7 @@ public class AspectUnspecifiedTypeCreationTool extends UnspecifiedTypeCreationTo /** preaction list */ protected List<IPreAction> preActions = new ArrayList<IPreAction>(); - private static String ID_ASPECT_ACTION = "palette_aspect_actions" ; + private static String ID_ASPECT_ACTION = "palette_aspect_actions"; /** * Creates an AspectUnspecifiedTypeCreationTool @@ -136,7 +140,21 @@ public class AspectUnspecifiedTypeCreationTool extends UnspecifiedTypeCreationTo eventBroker.removeNotificationListener(eObject, listener); } - selectAddedObject(currentViewer, DiagramCommandStack.getReturnValues(command)); + + Collection<?> selectableEditParts = new LinkedList<Object>(DiagramCommandStack.getReturnValues(command)); + Iterator<?> editPartsIterator = selectableEditParts.iterator(); + + while(editPartsIterator.hasNext()) { + Object editPartObject = editPartsIterator.next(); + if(editPartObject instanceof IAdaptable) { + EditPart editPart = (EditPart)currentViewer.getEditPartRegistry().get(((IAdaptable)editPartObject).getAdapter(View.class)); + if(editPart == null || !editPart.isSelectable()) { + editPartsIterator.remove(); + } + } + } + + selectAddedObject(currentViewer, selectableEditParts); antiScroll = false; } @@ -215,19 +233,17 @@ public class AspectUnspecifiedTypeCreationTool extends UnspecifiedTypeCreationTo protected Request createTargetRequest() { CreateAspectUnspecifiedTypeRequest request = new CreateAspectUnspecifiedTypeRequest(getElementTypes(), getPreferencesHint()); request.getExtendedData().put(ID_ASPECT_ACTION, postActions); - return request ; + return request; } @SuppressWarnings("unchecked") - public static List<IAspectAction> getAspectActions(Request request) - { - return (List<IAspectAction>) (request == null ? Collections.emptyList() : getAspectActions(request.getExtendedData())); + public static List<IAspectAction> getAspectActions(Request request) { + return (List<IAspectAction>)(request == null ? Collections.emptyList() : getAspectActions(request.getExtendedData())); } @SuppressWarnings("unchecked") - public static List<IAspectAction> getAspectActions(Map map) - { - return (List<IAspectAction>) (map == null ? Collections.emptyList() : map.get(ID_ASPECT_ACTION)); + public static List<IAspectAction> getAspectActions(Map map) { + return (List<IAspectAction>)(map == null ? Collections.emptyList() : map.get(ID_ASPECT_ACTION)); } public class CreateAspectUnspecifiedTypeRequest extends CreateUnspecifiedTypeRequest { |