[jboss-svn-commits] JBL Code SVN: r33335 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools: guvnor/client/explorer/grid/model and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 3 12:09:02 EDT 2010


Author: diegoll
Date: 2010-06-03 12:09:01 -0400 (Thu, 03 Jun 2010)
New Revision: 33335

Added:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridResourceInfo.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/ExecutionEnvironmentPanel.java
Modified:
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/BrowseGridResourcesTreeBuilder.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/NewGridResourcePanel.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsService.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsServiceAsync.java
   labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/repository/services/TopologyAssetsServiceImpl.java
Log:
added panel for ExecutionEnvironments plus server method for quering the status (still mockup)

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/BrowseGridResourcesTreeBuilder.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/BrowseGridResourcesTreeBuilder.java	2010-06-03 16:06:38 UTC (rev 33334)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/BrowseGridResourcesTreeBuilder.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -4,8 +4,10 @@
 import org.drools.guvnor.client.explorer.grid.model.DirectoryInstanceView;
 import org.drools.guvnor.client.explorer.grid.model.ExecutionEnvironmentView;
 import org.drools.guvnor.client.explorer.grid.model.GridTopologyView;
+import org.drools.guvnor.client.explorer.grid.panels.ExecutionEnvironmentPanel;
 import org.drools.guvnor.client.explorer.grid.panels.NewGridResourcePanel;
 
+import com.google.gwt.core.client.GWT;
 import com.gwtext.client.core.EventObject;
 import com.gwtext.client.data.Node;
 import com.gwtext.client.widgets.tree.TreeNode;
@@ -23,36 +25,52 @@
 		});
 		
 		for(ExecutionEnvironmentView executionEnvironment : gridTopology.getExecutionEnvironments()){
-			addExecutionEnvironmentNode(targetPanel, resourcesItem, executionEnvironment);
+			addExecutionEnvironmentNode(targetPanel, resourcesItem, gridTopology, executionEnvironment);
 		}
 		
 		for(DirectoryInstanceView directoryInstance : gridTopology.getDirectoryInstances()){
-			addDirectoryInstanceNode(targetPanel, resourcesItem, directoryInstance);
+			addDirectoryInstanceNode(targetPanel, resourcesItem, gridTopology, directoryInstance);
 		}
 		
 		return resourcesItem;
     }
 
     private void addDirectoryInstanceNode(ExplorerViewCenterPanel targetPanel,
-			TreeNode resourcesItem, DirectoryInstanceView directoryInstance) {
+			TreeNode resourcesItem, GridTopologyView gridTopology, DirectoryInstanceView directoryInstance) {
     	resourcesItem.appendChild(new TreeNode("directory - " + directoryInstance.getName()));
 	}
 
-	private void addExecutionEnvironmentNode(ExplorerViewCenterPanel targetPanel, TreeNode resourcesItem, ExecutionEnvironmentView executionEnvironment) {
-    	resourcesItem.appendChild(new TreeNode("environment - " + executionEnvironment.getName()));
+	private void addExecutionEnvironmentNode(final ExplorerViewCenterPanel targetPanel, TreeNode resourcesItem, final GridTopologyView gridTopology, final ExecutionEnvironmentView executionEnvironment) {
+    	TreeNode environmentNode = new TreeNode("environment - " + executionEnvironment.getName());
+    	environmentNode.addListener(new TreeNodeListenerAdapter(){
+    		@Override
+    		public void onClick(Node node, EventObject e) {
+    			//FIXME find a more accurate id for the EE tab
+    			String executionEnvironmentTabId = executionEnvironment.getName();
+				if(!targetPanel.showIfOpen(executionEnvironmentTabId)){
+    				targetPanel.addTab(
+    						executionEnvironment.getName(), 
+    						true, 
+    						new ExecutionEnvironmentPanel(gridTopology, executionEnvironment), 
+    						executionEnvironmentTabId);
+    			}
+    		}
+    	});
+		resourcesItem.appendChild(environmentNode);
 	}
 
-    private void openCreateNewGridResourcePanel(final ExplorerViewCenterPanel targetPanel, final TreeNode resourcesItem, GridTopologyView gridTopology) {
+    private void openCreateNewGridResourcePanel(final ExplorerViewCenterPanel targetPanel, final TreeNode resourcesItem, final GridTopologyView gridTopology) {
         if (!targetPanel.showIfOpen(gridTopology.getName())) {
             targetPanel.addTab("New Resource", true, new NewGridResourcePanel(gridTopology) {
 				@Override
 				public void onExecutionEnvironmentCreation(ExecutionEnvironmentView executionEnvironment) {
-					addExecutionEnvironmentNode(targetPanel, resourcesItem, executionEnvironment);
+					addExecutionEnvironmentNode(targetPanel, resourcesItem, gridTopology, executionEnvironment);
+					GWT.log("added: " + gridTopology.getExecutionEnvironments().get(0).getName());
 				}
 				
 				@Override
 				public void onDirectoryInstanceCreation(DirectoryInstanceView directoryInstance) {
-					addDirectoryInstanceNode(targetPanel, resourcesItem, directoryInstance);
+					addDirectoryInstanceNode(targetPanel, resourcesItem, gridTopology, directoryInstance);
 				}
 			}, gridTopology.getName());
         }

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridResourceInfo.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridResourceInfo.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridResourceInfo.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -0,0 +1,37 @@
+package org.drools.guvnor.client.explorer.grid.model;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+public class GridResourceInfo implements Serializable{
+	private Status status;
+	private Map<String, String> info;
+
+	public GridResourceInfo() {	}
+	
+	public GridResourceInfo(Status status, Map<String, String> info) {
+		this.status = status;
+		this.info = info;
+	}
+
+	public Status getStatus() {
+		return status;
+	}
+
+	public void setStatus(Status status) {
+		this.status = status;
+	}
+
+	public Map<String, String> getInfo() {
+		if(null == info)
+			info = new HashMap<String, String>();
+		return info;
+	}
+
+	public void setInfo(Map<String, String> info) {
+		this.info = info;
+	}
+
+	static public enum Status {RUNNING, MISSING}
+}

Added: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/ExecutionEnvironmentPanel.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/ExecutionEnvironmentPanel.java	                        (rev 0)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/ExecutionEnvironmentPanel.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -0,0 +1,73 @@
+package org.drools.guvnor.client.explorer.grid.panels;
+
+import java.util.Map;
+
+import org.drools.guvnor.client.common.GenericCallback;
+import org.drools.guvnor.client.explorer.grid.model.ExecutionEnvironmentView;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceInfo;
+import org.drools.guvnor.client.explorer.grid.model.GridTopologyView;
+import org.drools.guvnor.client.explorer.grid.services.TopologyAssetsService;
+import org.drools.guvnor.client.explorer.grid.services.TopologyAssetsServiceAsync;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.SimplePanel;
+
+public class ExecutionEnvironmentPanel extends Composite {
+
+	private TopologyAssetsServiceAsync assetService;
+	
+	public ExecutionEnvironmentPanel(GridTopologyView gridTopology, ExecutionEnvironmentView executionEnvironment) {
+		final SimplePanel panel = new SimplePanel();
+		initWidget(panel);
+		
+		fillPanelGenericData(panel, gridTopology, executionEnvironment);
+		
+		getService().queryGridResourceInfo(gridTopology, executionEnvironment, new GenericCallback<GridResourceInfo>() {
+			public void onSuccess(GridResourceInfo result) {
+				addInfoToPanel(panel, result);
+			}
+		});
+		
+	}
+
+	
+	private void fillPanelGenericData(SimplePanel panel,
+			GridTopologyView gridTopology,
+			ExecutionEnvironmentView executionEnvironment) {
+		
+		Grid genericData = new Grid(2,2);
+		genericData.setWidget(0, 0, new Label("Topology:"));
+		genericData.setWidget(0, 1, new Label(gridTopology.getName()));
+		genericData.setWidget(1, 0, new Label("Execution Environment:"));
+		genericData.setWidget(1, 1, new Label(executionEnvironment.getName()));
+		
+		panel.add(genericData);
+	}
+
+
+	private void addInfoToPanel(SimplePanel panel, GridResourceInfo result) {
+		Grid extraInfo = new Grid(result.getInfo().size(), 2);
+		{
+			int i = 0;
+			for (Map.Entry<String, String> info : result.getInfo().entrySet()) {
+				extraInfo.setWidget(i, 0, new Label(info.getKey()));
+				extraInfo.setWidget(i, 1, new Label(info.getValue()));
+				i++;
+			}
+		}
+
+		panel.add(new Label(result.getStatus().name()));
+		panel.add(extraInfo);
+	}
+
+
+	private TopologyAssetsServiceAsync getService() {
+		if(assetService == null)
+			assetService =  GWT.create(TopologyAssetsService.class);
+		return assetService;
+	}
+
+}

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/NewGridResourcePanel.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/NewGridResourcePanel.java	2010-06-03 16:06:38 UTC (rev 33334)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/NewGridResourcePanel.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -39,6 +39,9 @@
 				GenericProviderView gridProvider = getGenericProvider(factoryPanel);
 				getService().createExecutionEnvironment(resourceName.getText(), gridProvider, gridTopology, new GenericCallback<ExecutionEnvironmentView>() {
 					public void onSuccess(ExecutionEnvironmentView executionEnvironment) {
+						//GWT parameters on server call are passed by copy, so I have to manually add the
+						//executionEnvironmnet to the topology
+						gridTopology.addExecutionEnvironment(executionEnvironment);
 						onExecutionEnvironmentCreation(executionEnvironment);
 					};
 				});
@@ -51,11 +54,15 @@
 				GenericProviderView gridProvider = getGenericProvider(factoryPanel);
 				getService().createDirectoryInstance(resourceName.getText(), gridProvider, gridTopology, new GenericCallback<DirectoryInstanceView>() {
 					public void onSuccess(DirectoryInstanceView directoryInstance) {
+						//GWT parameters on server call are passed by copy, so I have to manually add the
+						//directoryInstance to the topology
+						gridTopology.addDirectoryInstance(directoryInstance);
 						onDirectoryInstanceCreation(directoryInstance);
 					}
 				});
 			}
 		});
+		addDirectoryAction.setEnabled(false);
 
 		
         final ListBox optionProviders = getFactoryOptions(factoryPanel);
@@ -96,25 +103,36 @@
 	public abstract void onDirectoryInstanceCreation(DirectoryInstanceView directoryInstance);
 	
     private enum GridImplementations {
-        MINA("Mina", new MinaFactoryPanel()), 
-        HORNETQ("HornetQ", new HornetQFactoryPanel()), 
-        RIO("Rio", new RioFactoryPanel());
+        MINA("Mina") {
+			@Override
+			public Widget getFactoryWidget() {
+				return new MinaFactoryPanel();
+			}
+		},
+		HORNETQ("HornetQ") {
+			@Override
+			public Widget getFactoryWidget() {
+				return new HornetQFactoryPanel();
+			}
+		}, 
+        RIO("Rio") {
+			@Override
+			public Widget getFactoryWidget() {
+				return new RioFactoryPanel();
+			}
+		};
 
         private String label;
-        private Widget factoryWidget;
 
-        private GridImplementations(String label, Widget widget) {
+        private GridImplementations(String label) {
             this.label = label;
-            this.factoryWidget = widget;
         }
 
         public String getLabel() {
             return label;
         }
         
-        public Widget getFactoryWidget() {
-            return factoryWidget;
-        }
+        public abstract Widget getFactoryWidget();
 
         @Override
         public String toString() {

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsService.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsService.java	2010-06-03 16:06:38 UTC (rev 33334)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsService.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -1,8 +1,12 @@
 package org.drools.guvnor.client.explorer.grid.services;
 
+import org.drools.grid.services.GridResource;
+import org.drools.grid.services.GridTopology;
 import org.drools.guvnor.client.explorer.grid.model.DirectoryInstanceView;
 import org.drools.guvnor.client.explorer.grid.model.ExecutionEnvironmentView;
 import org.drools.guvnor.client.explorer.grid.model.GenericProviderView;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceInfo;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceView;
 import org.drools.guvnor.client.explorer.grid.model.GridTopologyView;
 
 import com.google.gwt.user.client.rpc.RemoteService;
@@ -17,6 +21,7 @@
 	/**
 	 * Creates a new {@link ExecutionEnvironmentView} and adds it to the {@link GridTopologyView} parameter
 	 * @param name of the new {@link ExecutionEnvironmentView}
+	 * @param provider is the {@link GenericProviderView} which will be registered in the {@link ExecutionEnvironmentView}
 	 * @param gridTopology is the topology where the newly {@link ExecutionEnvironmentView} will be added
 	 * @return a new {@link ExecutionEnvironmentView} already added to a topology
 	 */
@@ -25,9 +30,17 @@
 	/**
 	 * Creates a new {@link DirectoryInstanceView} and adds it to the {@link GridTopologyView} parameter
 	 * @param name of the new {@link DirectoryInstanceView}
+	 * @param provider is the {@link GenericProviderView} which will be registered in the {@link DirectoryInstanceView}
 	 * @param gridTopology is the topology where the newly {@link DirectoryInstanceView} will be added
 	 * @return a new {@link DirectoryInstanceView} already added to a topology
 	 */
 	DirectoryInstanceView createDirectoryInstance(String name, GenericProviderView provider, GridTopologyView gridTopology);
 
+	/**
+	 * Queries the status of the {@link GridResource} inside the {@link GridTopology}
+	 * @param topology the data needed to create the {@link GridTopology}
+	 * @param gridResource the data needed to query the {@link GridTopology} for info
+	 * @return the status of the {@link GridResource} associated
+	 */
+	GridResourceInfo queryGridResourceInfo(GridTopologyView topology, GridResourceView gridResource);
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsServiceAsync.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsServiceAsync.java	2010-06-03 16:06:38 UTC (rev 33334)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsServiceAsync.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -3,6 +3,8 @@
 import org.drools.guvnor.client.explorer.grid.model.DirectoryInstanceView;
 import org.drools.guvnor.client.explorer.grid.model.ExecutionEnvironmentView;
 import org.drools.guvnor.client.explorer.grid.model.GenericProviderView;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceInfo;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceView;
 import org.drools.guvnor.client.explorer.grid.model.GridTopologyView;
 
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -20,4 +22,8 @@
 			GridTopologyView gridTopology,
 			AsyncCallback<ExecutionEnvironmentView> callback);
 
+	void queryGridResourceInfo(GridTopologyView topology,
+			GridResourceView gridResource,
+			AsyncCallback<GridResourceInfo> callback);
+
 }

Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/repository/services/TopologyAssetsServiceImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/repository/services/TopologyAssetsServiceImpl.java	2010-06-03 16:06:38 UTC (rev 33334)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/repository/services/TopologyAssetsServiceImpl.java	2010-06-03 16:09:01 UTC (rev 33335)
@@ -1,9 +1,14 @@
 package org.drools.repository.services;
 
+import java.util.HashMap;
+
 import org.drools.guvnor.client.explorer.grid.model.DirectoryInstanceView;
 import org.drools.guvnor.client.explorer.grid.model.ExecutionEnvironmentView;
 import org.drools.guvnor.client.explorer.grid.model.GenericProviderView;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceInfo;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceView;
 import org.drools.guvnor.client.explorer.grid.model.GridTopologyView;
+import org.drools.guvnor.client.explorer.grid.model.GridResourceInfo.Status;
 import org.drools.guvnor.client.explorer.grid.services.TopologyAssetsService;
 
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@@ -26,4 +31,9 @@
 		gridTopology.addDirectoryInstance(newDirectoryInstance);
 		return newDirectoryInstance;
 	}
+
+	public GridResourceInfo queryGridResourceInfo(GridTopologyView topology,
+			GridResourceView gridResource) {
+		return new GridResourceInfo(Status.MISSING, new HashMap<String, String>());
+	}
 }



More information about the jboss-svn-commits mailing list