[overlord-commits] Overlord SVN: r959 - bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue Feb 9 09:40:50 EST 2010


Author: heiko.braun at jboss.com
Date: 2010-02-09 09:40:50 -0500 (Tue, 09 Feb 2010)
New Revision: 959

Added:
   bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/JSONTree.java
Modified:
   bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDataView.java
Log:
Fix BPMC-48

Modified: bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDataView.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDataView.java	2010-02-08 15:58:30 UTC (rev 958)
+++ bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/InstanceDataView.java	2010-02-09 14:40:50 UTC (rev 959)
@@ -21,6 +21,7 @@
  */
 package org.jboss.bpm.console.client.process;
 
+import com.google.gwt.gen2.table.client.AbstractScrollTable;
 import com.google.gwt.xml.client.Document;
 import com.google.gwt.xml.client.NamedNodeMap;
 import com.google.gwt.xml.client.Node;
@@ -29,9 +30,11 @@
 import org.gwt.mosaic.ui.client.ListBox;
 import org.gwt.mosaic.ui.client.layout.MosaicPanel;
 import org.gwt.mosaic.ui.client.list.DefaultListModel;
+import org.jboss.bpm.console.client.ApplicationContext;
 import org.jboss.bpm.console.client.LazyPanel;
 import org.jboss.bpm.console.client.util.ConsoleLog;
 import org.jboss.bpm.console.client.util.DOMUtil;
+import org.jboss.errai.workspaces.client.Registry;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -51,10 +54,14 @@
 
   private boolean isInitialized;
 
+  boolean isRiftsawInstance = false;
+
   public InstanceDataView()
   {
     super();
-    this.setPadding(5);    
+    this.setPadding(5);
+    ApplicationContext appContext = Registry.get(ApplicationContext.class);
+    isRiftsawInstance = appContext.getConfig().getProfileName().equals("BPEL Console");    
   }
 
   public void initialize()
@@ -67,6 +74,8 @@
                   "Key", "XSD Type", "Java Type", "Value"}
           );
 
+      listBox.setColumnResizePolicy(AbstractScrollTable.ColumnResizePolicy.MULTI_CELL);
+      
       listBox.setCellRenderer(new ListBox.CellRenderer<DataEntry>() {
         public void renderCell(ListBox<DataEntry> listBox, int row, int column,
                                DataEntry item) {
@@ -81,7 +90,15 @@
               listBox.setText(row,column, item.java);
               break;
             case 3:
-              listBox.setText(row,column, item.value);
+              if(isRiftsawInstance)
+              {
+                JSONTree tree = new JSONTree(item.value);
+                listBox.setWidget(row,column, tree);
+              }
+              else
+              {
+                listBox.setText(row,column, item.value);
+              }
               break;
             default:
               throw new RuntimeException("Unexpected column size");
@@ -135,13 +152,12 @@
         dataEntry.xsd = valueNodeAttributes.getNamedItem("xsi:type").getNodeValue();
 
         List<Node> valueChildElements = DOMUtil.getChildElements(valueNode.getChildNodes());
-        
+
         if(valueChildElements.isEmpty()
             && valueNode.hasChildNodes()
             && Node.TEXT_NODE == valueNode.getChildNodes().item(0).getNodeType())
         {
-          // simple type
-          dataEntry.value = valueNode.getFirstChild().getNodeValue();
+          dataEntry.value = valueNode.getFirstChild().getNodeValue();          
         }
         else
         {

Added: bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/JSONTree.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/JSONTree.java	                        (rev 0)
+++ bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/process/JSONTree.java	2010-02-09 14:40:50 UTC (rev 959)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.console.client.process;
+
+import com.google.gwt.json.client.JSONObject;
+import com.google.gwt.json.client.JSONParser;
+import com.google.gwt.json.client.JSONValue;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.widgetideas.client.FastTree;
+import com.google.gwt.widgetideas.client.FastTreeItem;
+import org.jboss.bpm.console.client.util.ConsoleLog;
+
+public class JSONTree extends ScrollPanel
+{
+  String json = null;
+
+  public JSONTree(String json)
+  {
+    this.json = json;
+
+    FastTree tree = new FastTree();
+    FastTreeItem root = tree.addItem("message");
+
+    parseObject(root, "root", JSONParser.parse(json));
+    
+    this.add(tree);
+  }
+
+  private void parseValue(FastTreeItem root, String key, JSONValue jsonValue)
+  {
+    if(jsonValue.isBoolean()!=null)
+    {
+      FastTreeItem treeItem = root.addItem(key);
+      treeItem.addItem(jsonValue.isBoolean().toString());
+    }
+    else if(jsonValue.isNumber()!=null)
+    {
+      FastTreeItem fastTreeItem = root.addItem(key);
+      fastTreeItem.addItem(jsonValue.isNumber().toString());
+    }
+    else if(jsonValue.isString()!=null)
+    {
+      FastTreeItem treeItem = root.addItem(key);
+      treeItem.addItem(jsonValue.isString().toString());
+    }
+    else
+    {
+      ConsoleLog.warn("Unexpected JSON value: " + jsonValue);
+    }
+
+  }
+
+  private void parseArray(FastTreeItem root, String key, JSONValue jsonValue)
+  {
+    
+  }
+
+  private void parseObject(FastTreeItem root, String key, JSONValue topLevel)
+  {
+    JSONObject rootJSO = topLevel.isObject();
+    if(null==rootJSO)
+      throw new IllegalArgumentException("Not a JSON object: "+topLevel);
+        
+    for(String innerKey : rootJSO.keySet())
+    {
+      JSONValue jsonValue = rootJSO.get(innerKey);
+      if(jsonValue.isObject()!=null)
+      {
+        parseObject(root, innerKey, jsonValue);
+      }
+      else if (jsonValue.isArray()!=null)
+      {
+        parseArray(root, innerKey, jsonValue);
+      }
+      else
+      {
+        parseValue(root, innerKey, jsonValue);
+      }
+    }
+  }
+
+}



More information about the overlord-commits mailing list