[jboss-svn-commits] JBL Code SVN: r5938 - in labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client: . rpc/mock rulelist
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 18 07:39:07 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-08-18 07:39:03 -0400 (Fri, 18 Aug 2006)
New Revision: 5938
Added:
labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/EditItemEvent.java
Modified:
labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/Rules.java
labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/RuleListView.java
Log:
more working
Modified: labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/Rules.java
===================================================================
--- labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/Rules.java 2006-08-18 10:53:46 UTC (rev 5937)
+++ labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/Rules.java 2006-08-18 11:39:03 UTC (rev 5938)
@@ -1,10 +1,13 @@
package org.drools.brms.client;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
import org.drools.brms.client.ruleeditor.RuleView;
+import org.drools.brms.client.rulelist.EditItemEvent;
import org.drools.brms.client.rulelist.RuleListView;
import org.drools.brms.client.rulenav.CategorySelectHandler;
import org.drools.brms.client.rulenav.RulesNavigatorTree;
+import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.TabPanel;
@@ -12,6 +15,8 @@
public class Rules extends JBRMSFeature {
+ public static final int EDITOR_TAB = 1;
+
public static ComponentInfo init() {
return new ComponentInfo("Rules", "Find and edit rules.") {
public JBRMSFeature createInstance() {
@@ -45,17 +50,34 @@
}
- private HorizontalPanel doExplore(TabPanel tab) {
+ /** This will setup the explorer tab */
+ private HorizontalPanel doExplore(final TabPanel tab) {
HorizontalPanel panel = new HorizontalPanel();
+
+ //setup the list
+ final RuleListView list = new RuleListView(new EditItemEvent() {
+
+ public void open(String[] rowData) {
+ System.out.println("[Opening editor] " + rowData);
+ tab.selectTab( EDITOR_TAB );
+ }
+
+ });
+
+ //setup the nav, which will drive the list
RulesNavigatorTree nav = new RulesNavigatorTree(new CategorySelectHandler() {
public void selected(String selectedPath) {
- System.out.println("Selected path: " + selectedPath);
+ System.out.println("Selected path: " + selectedPath);
+ list.loadRulesForCategoryPath(selectedPath);
+
+
}
});
panel.add(nav.getTree());
- RuleListView list = new RuleListView(tab); //TODO: change this to item select handler
+
+
panel.add(list);
return panel;
}
Modified: labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java 2006-08-18 10:53:46 UTC (rev 5937)
+++ labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java 2006-08-18 11:39:03 UTC (rev 5938)
@@ -42,6 +42,7 @@
public void loadRuleListForCategories(String categoryPath,
String status,
AsyncCallback callback) {
+ log("loading rule list", "for cat path: " + categoryPath);
String[][] data = { { "Rule 1", "Production", "mark", "2" },
{ "Rule 2", "Production", "mark", "2" },
{ "Rule 3", "Production", "mark", "2" }};
@@ -53,6 +54,7 @@
public void loadTableConfig(String listName,
AsyncCallback callback) {
+ log("loading table config", listName);
final TableConfig config = new TableConfig();
final AsyncCallback cb = callback;
Timer t = new Timer() {
Added: labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/EditItemEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/EditItemEvent.java 2006-08-18 10:53:46 UTC (rev 5937)
+++ labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/EditItemEvent.java 2006-08-18 11:39:03 UTC (rev 5938)
@@ -0,0 +1,7 @@
+package org.drools.brms.client.rulelist;
+
+public interface EditItemEvent {
+
+ public void open(String[] rowData);
+
+}
Modified: labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/RuleListView.java
===================================================================
--- labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/RuleListView.java 2006-08-18 10:53:46 UTC (rev 5937)
+++ labs/jbossrules/trunk/drools-brms/src/org/drools/brms/client/rulelist/RuleListView.java 2006-08-18 11:39:03 UTC (rev 5938)
@@ -8,23 +8,23 @@
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
+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.SourcesTableEvents;
-import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.TableListener;
import com.google.gwt.user.client.ui.Widget;
/**
- * A composite that displays a list of emails that can be selected.
+ * A composite that displays an explorer and a list view.
*/
public class RuleListView extends Composite
implements
TableListener,
ClickListener {
- private static final int EDITOR_TAB = 1;
- private int visibleItemCount = -1;
+
+ private int visibleItemCount = -1;
private HTML countLabel = new HTML();
private HTML prevButton = new HTML( "<a href='javascript:;'>< prev</a>",
@@ -37,16 +37,20 @@
private int startIndex, selectedRow = -1;
private FlexTable table = new FlexTable();
private HorizontalPanel navBar = new HorizontalPanel();
- private TabPanel tabPanel;
+
private final RepositoryServiceAsync service;
private String[][] data;
protected int numberOfColumns;
+ private EditItemEvent editEvent;
- public RuleListView(TabPanel tab) {
+ private long timer;
+ public RuleListView(EditItemEvent event) {
+
service = RepositoryServiceFactory.getService();
- tabPanel = tab;
+ this.editEvent = event;
+
// Setup the table.
table.setCellSpacing( 0 );
@@ -109,12 +113,17 @@
update();
}
} else if ( sender == editButton ) {
- changeTabToEdit();
+ openEditor();
}
}
- private void changeTabToEdit() {
- tabPanel.selectTab( EDITOR_TAB );
+ /**
+ * Open the editor as pertains to the selected row !
+ */
+ private void openEditor() {
+ if (selectedRow < data.length) {
+ this.editEvent.open( data[selectedRow] );
+ }
}
/**
@@ -213,19 +222,19 @@
}
}
- /**
- * This will inject the data into the table, and refresh it.
- * The data needs to match up with how this table was configured.
- * (the table will ask the server what cols there are, and how many to a page).
- * @param data A 2D array of tablular data.
- */
- public void setData(String[][] data) {
- this.data = data;
- update();
+
+
+ private void startTime() {
+ this.timer = System.currentTimeMillis();
}
+ private void finish(String message) {
+ System.out.println("time taken for " + message + " was: " + (System.currentTimeMillis() - timer));
+ }
+
private void update() {
+
if (this.numberOfColumns == -1) {
//if it hasn't been setup, can't load data yet
return;
@@ -269,18 +278,42 @@
// item.version );
}
+
+ startTime();
+
+ System.out.println("i is " + visibleItemCount);
+
// Clear any remaining slots.
for ( ; i < visibleItemCount; ++i ) {
-
- for(int col = 0; col < numberOfColumns; col++) {
- table.setHTML( i + 1,
- col,
- " " );
- }
-
+ table.setHTML( i + 1, 0, " " );
}
+ finish( "update( )");
+
// 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();
+ }
}
More information about the jboss-svn-commits
mailing list