Author: mvw
Date: 2008-05-23 10:13:56-0700
New Revision: 14792
Modified:
trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java
trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java
Log:
Remove a dependency on the project from the notation subsystem.
The notationProviders should not access the projectSettings directly, but use the arguments provided by the Figs.
Modified: trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java?view=diff&rev=14792&p1=trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java&p2=trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java&r1=14791&r2=14792
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java (original)
+++ trunk/src/argouml-app/src/org/argouml/notation/providers/uml/MultiplicityNotationUml.java 2008-05-23 10:13:56-0700
@@ -85,9 +85,8 @@
@Override
public String toString(Object multiplicityOwner, Map args) {
- Object mulitiplicity =
- Model.getFacade().getMultiplicity(multiplicityOwner);
- return NotationUtilityUml.generateMultiplicity(mulitiplicity);
+ return NotationUtilityUml.generateMultiplicity(
+ multiplicityOwner, args);
}
}
Modified: trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java?view=diff&rev=14792&p1=trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java&p2=trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java&r1=14791&r2=14792
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java (original)
+++ trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java 2008-05-23 10:13:56-0700
@@ -1,5 +1,5 @@
// $Id$
-// Copyright (c) 2005-2007 The Regents of the University of California. All
+// Copyright (c) 2005-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
@@ -29,6 +29,7 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Stack;
@@ -37,6 +38,7 @@
import org.argouml.kernel.ProjectManager;
import org.argouml.kernel.ProjectSettings;
import org.argouml.model.Model;
+import org.argouml.notation.NotationProvider;
import org.argouml.uml.StereotypeUtility;
import org.argouml.util.CustomSeparator;
import org.argouml.util.MyTokenizer;
@@ -396,7 +398,7 @@
}
/**
- * Returns a visibility String eihter for a MVisibilityKind (according to
+ * Returns a visibility String either for a MVisibilityKind (according to
* the definition in NotationProvider2), but also for a model element.
*
* @param o a modelelement or a visibilitykind
@@ -1037,6 +1039,11 @@
/**
* Generate the text of a multiplicity.
+ * <p>
+ * @deprecated by mvw in V0.25.5. Use the next method instead.
+ * We needed to remove the use of the Project to obtain
+ * its settings. Instead, make use of the args Map
+ * provided by the Fig.
*
* @param m the given multiplicity
* @return a string (guaranteed not null)
@@ -1054,6 +1061,33 @@
}
/**
+ * Generate the text of a multiplicity.
+ * The argument singularMultiplicityVisible
+ * determines if "1" will be returned or ""
+ * in case the multiplicity is 1.
+ *
+ * @param multiplicityOwner the modelelement (NOT the multiplicity!)
+ * @param args the value singularMultiplicityVisible
+ * influences the outcome
+ * @return the resulting string
+ */
+ public static String generateMultiplicity(Object multiplicityOwner,
+ Map args) {
+ String s = "";
+ Object multiplicity = Model.getFacade().getMultiplicity(
+ multiplicityOwner);
+ if (multiplicity != null) {
+ s = Model.getFacade().toString(multiplicity);
+ }
+ if (!NotationProvider.isValue("singularMultiplicityVisible", args)) {
+ if ("1".equals(s)) {
+ s ="";
+ }
+ }
+ return s;
+ }
+
+ /**
* @param m the action
* @return the generated text
*/
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java?view=diff&rev=14792&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java&r1=14791&r2=14792
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociation.java 2008-05-23 10:13:56-0700
@@ -31,6 +31,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Vector;
@@ -491,9 +492,10 @@
class FigMultiplicity extends FigSingleLineText
implements PropertyChangeListener {
- private NotationProvider notationProvider;
+ private NotationProvider multiplicityNotationProvider;
private static final long serialVersionUID = 5385230942216677015L;
-
+ private HashMap<String, Object> npArguments = new HashMap<String, Object>();
+
FigMultiplicity() {
super(10, 10, 90, 20, false, "multiplicity");
@@ -504,7 +506,8 @@
@Override
protected void setText() {
assert getOwner() != null;
- setText(notationProvider.toString(getOwner(), null));
+ setText(multiplicityNotationProvider.toString(getOwner(),
+ npArguments));
damage();
}
@@ -518,16 +521,18 @@
}
protected void textEdited() {
- notationProvider.parse(getOwner(), getText());
- setText(notationProvider.toString(getOwner(), null));
+ multiplicityNotationProvider.parse(getOwner(), getText());
+ setText(multiplicityNotationProvider.toString(getOwner(),
+ npArguments));
}
protected void textEditStarted() {
- String s = notationProvider.getParsingHelp();
+ String s = multiplicityNotationProvider.getParsingHelp();
ArgoEventPump.fireEvent(new ArgoHelpEvent(
ArgoEventTypes.HELP_CHANGED, this,
Translator.localize(s)));
- setText(notationProvider.toString(getOwner(), null));
+ setText(multiplicityNotationProvider.toString(getOwner(),
+ npArguments));
}
/**
@@ -537,13 +542,16 @@
*/
protected void initNotationProviders(Object own) {
/* Careful; the owner is not yet set! */
- if (notationProvider != null) {
- notationProvider.cleanListener(this, own);
+ if (multiplicityNotationProvider != null) {
+ multiplicityNotationProvider.cleanListener(this, own);
}
if (Model.getFacade().isAModelElement(own)) {
- notationProvider =
+ multiplicityNotationProvider =
NotationProviderFactory2.getInstance().getNotationProvider(
NotationProviderFactory2.TYPE_MULTIPLICITY, own, this);
+ boolean value = getProject().getProjectSettings()
+ .getShowSingularMultiplicitiesValue();
+ npArguments.put("singularMultiplicityVisible", value);
}
}
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java?view=diff&rev=14792&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java&r1=14791&r2=14792
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigAssociationEnd.java 2008-05-23 10:13:56-0700
@@ -1,5 +1,5 @@
// $Id$
-// Copyright (c) 2005-2007 The Regents of the University of California. All
+// Copyright (c) 2005-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
@@ -27,6 +27,7 @@
import java.awt.Color;
import java.awt.Graphics;
import java.beans.PropertyChangeEvent;
+import java.util.HashMap;
import org.apache.log4j.Logger;
import org.argouml.kernel.ProjectManager;
@@ -139,6 +140,9 @@
multiplicityNotationProvider =
NotationProviderFactory2.getInstance().getNotationProvider(
NotationProviderFactory2.TYPE_MULTIPLICITY, own, this);
+ boolean value = getProject().getProjectSettings()
+ .getShowSingularMultiplicitiesValue();
+ getNotationArguments().put("singularMultiplicityVisible", value);
}
}
@@ -197,7 +201,8 @@
* to see if it's a valid multiplicity. If so then that is the
* multiplicity to be set. If not the input is rejected. */
multiplicityNotationProvider.parse(getOwner(), ft.getText());
- ft.setText(multiplicityNotationProvider.toString(getOwner(), null));
+ ft.setText(multiplicityNotationProvider.toString(getOwner(),
+ getNotationArguments()));
}
}
@@ -223,7 +228,8 @@
if (multiplicityNotationProvider != null) {
multiToUpdate.setText(
- multiplicityNotationProvider.toString(getOwner(), null));
+ multiplicityNotationProvider.toString(getOwner(),
+ getNotationArguments()));
}
Object order = Model.getFacade().getOrdering(owner);
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java?view=diff&rev=14792&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java&r1=14791&r2=14792
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigEdgeModelElement.java 2008-05-23 10:13:56-0700
@@ -137,7 +137,7 @@
// instance variables
private NotationProvider notationProviderName;
- private HashMap npArguments = new HashMap();
+ private HashMap<String, Object> npArguments = new HashMap<String, Object>();
/**
* The Fig that displays the name of this model element.
@@ -1362,6 +1362,9 @@
listeners.clear();
}
+ protected HashMap<String, Object> getNotationArguments() {
+ return npArguments;
+ }
/**
* This optional method is not implemented. It will throw an
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.