[jboss-svn-commits] JBL Code SVN: r33499 - in labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools: guvnor/client/explorer/grid/model and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 14 17:36:01 EDT 2010
Author: diegoll
Date: 2010-06-14 17:36:00 -0400 (Mon, 14 Jun 2010)
New Revision: 33499
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/model/GridTopologyView.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/TaskServerInstanceView.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/guvnor/client/grid/TopologyEditor.java
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.ui.xml
labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/repository/services/TopologyAssetsServiceImpl.java
Log:
added remove button
added support for adding task server instances
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-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/BrowseGridResourcesTreeBuilder.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -4,6 +4,7 @@
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.model.TaskServerInstanceView;
import org.drools.guvnor.client.explorer.grid.panels.ExecutionEnvironmentPanel;
import org.drools.guvnor.client.explorer.grid.panels.NewGridResourcePanel;
@@ -58,6 +59,13 @@
resourcesItem.appendChild(environmentNode);
}
+ protected void addTaskServerInstanceNode(
+ ExplorerViewCenterPanel targetPanel, TreeNode resourcesItem,
+ GridTopologyView gridTopology,
+ TaskServerInstanceView taskServerInstance) {
+ resourcesItem.appendChild(new TreeNode("task server - " + taskServerInstance.getName()));
+ }
+
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) {
@@ -70,6 +78,11 @@
public void onDirectoryInstanceCreation(DirectoryInstanceView directoryInstance) {
addDirectoryInstanceNode(targetPanel, resourcesItem, gridTopology, directoryInstance);
}
+
+ @Override
+ public void onTaskServerInstanceCreation(TaskServerInstanceView taskServerInstance) {
+ addTaskServerInstanceNode(targetPanel, resourcesItem, gridTopology, taskServerInstance);
+ }
}, gridTopology.getName());
}
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridTopologyView.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridTopologyView.java 2010-06-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/GridTopologyView.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -2,6 +2,7 @@
import java.io.Serializable;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -29,27 +30,33 @@
}
public Collection<ExecutionEnvironmentView> getExecutionEnvironments() {
- return executionEnvironments.values();
+ return Collections.unmodifiableCollection(executionEnvironments.values());
}
public Collection<DirectoryInstanceView> getDirectoryInstances() {
- return directoryInstances.values();
+ return Collections.unmodifiableCollection(directoryInstances.values());
}
public Collection<TaskServerInstanceView> getTaskServers(){
- return taskServerInstances.values();
+ return Collections.unmodifiableCollection(taskServerInstances.values());
}
public void addExecutionEnvironment(ExecutionEnvironmentView newExecutionEnvironment) {
- executionEnvironments.put(newExecutionEnvironment.getName(), newExecutionEnvironment);
+ String newGridResourceName = newExecutionEnvironment.getName();
+ checkUniqueName(newGridResourceName, directoryInstances, taskServerInstances);
+ executionEnvironments.put(newGridResourceName, newExecutionEnvironment);
}
public void addDirectoryInstance(DirectoryInstanceView newDirectoryInstance){
- directoryInstances.put(newDirectoryInstance.getName(), newDirectoryInstance);
+ String newGridResourceName = newDirectoryInstance.getName();
+ checkUniqueName(newGridResourceName, executionEnvironments, taskServerInstances);
+ directoryInstances.put(newGridResourceName, newDirectoryInstance);
}
public void addTaskServerInstance(TaskServerInstanceView newTaskServerInstance){
- taskServerInstances.put(newTaskServerInstance.getName(), newTaskServerInstance);
+ String newGridResourceName = newTaskServerInstance.getName();
+ checkUniqueName(newGridResourceName, executionEnvironments, directoryInstances);
+ taskServerInstances.put(newGridResourceName, newTaskServerInstance);
}
public ExecutionEnvironmentView getExecutionEnvironment(String name){
@@ -63,4 +70,17 @@
public TaskServerInstanceView getTaskServerInstance(String name) {
return taskServerInstances.get(name);
}
+
+ public void removeResource(String name){
+ boolean removed = executionEnvironments.remove(name) != null;
+ removed |= directoryInstances.remove(name) != null;
+ removed |= taskServerInstances.remove(name) != null;
+ }
+
+ private void checkUniqueName(String newGridResourceName,
+ Map<String, ? extends GridResourceView> firstResources,
+ Map<String, ? extends GridResourceView> secondResources) {
+ if(null != firstResources.get(newGridResourceName) || null != secondResources.get(newGridResourceName))
+ throw new IllegalArgumentException("Existing resource with name: " + newGridResourceName);
+ }
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/TaskServerInstanceView.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/TaskServerInstanceView.java 2010-06-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/model/TaskServerInstanceView.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -1,5 +1,13 @@
package org.drools.guvnor.client.explorer.grid.model;
public class TaskServerInstanceView extends GridResourceView {
+
+ public TaskServerInstanceView() {
+ super();
+ }
+ public TaskServerInstanceView(String name, GenericProviderView provider) {
+ super(name, provider);
+ }
+
}
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-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/panels/NewGridResourcePanel.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -5,6 +5,7 @@
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.GridTopologyView;
+import org.drools.guvnor.client.explorer.grid.model.TaskServerInstanceView;
import org.drools.guvnor.client.explorer.grid.services.TopologyAssetsService;
import org.drools.guvnor.client.explorer.grid.services.TopologyAssetsServiceAsync;
@@ -27,6 +28,7 @@
private TopologyAssetsServiceAsync assetService;
private Button addEnvironmentAction;
private Button addDirectoryAction;
+ private Button addTaskServerAction;
public NewGridResourcePanel(final GridTopologyView gridTopology) {
@@ -65,7 +67,23 @@
});
}
});
+
+ addTaskServerAction = new Button("Add as Task Server");
+ addTaskServerAction.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent event) {
+ GenericProviderView gridProvider = getGenericProvider(factoryPanel);
+ getService().createTaskServerInstance(resourceName.getText(), gridProvider, gridTopology, new GenericCallback<TaskServerInstanceView>() {
+ public void onSuccess(TaskServerInstanceView taskServerInstance) {
+ //GWT parameters on server call are passed by copy, so I have to manually add the
+ //directoryInstance to the topology
+ gridTopology.addTaskServerInstance(taskServerInstance);
+ onTaskServerInstanceCreation(taskServerInstance);
+ }
+ });
+ }
+ });
+
enableButtons(false);
final ListBox optionProviders = getFactoryOptions(factoryPanel);
@@ -75,6 +93,7 @@
panel.add(factoryPanel);
panel.add(addEnvironmentAction);
panel.add(addDirectoryAction);
+ panel.add(addTaskServerAction);
initWidget(panel);
}
@@ -112,11 +131,13 @@
private void enableButtons(boolean enabled){
addEnvironmentAction.setEnabled(enabled);
- addEnvironmentAction.setEnabled(enabled);
+ addDirectoryAction.setEnabled(enabled);
+ addTaskServerAction.setEnabled(enabled);
}
public abstract void onExecutionEnvironmentCreation(ExecutionEnvironmentView executionEnvironment);
public abstract void onDirectoryInstanceCreation(DirectoryInstanceView directoryInstance);
+ public abstract void onTaskServerInstanceCreation(TaskServerInstanceView taskServerInstance);
private enum GridProviders {
MINA("Mina provider") {
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-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsService.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -1,17 +1,15 @@
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 org.drools.guvnor.client.explorer.grid.model.TaskServerInstanceView;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
-import com.gwtext.client.widgets.grid.GridPanel;
@RemoteServiceRelativePath("topologyService")
public interface TopologyAssetsService extends RemoteService {
@@ -35,7 +33,17 @@
* @return a new {@link DirectoryInstanceView} already added to a topology
*/
DirectoryInstanceView createDirectoryInstance(String name, GenericProviderView provider, GridTopologyView gridTopology);
+
+ /**
+ * Creates a new {@link TaskServerInstanceView} and adds it to the {@link GridTopologyView} parameter
+ * @param name of the new {@link TaskServerInstanceView}
+ * @param provider is the {@link GenericProviderView} which will be registered in the {@link TaskServerInstanceView}
+ * @param gridTopology is the topology where the newly {@link TaskServerInstanceView} will be added
+ * @return a new {@link TaskServerInstanceView} already added to a topology
+ */
+ TaskServerInstanceView createTaskServerInstance(String name, GenericProviderView provider, GridTopologyView gridTopology);
+
/**
* Queries the status of the {@link ExecutionEnvironmentView} inside the {@link GridTopology}
* @param topology the data needed to create the {@link GridTopology}
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-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/grid/services/TopologyAssetsServiceAsync.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -4,8 +4,8 @@
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.TaskServerInstanceView;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -26,4 +26,8 @@
ExecutionEnvironmentView executionEnvironment,
AsyncCallback<GridResourceInfo> callback);
+ void createTaskServerInstance(String name, GenericProviderView provider,
+ GridTopologyView gridTopology,
+ AsyncCallback<TaskServerInstanceView> callback);
+
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.java
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.java 2010-06-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -42,18 +42,17 @@
private OptGroupElement directoryInstances;
private OptGroupElement taskServers;
@UiField Button addResourceAction;
+ @UiField Button removeResourceAction;
@UiField Label topologyName;
@UiField Panel gridResourcePanel;
@UiField ListBox gridResources;
-
public TopologyEditor(RuleAsset asset) {
gridTopology = (GridTopologyView) asset.content;
gridTopology.setName(asset.metaData.name);
initWidget(uiBinder.createAndBindUi(this));
setI18NContent();
topologyName.setText(asset.metaData.name);
- addResourceAction.setText("Create new resource");
initGridResourcesList();
}
@@ -103,7 +102,7 @@
}
@UiHandler("addResourceAction")
- void onClick(ClickEvent e) {
+ void onAddResourceActionClick(ClickEvent e) {
final DialogBox popup = new DialogBox(true, true);
popup.setGlassEnabled(true);
popup.setWidget(new NewGridResourcePanel(gridTopology) {
@@ -119,15 +118,31 @@
addElement(directoryInstances, directoryInstance);
popup.hide();
}
+
+ @Override
+ public void onTaskServerInstanceCreation(TaskServerInstanceView taskServerInstance) {
+ addElement(taskServers, taskServerInstance);
+ popup.hide();
+ }
});
popup.center();
popup.show();
}
+
+ @UiHandler("removeResourceAction")
+ void onRemoveResourceActionClick(ClickEvent e){
+ int selectedIndex = gridResources.getSelectedIndex();
+ String selectedResourceName = gridResources.getItemText(selectedIndex);
+ gridTopology.removeResource(selectedResourceName);
+ gridResources.removeItem(selectedIndex);
+ removeResourceAction.setEnabled(gridResources.getItemCount() != 0);
+ }
private void addElement(OptGroupElement optGroup, GridResourceView gridResource) {
OptionElement optElement = Document.get().createOptionElement();
optElement.setInnerText(gridResource.getName());
optGroup.appendChild(optElement);
+ removeResourceAction.setEnabled(true);
}
@UiField SpanElement topologyNameLabel;
@@ -135,5 +150,7 @@
private void setI18NContent() {
topologyNameLabel.setInnerText("Topology name: ");
executionEnvironmentsLabel.setText("Resources:");
+ addResourceAction.setText("Create new resource");
+ removeResourceAction.setText("Remove resource");
}
}
Modified: labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.ui.xml
===================================================================
--- labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.ui.xml 2010-06-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/guvnor/client/grid/TopologyEditor.ui.xml 2010-06-14 21:36:00 UTC (rev 33499)
@@ -20,6 +20,7 @@
<g:VerticalPanel>
<g:Label ui:field="executionEnvironmentsLabel"/>
<g:ListBox ui:field="gridResources" visibleItemCount="10"/>
+ <g:Button ui:field="removeResourceAction" enabled="false"/>
</g:VerticalPanel>
</g:VerticalPanel>
<g:SimplePanel ui:field="gridResourcePanel"/>
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-14 21:34:27 UTC (rev 33498)
+++ labs/jbossrules/branches/salaboy_drools_grid_api_separation/drools-guvnor/src/main/java/org/drools/repository/services/TopologyAssetsServiceImpl.java 2010-06-14 21:36:00 UTC (rev 33499)
@@ -11,6 +11,7 @@
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.GridTopologyView;
+import org.drools.guvnor.client.explorer.grid.model.TaskServerInstanceView;
import org.drools.guvnor.client.explorer.grid.model.GridResourceInfo.Status;
import org.drools.guvnor.client.explorer.grid.services.TopologyAssetsService;
import org.drools.repository.services.factories.GenericProviderFactory;
@@ -36,6 +37,12 @@
return newDirectoryInstance;
}
+ public TaskServerInstanceView createTaskServerInstance(String name, GenericProviderView provider, GridTopologyView gridTopology) {
+ TaskServerInstanceView newTaskServerInstance = new TaskServerInstanceView(name, provider);
+ gridTopology.addTaskServerInstance(newTaskServerInstance);
+ return newTaskServerInstance;
+ }
+
public GridResourceInfo queryExecutionEnvironmentInfo(
GridTopologyView topology,
ExecutionEnvironmentView executionEnvironment) {
More information about the jboss-svn-commits
mailing list