[jboss-svn-commits] JBL Code SVN: r7172 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client main/java/org/drools/brms/client/breditor main/java/org/drools/brms/client/rpc main/java/org/drools/brms/client/rpc/mock main/java/org/drools/brms/client/rulelist main/java/org/drools/brms/server test/java/org/drools/brms/client test/java/org/drools/brms/client/rulelist test/java/org/drools/brms/server
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 27 05:40:34 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-10-27 05:40:22 -0400 (Fri, 27 Oct 2006)
New Revision: 7172
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/FieldEditor.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rulelist/
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rulelist/TableDataRowTest.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/breditor/EditableLine.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TableDataRow.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/EditItemEvent.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleItemListViewer.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleListView.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
new widget for DSL editing, and changes to open editor from list on rules tab
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 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Rules.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -80,16 +80,22 @@
final RuleItemListViewer list = new RuleItemListViewer(new EditItemEvent() {
- public void open(String key) {
-
-
+
+
+ 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();
- String ruleName = "some rule";
+ String ruleName = name;
tab.add( view, "<img src='images/drools.gif'>" + ruleName, true );
tab.selectTab( tab.getWidgetIndex( view ) );
view.loadUUID(key);
+
}
});
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -4,6 +4,7 @@
import java.util.List;
import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
@@ -39,7 +40,7 @@
public void makeEditable() {
panel.clear();
for ( int i = 0; i < widgets.length; i++ ) {
- panel.add( widgets[i] );
+ panel.add( widgets[i] );
}
}
@@ -52,8 +53,8 @@
Widget element = widgets[i];
if (element instanceof Label) {
result = result + ((Label) element).getText();
- } else if (element instanceof TextBox){
- result = result + ((TextBox) element).getText();
+ } else if (element instanceof FieldEditor){
+ result = result + ((FieldEditor) element).getText();
}
}
return result;
@@ -67,14 +68,13 @@
public static Widget[] makeWidgets(String dslLine) {
List widgets = new ArrayList();
char[] chars = dslLine.toCharArray();
- TextBox currentBox = null;
+ FieldEditor currentBox = null;
Label currentLabel = null;
for ( int i = 0; i < chars.length; i++ ) {
char c = chars[i];
if (c == '{') {
currentLabel = null;
- currentBox = new TextBox();
- currentBox.setStyleName( "dsl-field-TextBox" );
+ currentBox = new FieldEditor();
widgets.add( currentBox );
} else if (c == '}') {
@@ -101,61 +101,6 @@
}
- /**
- * This represents a little element of a DSL line - ie a label or a text box widget
- * or whatever it grows up into being.
- *
- */
- static interface DSLLineAtom {
-
- Widget getWidget();
- String getValue();
- }
-// /**
-// * This represents the read only part of a DSL line item.
-// */
-// static class DSLText implements DSLLineAtom {
-//
-// private Label label;
-// private String value;
-//
-// public Widget getWidget() {
-// if (label == null)
-// this.label = new Label(value);
-// return this.label;
-// }
-//
-// public DSLText(String txt) {
-// this.value = txt;
-// }
-//
-// public String getValue() {
-//
-// return this.value;
-// }
-//
-// }
-//
-// static class DSLTextBox implements DSLLineAtom {
-//
-// private TextBox textBox;
-//
-// public String getValue() {
-// return this.value;
-// }
-//
-// public DSLTextBox(String initialValue) {
-//
-// }
-//
-// public Widget getWidget() {
-// if (this.textBox == null) {
-// this.textBox = new TextBox();
-// }
-// return this.textBox;
-// }
-//
-// }
}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/FieldEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/FieldEditor.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/FieldEditor.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -0,0 +1,39 @@
+package org.drools.brms.client.breditor;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.TextBox;
+
+/**
+ * This is a single field editor for the DSL based business rule editor.
+ * @author Michael Neale
+ */
+public class FieldEditor extends Composite {
+
+ private TextBox box;
+ private HorizontalPanel panel = new HorizontalPanel();
+
+ public FieldEditor() {
+ box = new TextBox();
+ box.setStyleName( "dsl-field-TextBox" );
+
+ panel.add( new HTML(" ") );
+ panel.add( box );
+ panel.add( new HTML(" ") );
+ initWidget( panel );
+ }
+
+
+ public void setText(String t) {
+ box.setText( t );
+ }
+
+ public void setVisibleLength(int l) {
+ box.setVisibleLength( l );
+ }
+
+ public String getText() {
+ return box.getText();
+ }
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/FieldEditor.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TableDataRow.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TableDataRow.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/TableDataRow.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -11,7 +11,48 @@
implements
IsSerializable {
- public String key;
+ /**
+ * The unique ID for the resource.
+ * Most likely a UUID
+ */
+ public String id;
+
+ /**
+ * The type of resource (eg DRL rule, business rule etc).
+ * This will determine what sort of editor opens it.
+ */
+ public String format;
+
+ /**
+ * The actual values to display
+ * We will assume that the first one is the display name when opening.
+ */
public String[] values;
+ public String getDisplayName() {
+ return values[0];
+ }
+
+ /**
+ * Returns a key that can be used to drive an "open" event.
+ * Use getId and getType to break it apart.
+ */
+ public String getKeyValue() {
+ return id + "," + format;
+ }
+
+ /**
+ * Gets the ID from the key value.
+ */
+ public static String getId(String key) {
+ return key.split( "\\," )[0];
+ }
+
+ /**
+ * Gets the format from the keyvalue
+ */
+ public static String getFormat(String key) {
+ return key.split( "\\," )[1];
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -57,8 +57,9 @@
for (int i = 0; i < 42; i++) {
TableDataRow row = new TableDataRow();
- row.key = "woozle";
- row.values = new String[] {"name", "another", "yeah", "blah"};
+ row.id = "woozle" + i;
+ row.format = "Rule";
+ row.values = new String[] {"name " + i, "another", "yeah", "blah"};
result.data[i] = row;
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/EditItemEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/EditItemEvent.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/EditItemEvent.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -5,7 +5,7 @@
* @author Michael Neale
*/
public interface EditItemEvent {
-
- public void open(String key);
+ public void open(String key, String type, String name);
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleItemListViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleItemListViewer.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleItemListViewer.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -26,7 +26,10 @@
*/
public class RuleItemListViewer extends Composite {
- private static final int DEFAULT_ROWS = 100;
+ /** The number of rows to "fill out" */
+ private static final int FILLER_ROWS = 100;
+ public static final String RULE_LIST_TABLE_ID = "ruleList";
+
private FlexTable outer = new FlexTable();
private SortableTable table;
private TableConfig tableConfig;
@@ -74,7 +77,7 @@
Image openIcon = new Image( "images/open_item.gif" );
openIcon.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- openItemEvent.open( table.getSelectedKey() );
+ openItemEvent.open( TableDataRow.getId( table.getSelectedKey()), TableDataRow.getFormat( table.getSelectedKey() ), table.getText( table.getSelectedRow(), 1 ) );
}
} );
openIcon.setTitle( "Open item" );
@@ -107,15 +110,15 @@
//if no data, just fill it out
if ( data == null || data.data.length == 0) {
- table = new SortableTable( 100,
+ table = new SortableTable( FILLER_ROWS,
this.tableConfig.headers.length + 1 );
table.setValue( 1,
1,
"" );
} else {
int maxRows = data.numberOfRows;
- if (data.numberOfRows < DEFAULT_ROWS) {
- maxRows = 100;
+ if (data.numberOfRows < FILLER_ROWS) {
+ maxRows = FILLER_ROWS;
}
table = new SortableTable( maxRows,
this.tableConfig.headers.length + 1 );
@@ -123,7 +126,7 @@
TableDataRow row = data.data[i];
table.setValue( i + 1,
0,
- row.key ); //this is the key
+ row.getKeyValue() ); //this is the key
for ( int j = 0; j < row.values.length; j++ ) {
String val = row.values[j];
table.setValue( i + 1,
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleListView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleListView.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/RuleListView.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -1,294 +1,294 @@
-package org.drools.brms.client.rulelist;
-
-import org.drools.brms.client.rpc.RepositoryServiceAsync;
-import org.drools.brms.client.rpc.RepositoryServiceFactory;
-import org.drools.brms.client.rpc.TableConfig;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Grid;
-import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.SourcesTableEvents;
-import com.google.gwt.user.client.ui.TableListener;
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * NOTE: this is not currently used, but it worked OK.
- * It did NOT have sorting, but did have paging, and performed reasonably well.
- *
- * SO KEEP THIS AROUND IN CASE THE OTHER ONE BLOWS CHUNKS !
- * This one is based on the mail app example.
- *
- * A composite that displays an explorer and a list view.
- */
-public class RuleListView extends Composite
- implements
- TableListener,
- ClickListener {
-
-
- public static final String RULE_LIST_TABLE_ID = "ruleList";
-
- private int visibleItemCount = -1;
-
- private HTML countLabel = new HTML();
- private HTML prevButton = new HTML( "<a href='javascript:;'>< prev</a>",
- true );
- private HTML nextButton = new HTML( "<a href='javascript:;'>next ></a>",
- true );
- private HTML editButton = new HTML( "<a href='javascript:;'>edit</a>",
- true );
-
- private int startIndex, selectedRow = -1;
- private Grid table = new Grid();
- private HorizontalPanel navBar = new HorizontalPanel();
-
-
- private static final RepositoryServiceAsync service = RepositoryServiceFactory.getService();
- private String[][] data;
- protected int numberOfColumns;
- private EditItemEvent editEvent;
-
- public RuleListView(EditItemEvent event) {
-
- this.editEvent = event;
-
-
- // Setup the table.
- table.setCellSpacing( 0 );
- table.setCellPadding( 0 );
- table.setWidth( "100%" );
-
- // Hook up events.
- table.addTableListener( this );
- prevButton.addClickListener( this );
- nextButton.addClickListener( this );
- editButton.addClickListener( this );
-
- // Create the 'navigation' bar at the upper-right.
- HorizontalPanel innerNavBar = new HorizontalPanel();
- innerNavBar.setStyleName( "rule-ListNavBar" );
- innerNavBar.setSpacing( 8 );
-
- innerNavBar.add( prevButton );
- innerNavBar.add( countLabel );
- innerNavBar.add( nextButton );
- innerNavBar.add( editButton );
-
- navBar.setHorizontalAlignment( HorizontalPanel.ALIGN_RIGHT );
- navBar.add( innerNavBar );
- navBar.setWidth( "100%" );
-
- //this is so we can stack controls on top of the table
- VerticalPanel vert = new VerticalPanel();
- vert.add( navBar );
- vert.add( table );
- vert.setStyleName( "rule-List" );
- vert.setWidth( "100%" );
-
- table.setStyleName( "rule-List" );
- table.setWidth( "100%" );
-
- // needed for composite to work
- initWidget( vert );
- setStyleName( "rule-List" );
- initTable();
-
- }
-
- public void onCellClicked(SourcesTableEvents sender,
- int row,
- int cell) {
- // Select the row that was clicked (-1 to account for header row).
- if ( row > 0 ) selectRow( row - 1 );
- }
-
- public void onClick(Widget sender) {
- if ( sender == nextButton ) {
- // Move forward a page.
- startIndex += visibleItemCount;
- if ( startIndex >= data.length ) startIndex -= visibleItemCount;
- else {
- styleRow( selectedRow,
- false );
- selectedRow = -1;
- update();
- }
- } else if ( sender == prevButton ) {
- // Move back a page.
- startIndex -= visibleItemCount;
- if ( startIndex < 0 ) startIndex = 0;
- else {
- styleRow( selectedRow,
- false );
- selectedRow = -1;
- update();
- }
- } else if ( sender == editButton ) {
- openEditor();
- }
- }
-
- /**
- * Open the editor as pertains to the selected row !
- */
- private void openEditor() {
- if (selectedRow < data.length) {
- this.editEvent.open( data[selectedRow][0] );
- }
- }
-
- /**
- * Initializes the table. Will load the header config, initialise etc.
- */
- private void initTable() {
- // Create the header row.
-
- table.resize( 1, 1 );
- table.getRowFormatter().setStyleName( 0, "rule-ListHeader" );
- table.setText( 0, 0, "Please wait..." );
-
- service.loadTableConfig( RULE_LIST_TABLE_ID, new AsyncCallback() {
-
- public void onFailure(Throwable caught) {
- //TODO
- }
-
- public void onSuccess(Object result) {
- TableConfig config = (TableConfig) result;
-
- String[] header = config.headers;
- numberOfColumns = header.length;
-
- visibleItemCount = config.rowsPerPage;
- table.resize( visibleItemCount + 1, numberOfColumns);
-
- for ( int i = 0; i < numberOfColumns; i++ ) {
- table.setText( 0, i, header[i]);
- }
-
- data = new String[1][numberOfColumns];
- update();
-
- }
-
- });
-
- }
-
- /**
- * Selects the given row (relative to the current page).
- *
- * @param row the row to be selected
- */
- private void selectRow(int row) {
-
- //change the style flags
- styleRow( selectedRow,
- false );
- styleRow( row,
- true );
-
- //mark the selected row
- selectedRow = row;
-
- //TODO: also show "preview" view here of rule.
- System.out.println("[Preview rule now]");
- }
-
- private void styleRow(int row,
- boolean selected) {
- if ( row != -1 ) {
- if ( selected ) table.getRowFormatter().addStyleName( row + 1,
- "rule-SelectedRow" );
- else table.getRowFormatter().removeStyleName( row + 1,
- "rule-SelectedRow" );
- }
- }
-
-
-
-
-
-
- private void update() {
-
- if (this.numberOfColumns == -1) {
- //if it hasn't been setup, can't load data yet
- return;
- }
-
- // Update the older/newer buttons & label.
- int count = data.length;
- int max = startIndex + visibleItemCount;
- if ( max > count ) max = count;
-
- prevButton.setVisible( startIndex != 0 );
- nextButton.setVisible( startIndex + visibleItemCount < count );
- countLabel.setText( "" + (startIndex + 1) + " - " + max + " of " + count );
-
- // Show the selected emails.
- int i = 0;
- for ( ; i < visibleItemCount; ++i ) {
- // Don't read past the end.
- if ( startIndex + i >= count ) break;
-
- String[] rowData = data[startIndex + i];
-
- //RuleListItem item = data.getMailItem( startIndex + i );
-
- // Add a new row to the table, then set each of its columns value
-
- for ( int col = 0; col < rowData.length; col++ ) {
- table.setText( i + 1, col, rowData[col] );
- }
-
-// table.setText( i + 1,
-// 0,
-// item.name );
-// table.setText( i + 1,
-// 1,
-// item.status );
-// table.setText( i + 1,
-// 2,
-// item.changedBy );
-// table.setText( i + 1,
-// 3,
-// item.version );
- }
-
- // Clear any remaining slots.
- for ( ; i < visibleItemCount; ++i ) {
- table.setHTML( i + 1, 0, " " );
- }
-
- // Select the first row if none is selected.
- if ( selectedRow == -1 ) selectRow( 0 );
-
- }
-
- public void loadRulesForCategoryPath(String selectedPath) {
- service.loadRuleListForCategories( selectedPath, "", new AsyncCallback() {
-
- public void onFailure(Throwable caught) {
- // TODO Auto-generated method stub
- }
-
- public void onSuccess(Object result) {
- String[][] data = (String[][]) result;
- updateData(data);
- }
-
- });
-
- }
-
- private void updateData(String[][] data) {
- this.data = data;
- update();
- }
-}
+//package org.drools.brms.client.rulelist;
+//
+//import org.drools.brms.client.rpc.RepositoryServiceAsync;
+//import org.drools.brms.client.rpc.RepositoryServiceFactory;
+//import org.drools.brms.client.rpc.TableConfig;
+//
+//import com.google.gwt.user.client.rpc.AsyncCallback;
+//import com.google.gwt.user.client.ui.ClickListener;
+//import com.google.gwt.user.client.ui.Composite;
+//import com.google.gwt.user.client.ui.Grid;
+//import com.google.gwt.user.client.ui.HTML;
+//import com.google.gwt.user.client.ui.HorizontalPanel;
+//import com.google.gwt.user.client.ui.Image;
+//import com.google.gwt.user.client.ui.SourcesTableEvents;
+//import com.google.gwt.user.client.ui.TableListener;
+//import com.google.gwt.user.client.ui.VerticalPanel;
+//import com.google.gwt.user.client.ui.Widget;
+//
+///**
+// * NOTE: this is not currently used, but it worked OK.
+// * It did NOT have sorting, but did have paging, and performed reasonably well.
+// *
+// * SO KEEP THIS AROUND IN CASE THE OTHER ONE BLOWS CHUNKS !
+// * This one is based on the mail app example.
+// *
+// * A composite that displays an explorer and a list view.
+// */
+//public class RuleListView extends Composite
+// implements
+// TableListener,
+// ClickListener {
+//
+//
+// public static final String RULE_LIST_TABLE_ID = "ruleList";
+//
+// private int visibleItemCount = -1;
+//
+// private HTML countLabel = new HTML();
+// private HTML prevButton = new HTML( "<a href='javascript:;'>< prev</a>",
+// true );
+// private HTML nextButton = new HTML( "<a href='javascript:;'>next ></a>",
+// true );
+// private HTML editButton = new HTML( "<a href='javascript:;'>edit</a>",
+// true );
+//
+// private int startIndex, selectedRow = -1;
+// private Grid table = new Grid();
+// private HorizontalPanel navBar = new HorizontalPanel();
+//
+//
+// private static final RepositoryServiceAsync service = RepositoryServiceFactory.getService();
+// private String[][] data;
+// protected int numberOfColumns;
+// private EditItemEvent editEvent;
+//
+// public RuleListView(EditItemEvent event) {
+//
+// this.editEvent = event;
+//
+//
+// // Setup the table.
+// table.setCellSpacing( 0 );
+// table.setCellPadding( 0 );
+// table.setWidth( "100%" );
+//
+// // Hook up events.
+// table.addTableListener( this );
+// prevButton.addClickListener( this );
+// nextButton.addClickListener( this );
+// editButton.addClickListener( this );
+//
+// // Create the 'navigation' bar at the upper-right.
+// HorizontalPanel innerNavBar = new HorizontalPanel();
+// innerNavBar.setStyleName( "rule-ListNavBar" );
+// innerNavBar.setSpacing( 8 );
+//
+// innerNavBar.add( prevButton );
+// innerNavBar.add( countLabel );
+// innerNavBar.add( nextButton );
+// innerNavBar.add( editButton );
+//
+// navBar.setHorizontalAlignment( HorizontalPanel.ALIGN_RIGHT );
+// navBar.add( innerNavBar );
+// navBar.setWidth( "100%" );
+//
+// //this is so we can stack controls on top of the table
+// VerticalPanel vert = new VerticalPanel();
+// vert.add( navBar );
+// vert.add( table );
+// vert.setStyleName( "rule-List" );
+// vert.setWidth( "100%" );
+//
+// table.setStyleName( "rule-List" );
+// table.setWidth( "100%" );
+//
+// // needed for composite to work
+// initWidget( vert );
+// setStyleName( "rule-List" );
+// initTable();
+//
+// }
+//
+// public void onCellClicked(SourcesTableEvents sender,
+// int row,
+// int cell) {
+// // Select the row that was clicked (-1 to account for header row).
+// if ( row > 0 ) selectRow( row - 1 );
+// }
+//
+// public void onClick(Widget sender) {
+// if ( sender == nextButton ) {
+// // Move forward a page.
+// startIndex += visibleItemCount;
+// if ( startIndex >= data.length ) startIndex -= visibleItemCount;
+// else {
+// styleRow( selectedRow,
+// false );
+// selectedRow = -1;
+// update();
+// }
+// } else if ( sender == prevButton ) {
+// // Move back a page.
+// startIndex -= visibleItemCount;
+// if ( startIndex < 0 ) startIndex = 0;
+// else {
+// styleRow( selectedRow,
+// false );
+// selectedRow = -1;
+// update();
+// }
+// } else if ( sender == editButton ) {
+// openEditor();
+// }
+// }
+//
+// /**
+// * Open the editor as pertains to the selected row !
+// */
+// private void openEditor() {
+// if (selectedRow < data.length) {
+// this.editEvent.open( data[selectedRow][0] );
+// }
+// }
+//
+// /**
+// * Initializes the table. Will load the header config, initialise etc.
+// */
+// private void initTable() {
+// // Create the header row.
+//
+// table.resize( 1, 1 );
+// table.getRowFormatter().setStyleName( 0, "rule-ListHeader" );
+// table.setText( 0, 0, "Please wait..." );
+//
+// service.loadTableConfig( RULE_LIST_TABLE_ID, new AsyncCallback() {
+//
+// public void onFailure(Throwable caught) {
+// //TODO
+// }
+//
+// public void onSuccess(Object result) {
+// TableConfig config = (TableConfig) result;
+//
+// String[] header = config.headers;
+// numberOfColumns = header.length;
+//
+// visibleItemCount = config.rowsPerPage;
+// table.resize( visibleItemCount + 1, numberOfColumns);
+//
+// for ( int i = 0; i < numberOfColumns; i++ ) {
+// table.setText( 0, i, header[i]);
+// }
+//
+// data = new String[1][numberOfColumns];
+// update();
+//
+// }
+//
+// });
+//
+// }
+//
+// /**
+// * Selects the given row (relative to the current page).
+// *
+// * @param row the row to be selected
+// */
+// private void selectRow(int row) {
+//
+// //change the style flags
+// styleRow( selectedRow,
+// false );
+// styleRow( row,
+// true );
+//
+// //mark the selected row
+// selectedRow = row;
+//
+// //TODO: also show "preview" view here of rule.
+// System.out.println("[Preview rule now]");
+// }
+//
+// private void styleRow(int row,
+// boolean selected) {
+// if ( row != -1 ) {
+// if ( selected ) table.getRowFormatter().addStyleName( row + 1,
+// "rule-SelectedRow" );
+// else table.getRowFormatter().removeStyleName( row + 1,
+// "rule-SelectedRow" );
+// }
+// }
+//
+//
+//
+//
+//
+//
+// private void update() {
+//
+// if (this.numberOfColumns == -1) {
+// //if it hasn't been setup, can't load data yet
+// return;
+// }
+//
+// // Update the older/newer buttons & label.
+// int count = data.length;
+// int max = startIndex + visibleItemCount;
+// if ( max > count ) max = count;
+//
+// prevButton.setVisible( startIndex != 0 );
+// nextButton.setVisible( startIndex + visibleItemCount < count );
+// countLabel.setText( "" + (startIndex + 1) + " - " + max + " of " + count );
+//
+// // Show the selected emails.
+// int i = 0;
+// for ( ; i < visibleItemCount; ++i ) {
+// // Don't read past the end.
+// if ( startIndex + i >= count ) break;
+//
+// String[] rowData = data[startIndex + i];
+//
+// //RuleListItem item = data.getMailItem( startIndex + i );
+//
+// // Add a new row to the table, then set each of its columns value
+//
+// for ( int col = 0; col < rowData.length; col++ ) {
+// table.setText( i + 1, col, rowData[col] );
+// }
+//
+//// table.setText( i + 1,
+//// 0,
+//// item.name );
+//// table.setText( i + 1,
+//// 1,
+//// item.status );
+//// table.setText( i + 1,
+//// 2,
+//// item.changedBy );
+//// table.setText( i + 1,
+//// 3,
+//// item.version );
+// }
+//
+// // Clear any remaining slots.
+// for ( ; i < visibleItemCount; ++i ) {
+// table.setHTML( i + 1, 0, " " );
+// }
+//
+// // Select the first row if none is selected.
+// if ( selectedRow == -1 ) selectRow( 0 );
+//
+// }
+//
+// public void loadRulesForCategoryPath(String selectedPath) {
+// service.loadRuleListForCategories( selectedPath, "", new AsyncCallback() {
+//
+// public void onFailure(Throwable caught) {
+// // TODO Auto-generated method stub
+// }
+//
+// public void onSuccess(Object result) {
+// String[][] data = (String[][]) result;
+// updateData(data);
+// }
+//
+// });
+//
+// }
+//
+// private void updateData(String[][] data) {
+// this.data = data;
+// update();
+// }
+//}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/TableDisplayHandler.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -37,7 +37,8 @@
try {
- row.key = rule.getNode().getUUID();
+ row.id = rule.getNode().getUUID();
+ row.format = rule.getFormat();
row.values = new String[4];
row.values[0] = rule.getName();
row.values[1] = formatDate(rule.getLastModified());
Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rulelist/TableDataRowTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rulelist/TableDataRowTest.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rulelist/TableDataRowTest.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -0,0 +1,23 @@
+package org.drools.brms.client.rulelist;
+
+import org.drools.brms.client.rpc.TableDataRow;
+
+import junit.framework.TestCase;
+
+public class TableDataRowTest extends TestCase {
+
+ public void testRow() {
+ TableDataRow row = new TableDataRow();
+ row.id = "HJKHFKJHFDJS";
+ row.format = "rule";
+ row.values = new String[]{"name", "x"};
+
+ assertEquals("name", row.getDisplayName());
+
+ assertEquals(row.id + "," + row.format, row.getKeyValue());
+
+ assertEquals(row.id, TableDataRow.getId( row.getKeyValue() ));
+ assertEquals(row.format, TableDataRow.getFormat( row.getKeyValue()));
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/rulelist/TableDataRowTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2006-10-27 09:36:51 UTC (rev 7171)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2006-10-27 09:40:22 UTC (rev 7172)
@@ -7,7 +7,8 @@
import org.drools.brms.client.rpc.RepositoryService;
import org.drools.brms.client.rpc.TableConfig;
import org.drools.brms.client.rpc.TableDataResult;
-import org.drools.brms.client.rulelist.RuleListView;
+import org.drools.brms.client.rulelist.RuleItemListViewer;
+
import org.drools.repository.CategoryItem;
import com.google.gwt.user.client.rpc.SerializableException;
@@ -92,7 +93,7 @@
public void testRuleTableLoad() throws Exception {
MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
- TableConfig conf = impl.loadTableConfig( RuleListView.RULE_LIST_TABLE_ID );
+ TableConfig conf = impl.loadTableConfig( RuleItemListViewer.RULE_LIST_TABLE_ID );
assertNotNull(conf.headers);
CategoryItem cat = impl.repo.loadCategory( "/" );
@@ -106,8 +107,10 @@
assertEquals(2, result.numberOfRows);
assertEquals(2, result.data.length);
- String key = result.data[0].key;
+ String key = result.data[0].id;
assertFalse(key.startsWith( "testRule" ));
+
+ assertEquals(result.data[0].format, "DRL");
assertTrue(result.data[0].values[0].startsWith( "testRule" ));
More information about the jboss-svn-commits
mailing list