diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/.ratings index 316b582c3aa5efc59344479292261ebf2421de73..07f160f03b88dbcac4f7491222811b91ae231e51 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/.ratings +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/.ratings @@ -1,6 +1,6 @@ ContextMenuSubMenuContributorBase.java 6275d96fe8690d9d4744bcbaef3c7d14ba8e30ff GREEN DialogMessageHandler.java 8714da09a777c8557de0a5c48ff68c340f9fa91d GREEN -EObjectActionBase.java 4ef9f8be59e64d4838acc9e268d418ba5d94fa1a GREEN +EObjectActionBase.java dba517c7527d71637239483dbe15b447fd1e6b19 YELLOW EReferenceListPropertySectionBase.java 7390dd7bfdc979e8ff0c5c30c67ab7b6c9d70c92 GREEN EReferencePropertySectionBase.java 0548da6778516003257f59d0b4c2b60d458be3b6 GREEN EditorBase.java 9c09fff92945256bb8680992ae7bb2c78f47b150 GREEN diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java index 4ef9f8be59e64d4838acc9e268d418ba5d94fa1a..dba517c7527d71637239483dbe15b447fd1e6b19 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java @@ -16,6 +16,7 @@ package org.fortiss.tooling.kernel.ui.extension.base; import static java.util.Arrays.asList; +import static org.eclipse.emf.common.util.ECollections.unmodifiableEList; import java.util.List; @@ -66,7 +67,7 @@ public abstract class EObjectActionBase<T extends EObject> extends Action { } /** Sets the target object. */ - public void setTargets(List<T> newTargets) { + public synchronized void setTargets(List<T> newTargets) { if(targets == null) { targets = new BasicEList<T>(newTargets); } else { @@ -82,14 +83,16 @@ public abstract class EObjectActionBase<T extends EObject> extends Action { /** Returns the current target. */ public T getTarget() { + List<T> targets = getTargets(); + // For actions that cannot deal with multiple selections, only the first // item is picked, hence the get(0) return(targets.isEmpty() ? null : targets.get(0)); } /** Returns the current targets. */ - public EList<T> getTargets() { - return targets; + public synchronized EList<T> getTargets() { + return unmodifiableEList(targets); } /** Refreshes the enabled state for the current action target. */