[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