Author: bobtarling Date: 2010-04-24 06:23:53-0700 New Revision: 18330 Removed: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLInstanceClassifierListModel.java Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java
Log: Replace popup with toolbuttons Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java?view=diff&pathrev=18330&r1=18329&r2=18330 ============================================================================== --- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java (original) +++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java 2010-04-24 06:23:53-0700 @@ -30,6 +30,7 @@ import org.argouml.i18n.Translator; import org.argouml.kernel.Command; import org.argouml.kernel.NonUndoableCommand; +import org.argouml.kernel.Project; import org.argouml.kernel.ProjectManager; import org.argouml.model.Model; import org.argouml.ui.targetmanager.TargetManager; @@ -98,6 +99,7 @@ addGetterSetter("action", new ActionGetterSetter()); addGetterSetter("subvertex", new SubvertexGetterSetter()); addGetterSetter("internalTransition", new InternalTransitionGetterSetter()); + addGetterSetter("classifier", new ClassifierGetterSetter()); // UML2 only addGetterSetter("ownedOperation", new FeatureGetterSetter()); @@ -1772,4 +1774,101 @@ return Model.getMetaTypes().getTransition(); } } + + + private class ClassifierGetterSetter extends ListGetterSetter implements Addable, Removeable { + + public Collection getOptions(Object modelElement, String type) { + return Model.getFacade().getClassifiers(modelElement); + } + + public Object get(Object modelElement, String type) { + // not needed + return null; + } + + public void set(Object element, Object x) { + // not needed + } + + public boolean isValidElement(Object element, String type) { + return getOptions(element, type).contains(element); + } + + public Object getMetaType() { + return Model.getMetaTypes().getClassifier(); + } + + public Command getAddCommand(Object modelElement) { + return new AddCommand(modelElement); + } + + public Command getRemoveCommand(Object modelElement, Object objectToRemove) { + return new RemoveCommand(modelElement, objectToRemove); + } + + private class AddCommand extends AddModelElementCommand { + + /** + * Constructor for ActionAddPackageImport. + */ + public AddCommand(Object target) { + super(target); + } + + + protected List getChoices() { + List list = new ArrayList(); + + Project p = ProjectManager.getManager().getCurrentProject(); + Object model = p.getRoot(); + list.addAll(Model.getModelManagementHelper() + .getAllModelElementsOfKindWithModel(model, Model.getMetaTypes().getClassifier())); + + return list; + } + + + protected List getSelected() { + List list = new ArrayList(); + list.addAll(Model.getFacade().getClassifiers(getTarget())); + return list; + } + + + protected String getDialogTitle() { + return Translator.localize("dialog.title.add-specifications"); + } + + + @Override + protected void doIt(Collection selected) { + Model.getCommonBehaviorHelper().setClassifiers(getTarget(), selected); + } + } + + private class RemoveCommand + extends NonUndoableCommand { + + private final Object target; + private final Object objectToRemove; + + /** + * Constructor for ActionRemovePackageImport. + */ + public RemoveCommand(final Object target, final Object objectToRemove) { + this.target = target; + this.objectToRemove = objectToRemove; + } + + /* + * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + */ + public Object execute() { + Model.getCommonBehaviorHelper() + .removeClassifier(target, objectToRemove); + return null; + } + } + } } Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java?view=diff&pathrev=18330&r1=18329&r2=18330 ============================================================================== --- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java (original) +++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java 2010-04-24 06:23:53-0700 @@ -73,8 +73,6 @@ model = new UMLClassifierRoleBaseListModel(modelElement); } else if ("baseClass".equals(propName)) { model = new UMLStereotypeBaseClassListModel(modelElement); - } else if ("classifier".equals(propName)) { - model = new UMLInstanceClassifierListModel(modelElement); } else if ("classifierInState".equals(propName)) { model = new UMLOFSStateListModel(modelElement); } else if ("client".equals(propName)) { Removed: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLInstanceClassifierListModel.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLInstanceClassifierListModel.java?view=markup&pathrev=18329 ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2594282 To unsubscribe from this discussion, e-mail: [[email protected]].
