コード例 #1
0
 private String updateChart(List<Object> stack) {
   String chart = "";
   for (int i = 0; i < stack.size(); i++) {
     String image = "";
     String name = "";
     String desc = "";
     List<Object> newStack = new ArrayList<Object>();
     GridElement ge = (GridElement) stack.get(i);
     name =
         stack.get(i).getClass().getSimpleName()
             + " "
             + ge.getLabel()
             + " - <i>"
             + Utils.dateStringFromTimestamp(ge.getTimestamp())
             + "</i>";
     desc = "<div class='txtElement'><i>" + ge.getState().name() + "</i></div>";
     // TODO this part is not the same in utils?? (obtain HTML)
     Field[] fields = ge.getClass().getDeclaredFields();
     for (int j = 0; j < fields.length; j++) {
       Field tempField = fields[j];
       tempField.setAccessible(true);
       try {
         Object fieldValue = tempField.get(ge);
         if (fieldValue instanceof GridElement) {
           newStack.add(fieldValue);
         } else if (fieldValue instanceof List) {
           List myList = (List) fieldValue;
           if (myList.size() > 0) {
             Object first = myList.get(0);
             if (first instanceof GridElement) {
               newStack.addAll(myList);
             }
           }
         } else {
           // desc=desc+"<div style='float:left;min-width: 200px;'>"+tempField.getName()+":
           // "+fieldValueStr+"</div>";
           if (fieldValue != null) {
             if (!tempField.getName().equals("logger")) {
               String fieldValueStr = (String) fieldValue.toString();
               String txt = tempField.getName() + ": </i> " + fieldValueStr;
               int maxLength = 60;
               if (txt.length() > maxLength) txt = txt.substring(0, maxLength) + "...";
               desc = desc + "<div class='txtElement'><i>" + txt + "</div>";
             }
           }
         }
       } catch (IllegalArgumentException e) {
         e.printStackTrace();
       } catch (IllegalAccessException e) {
         e.printStackTrace();
       }
     }
     String geType = "";
     if (ge.getClass().getSimpleName().equals("Goal")
         || ge.getClass().getSimpleName().equals("Strategy")) {
       geType = "HTMLclass: 'gqmplusstrategy',";
     } else {
       geType = "HTMLclass: 'gqmgraph',";
     }
     chart =
         chart
             + "\n{"
             + geType
             + " innerHTML:\"<div style=\'background-color: red;\'><div class=\'nodeTxt\'><div class='txtElementTitle'><div class='nodeImg' ><img src='/ISSSR/resources/images/ImgGVS/"
             + ge.getClass().getSimpleName()
             + ".png' /></div><a style='z-index: 10;position:relative; color:black;' href='/ISSSR/element/"
             + ge.getClass().getSimpleName()
             + "/"
             + ge.getIdElement()
             + "'>"
             + name
             + "</a></div>"
             + desc
             + "</div></div>\", ";
     // chart=chart+"{text: { name: \""+name+"\", desc: \""+desc+"\"
     // },innerHTML:\"<div><h1>test</h1></div>\", collapsed: true";
     if (newStack.size() > 0) {
       chart = chart + " collapsed: true ,children: [";
       chart = chart + updateChart(newStack);
       chart = chart + "]";
     } else chart = chart + " collapsed: false";
     chart = chart + "}";
     if (i < stack.size() - 1) chart = chart + ",";
   }
   return chart;
 }