[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:;'>&lt; 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,
-                               "&nbsp;" );
-            }
-            
+            table.setHTML( i + 1, 0, "&nbsp;" );
         }
 
+        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