[jboss-svn-commits] JBL Code SVN: r7178 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client client/rpc client/ruleeditor public
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 27 14:57:44 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-10-27 14:57:33 -0400 (Fri, 27 Oct 2006)
New Revision: 7178
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
Removed:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
Log:
lots a refactoring and the meta data editor
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -3,7 +3,7 @@
import org.drools.brms.client.categorynav.CategoryExplorerWidget;
import org.drools.brms.client.categorynav.CategorySelectHandler;
import org.drools.brms.client.ruleeditor.NewRuleWizard;
-import org.drools.brms.client.ruleeditor.RuleView;
+import org.drools.brms.client.ruleeditor.RuleViewer;
import org.drools.brms.client.rulelist.EditItemEvent;
import org.drools.brms.client.rulelist.RuleItemListViewer;
@@ -55,46 +55,29 @@
}
-
-
- private RuleView doRuleViewer() {
- RuleView ruleViewer = new RuleView();
- ruleViewer.setWidth("100%");
- ruleViewer.setHeight("100%");
- return ruleViewer;
- }
-
/** This will setup the explorer tab */
private FlexTable doExplore(final TabPanel tab) {
FlexTable table = new FlexTable();
- //setup the list
-// final RuleListView list = new RuleListView(new EditItemEvent() {
-//
-// public void open(String[] rowData) {
-// tab.selectTab( EDITOR_TAB );
-// }
-//
-// });
-
+ //and the the delegate to open an editor for a rule resource when
+ //chosen to
final RuleItemListViewer list = new RuleItemListViewer(new EditItemEvent() {
-
public void open(String key,
String type,
String name) {
-
- System.out.println("opening key [" + key + "]");
- System.out.println("opening type [" + type + "]");
- System.out.println("opening name [" + name + "]");
- RuleView view = new RuleView();
+
+ RuleViewer view = new RuleViewer(key, type, name);
- String ruleName = name;
- tab.add( view, "<img src='images/drools.gif'>" + ruleName, true );
+ String displayName = name;
+ if (name.length() > 10) {
+ displayName = name.substring( 0, 7 ) + "...";
+ }
+ tab.add( view, "<img src='images/drools.gif'>" + displayName, true );
tab.selectTab( tab.getWidgetIndex( view ) );
- view.loadUUID(key);
+ view.load();
}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,41 @@
+package org.drools.brms.client.rpc;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This is the DTO for a versionable asset's meta data.
+ * ie basically everything except the payload.
+ */
+public class MetaData
+ implements
+ IsSerializable {
+
+ public String name = "";
+ public String description = "";
+
+ public String title = "";
+ public String state = "";
+
+ public String lastModifiedDate = "";
+ public String lastContributor = "";
+ public int versionNumber;
+
+ public String packageName = "";
+ public String[] categories = new String[0];
+
+
+ public String format = "";
+ public String type = "";
+ public String creator = "";
+ public String externalSource = "";
+ public String subject = "";
+ public String externalRelation = "";
+ public String rights = "";
+ public String coverage = "";
+ public String publisher = "";
+
+
+ /** used to flag dirty - ie needs to be spanked. Or saved to the repo, whatever */
+ public boolean dirty = false;
+
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CategoryViewer.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,37 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.ListBox;
+
+/**
+ * This is a viewer/editor for categories.
+ * It will show a list of categories currently applicable, and allow you to
+ * remove/add to them.
+ * @author Michael Neale
+ */
+public class CategoryViewer extends Composite {
+
+ private MetaData data;
+ private HorizontalPanel panel = new HorizontalPanel();
+
+ public CategoryViewer(MetaData d) {
+ this.data = d;
+ ListBox box = new ListBox();
+
+ box.setMultipleSelect( true );
+ loadData( box );
+
+ initWidget( panel );
+
+ }
+
+ private void loadData(ListBox box) {
+ for ( int i = 0; i < data.categories.length; i++ ) {
+ box.addItem( data.categories[i] );
+ }
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/DefaultRuleContentWidget.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -18,6 +18,6 @@
text.setHeight("100%");
text.setVisibleLines(10);
text.setText(content);
- setWidget(text);
+ initWidget(text);
}
}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java (from rev 7172, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java 2006-10-27 09:40:22 UTC (rev 7172)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,202 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+
+/**
+ * This displays the metadata for a versionable asset.
+ * It also captures edits, but it does not load or save anything itself.
+ * @author Michael Neale
+ */
+public class MetaDataWidget extends Composite {
+
+
+
+ private FlexTable layout = new FlexTable();
+ private FlexCellFormatter formatter = layout.getFlexCellFormatter();
+ private int numInLayout = 0;
+ private MetaData data;
+
+
+ public MetaDataWidget(MetaData d, boolean readOnly) {
+ this.data = d;
+ initWidget( layout );
+
+ addHeader("images/meta_data.gif", data.name);
+
+ addAttribute("Subject", editableText(new FieldBinding() {
+ public String getValue() {
+ return data.subject;
+ }
+
+ public void setValue(String val) {
+ data.subject = val;
+ }
+ }));
+
+
+ //addAttribute("Description", description());
+
+ addAttribute("Categories", categories());
+
+ addAttribute("Package", new Label(data.packageName));
+ addAttribute("Last modified on:", new Label(data.lastModifiedDate));
+ addAttribute("Last modified by:", new Label(data.lastContributor));
+ addAttribute("Created by:", new Label(data.creator));
+ addAttribute("Version number:", new Label("" + data.versionNumber));
+
+ //addAttribute("Status", status());
+
+ addAttribute("Type", editableText(new FieldBinding() {
+
+ public String getValue() {
+ return data.type;
+ }
+
+ public void setValue(String val) {
+ data.type = val;
+ }
+
+ }));
+
+
+
+ }
+
+
+
+
+
+
+
+ private Widget categories() {
+
+ ListBox box = new ListBox();
+ for ( int i = 0; i < data.categories.length; i++ ) {
+ String cat = data.categories[i];
+ box.addItem( cat );
+ }
+
+ return box;
+
+ }
+
+
+
+
+
+
+
+ /** This binds a field, and returns a text editor for it */
+ private Widget editableText(final FieldBinding bind) {
+ final TextBox box = new TextBox();
+ box.setText( bind.getValue() );
+ ChangeListener listener = new ChangeListener() {
+
+ public void onChange(Widget w) {
+ data.dirty = true;
+ bind.setValue( box.getText() );
+ }
+
+ };
+
+ box.addChangeListener( listener );
+ return box;
+ }
+
+
+
+
+
+
+
+
+
+
+ private Widget description() {
+ final TextArea box = new TextArea();
+ box.setText( data.description );
+ box.setVisibleLines( 10 );
+ box.setWidth( "100%" );
+ box.setStyleName( "rule-viewer-Documentation" );
+ ChangeListener listener = new ChangeListener() {
+
+ public void onChange(Widget w) {
+ data.dirty = true;
+ data.description = box.getText();
+ }
+
+ };
+
+ box.addChangeListener( listener );
+ return box;
+ }
+
+
+
+ /** used to bind fields in the meta data DTO to the form */
+ static interface FieldBinding {
+ void setValue(String val);
+ String getValue();
+ }
+
+ /**
+ * Adds a header at the top.
+ */
+ private void addHeader(String image, String title) {
+ layout.setWidget( 0, 0, new Image(image) );
+ formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
+
+ Label name = new Label(title);
+ name.setStyleName( "resource-name-Label" );
+
+ layout.setWidget( 0, 1, name );
+ numInLayout++;
+ }
+
+
+ /**
+ * Add a widget to the "form".
+ */
+ private void addAttribute(String lbl,
+ Widget editor) {
+ Label label = new Label(lbl);
+ layout.setWidget( numInLayout, 0, label );
+ formatter.setAlignment( numInLayout, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_TOP );
+ layout.setWidget( numInLayout, 1, editor );
+ formatter.setAlignment( numInLayout, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
+
+ numInLayout++;
+
+ }
+
+
+ /**
+ * This is used if the data is dirty, ie change pending save.
+ */
+ public boolean isDirty() {
+ return data.dirty;
+ }
+
+ /**
+ * Return the data if it is to be saved.
+ */
+ public MetaData getData() {
+ return data;
+ }
+
+
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -1,11 +1,15 @@
package org.drools.brms.client.ruleeditor;
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.Widget;
/**
* This holds the editor and viewer for rule documentation.
- * TODO: make this rich text.
+ *
* @author Michael Neale
*
*/
@@ -13,12 +17,18 @@
private TextArea text;
- public RuleDocumentWidget(String content) {
+ public RuleDocumentWidget(final MetaData data) {
+
text = new TextArea();
text.setVisibleLines( 10 );
- text.setText(content);
- text.setStyleName( "rule-viewer-Documentation" );
+ text.setText(data.description);
+ text.setStyleName( "rule-viewer-Documentation" );
+ text.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ data.description = text.getText();
+ }
+ });
initWidget(text);
}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleMetaDataWidget.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -1,68 +0,0 @@
-package org.drools.brms.client.ruleeditor;
-
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.TextArea;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
-
-/**
- * This displays the metadata for a versionable asset.
- * Also can be editable.
- *
- * @author Michael Neale
- */
-public class RuleMetaDataWidget extends Composite {
-
- private FlexTable layout = new FlexTable();
- private FlexCellFormatter formatter = layout.getFlexCellFormatter();
- private int numInLayout = 0;
-
-
- public RuleMetaDataWidget() {
- initWidget( layout );
-
- addHeader("images/new_wiz.gif", "Underage price 1");
- addAttribute(new Label("type"), new TextBox());
- addAttribute(new Label("description"), new TextArea() );
-
- }
-
-
- /**
- * Adds a header at the top.
- */
- private void addHeader(String image, String title) {
- layout.setWidget( 0, 0, new Image(image) );
- formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-
- layout.setWidget( 0, 1, new Label(title) );
- numInLayout++;
- }
-
-
- /**
- * Add a widget to the "form".
- */
- private void addAttribute(Widget label,
- Widget editor) {
- layout.setWidget( numInLayout, 0, label );
- formatter.setAlignment( numInLayout, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_TOP );
- layout.setWidget( numInLayout, 1, editor );
- formatter.setAlignment( numInLayout, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-
- numInLayout++;
-
- }
-
-
-
-
-
-
-}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -1,47 +0,0 @@
-package org.drools.brms.client.ruleeditor;
-
-import org.drools.brms.client.breditor.BREditor;
-
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.VerticalPanel;
-
-/**
- * The main layout parent/controller the rule viewer.
- *
- * @author Michael Neale
- */
-public class RuleView extends Composite {
-
- private String resourceUUID;
-
- public RuleView() {
- HorizontalPanel horiz = new HorizontalPanel();
- horiz.setWidth("100%");
- horiz.setHeight("100%");
- VerticalPanel ruleAndDoc = new VerticalPanel();
-
- horiz.add(new RuleMetaDataWidget());
- horiz.add(ruleAndDoc);
-
- ruleAndDoc.setWidth("100%");
- ruleAndDoc.setHeight("100%");
- //ruleAndDoc.add(new DefaultRuleContentWidget("when\n\tPerson(age < 42)\nthen\n\tpanic();"));
- BREditor ed = new BREditor();
- ed.setWidth( "100%" );
- ruleAndDoc.add( ed);
- ruleAndDoc.add(new RuleDocumentWidget("This is a rule telling us when to panic."));
-
- initWidget(horiz);
- }
-
- /**
- * This UUID indicates what versionable asset to load.
- * @param key a UUID to the repository.
- */
- public void loadUUID(String key) {
- this.resourceUUID = key;
-
- }
-
-}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java (from rev 7172, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleView.java 2006-10-27 09:40:22 UTC (rev 7172)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java 2006-10-27 18:57:33 UTC (rev 7178)
@@ -0,0 +1,66 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.breditor.BREditor;
+import org.drools.brms.client.rpc.MetaData;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+/**
+ * The main layout parent/controller the rule viewer.
+ *
+ * @author Michael Neale
+ */
+public class RuleViewer extends Composite {
+
+ private String resourceUUID;
+ private String name;
+ private String format;
+
+
+ /**
+ * @param UUID The resource to open.
+ * @param format The type of resource (will determine what editor is used).
+ * @param name The name to be displayed.
+ */
+ public RuleViewer(String UUID, String format, String name) {
+ this.resourceUUID = UUID;
+ this.name = name;
+ this.format = format;
+
+ HorizontalPanel horiz = new HorizontalPanel();
+ horiz.setWidth("100%");
+ horiz.setHeight("100%");
+ VerticalPanel ruleAndDoc = new VerticalPanel();
+
+ MetaData data = loadMetaData();
+ data.name = name;
+
+ horiz.add(new MetaDataWidget(data, false));
+ horiz.add(ruleAndDoc);
+
+ ruleAndDoc.setWidth("100%");
+ ruleAndDoc.setHeight("100%");
+ //ruleAndDoc.add(new DefaultRuleContentWidget("when\n\tPerson(age < 42)\nthen\n\tpanic();"));
+ BREditor ed = new BREditor();
+ ed.setWidth( "100%" );
+ ruleAndDoc.add( ed);
+ ruleAndDoc.add(new RuleDocumentWidget(data));
+
+ initWidget(horiz);
+ }
+
+ private MetaData loadMetaData() {
+ return new MetaData();
+ }
+
+ /**
+ * This will kick off the loading of the data.
+ */
+ public void load() {
+
+
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-10-27 17:57:23 UTC (rev 7177)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-10-27 18:57:33 UTC (rev 7178)
@@ -147,9 +147,13 @@
}
.gwt-TextArea {
+ border: 1px solid #87B3FF;
+ padding: 0px;
}
.gwt-TextBox {
+ border: 1px solid #87B3FF;
+ padding: 0px;
}
.gwt-Tree {
@@ -347,6 +351,10 @@
/* end the rule list stuff */
+.resource-name-Label {
+ font-size: larger;
+ font-weight: bold;
+}
.infoProse {
margin: 8px;
More information about the jboss-svn-commits
mailing list