diff options
Diffstat (limited to 'collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout')
4 files changed, 76 insertions, 22 deletions
diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/ComponentEntity.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/ComponentEntity.java index f85a83bdb7..7507b4ab57 100755 --- a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/ComponentEntity.java +++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/ComponentEntity.java @@ -48,7 +48,7 @@ public class ComponentEntity extends Entity{ public ComponentEntity(){ - super.setStartPosition(200); + setStartPosition(200); setHeight(Component.DEFAULT_HEIGHT); setWidth(Component.DEFAULT_WIDTH); diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java index 0adffcc44e..810c0a8f09 100755 --- a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java +++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java @@ -43,12 +43,14 @@ public class CompositeEntity extends Entity{ // public static final int defaultNoOfRefs= Component.DEFAULT_HEIGHT / (Reference.MAXIMUM_HEIGHT+Reference.SPACING); //same value for defaultNoOfSers // public static final int defaultNoOfProps= Component.DEFAULT_WIDTH / (Property.MAXIMUM_HEIGHT+Property.SPACING); + private final String fileNameSuffix = "_diagram.svg"; private int maxInternalLevel=0; private int maxInternalLane=0; private ComponentEntity[] componentList; private int[][] connections; private HashMap<String, String> promoteAService = new HashMap<String, String>(); private HashMap<String, String> promoteAReference = new HashMap<String, String>(); + private ArrayList<String> includedComposites = new ArrayList<String>(); //private HashSet<String> connectedEntities = new HashSet<String>(); @@ -201,6 +203,13 @@ public class CompositeEntity extends Entity{ promoteAReference.put(compositeRef, componentRef); return true; } + + public boolean addToIncludedComposites(String composite){ + + includedComposites.add(composite); + + return true; + } public void setPromoteAReference(HashMap<String, String> promoteAReference) { this.promoteAReference = promoteAReference; @@ -252,6 +261,15 @@ public class CompositeEntity extends Entity{ } + public ArrayList<String> getIncludedComposites() { + return includedComposites; + } + + public String getFileNameSuffix() { + return fileNameSuffix; + } + + // public int getNoOfRefs(){ // return references.size(); diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java index 4157f93409..07ee0d7c75 100755 --- a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java +++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java @@ -63,7 +63,7 @@ public class EntityBuilder { composite = new CompositeEntity(compositeName); - setParent(comps, composite); + setParent(comps); //System.out.println("ComponentEntity "+comps[0].getLevel()); int[][] conns = buildConnectionMatrix(comps); @@ -72,21 +72,25 @@ public class EntityBuilder { composite.setConnections(conns); LayoutBuilder buildLayout = new LayoutBuilder(comps , conns); - buildLayout.buildEntities(); + buildLayout.placeEntities(); System.out.println("conns "+conns[0][0]); - buildCompositeService(docEle, composite); - buildCompositeReference(docEle, composite); - buildCompositeProperty(docEle, composite); + buildCompositeService(docEle); + buildCompositeReference(docEle); + buildCompositeProperty(docEle); + + addInclusions(docEle); composite.setAttributes(); return composite; } + + // private void assignCoordinates() { // // for(Entity ent: elts){ @@ -95,15 +99,14 @@ public class EntityBuilder { // } // } - private void setParent(ComponentEntity[] comps, Entity parent) { + private void setParent(ComponentEntity[] comps) { for(ComponentEntity comp: comps){ - comp.setParent(parent); + comp.setParent(composite); } } - private void buildCompositeService(Element docEle, - CompositeEntity composite) { + private void buildCompositeService(Element docEle) { NodeList nl = docEle.getElementsByTagName("service"); System.err.println("^^^^^^^^^ "+nl.getLength()); @@ -136,8 +139,7 @@ public class EntityBuilder { } } - private void buildCompositeReference(Element docEle, - CompositeEntity composite) { + private void buildCompositeReference(Element docEle) { NodeList nl = docEle.getElementsByTagName("reference"); //System.out.println("^^^^^^^^^ "+nl.getLength()); @@ -170,8 +172,7 @@ public class EntityBuilder { } } - private void buildCompositeProperty(Element docEle, - CompositeEntity composite) { + private void buildCompositeProperty(Element docEle) { NodeList nl = docEle.getElementsByTagName("property"); //System.out.println("^^^^^^^^^ "+nl.getLength()); @@ -188,6 +189,24 @@ public class EntityBuilder { } } } + + private void addInclusions(Element docEle) { + + NodeList nl = docEle.getElementsByTagName("include"); + //System.out.println("^^^^^^^^^ "+nl.getLength()); + if(nl != null && nl.getLength() > 0 ) { + + for(int i = 0 ; i < nl.getLength();i++) { + + Element elt = (Element)nl.item(i); + + if(elt.getParentNode().getNodeName().equals("composite")){ + String compToBeIncluded = elt.getAttribute("name"); + composite.addToIncludedComposites(compToBeIncluded); + } + } + } + } private int[][] buildConnectionMatrix(ComponentEntity[] comps) { diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/LayoutBuilder.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/LayoutBuilder.java index 07f432d6a3..c2acdf8f89 100755 --- a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/LayoutBuilder.java +++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/LayoutBuilder.java @@ -25,7 +25,6 @@ public class LayoutBuilder { private int[][] conns = null; private Entity startEnt = null; private int currentMaxLevel= 0; - private int startPosition = 250; /** * Constructor which takes set of entities and their connection matrix @@ -62,7 +61,7 @@ public class LayoutBuilder { * * */ - public Entity[] buildEntities(){ + public Entity[] placeEntities(){ /** * Finding the starting entity @@ -73,19 +72,29 @@ public class LayoutBuilder { if( isConnected(ent.getId()) ){ setPosition(ent, 0, 0); startEnt = ent; - System.out.println("startEnt "+ent.getName()); + //System.out.println("startEnt "+ent.getId()); break; } } assignPositions(startEnt); + assignPositionsOfIdleEntities(); assignCoordinates(); return elts; } + private void assignPositionsOfIdleEntities() { + + for(Entity ent: elts){ + if(!ent.isPossitionSet()){ + this.setPosition(ent, ++currentMaxLevel, 0); + } + } + } + private void assignCoordinates() { for(Entity ent: elts){ @@ -102,10 +111,10 @@ public class LayoutBuilder { if( entConns[i] == 1 ){ Entity nextEnt = findEntity(i); - if(nextEnt.isPossitionSet()){ - currentMaxLevel = nextEnt.getLevel()+1; // for diagram clearness purpose - } - else if(nextEnt != null){ +// if(nextEnt.isPossitionSet()){ +// currentMaxLevel = nextEnt.getLevel()+1; // for diagram clearness purpose +// } + if(nextEnt != null && !nextEnt.isPossitionSet()){ setPosition(nextEnt, currentMaxLevel, ent.getLane()+1); assignPositions(nextEnt); } @@ -131,7 +140,7 @@ public class LayoutBuilder { private boolean isConnected(int id) { int[] entConns = conns[id]; - System.out.println("entConns "+entConns.length); + //System.out.println("entConns "+entConns.length); for(int i=0; i<entConns.length; i++){ if(entConns[i] == 1){ @@ -149,4 +158,12 @@ public class LayoutBuilder { ent.setPossitionSet(true); } + public Entity getStartEnt() { + return startEnt; + } + + public void setStartEnt(Entity startEnt) { + this.startEnt = startEnt; + } + } |