Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.sdmlib.doc.JavascriptAdapter;
  
  import java.util.HashMap;
  
  import org.sdmlib.CGUtil;
 
 
 public class Javascript implements GuiAdapter
 {
    public static final String NAME="Javascript";
    private String rootDir = "src";
    private JsonIdMap lastIdMap = null;
    private LinkedHashMap<StringStringiconMap;
 
    @Override
    public Javascript withRootDir(String rootDir) {
       this. = rootDir;
       return this;
    }
 
    @Override
    public Javascript withIconMap(LinkedHashMap<StringStringiconMap) {
       this. = iconMap;
       return this;
    }
 
 
    @Override
    public String getName()
    {
       return ;
    }
    
    @Override
    public String toImg(String imgNameJsonArray jsonArray)
    {
       // add icons
       for (Entry<StringStringentry : .entrySet())
       {
          JsonObject jsonObject = jsonArray.get(entry.getKey());
 
          if (jsonObject != null)
          {
             jsonObject.put("headimage"entry.getValue());
          }
       }
 
       // new diagram
       GraphConverter graphConverter = new GraphConverter();
       JsonObject objectModel = graphConverter.convertToJson(.jsonArraytrue);
 
       String text =
             "<script>\n" +
                "   var json = " +
                objectModel.toString(3) +
                "   ;\n" +
                "   json[\"options\"]={\"canvasid\":\"canvas" + imgName + "\", "
                + "\"display\":\"html\", "
                + "\"fontsize\":10,"
                + "\"bar\":true};" +
                "   var g = new Graph(json);\n" +
                "   g.layout(100,100);\n" +
                "</script>\n";      
       return text;
    }
 
    @Override
    public String addGenericObjectDiag(String diagramNameGenericGraph graphGenericObjectSet hiddenObjects)
    {
       // TODO Auto-generated method stub
       return "";
   }
   public String dumpSwimlanes(String nameLogEntrySet entries)
   {
      // TODO Auto-generated method stub
      return "";
   }
   public void fillNodeAndEdgeBuilders(String imgNameJsonArray objectsStringBuilder nodeBuilder,
         StringBuilder edgeBuilderboolean omitRootString... aggregationRoles)
   {
      // TODO Auto-generated method stub
      
   }
   public String dumpDiagram(String diagramNameString fileText)
   {
      // TODO Auto-generated method stub
      return "";
   }
   
	   GraphList list = new GraphList().withTyp(.);
	   HashMap<StringGraphClazznodes=new HashMap<StringGraphClazz>();
	      
      for (Clazz clazz : model.getClasses())
      {
    	  GraphClazz node = new GraphClazz().withClassName(CGUtil.shortClassName(clazz.getName()));
         
         // Attributes
         for (Attribute attr : clazz.getAttributes())
         {
        	 node.add(new GraphAttribute(attr.getName(), GraphDataType.ref(attr.getType().getValue())));
         }
         // Methods
         for (Method method : clazz.getMethods())
         {
        	 GraphMethod newMethod = new GraphMethod(method.getName());
        	 for(Parameter param : method.getParameter()){
        		 newMethod.withParameter(param.getName(), GraphDataType.ref(param.getType().getValue()));
        	 }
        	 node.add(newMethod);
         }
         list.with(node);
         nodes.put(node.getId(), node);
      }
      for (Association assoc : model.getClasses().getRoles().getAssoc())
      {
    	 Role source = assoc.getSource();
         Role target = assoc.getTarget();
         
         GraphEdge sourceEdge = new GraphEdge().with(GraphCardinality.create(source.getCard()));
         GraphEdge targetEdge = new GraphEdge().with(GraphCardinality.create(target.getCard()));
         sourceEdge.with(targetEdge);
         
         
         sourceEdge.withInfo(new GraphLabel().withValue(source.getName()));
         sourceEdge.with(nodes.get(CGUtil.shortClassName(source.getClazz().getName())));
         targetEdge.withInfo(new GraphLabel().withValue(target.getName()));
         targetEdge.with(nodes.get(CGUtil.shortClassName(target.getClazz().getName())));
         list.with(sourceEdge);
      }
      
      for (Clazz kidClazz : model.getClasses())
      {
         for (Clazz superClazz : kidClazz.getSuperClazzes())
         {
        	 GraphEdge generationEdge = new GraphEdge().withTyp(.);
        	 generationEdge.with(nodes.get(CGUtil.shortClassName(kidClazz.getName())));
        	 GraphEdge kidEdge = new GraphEdge().withTyp(.);
        	generationEdge.with(kidEdge);
        	
        	kidEdge.with(nodes.get(CGUtil.shortClassName(superClazz.getName())));
        	list.with(generationEdge);
         }
      }
      return list;
   }
   
   public JsonObject convertModel(ClassModel model) {
	   JsonObject json = new JsonObject();
	      
	      json.put("typ""class");
	      
	      JsonArray jsonNodes = new JsonArray();
	      JsonArray jsonEdges = new JsonArray();
	      
	      for (Clazz clazz : model.getClasses())
	      {
	         JsonObject jsonClazz = new JsonObject();
	         jsonClazz.put("typ""node");
	         jsonClazz.put("id", CGUtil.shortClassName(clazz.getName()));
	         
	         // Attributes
	         JsonArray jsonAttrs = new JsonArray();
	         for (Attribute attr : clazz.getAttributes())
	         {
	            jsonAttrs.add("" + attr.getName() + " : " + attr.getType().getValue());
	         }
	         if(jsonAttrs.size()>0){
	        	 jsonClazz.put("attributes"jsonAttrs);
	         }
	         // Methods
	         JsonArray jsonMethods = new JsonArray();
	         for (Method method : clazz.getMethods())
	         {
	        	 jsonMethods.add("" + method.getSignature());
	         }
	         if(jsonMethods.size()>0){
	        	 jsonClazz.put("methods"jsonMethods);
	         }
	         jsonNodes.add(jsonClazz);
	      }
	      
	      json.put("nodes"jsonNodes);
	      for (Association assoc : model.getClasses().getRoles().getAssoc())
	      {
	         JsonObject jsonAssoc = new JsonObject();
	         jsonAssoc.put("typ","edge");
	         
	         JsonObject jsonRole = new JsonObject();
	         
	         jsonAssoc.put("source"jsonRole);
	         
	         Role source = assoc.getSource();
	         Role target = assoc.getTarget();
	         
	         jsonRole.put("cardinality"source.getCard());
	         jsonRole.put("property"source.getName());
	         jsonRole.put("id",CGUtil.shortClassName(source.getClazz().getName()));
	         jsonRole = new JsonObject();
	         jsonAssoc.put("target"jsonRole);
	         
	         jsonRole.put("id",CGUtil.shortClassName(target.getClazz().getName()));
	         jsonRole.put("cardinality"target.getCard());
	         jsonRole.put("property",target.getName());
	         
	         jsonEdges.add(jsonAssoc);
	      }
	      
	      for (Clazz kidClazz : model.getClasses())
	      {
	         for (Clazz superClazz : kidClazz.getSuperClazzes())
	         {
	            JsonObject jsonAssoc = new JsonObject();
	            jsonAssoc.put("typ","generalisation");
	            
	            JsonObject jsonRole = new JsonObject();
	            jsonRole.put("id",CGUtil.shortClassName(kidClazz.getName()));
	            jsonAssoc.put("source"jsonRole);
	            
	            jsonRole = new JsonObject();
	            jsonRole.put("id",CGUtil.shortClassName(superClazz.getName()));
	            jsonAssoc.put("target"jsonRole);
	            jsonEdges.add(jsonAssoc);
	         }
	      }
	      
	      
	      json.put("edges"jsonEdges);
	      return json;
   }
   public String dumpClassDiagram(String diagNameClassModel model)
   {
      JsonObject json = this.convertModel(model);
      
      String text =
            "<script>\n" +
               "   var json = " +
               json.toString(3) +
               "   ;\n" +
               "   new Graph(json, {\"canvasid\":\"canvas" + diagName + "\", "
               + "\"display\":\"html\", "
               + "\"fontsize\":10,"
               + "\"bar\":true}).layout(100,100);\n" +
               "</script>\n";      
      return text;
   }
   public Javascript withDrawer(GuiFileDrawer drawer)
   {
      // TODO Auto-generated method stub
      return null;
   }
New to GrepCode? Check out our FAQ X