svn commit: r15370 - trunk/src/argouml-app/src/org/argouml/kernel
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: mvw
Date: 2008-07-26 00:43:17-0700
New Revision: 15370
Modified:
trunk/src/argouml-app/src/org/argouml/kernel/Project.java
trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java
Log:
First step towards a solution for issue 4994: Editing loaded profile should be prevented.
This new function may be used to determine if an UML element is editable.
Modified: trunk/src/argouml-app/src/org/argouml/kernel/Project.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/Project.java?view=diff&rev=15370&p1=trunk/src/argouml-app/src/org/argouml/kernel/Project.java&p2=trunk/src/argouml-app/src/org/argouml/kernel/Project.java&r1=15369&r2=15370
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/kernel/Project.java (original)
+++ trunk/src/argouml-app/src/org/argouml/kernel/Project.java 2008-07-26 00:43:17-0700
@@ -706,4 +706,14 @@
* @return the UndoManager for this project
*/
public UndoManager getUndoManager();
+
+ /**
+ * Returns if a given UML element is editable. Currently, an element
+ * is editable if and only if it belongs to the user model, not to a
+ * profile model.
+ *
+ * @param handle the model element
+ * @return true if model element is editable, else false
+ */
+ public boolean isEditableUMLElement(Object handle);
}
\ No newline at end of file
Modified: trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java?view=diff&rev=15370&p1=trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java&p2=trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java&r1=15369&r2=15370
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java (original)
+++ trunk/src/argouml-app/src/org/argouml/kernel/ProjectImpl.java 2008-07-26 00:43:17-0700
@@ -1157,4 +1157,19 @@
members.add(pc);
}
+ public boolean isEditableUMLElement(Object handle) {
+ if (!Model.getFacade().isAUMLElement(handle)) {
+ throw new IllegalArgumentException(
+ "A UML element must be supplied");
+ }
+
+ Object elem;
+ Object container = handle;
+ do {
+ elem = container;
+ container = Model.getFacade().getModelElementContainer(elem);
+ } while (container != null);
+
+ return getUserDefinedModels().contains(elem);
+ }
}