Author: mvw
Date: 2008-11-21 13:17:26-0800
New Revision: 16119
Modified:
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java
Log:
In preparation of solving issue 5497, some refactoring: move common code up in the hierarchy. This should not cause any functional difference.
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java 2008-11-21 13:17:26-0800
@@ -216,32 +216,7 @@
* @see org.argouml.uml.diagram.ui.OperationsCompartmentContainer#setOperationsVisible(boolean)
*/
public void setOperationsVisible(boolean isVisible) {
- Rectangle rect = getBounds();
- if (isOperationsVisible()) { // if displayed
- if (!isVisible) {
- damage();
- Iterator it = getOperationsFig().getFigs().iterator();
- while (it.hasNext()) {
- ((Fig) (it.next())).setVisible(false);
- }
- getOperationsFig().setVisible(false);
- Dimension aSize = this.getMinimumSize();
- setBounds(rect.x, rect.y,
- (int) aSize.getWidth(), (int) aSize.getHeight());
- }
- } else {
- if (isVisible) {
- Iterator it = getOperationsFig().getFigs().iterator();
- while (it.hasNext()) {
- ((Fig) (it.next())).setVisible(true);
- }
- getOperationsFig().setVisible(true);
- Dimension aSize = this.getMinimumSize();
- setBounds(rect.x, rect.y,
- (int) aSize.getWidth(), (int) aSize.getHeight());
- damage();
- }
- }
+ setCompartmentVisible(operationsFig, isVisible);
}
/*
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBoxWithAttributes.java 2008-11-21 13:17:26-0800
@@ -239,10 +239,8 @@
}
attributesFigCompartment.populate();
- Rectangle rect = getBounds();
- // ouch ugly but that's for a next refactoring
// TODO: make setBounds, calcBounds and updateBounds consistent
- setBounds(rect.x, rect.y, rect.width, rect.height);
+ setBounds(getBounds());
}
/**
@@ -251,32 +249,7 @@
* @see org.argouml.uml.diagram.AttributesCompartmentContainer#setAttributesVisible(boolean)
*/
public void setAttributesVisible(boolean isVisible) {
- Rectangle rect = getBounds();
- if (getAttributesFig().isVisible()) {
- if (!isVisible) { // hide compartment
- damage();
- Iterator it = getAttributesFig().getFigs().iterator();
- while (it.hasNext()) {
- ((Fig) (it.next())).setVisible(false);
- }
- getAttributesFig().setVisible(false);
- Dimension aSize = this.getMinimumSize();
- setBounds(rect.x, rect.y,
- (int) aSize.getWidth(), (int) aSize.getHeight());
- }
- } else {
- if (isVisible) { // show compartment
- Iterator it = getAttributesFig().getFigs().iterator();
- while (it.hasNext()) {
- ((Fig) (it.next())).setVisible(true);
- }
- getAttributesFig().setVisible(true);
- Dimension aSize = this.getMinimumSize();
- setBounds(rect.x, rect.y,
- (int) aSize.getWidth(), (int) aSize.getHeight());
- damage();
- }
- }
+ setCompartmentVisible(attributesFigCompartment, isVisible);
}
@Override
public Dimension getMinimumSize() {
@@ -297,24 +270,6 @@
}
/**
- * Add size of a child component to overall size. Width is maximized
- * with child's width and child's height is added to the overall height.
- * If the child figure is not visible, it's size is not added.
- *
- * @param size current dimensions
- * @param child child figure
- * @return new Dimension with child size added
- */
- protected Dimension addChildDimensions(Dimension size, Fig child) {
- if (child.isVisible()) {
- Dimension childSize = child.getMinimumSize();
- size.width = Math.max(size.width, childSize.width);
- size.height += childSize.height;
- }
- return size;
- }
-
- /**
* Sets the bounds, but the size will be at least the one returned by
* {@link #getMinimumSize()}, unless checking of size is disabled.<p>
*
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigDataType.java 2008-11-21 13:17:26-0800
@@ -149,27 +149,13 @@
Dimension aSize = getNameFig().getMinimumSize();
// +2 padding before and after name
-
aSize.height += 4;
-
- if (aSize.height < 21) {
- aSize.height = 21;
- }
+ aSize.height = Math.max(21, aSize.height);
// If we have a stereotype displayed, then allow some space for that
// (width and height)
-
- if (getStereotypeFig().isVisible()) {
- Dimension stereoMin = getStereotypeFig().getMinimumSize();
- aSize.width = Math.max(aSize.width, stereoMin.width);
- aSize.height += stereoMin.height;
- }
-
- if (getOperationsFig().isVisible()) {
- Dimension operMin = getOperationsFig().getMinimumSize();
- aSize.width = Math.max(aSize.width, operMin.width);
- aSize.height += operMin.height;
- }
+ aSize = addChildDimensions(aSize, getStereotypeFig());
+ aSize = addChildDimensions(aSize, getOperationsFig());
// we want to maintain a minimum width for datatypes
aSize.width = Math.max(40, aSize.width);
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigEnumeration.java 2008-11-21 13:17:26-0800
@@ -202,11 +202,7 @@
// Start with the minimum for our parent
Dimension aSize = super.getMinimumSize();
- if (literalsCompartment.isVisible()) {
- Dimension literalsMin = literalsCompartment.getMinimumSize();
- aSize.width = Math.max(aSize.width, literalsMin.width);
- aSize.height += literalsMin.height;
- }
+ aSize = addChildDimensions(aSize, literalsCompartment);
return aSize;
}
@@ -304,32 +300,7 @@
* @param isVisible true will show the enumeration literal compartment
*/
public void setEnumLiteralsVisible(boolean isVisible) {
- Rectangle rect = getBounds();
- if (literalsCompartment.isVisible()) {
- if (!isVisible) {
- damage();
- Iterator it = literalsCompartment.getFigs().iterator();
- while (it.hasNext()) {
- ((Fig) (it.next())).setVisible(false);
- }
- literalsCompartment.setVisible(false);
- Dimension aSize = this.getMinimumSize();
- setBounds(rect.x, rect.y,
- (int) aSize.getWidth(), (int) aSize.getHeight());
- }
- } else {
- if (isVisible) {
- Iterator it = literalsCompartment.getFigs().iterator();
- while (it.hasNext()) {
- ((Fig) (it.next())).setVisible(true);
- }
- literalsCompartment.setVisible(true);
- Dimension aSize = this.getMinimumSize();
- setBounds(rect.x, rect.y,
- (int) aSize.getWidth(), (int) aSize.getHeight());
- damage();
- }
- }
+ setCompartmentVisible(literalsCompartment, isVisible);
}
/**
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigInterface.java 2008-11-21 13:17:26-0800
@@ -175,27 +175,13 @@
Dimension aSize = getNameFig().getMinimumSize();
// +2 padding before and after name
-
aSize.height += 4;
-
- if (aSize.height < 21) {
- aSize.height = 21;
- }
+ aSize.height = Math.max(21, aSize.height);
// If we have a stereotype displayed, then allow some space for that
// (width and height)
-
- if (getStereotypeFig().isVisible()) {
- Dimension stereoMin = getStereotypeFig().getMinimumSize();
- aSize.width = Math.max(aSize.width, stereoMin.width);
- aSize.height += stereoMin.height;
- }
-
- if (isOperationsVisible()) {
- Dimension operMin = getOperationsFig().getMinimumSize();
- aSize.width = Math.max(aSize.width, operMin.width);
- aSize.height += operMin.height;
- }
+ aSize = addChildDimensions(aSize, getStereotypeFig());
+ aSize = addChildDimensions(aSize, getOperationsFig());
// we want to maintain a minimum width for Interfaces
aSize.width = Math.max(60, aSize.width);
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigStereotypeDeclaration.java 2008-11-21 13:17:26-0800
@@ -160,11 +160,9 @@
@Override
public Dimension getMinimumSize() {
Dimension aSize = getNameFig().getMinimumSize();
- if (getStereotypeFig().isVisible()) {
- Dimension stereoMin = getStereotypeFig().getMinimumSize();
- aSize.width = Math.max(aSize.width, stereoMin.width);
- aSize.height += stereoMin.height;
- }
+
+ //TODO: Why does this differ from the other Figs?
+ aSize = addChildDimensions(aSize, getStereotypeFig());
// TODO: Allow space for each of the Tags & Constraints we have
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java?view=diff&rev=16119&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java&r1=16118&r2=16119
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java 2008-11-21 13:17:26-0800
@@ -1,5 +1,5 @@
// $Id$
-// Copyright (c) 1996-2007 The Regents of the University of California. All
+// Copyright (c) 1996-2008 The Regents of the University of California. All
// Rights Reserved. Permission to use, copy, modify, and distribute this
// software and its documentation without fee, and without a written
// agreement is hereby granted, provided that the above copyright notice
@@ -25,9 +25,11 @@
package org.argouml.uml.diagram.ui;
import java.awt.Color;
+import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
+import java.util.Iterator;
import java.util.List;
import org.argouml.ui.targetmanager.TargetManager;
@@ -210,4 +212,55 @@
protected Fig getBorderFig() {
return borderFig;
}
+
+ /**
+ * Add size of a child component to overall size. Width is maximized
+ * with child's width and child's height is added to the overall height.
+ * If the child figure is not visible, it's size is not added.
+ *
+ * @param size current dimensions
+ * @param child child figure
+ * @return new Dimension with child size added
+ */
+ protected Dimension addChildDimensions(Dimension size, Fig child) {
+ if (child.isVisible()) {
+ Dimension childSize = child.getMinimumSize();
+ size.width = Math.max(size.width, childSize.width);
+ size.height += childSize.height;
+ }
+ return size;
+ }
+
+ /**
+ * @param compartment the compartment to be changed
+ * @param isVisible true if the attribute compartment is visible
+ *
+ * @see org.argouml.uml.diagram.AttributesCompartmentContainer#setAttributesVisible(boolean)
+ */
+ protected void setCompartmentVisible(FigCompartment compartment, boolean isVisible) {
+ Rectangle rect = getBounds();
+ if (compartment.isVisible()) {
+ if (!isVisible) { // hide compartment
+ damage();
+ for (Object f : compartment.getFigs()) {
+ ((Fig) f).setVisible(false);
+ }
+ compartment.setVisible(false);
+ Dimension aSize = this.getMinimumSize();
+ setBounds(rect.x, rect.y,
+ (int) aSize.getWidth(), (int) aSize.getHeight());
+ }
+ } else {
+ if (isVisible) { // show compartment
+ for (Object f : compartment.getFigs()) {
+ ((Fig) f).setVisible(true);
+ }
+ compartment.setVisible(true);
+ Dimension aSize = this.getMinimumSize();
+ setBounds(rect.x, rect.y,
+ (int) aSize.getWidth(), (int) aSize.getHeight());
+ damage();
+ }
+ }
+ }
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.