Author: bszanto
Date: 2008-10-31 11:54:06-0700
New Revision: 15951

Modified:
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
   
trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java
   
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java
   
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java

Log:
Fixed [1] some missing states in the DnD feature for Activity and State 
diagrams, [2] the NullPointerException when a fig is not accepted for DnD, [3] 
the non working "Add to Diagram" when trying to add a Class to a Seq2 diagram.

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java?view=diff&rev=15951&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java&r1=15950&r2=15951
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
       (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
       2008-10-31 11:54:06-0700
@@ -51,7 +51,14 @@
 import org.argouml.uml.diagram.state.ui.ButtonActionNewChangeEvent;
 import org.argouml.uml.diagram.state.ui.ButtonActionNewSignalEvent;
 import org.argouml.uml.diagram.state.ui.ButtonActionNewTimeEvent;
+import org.argouml.uml.diagram.state.ui.FigBranchState;
+import org.argouml.uml.diagram.state.ui.FigFinalState;
+import org.argouml.uml.diagram.state.ui.FigForkState;
+import org.argouml.uml.diagram.state.ui.FigInitialState;
+import org.argouml.uml.diagram.state.ui.FigJoinState;
+import org.argouml.uml.diagram.state.ui.FigJunctionState;
 import org.argouml.uml.diagram.state.ui.FigStateVertex;
+import org.argouml.uml.diagram.static_structure.ui.FigComment;
 import org.argouml.uml.diagram.ui.ActionSetMode;
 import org.argouml.uml.diagram.ui.RadioAction;
 import org.argouml.uml.diagram.ui.UMLDiagram;
@@ -757,11 +764,23 @@
     public boolean doesAccept(Object objectToAccept) {
         if (Model.getFacade().isAPartition(objectToAccept)) {
             return true;
-        } else if (Model.getFacade().isACallState(objectToAccept)) {
+        } else if (Model.getFacade().isAState(objectToAccept)) {
             return true;
-        } else if (Model.getFacade().isAObjectFlowState(objectToAccept)) {
+        } else if (Model.getFacade().isAPseudostate(objectToAccept)) {
+            Object kind = Model.getFacade().getKind(objectToAccept);
+            if (kind == null) {
+                LOG.warn("found a null type pseudostate");
+                return false;
+            }
+            if (kind.equals(
+                    Model.getPseudostateKind().getShallowHistory())) {
+                return false;
+            } else if (kind.equals(
+                    Model.getPseudostateKind().getDeepHistory())) {
+                return false;
+            }
             return true;
-        } else if (Model.getFacade().isASubactivityState(objectToAccept)) {
+        } else if (Model.getFacade().isAComment(objectToAccept)) {
             return true;
         }
         return false;
@@ -774,12 +793,41 @@
         
         if (Model.getFacade().isAPartition(droppedObject)) {
             figNode = new FigPartition(gm, droppedObject);
+        } else if (Model.getFacade().isAActionState(droppedObject)) {
+            figNode = new FigActionState(gm, droppedObject);
         } else if (Model.getFacade().isACallState(droppedObject)) {
             figNode = new FigCallState(gm, droppedObject);
         } else if (Model.getFacade().isAObjectFlowState(droppedObject)) {
             figNode = new FigObjectFlowState(gm, droppedObject);
         } else if (Model.getFacade().isASubactivityState(droppedObject)) {
             figNode = new FigSubactivityState(gm, droppedObject);
+        } else if (Model.getFacade().isAFinalState(droppedObject)) {
+            figNode = new FigFinalState(gm, droppedObject);
+        } else if (Model.getFacade().isAPseudostate(droppedObject)) {
+            Object kind = Model.getFacade().getKind(droppedObject);
+            if (kind == null) {
+                LOG.warn("found a null type pseudostate");
+                return null;
+            }
+            if (kind.equals(Model.getPseudostateKind().getInitial())) {
+                figNode = new FigInitialState(gm, droppedObject);
+            } else if (kind.equals(
+                    Model.getPseudostateKind().getChoice())) {
+                figNode = new FigBranchState(gm, droppedObject);
+            } else if (kind.equals(
+                    Model.getPseudostateKind().getJunction())) {
+                figNode = new FigJunctionState(gm, droppedObject);
+            } else if (kind.equals(
+                    Model.getPseudostateKind().getFork())) {
+                figNode = new FigForkState(gm, droppedObject);
+            } else if (kind.equals(
+                    Model.getPseudostateKind().getJoin())) {
+                figNode = new FigJoinState(gm, droppedObject);
+            } else {
+                LOG.warn("found a type not known");
+            }
+        } else if (Model.getFacade().isAComment(droppedObject)) {
+            figNode = new FigComment(gm, droppedObject);
         }
         
         if (figNode != null) {
@@ -791,7 +839,8 @@
             LOG.debug("Dropped object " + droppedObject + " converted to " 
                     + figNode);
         } else {
-            LOG.debug("Dropped object NOT added " + figNode);
+            LOG.debug("Dropped object NOT added. This usualy means that this " 
+                    + "type of object is not accepted!");
         }
         
         return figNode;

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java?view=diff&rev=15951&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java&r1=15950&r2=15951
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
     (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
     2008-10-31 11:54:06-0700
@@ -446,8 +446,6 @@
             return true;
         } else if (Model.getFacade().isAComment(objectToAccept)) {
             return true;
-        } else if (Model.getFacade().isAClassifierRole(objectToAccept)) {
-            return true;           
         } else if (Model.getFacade().isAClassifier(objectToAccept)) {
             return true;
         }
@@ -484,15 +482,18 @@
      */
     private FigClassifierRole makeNewFigCR(Object classifierRole, 
             Point location) {
+        if (classifierRole != null) {
+            FigClassifierRole newCR = new FigClassifierRole(getGraphModel(),
+                    getLayer(), classifierRole);
+            
+            getGraphModel().getNodes().add(newCR.getOwner());
+            
+            newCR.setY(location.y);
+            newCR.setX(location.x);
+            return newCR;
+        }
         
-        FigClassifierRole newCR = new FigClassifierRole(getGraphModel(),
-                getLayer(), classifierRole);
-        
-        getGraphModel().getNodes().add(newCR.getOwner());
-        
-        newCR.setY(location.y);
-        newCR.setX(location.x);
-        return newCR;
+        return null;
     }
     
     @Override

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java?view=diff&rev=15951&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java&r1=15950&r2=15951
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
   (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
   2008-10-31 11:54:06-0700
@@ -45,6 +45,7 @@
 import org.argouml.uml.diagram.ui.FigNodeAssociation;
 import org.argouml.uml.diagram.ui.RadioAction;
 import org.argouml.uml.diagram.ui.UMLDiagram;
+import org.argouml.uml.diagram.use_case.ui.FigActor;
 import org.argouml.util.ToolBarUtility;
 import org.tigris.gef.base.LayerPerspective;
 import org.tigris.gef.base.LayerPerspectiveMutable;
@@ -546,6 +547,8 @@
             return true;
         } else if (Model.getFacade().isAComment(objectToAccept)) {
             return true;
+        } else if (Model.getFacade().isAActor(objectToAccept)) {
+            return true;
         }
         return false;
     }
@@ -571,6 +574,8 @@
             figNode = new FigInterface(gm, droppedObject);
         } else if (Model.getFacade().isAObject(droppedObject)) {
             figNode = new FigObject(gm, droppedObject);
+        } else if (Model.getFacade().isAActor(droppedObject)) {
+            figNode = new FigActor(gm, droppedObject);
         } else if (Model.getFacade().isAComment(droppedObject)) {
             figNode = new FigComment(gm, droppedObject);
         }

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java?view=diff&rev=15951&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java&r1=15950&r2=15951
==============================================================================
--- 
trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java 
    (original)
+++ 
trunk/src/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java 
    2008-10-31 11:54:06-0700
@@ -733,25 +733,17 @@
 
     @Override
     public boolean doesAccept(Object objectToAccept) {
-        if (Model.getFacade().isAActionState(objectToAccept)) {
+        if (Model.getFacade().isAState(objectToAccept)) {
             return true;
-        } else if (Model.getFacade().isAFinalState(objectToAccept)) {
+        } else if (Model.getFacade().isASynchState(objectToAccept)) {
             return true;
         } else if (Model.getFacade().isAStubState(objectToAccept)) {
             return true;
-        } else if (Model.getFacade().isASubmachineState(objectToAccept)) {
-            return true;
-        } else if (Model.getFacade().isACompositeState(objectToAccept)) {
-            return true;
-        } else if (Model.getFacade().isASynchState(objectToAccept)) {
-            return true;
-        } else if (Model.getFacade().isAState(objectToAccept)) {
+        } else if (Model.getFacade().isAPseudostate(objectToAccept)) {
             return true;
         } else if (Model.getFacade().isAComment(objectToAccept)) {
             return true;
-        } else if (Model.getFacade().isAPseudostate(objectToAccept)) {
-            return true;
-        }
+        } 
         return false;
     }
     
@@ -777,8 +769,7 @@
         } else if (Model.getFacade().isAComment(droppedObject)) {
             figNode = new FigComment(gm, droppedObject);
         } else if (Model.getFacade().isAPseudostate(droppedObject)) {
-            Object pState = droppedObject;
-            Object kind = Model.getFacade().getKind(pState);
+            Object kind = Model.getFacade().getKind(droppedObject);
             if (kind == null) {
                 LOG.warn("found a null type pseudostate");
                 return null;

Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java?view=diff&rev=15951&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java&r1=15950&r2=15951
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java 
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java 
2008-10-31 11:54:06-0700
@@ -40,11 +40,9 @@
 import org.argouml.kernel.ProjectManager;
 import org.argouml.ui.TransferableModelElements;
 import org.argouml.uml.diagram.ArgoDiagram;
-import org.argouml.uml.diagram.use_case.ui.UMLUseCaseDiagram;
 import org.tigris.gef.base.Diagram;
 import org.tigris.gef.base.Editor;
 import org.tigris.gef.base.Globals;
-import org.tigris.gef.base.Layer;
 import org.tigris.gef.graph.ConnectionConstrainer;
 import org.tigris.gef.graph.GraphModel;
 import org.tigris.gef.graph.presentation.JGraph;
@@ -201,7 +199,7 @@
                 FigNode figNode = ((UMLDiagram )diagram).drop(i.next(),
                         dropTargetDropEvent.getLocation());
                 
-//                if (diagram instanceof UMLUseCaseDiagram) {
+                if (figNode != null) {
                     GraphModel gm = diagram.getGraphModel();
                     if (!gm.getNodes().contains(figNode.getOwner())) {
                         gm.getNodes().add(figNode.getOwner());
@@ -209,13 +207,10 @@
                     
                     Globals.curEditor().getLayerManager().getActiveLayer()
                             .add(figNode);
-//                }
+                }
                 
             }
 
-//            ActionAddExistingNodes.addNodes(modelElements, 
-//                    dropTargetDropEvent.getLocation(), diagram);
-
             dropTargetDropEvent.getDropTargetContext().dropComplete(true);
         } catch (UnsupportedFlavorException e) {
             LOG.debug(e);

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java?view=diff&rev=15951&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java&r1=15950&r2=15951
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java  
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/ModeAddToDiagram.java  
2008-10-31 11:54:06-0700
@@ -34,6 +34,8 @@
 import java.util.List;

 

 import org.apache.log4j.Logger;

+import org.argouml.kernel.ProjectManager;

+import org.argouml.uml.diagram.ArgoDiagram;

 import org.tigris.gef.base.Editor;

 import org.tigris.gef.base.FigModifyingModeImpl;

 import org.tigris.gef.base.Layer;

@@ -129,50 +131,54 @@
         final List<FigNode> placedFigs =

             new ArrayList<FigNode>(modelElements.size());

         

-        for (final Object node : modelElements) {

-            if (gm.canAddNode(node)) {

-                final FigNode pers =

-                    renderer.getFigNodeFor(gm, lay, node, null);

-                pers.setLocation(snapPt.x + (count++ * 100), snapPt.y);

-                if (LOG.isDebugEnabled()) {

-                    LOG.debug("mouseMoved: Location set ("

-                            + pers.getX() + "," + pers.getY() + ")");

-                }

-                UndoManager.getInstance().startChain();

-                editor.add(pers);

-                gm.addNode(node);

-                if (addRelatedEdges) {

-                    gm.addNodeRelatedEdges(node);

-                }

-

-                Fig encloser = null;

-                final Rectangle bbox = pers.getBounds();

-                final List<Fig> otherFigs = lay.getContents();

-                for (final Fig otherFig : otherFigs) {

-                    if (!(otherFig.getUseTrapRect())) {

-                        continue;

+        ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()

+               .getActiveDiagram();

+        if (diag instanceof UMLDiagram) {

+            for (final Object node : modelElements) {

+                if (((UMLDiagram) diag).doesAccept(node)) {

+                    final FigNode pers =

+                        renderer.getFigNodeFor(gm, lay, node, null);

+                    pers.setLocation(snapPt.x + (count++ * 100), snapPt.y);

+                    if (LOG.isDebugEnabled()) {

+                        LOG.debug("mouseMoved: Location set ("

+                                + pers.getX() + "," + pers.getY() + ")");

                     }

-                    if (!(otherFig instanceof FigNode)) {

-                        continue;

+                    UndoManager.getInstance().startChain();

+                    editor.add(pers);

+                    gm.addNode(node);

+                    if (addRelatedEdges) {

+                        gm.addNodeRelatedEdges(node);

                     }

-                    if (!otherFig.isVisible()) {

-                        continue;

-                    }

-                    if (otherFig.equals(pers)) {

-                        continue;

-                    }

-                    final Rectangle trap = otherFig.getTrapRect();

-                    if (trap != null

-                            && trap.contains(bbox.x, bbox.y)

-                            && trap.contains(

-                                    bbox.x + bbox.width, 

-                                    bbox.y + bbox.height)) {

-                        encloser = otherFig;

+    

+                    Fig encloser = null;

+                    final Rectangle bbox = pers.getBounds();

+                    final List<Fig> otherFigs = lay.getContents();

+                    for (final Fig otherFig : otherFigs) {

+                        if (!(otherFig.getUseTrapRect())) {

+                            continue;

+                        }

+                        if (!(otherFig instanceof FigNode)) {

+                            continue;

+                        }

+                        if (!otherFig.isVisible()) {

+                            continue;

+                        }

+                        if (otherFig.equals(pers)) {

+                            continue;

+                        }

+                        final Rectangle trap = otherFig.getTrapRect();

+                        if (trap != null

+                                && trap.contains(bbox.x, bbox.y)

+                                && trap.contains(

+                                        bbox.x + bbox.width, 

+                                        bbox.y + bbox.height)) {

+                            encloser = otherFig;

+                        }

                     }

+                    pers.setEnclosingFig(encloser);

+                    

+                    placedFigs.add(pers);

                 }

-                pers.setEnclosingFig(encloser);

-                

-                placedFigs.add(pers);

             }

         }

         


Modified: 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java?view=diff&rev=15951&p1=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java&p2=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java&r1=15950&r2=15951
==============================================================================
--- 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java
     (original)
+++ 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java
     2008-10-31 11:54:06-0700
@@ -32,7 +32,6 @@
 import org.argouml.uml.CommentEdge;
 import org.argouml.uml.diagram.ArgoDiagram;
 import org.argouml.uml.diagram.UmlDiagramRenderer;
-import org.argouml.uml.diagram.static_structure.ui.FigComment;
 import org.argouml.uml.diagram.static_structure.ui.FigEdgeNote;
 import org.argouml.uml.diagram.ui.UMLDiagram;
 import org.tigris.gef.base.Layer;
@@ -61,13 +60,14 @@
                                  Map styleAttributes) {
         FigNode result = null;
         ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
-            .getActiveDiagram();
+               .getActiveDiagram();
         if (diag instanceof UMLDiagram
                 && ((UMLDiagram) diag).doesAccept(node)) {
             result = ((UMLDiagram) diag).drop(node, null);
         } else {
                return null;
         }
+        LOG.debug("SequenceDiagramRenderer getFigNodeFor " + result);
         lay.add(result);
         return result;       
     }

Modified: 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java?view=diff&rev=15951&p1=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java&p2=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java&r1=15950&r2=15951
==============================================================================
--- 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java
  (original)
+++ 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java
  2008-10-31 11:54:06-0700
@@ -228,34 +228,36 @@
      */
     private FigClassifierRole makeNewFigCR(Object classifierRole, 
             Point location) {
-        
-        FigClassifierRole newCR = new FigClassifierRole(classifierRole);
-        
-        getGraphModel().getNodes().add(newCR.getOwner());
-        
-        // Y position of the new CR should match existing CRs Y position
-        List nodes = getLayer().getContentsNoEdges();
-        int i = 0;
-        boolean figClassifierRoleFound = false;
-        Fig fig = null;
-        while (i < nodes.size() && !figClassifierRoleFound) {
-            fig = (Fig) nodes.get(i);
-            if (nodes.get(i) instanceof Fig) {
-                if (fig != newCR && fig instanceof FigClassifierRole) {
-                    newCR.setY(((Fig) fig).getY());
-                    newCR.setHeight(((Fig) fig).getHeight());
-                    figClassifierRoleFound = true;
+        if (classifierRole != null) {
+               FigClassifierRole newCR = new FigClassifierRole(classifierRole);
+            
+            getGraphModel().getNodes().add(newCR.getOwner());
+            
+            // Y position of the new CR should match existing CRs Y position
+            List nodes = getLayer().getContentsNoEdges();
+            int i = 0;
+            boolean figClassifierRoleFound = false;
+            Fig fig = null;
+            while (i < nodes.size() && !figClassifierRoleFound) {
+                fig = (Fig) nodes.get(i);
+                if (nodes.get(i) instanceof Fig) {
+                    if (fig != newCR && fig instanceof FigClassifierRole) {
+                        newCR.setY(((Fig) fig).getY());
+                        newCR.setHeight(((Fig) fig).getHeight());
+                        figClassifierRoleFound = true;
+                    }
                 }
+                i++;
             }
-            i++;
-        }
-        if (location != null) {
-            if (newCR.getY() == 0) {
-                newCR.setY(location.y);
+            if (location != null) {
+                if (newCR.getY() == 0) {
+                    newCR.setY(location.y);
+                }
+                newCR.setX(location.x);
             }
-            newCR.setX(location.x);
+            return newCR;
         }
-        return newCR;
+        return null;
     }
     
     @Override

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to