Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamille Letavernier2013-09-13 12:27:52 +0000
committerCamille Letavernier2013-12-06 15:45:41 +0000
commit2fb7db014beb195d947ffa41394b1f81d9053196 (patch)
tree1b8de4c335a4210bb5756a46edbc272abb8157be /plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common
parent9e2c38706bbbe131a87c21bf8ba4279026cd8e5f (diff)
downloadorg.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.java34
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 {

Back to the top