Author: heiko.braun(a)jboss.com
Date: 2010-02-04 05:55:03 -0500 (Thu, 04 Feb 2010)
New Revision: 950
Modified:
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportLaunchPadView.java
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportParameterForm.java
Log:
Store report parameters as preferences
Modified:
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportLaunchPadView.java
===================================================================
---
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportLaunchPadView.java 2010-02-04
10:18:17 UTC (rev 949)
+++
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportLaunchPadView.java 2010-02-04
10:55:03 UTC (rev 950)
@@ -29,6 +29,7 @@
import com.mvc4g.client.Event;
import com.mvc4g.client.ViewInterface;
import org.gwt.mosaic.ui.client.CaptionLayoutPanel;
+import org.gwt.mosaic.ui.client.MessageBox;
import org.gwt.mosaic.ui.client.layout.BoxLayout;
import org.gwt.mosaic.ui.client.layout.BoxLayoutData;
import org.gwt.mosaic.ui.client.layout.MosaicPanel;
@@ -121,10 +122,25 @@
{
public void onSumbit(Map<String, String> paramValues)
{
- String url =
URLBuilder.getInstance().getReportURL(reportRef.getReportFileName());
- RenderDispatchEvent eventPayload = new
RenderDispatchEvent(reportRef.getTitle(), url);
- eventPayload.setParameters(fieldValues2PostParams(paramValues));
- controller.handleEvent( new Event(RenderReportAction.ID, eventPayload));
+ boolean valid = true;
+ for(String key : paramValues.keySet())
+ {
+ String s = paramValues.get(key);
+ if(s == null || s.equals(""))
+ valid = false;
+ }
+
+ if(valid)
+ {
+ String url =
URLBuilder.getInstance().getReportURL(reportRef.getReportFileName());
+ RenderDispatchEvent eventPayload = new
RenderDispatchEvent(reportRef.getTitle(), url);
+ eventPayload.setParameters(fieldValues2PostParams(paramValues));
+ controller.handleEvent( new Event(RenderReportAction.ID,
eventPayload));
+ }
+ else
+ {
+ MessageBox.alert("Report Parameters", "Please provide
the required input parameters");
+ }
}
});
Modified:
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportParameterForm.java
===================================================================
---
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportParameterForm.java 2010-02-04
10:18:17 UTC (rev 949)
+++
bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/report/ReportParameterForm.java 2010-02-04
10:55:03 UTC (rev 950)
@@ -29,11 +29,9 @@
import org.gwt.mosaic.ui.client.layout.MosaicPanel;
import org.jboss.bpm.report.model.ReportParameter;
import org.jboss.bpm.report.model.ReportReference;
+import org.jboss.errai.workspaces.client.Preferences;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* Report parameter input.
@@ -57,7 +55,7 @@
return p;
}
- private MosaicPanel createForm(ReportReference reportRef, final ReportParamCallback
callback)
+ private MosaicPanel createForm(final ReportReference reportRef, final
ReportParamCallback callback)
{
boolean hasParameters = reportRef.getParameterMetaData().size()>0;
int numRows = hasParameters ?
@@ -72,12 +70,20 @@
{
Map<String, String> values = new HashMap<String, String>();
for (InputField field : fields)
+ {
values.put(field.id, field.getValue());
+ }
+ if(!values.isEmpty())
+ {
+ writePrefs(values, reportRef);
+ }
+
callback.onSumbit(values);
}
- });
+ });
+ Map<String,String> preferenceValues = readPrefs(reportRef);
for(final ReportParameter reportParam : reportRef.getParameterMetaData())
{
@@ -85,6 +91,9 @@
String helpText = reportParam.getHelptext() != null ? reportParam.getHelptext() :
"";
final TextBox textBox = new TextBox();
+ String prefValue = preferenceValues.get(reportParam.getName());
+ if(prefValue !=null)
+ textBox.setText(prefValue);
// retain reference to values
final InputField field = new InputField()
@@ -111,7 +120,7 @@
if(!hasParameters)
{
form.add(new HTML("This report doesn't require any paramters.")
- , new GridLayoutData(2,1, HasHorizontalAlignment.ALIGN_CENTER,
HasVerticalAlignment.ALIGN_TOP));
+ , new GridLayoutData(2,1, HasHorizontalAlignment.ALIGN_CENTER,
HasVerticalAlignment.ALIGN_TOP));
}
// submit
@@ -121,6 +130,43 @@
return form;
}
+ private void writePrefs(Map<String, String> values, ReportReference reportRef)
+ {
+ String name = reportRef.getTitle().replaceAll(" ","_");
+ String prefKey = "bpm-form-"+name;
+ StringBuffer sb = new StringBuffer();
+ int i = 1;
+ for(String key : values.keySet())
+ {
+ sb.append(key).append("=").append(values.get(key));
+ if(i<values.keySet().size())
+ sb.append(",");
+ i++;
+
+ }
+
+ Preferences.set(prefKey, sb.toString());
+ }
+
+ private Map<String, String> readPrefs(ReportReference reportRef)
+ {
+ Map<String,String> values = new HashMap<String,String>();
+ String name = reportRef.getTitle().replaceAll(" ","_");
+ String prefKey = "bpm-form-"+name;
+ if(Preferences.has(prefKey))
+ {
+ String prefValue = Preferences.get(prefKey);
+ StringTokenizer tok1 = new StringTokenizer(prefValue, ",");
+ while(tok1.hasMoreTokens())
+ {
+ String[] tuple = tok1.nextToken().split("=");
+ values.put(tuple[0], tuple[1]);
+ }
+ }
+
+ return values;
+ }
+
private class InputField
{
Widget widget;