svn commit: r15373 - branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram: static_structure/ui ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: bszanto
Date: 2008-07-26 01:24:10-0700
New Revision: 15373

Modified:
   branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java
   branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java

Log:
Clicking (roughly) the +/-/~/# signs or the public/package/private words now cycles through the visibilities of the operation.

Modified: branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java?view=diff&rev=15373&p1=branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java&p2=branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java&r1=15372&r2=15373
==============================================================================
--- branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java	(original)
+++ branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/static_structure/ui/FigOperation.java	2008-07-26 01:24:10-0700
@@ -25,8 +25,10 @@
 package org.argouml.uml.diagram.static_structure.ui;
 
 import java.awt.Font;
+import java.awt.Rectangle;
 import java.beans.PropertyChangeEvent;
 
+import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
 import org.argouml.notation.NotationProvider;
 import org.tigris.gef.presentation.Fig;
@@ -94,5 +96,51 @@
         return Model.getFacade().isAbstract(getOwner()) 
             ? Font.ITALIC : Font.PLAIN;
     }
+    
+    /**
+     * Cyclies the visibility of an operation when clicking in the beggining 
+     * part of the FigOperation.
+     * @param r Hit rectangle.
+     * @author bszanto
+     */
+    public void changeVisibility(Rectangle r) {
+        if (super.hit(r)) {         
+            String notation = ProjectManager.getManager().getCurrentProject()
+                    .getProjectSettings().getNotationLanguage();
+            
+            // The hit zone is different for the different notations.
+            // Java uses words (public, protected, private) while UML 1.4 uses
+            // signs (+, -, ~, #).
+            int offset = 0;
+            if (notation.equals("Java")) {
+                offset = 50;
+            } else if (notation.equals("UML 1.4")) {
+                offset = 10;
+            }
+             
+            if (r.x < (_x + offset)) {
+                Object operation = getOwner();
+                Object visibity = Model.getFacade().getVisibility(operation);
+                
+                // visibility is chandes according to prop panel order which is:
+                // public, package, protected, private
+                if (Model.getVisibilityKind().getPrivate().equals(visibity)) {
+                    Model.getCoreHelper().setVisibility(operation,
+                            Model.getVisibilityKind().getPublic());
+                } else if (Model.getVisibilityKind().getPublic().equals(
+                        visibity)) {
+                    Model.getCoreHelper().setVisibility(operation,
+                            Model.getVisibilityKind().getPackage());
+                } else if (Model.getVisibilityKind().getPackage().equals(
+                        visibity)) {
+                    Model.getCoreHelper().setVisibility(operation,
+                            Model.getVisibilityKind().getProtected());
+                } else {
+                    Model.getCoreHelper().setVisibility(operation,
+                            Model.getVisibilityKind().getPrivate());
+                }
+            }
+        }
+    }
 
 }

Modified: branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java?view=diff&rev=15373&p1=branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java&p2=branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java&r1=15372&r2=15373
==============================================================================
--- branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java	(original)
+++ branches/gsoc2008/feature3_5140_bszanto/src/org/argouml/uml/diagram/ui/FigCompartmentBox.java	2008-07-26 01:24:10-0700
@@ -32,6 +32,7 @@
 
 import org.argouml.ui.targetmanager.TargetManager;
 import org.argouml.uml.diagram.static_structure.ui.FigAttribute;
+import org.argouml.uml.diagram.static_structure.ui.FigOperation;
 import org.argouml.uml.diagram.static_structure.ui.SelectionClass;
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Globals;
@@ -116,9 +117,11 @@
                 2,
                 2);
         
-        if (highlightedFigText instanceof FigAttribute) {
-            // try to change visibility
+        // try to change visibility
+        if (highlightedFigText instanceof FigAttribute) { 
             ((FigAttribute) highlightedFigText).changeVisibility(r);
+        } else if (highlightedFigText instanceof FigOperation) {
+            ((FigOperation) highlightedFigText).changeVisibility(r);
         }
         
         unhighlight();
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.