svn commit: r17924 - trunk/src/argouml-app/src/org/argouml: ui uml/diagram/ui
Linus Tolke <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: linus
Date: 2010-01-27 11:50:58-0800
New Revision: 17924
Modified:
trunk/src/argouml-app/src/org/argouml/ui/StylePanel.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/StylePanelFigAssociationClass.java
Log:
Changing the StylePanelFigAssociationClass so that it isn't a subclass of StylePanelFigClass. The assumptions on the type for getPanel no longer holds.
Modified: trunk/src/argouml-app/src/org/argouml/ui/StylePanel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/StylePanel.java?view=diff&pathrev=17924&r1=17923&r2=17924
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/StylePanel.java (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/StylePanel.java 2010-01-27 11:50:58-0800
@@ -217,7 +217,7 @@
}
/**
- * @return Returns the _target.
+ * @return Returns the target of the Style Panel.
*/
protected Fig getPanelTarget() {
return panelTarget;
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/StylePanelFigAssociationClass.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/StylePanelFigAssociationClass.java?view=diff&pathrev=17924&r1=17923&r2=17924
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/StylePanelFigAssociationClass.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/StylePanelFigAssociationClass.java 2010-01-27 11:50:58-0800
@@ -40,25 +40,57 @@
import java.awt.Rectangle;
import java.awt.event.FocusListener;
+import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyListener;
+import java.beans.PropertyChangeEvent;
-import org.argouml.uml.diagram.static_structure.ui.StylePanelFigClass;
+import javax.swing.JCheckBox;
+
+import org.argouml.i18n.Translator;
+import org.argouml.model.Model;
+import org.argouml.ui.StylePanelFigNodeModelElement;
import org.tigris.gef.presentation.Fig;
/**
* The style Panel for FigEdgeModelElement.
*
*/
-public class StylePanelFigAssociationClass extends StylePanelFigClass implements
- ItemListener, FocusListener, KeyListener {
+public class StylePanelFigAssociationClass
+ extends StylePanelFigNodeModelElement
+ implements ItemListener, FocusListener, KeyListener {
+
+ private JCheckBox attrCheckBox =
+ new JCheckBox(Translator.localize("checkbox.attributes"));
+
+ private JCheckBox operCheckBox =
+ new JCheckBox(Translator.localize("checkbox.operations"));
+
+ /**
+ * Flag to indicate that a refresh is going on.
+ */
+ private boolean refreshTransaction;
+ /**
+ * Constructor.
+ */
public StylePanelFigAssociationClass() {
+ super();
+
+ addToDisplayPane(attrCheckBox);
+ addToDisplayPane(operCheckBox);
+
+ attrCheckBox.setSelected(false);
+ operCheckBox.setSelected(false);
+ attrCheckBox.addItemListener(this);
+ operCheckBox.addItemListener(this);
}
/**
* Bounding box is editable (although this is style panel for an
* FigEdgeModelElement).
+ *
+ * @param value Ignored argument.
*/
@Override
protected void hasEditableBoundingBox(boolean value) {
@@ -100,17 +132,45 @@
}
/*
+ * Only refresh the tab if the bounds propertyChange event arrives.
+ *
+ * @see org.argouml.ui.StylePanel#refresh(java.beans.PropertyChangeEvent)
+ */
+ public void refresh(PropertyChangeEvent e) {
+ String propertyName = e.getPropertyName();
+ if (propertyName.equals("bounds")) {
+ refresh();
+ }
+ }
+ /*
* @see org.argouml.ui.StylePanelFig#refresh()
*/
@Override
public void refresh() {
- super.refresh();
-
- // The boundary box as held in the target fig, and as listed in
- // the
- // boundary box style field (null if we don't have anything
- // valid)
- Fig target = getPanelTarget();
+ // StylePanelFigClass relies on getPanelTarget() to return a
+ // FigCompartmentBox
+ refreshTransaction = true;
+ FigAssociationClass panelTarget =
+ (FigAssociationClass) getPanelTarget();
+ try {
+ super.refresh();
+ final FigCompartmentBox fcb = panelTarget.getAssociationClass();
+ if (fcb != null) {
+ FigCompartment compartment =
+ fcb.getCompartment(Model.getMetaTypes().getAttribute());
+ attrCheckBox.setSelected(compartment.isVisible());
+ compartment =
+ fcb.getCompartment(Model.getMetaTypes().getOperation());
+ operCheckBox.setSelected(compartment.isVisible());
+ }
+ } finally {
+ refreshTransaction = false;
+ }
+
+ // The boundary box as held in the target fig, and as listed
+ // in the boundary box style field (null if we don't have
+ // anything valid)
+ Fig target = panelTarget;
// Get class box, because we will set it's bounding box in text field
if (((FigAssociationClass) target).getAssociationClass() != null) {
@@ -135,4 +195,28 @@
}
}
+ ////////////////////////////////////////////////////////////////
+ // event handling
+
+ /*
+ * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
+ */
+ public void itemStateChanged(ItemEvent e) {
+ if (!refreshTransaction) {
+ Object src = e.getSource();
+
+ if (src == attrCheckBox) {
+ FigCompartmentBox fcb = (FigCompartmentBox) getPanelTarget();
+ fcb.showCompartment(Model.getMetaTypes().getAttribute(),
+ attrCheckBox.isSelected());
+ } else if (src == operCheckBox) {
+ FigCompartmentBox fcb = (FigCompartmentBox) getPanelTarget();
+ fcb.showCompartment(Model.getMetaTypes().getOperation(),
+ operCheckBox.isSelected());
+ } else {
+ super.itemStateChanged(e);
+ }
+ }
+ }
+
} /* end class StylePanelFigAssociationClass */
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2442519
To unsubscribe from this discussion, e-mail: [[email protected]].