[overlord-commits] Overlord SVN: r1026 - in activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client: comments and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Mar 31 06:55:10 EDT 2010


Author: heiko.braun at jboss.com
Date: 2010-03-31 06:55:09 -0400 (Wed, 31 Mar 2010)
New Revision: 1026

Added:
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/ChartComment.java
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentEditCallback.java
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentPanel.java
Modified:
   activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java
Log:
More work on commenting

Modified: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java	2010-03-31 08:51:12 UTC (rev 1025)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/DefinitionHistoryView.java	2010-03-31 10:55:09 UTC (rev 1026)
@@ -10,10 +10,14 @@
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Widget;
 import org.gwt.mosaic.ui.client.*;
 import org.gwt.mosaic.ui.client.layout.*;
 import org.gwt.mosaic.ui.client.util.ResizableWidget;
 import org.gwt.mosaic.ui.client.util.ResizableWidgetCollection;
+import org.jboss.bpm.monitor.gui.client.comments.ChartComment;
+import org.jboss.bpm.monitor.gui.client.comments.CommentEditCallback;
+import org.jboss.bpm.monitor.gui.client.comments.CommentPanel;
 import org.jboss.errai.bus.client.api.RemoteCallback;
 import org.jboss.errai.bus.client.api.base.MessageBuilder;
 import org.jboss.errai.workspaces.client.api.ProvisioningCallback;
@@ -21,6 +25,7 @@
 import org.jboss.errai.workspaces.client.api.annotations.LoadTool;
 import org.timepedia.chronoscope.client.Dataset;
 import org.timepedia.chronoscope.client.Datasets;
+import org.timepedia.chronoscope.client.Overlay;
 import org.timepedia.chronoscope.client.XYPlot;
 import org.timepedia.chronoscope.client.browser.ChartPanel;
 import org.timepedia.chronoscope.client.browser.Chronoscope;
@@ -31,17 +36,18 @@
 import org.timepedia.chronoscope.client.data.tuple.Tuple2D;
 import org.timepedia.chronoscope.client.event.PlotFocusEvent;
 import org.timepedia.chronoscope.client.event.PlotFocusHandler;
-import org.timepedia.chronoscope.client.overlays.Marker;
+import org.timepedia.chronoscope.client.overlays.DomainBarMarker;
 
-import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author: Heiko Braun <hbraun at redhat.com>
  * @date: Mar 11, 2010
  */
 @LoadTool(name="Process Activity", group = "History")
-public class DefinitionHistoryView implements WidgetProvider
+public class DefinitionHistoryView implements WidgetProvider, CommentEditCallback
 {
 
   private static final String TIMEPEDIA_FONTBOOK_SERVICE = "http://api.timepedia.org/fr";
@@ -55,6 +61,8 @@
   private HTML timespan;
   private CaptionLayoutPanel chartArea;
   private LayoutPanel timespanPanel;
+  private CommentPanel commentPanel;
+  private Map<Long, Overlay> overlayMapping = new HashMap<Long, Overlay>();
 
   public void provideWidget(ProvisioningCallback callback)
   {
@@ -122,7 +130,7 @@
 
     // ------------
     
-    LayoutPanel contents = new LayoutPanel(new RowLayout());
+    final LayoutPanel contents = new LayoutPanel(new RowLayout());
         
     LayoutPanel headerPanel = new LayoutPanel(new ColumnLayout());
     headerPanel.add(title, new ColumnLayoutData("50%"));
@@ -135,6 +143,19 @@
     contents.add(headerPanel, new RowLayoutData("120"));
     contents.add(chartArea, new RowLayoutData("350", true));
 
+    // ------------
+    commentPanel = new CommentPanel(this);
+    commentPanel.addCollapsedListener(new CollapsedListener() {
+      public void onCollapsedChange(Widget sender)
+      {
+        commentPanel.toogleListView();
+        contents.layout();
+      }
+    } );
+
+    contents.add(commentPanel, new BoxLayoutData(BoxLayoutData.FillStyle.HORIZONTAL));
+
+    // ------------
     panel.add(contents, new BoxLayoutData(BoxLayoutData.FillStyle.BOTH));
     callback.onSuccess(panel);
   }
@@ -231,6 +252,36 @@
     rpcService.getDefinitionActivity(procDefID, timespan);
   }
 
+  public void onSaveComment(ChartComment comment)
+  {
+    final XYPlot plot = chartPanel.getChart().getPlot();
+    DomainBarMarker marker = new DomainBarMarker(comment.getDomainValue(), 1.0, comment.getTitle());
+    plot.addOverlay(marker);
+    plot.redraw();
+
+    // keep reference
+    overlayMapping.put(comment.getId(), marker);    
+  }
+
+  public void onCancelComment(ChartComment comment)
+  {
+  }
+
+  public void onDeleteComment(ChartComment comment)
+  {
+    Overlay marker = overlayMapping.get(comment.getId());
+    final XYPlot plot = chartPanel.getChart().getPlot();
+    plot.removeOverlay(marker);
+    plot.redraw();
+
+    resizeChartView(); // TODO: Why this?
+  }
+
+  public void onHighlightComment(ChartComment comment)
+  {
+    // TODO: implement highlight    
+  }
+
   private void renderChart(String jsonData)
   {
     try
@@ -270,24 +321,10 @@
       {
 
         if(event.getFocusDataset()>=0) // zooming
-        {
-          Log.debug("Focus "+event.getDomain() + "/"+event.getRange());
-
-          MessageBox.prompt("Create Marker", "Please enter a title:",
-              null, new MessageBox.PromptCallback<String>(){
-                public void onResult(String s)
-                {
-                  if(s!=null)
-                  {
-                    Marker m = new Marker(
-                        event.getDomain(),s, 0
-                    );
-
-                    plot.addOverlay(m);
-                    plot.redraw();
-                  }
-                }
-              });
+        {          
+          ChartComment comment = new ChartComment();
+          comment.setDomainValue(event.getDomain());          
+          commentPanel.toogleEditView(comment);                   
         }
       }
     }); 
@@ -319,21 +356,26 @@
       }
 
       public void onResize(int width, int height)
-      {        
-        int chartWidth = chartArea.getOffsetWidth()/2;
-        int chartHeight = (int) (chartWidth / GOLDEN__RATIO);
-
-        // Resizing the chart once displayed currently unsupported
-        View view = chartPanel.getChart().getView();
-        view.resize(chartWidth, chartHeight);
+      {
+        View view = resizeChartView();
         resizeChartArea(view);
       }
     });
   }
 
+  private View resizeChartView()
+  {
+    int chartWidth = chartArea.getOffsetWidth()/2;
+    int chartHeight = (int) (chartWidth / GOLDEN__RATIO);
+
+    // Resizing the chart once displayed currently unsupported
+    View view = chartPanel.getChart().getView();
+    view.resize(chartWidth, chartHeight);
+    return view;
+  }
+
   private void resizeChartArea(View view)
-  {    
-    Log.debug(view.getWidth()+ "/"+view.getHeight());
+  {        
     int resizeTo= Integer.valueOf(view.getHeight()) + 75;
     chartArea.setHeight(resizeTo+"px");
     chartArea.layout();

Added: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/ChartComment.java
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/ChartComment.java	                        (rev 0)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/ChartComment.java	2010-03-31 10:55:09 UTC (rev 1026)
@@ -0,0 +1,44 @@
+/* jboss.org */
+package org.jboss.bpm.monitor.gui.client.comments;
+
+/**
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 31, 2010
+ */
+public class ChartComment
+{
+  long id = 0;
+
+  double domainValue;
+  String title;
+
+  public long getId()
+  {
+    return id;
+  }
+
+  public void setId(long id)
+  {
+    this.id = id;
+  }
+
+  public double getDomainValue()
+  {
+    return domainValue;
+  }
+
+  public void setDomainValue(double domainValue)
+  {
+    this.domainValue = domainValue;
+  }
+
+  public String getTitle()
+  {
+    return title;
+  }
+
+  public void setTitle(String title)
+  {
+    this.title = title;
+  }
+}

Added: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentEditCallback.java
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentEditCallback.java	                        (rev 0)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentEditCallback.java	2010-03-31 10:55:09 UTC (rev 1026)
@@ -0,0 +1,14 @@
+/* jboss.org */
+package org.jboss.bpm.monitor.gui.client.comments;
+
+/**
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 31, 2010
+ */
+public interface CommentEditCallback
+{
+  void onSaveComment(ChartComment comment);
+  void onCancelComment(ChartComment comment);
+  void onDeleteComment(ChartComment comment);
+  void onHighlightComment(ChartComment comment);
+}

Added: activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentPanel.java
===================================================================
--- activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentPanel.java	                        (rev 0)
+++ activity-monitor/trunk/gui/war/src/main/java/org/jboss/bpm/monitor/gui/client/comments/CommentPanel.java	2010-03-31 10:55:09 UTC (rev 1026)
@@ -0,0 +1,142 @@
+/* jboss.org */
+package org.jboss.bpm.monitor.gui.client.comments;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.TextArea;
+import org.gwt.mosaic.ui.client.DeckLayoutPanel;
+import org.gwt.mosaic.ui.client.DisclosureLayoutPanel;
+import org.gwt.mosaic.ui.client.ListBox;
+import org.gwt.mosaic.ui.client.layout.BoxLayout;
+import org.gwt.mosaic.ui.client.layout.LayoutPanel;
+import org.gwt.mosaic.ui.client.list.DefaultListModel;
+
+/**
+ * @author: Heiko Braun <hbraun at redhat.com>
+ * @date: Mar 31, 2010
+ */
+public class CommentPanel extends DisclosureLayoutPanel
+{
+  private DeckLayoutPanel commentDeck;
+  private LayoutPanel editPanel;
+  private LayoutPanel listPanel;
+  private ListBox<ChartComment> comments;
+  private CommentEditCallback callbackComment;
+
+  private ChartComment suggestion = null;
+  private TextArea textBox;
+
+  public CommentPanel(final CommentEditCallback callbackComment)
+  {
+    super("Comments");
+
+    this.callbackComment = callbackComment;
+    
+    commentDeck = new DeckLayoutPanel();
+
+    // ----
+    editPanel = new LayoutPanel(new BoxLayout(BoxLayout.Orientation.HORIZONTAL));
+    textBox = new TextArea();
+    textBox.setCharacterWidth(50);
+    textBox.setVisibleLines(2);
+    editPanel.add(textBox);
+    
+    editPanel.add(new Button("Save", new ClickHandler()
+    {
+      public void onClick(ClickEvent clickEvent)
+      {
+        // chart callback
+        suggestion.setTitle(textBox.getText());
+        addComment(suggestion); // TODO: save entity
+        callbackComment.onSaveComment(suggestion);
+        resetEditState();
+      }
+    }));
+    
+    HTML cancel = new HTML("cancel");
+    cancel.addClickHandler(new ClickHandler()
+    {
+      public void onClick(ClickEvent clickEvent)
+      {
+        resetEditState();
+        callbackComment.onCancelComment(suggestion);
+      }
+    });
+    editPanel.add(cancel);
+
+    // ----
+    listPanel = new LayoutPanel();
+    comments = new ListBox<ChartComment>(new String[]{"Title", ""});
+    comments.setCellRenderer(new ListBox.CellRenderer<ChartComment>() {
+      public void renderCell(ListBox listBox, int row, int col, final ChartComment item)
+      {
+        switch (col)
+        {
+          case 0:
+            listBox.setText(row, col, item.getTitle());
+            break;
+          case 1:
+            HTML html = new HTML("delete");
+            html.addClickHandler(new ClickHandler()
+            {
+              public void onClick(ClickEvent clickEvent)
+              {
+                callbackComment.onDeleteComment(item);
+                DefaultListModel<ChartComment> model = (DefaultListModel)comments.getModel();
+                model.remove(item);
+              }
+            });
+            listBox.setWidget(row, col, html);
+            break;
+          default:
+            throw new IllegalArgumentException("illegal column");
+        }
+      }
+    });
+    listPanel.add(comments);
+
+
+    commentDeck.add(listPanel);
+    commentDeck.add(editPanel);
+
+    this.add(commentDeck);
+
+  }
+
+  public void toogleListView()
+  {
+    if(this.isCollapsed())
+      setCollapsed(false);
+    commentDeck.showWidget(0);
+    this.layout();
+  }
+
+  public void toogleEditView(ChartComment comment)
+  {
+    if(this.isCollapsed())
+      setCollapsed(false);
+    commentDeck.showWidget(1);
+
+    suggestion = comment;
+    if(comment.getId()!=0)
+      textBox.setText(comment.getTitle());
+    this.layout();
+  }
+
+  private void addComment(ChartComment comment)
+  {
+    DefaultListModel<ChartComment> model = (DefaultListModel)comments.getModel();
+    model.add(comment);
+    comment.setId(model.getSize());
+  }
+
+  private void resetEditState()
+  {
+    //suggestion = null;
+    textBox.setText("");
+    this.setCollapsed(true);
+
+  }
+}



More information about the overlord-commits mailing list