summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java')
-rwxr-xr-xcollaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java73
1 files changed, 71 insertions, 2 deletions
diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java
index af7437d494..8c86248663 100755
--- a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java
+++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java
@@ -107,6 +107,7 @@ public class DiagramGenerator {
private Reference getRef(String ref) {
for(Reference r: refs){
+
if(r.getContainerName().equals(ref) || r.getName().equals(ref)){
return r;
}
@@ -139,7 +140,7 @@ public class DiagramGenerator {
int x=(ent.getX()+ent.getWidth())-(refHeight*2/3);
int y=ent.getY()+Reference.SPACING;
- for(String ref: ent.getReferences()){
+ for(String ref: setRefOrder(ent)){
Reference refer= new Reference();
Element polygon = refer.addElement(doc, svgNS, x, y, refHeight);
Element text = Text.addTextElement(doc, svgNS, x, y+refHeight/2, ref);
@@ -155,6 +156,69 @@ public class DiagramGenerator {
}
}
+ private String[] setRefOrder(Entity e){
+
+ ArrayList<String> refs = e.getReferences();
+ ArrayList<String> sers = new ArrayList<String>();
+ String[] orderedRefs = new String[refs.size()];
+
+ for(int i=0;i<refs.size();i++){
+ sers.add(i, "");
+ }
+
+ for(Iterator it= e.getReferenceToServiceMap().entrySet().iterator();it.hasNext();){
+ Entry entry = (Entry) it.next();
+ String ref = (String)entry.getKey();
+ String ser = (String)entry.getValue();
+
+ int idx= refs.indexOf(ref);
+ System.out.println("---------"+sers.get(idx));
+ sers.remove(idx);
+ sers.add(idx ,ser);
+ System.out.println(refs.get(idx)+"---"+sers.get(idx));
+
+ }
+
+ for(String eName: e.getAdjacentEntities()){
+ for(Entity ent: entities){
+
+ if(ent.getComponentName().equals(eName)){
+ for(String s : sers){
+ for(String s1: ent.getServices()){
+ //System.err.println("XXXXX "+ s1 +" ::: "+s);
+ if(s1.equals(s) || s.equals(ent.getComponentName())){
+ System.err.println("|||||||| "+ sers.size()+ " ||| " + refs.size()+"|| "+orderedRefs.length);
+ if(orderedRefs[ent.getLevel()] == null){
+// System.err.println("XXXXX "+ sers.get(1)+ " ::::::: "+refs.get(1));
+// System.err.println("XXXXX "+ sers.get(2)+ " ::::::: "+refs.get(2));
+// System.err.println("XXXXX "+ sers.get(3)+ " ::::::: "+refs.get(3));
+ System.err.println("XXXXX "+ refs.get(sers.indexOf(s))+" ::: "+ent.getLevel()+" ::: "+ent.getComponentName());
+ orderedRefs[ent.getLevel()] = refs.get(sers.indexOf(s));
+ break;
+ }
+ else{
+ for(int i=ent.getLevel();i<orderedRefs.length;i++){
+ if(orderedRefs[i]== null){
+
+ orderedRefs[i] = refs.get(sers.indexOf(s));
+ break;
+ }
+ else{
+ if(i==orderedRefs.length)
+ System.out.println("GRRR");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return orderedRefs;
+ }
+
private void addService(Entity ent) {
int serHeight = ent.getSerHeight();
int x=ent.getX()-(serHeight*2/3);
@@ -163,7 +227,12 @@ public class DiagramGenerator {
for(String ser: ent.getServices()){
Service serve= new Service();
Element polygon = serve.addElement(doc, svgNS, x, y, serHeight);
- Element text = Text.addTextElement(doc, svgNS, x, y+serHeight/2, ser);
+ Element text;
+ if(!ser.endsWith("Impl"))
+ text = Text.addTextElement(doc, svgNS, x, y+serHeight/2, ser);
+ else
+ text = Text.addTextElement(doc, svgNS, x, y+serHeight/2, "");
+
svgRoot.appendChild(polygon);
svgRoot.appendChild(text);