/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.ufcspa.simdecs.diagram; import java.util.LinkedList; import org.ufcspa.simdecs.diagram.elements.Empty; import org.ufcspa.simdecs.diagram.elements.Node; import org.ufcspa.simdecs.diagram.elements.SwimLane; /** * * @author Maroni */ public class DiagramManager { private String diagramName; private LinkedList swimLanes; public DiagramManager(String diagramName) { this.diagramName = diagramName; swimLanes = new LinkedList(); } public void addSwimLane(SwimLane swimLane) { if (!swimLanes.isEmpty()) { while(swimLane.getNodes().size() < swimLanes.getFirst().getNodes().size()) { swimLane.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale())); } } swimLanes.add(swimLane); } public final void clear() { swimLanes = new LinkedList(); } public String getDiagramName() { return diagramName; } public void setDiagramName(String diagramName) { this.diagramName = diagramName; } public LinkedList getSwimLanes() { return swimLanes; } public SwimLane getSwimLane(String id) { for(SwimLane swimLane : swimLanes) { if (swimLane.getId().equals(id)) return swimLane; } return null; } public void removeSwimLane(String id) { for(SwimLane swimLane : swimLanes) { if (swimLane.getId().equals(id)) swimLanes.remove(swimLane); } } public void addNode(SwimLane swimLane, Node node) { swimLane.addNode(node); for(SwimLane sl : swimLanes) { if (!sl.equals(swimLane)) { if (sl.getNodes().size() < swimLane.getNodes().size()) { while(sl.getNodes().size() < swimLane.getNodes().size()) { sl.addNode(new Empty(swimLane.getMessageBundle(), swimLane.getLocale())); } } } } } }