modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
| 10
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/CustomResourceGroupTreeGrid.java
| 23 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeContextMenu.java
| 7
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
| 182 ++++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
| 42 +-
5 files changed, 165 insertions(+), 99 deletions(-)
New commits:
commit cc672ab2ab3839dde8ce9672b8703cb54ea0ed1e
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Mar 25 11:24:07 2011 -0400
ResourceGroupTree navigation work
- fix various issues with tree select and context menu nav
- some refactoring for clarity
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/CustomResourceGroupTreeGrid.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/CustomResourceGroupTreeGrid.java
index 5e4ff6f..349c5e7 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/CustomResourceGroupTreeGrid.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/CustomResourceGroupTreeGrid.java
@@ -22,7 +22,6 @@ import com.smartgwt.client.data.Record;
import com.smartgwt.client.widgets.tree.TreeNode;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.resource.group.ClusterKey;
import org.rhq.enterprise.gui.coregui.client.ImageManager;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTreeGrid;
@@ -48,19 +47,15 @@ public class CustomResourceGroupTreeGrid extends LocatableTreeGrid {
return node.getIcon();
}
- // if this node is associated with a resource type AND a cluster key, it is a
cluster node
- // if this node is associated only with a resource type, it is a auto type
group node.
- // if this node is not associated with either a resource type or cluster key,
it is a subcategory node (which uses the default icon)
- ResourceType resourceType = node.getResourceType();
- if (resourceType != null) {
- ClusterKey clusterKey = node.getClusterKey();
- if (clusterKey != null) {
- String icon =
ImageManager.getClusteredResourceIcon(resourceType.getCategory());
- return icon;
- } else {
- boolean open = getTree().isOpen((TreeNode) record);
- return "resources/folder_group_" + (open ?
"opened" : "closed") + ".png";
- }
+ if (node.isAutoClusterNode()) {
+ ResourceType resourceType = node.getResourceType();
+ String icon =
ImageManager.getClusteredResourceIcon(resourceType.getCategory());
+ return icon;
+
+ } else if (node.isCompatibleGroupTopNode() || node.isAutoGroupNode()) {
+ boolean open = getTree().isOpen((TreeNode) record);
+ return "resources/folder_group_" + (open ? "opened" :
"closed") + ".png";
+
}
// use the default image - which is typically for subcategory nodes
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeContextMenu.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeContextMenu.java
index 27cf7d6..7ad3a74 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeContextMenu.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeContextMenu.java
@@ -43,8 +43,8 @@ public class ResourceGroupTreeContextMenu extends
ResourceGroupContextMenu {
public void showContextMenu(ResourceGroupEnhancedTreeNode node) {
- final ClusterKey clusterKey = (ClusterKey)
node.getAttributeAsObject("key");
- if (clusterKey != null) {
+ if (node.isAutoClusterNode()) {
+ final ClusterKey clusterKey = (ClusterKey)
node.getAttributeAsObject("key");
GWTServiceLookup.getClusterService().createAutoClusterBackingGroup(clusterKey, true,
new AsyncCallback<ResourceGroup>() {
@Override
@@ -58,7 +58,8 @@ public class ResourceGroupTreeContextMenu extends
ResourceGroupContextMenu {
showContextMenu(result);
}
});
- } else {
+
+ } else if (node.isCompatibleGroupTopNode()) {
ResourceGroupCriteria criteria = new ResourceGroupCriteria();
criteria.addFilterId(Integer.parseInt(node.getAttribute("id")));
GWTServiceLookup.getResourceGroupService().findResourceGroupsByCriteria(criteria,
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
index d3f4fbd..04fbfbd 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupTreeView.java
@@ -93,17 +93,21 @@ public class ResourceGroupTreeView extends LocatableVLayout implements
Bookmarka
private static final String FAKE_ROOT_ID = "__fakeRoot__"; // id of the
parent node of our real root node
private TreeGrid treeGrid;
-
private ViewId currentViewId;
- private int rootGroupId;
- private int selectedGroupId;
- private String selectedNodeId;
-
+ private Map<Integer, ResourceType> typeMap;
private ResourceGroupTreeContextMenu contextMenu;
+ // the root (top of tree) compat or mixed group
private ResourceGroup rootResourceGroup;
- private Map<Integer, ResourceType> typeMap;
- private ResourceGroup selectedGroup;
+
+ // the root (top of tree) compat or mixed group id (may bet set prior to
rootResourceGroup fetch)
+ private int rootGroupId;
+
+ // the currently selected tree node
+ private String currentNodeId;
+
+ // the currently selected group backing the tree node
+ private ResourceGroup currentGroup;
private Comparator<ResourceGroupEnhancedTreeNode> treeNodeComparator = new
Comparator<ResourceGroupEnhancedTreeNode>() {
@Override
@@ -164,76 +168,93 @@ public class ResourceGroupTreeView extends LocatableVLayout
implements Bookmarka
}
});
- addMember(this.treeGrid);
-
contextMenu = new
ResourceGroupTreeContextMenu(extendLocatorId("contextMenu"));
treeGrid.setContextMenu(contextMenu);
+ treeGrid.addNodeContextClickHandler(new NodeContextClickHandler() {
+ public void onNodeContextClick(final NodeContextClickEvent event) {
+ // stop the browser right-click menu
+ event.cancel();
+
+ // don't select the node on a right click, since we're not
navigating to it, and
+ // re-select the current node if necessary
+ ResourceGroupEnhancedTreeNode contextNode =
(ResourceGroupEnhancedTreeNode) event.getNode();
+
+ if (null != currentNodeId) {
+ TreeNode currentNode = treeGrid.getTree().findById(currentNodeId);
+ if (!contextNode.equals(currentNode)) {
+ treeGrid.deselectRecord(contextNode);
+ treeGrid.selectRecord(currentNode);
+ }
+ }
+
+ // only show the context menu for cluster nodes and our top root node
+ if (contextNode.isCompatibleGroupTopNode() ||
contextNode.isAutoClusterNode()) {
+ contextMenu.showContextMenu(contextNode);
+ }
+ }
+ });
+
treeGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
- @Override
+
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (!selectionEvent.isRightButtonDown() &&
selectionEvent.getState()) {
- selectedNodeId = null; // if user selected a valid node, we'll
set this later
- ResourceGroupEnhancedTreeNode selectedNode =
(ResourceGroupEnhancedTreeNode) selectionEvent
- .getRecord();
- com.allen_sauer.gwt.log.client.Log.info("Node selected in tree:
" + selectedNode);
-
- ResourceType type = selectedNode.getResourceType();
- ClusterKey key = selectedNode.getClusterKey();
- if (type != null) {
- if (key != null) {
- // the user selected a cluster node - let's switch to
that cluster group view
- com.allen_sauer.gwt.log.client.Log.debug("Selecting
cluster group [" + key + "]...");
- selectedNodeId = selectedNode.getID();
- selectClusterGroup(key);
+
+ ResourceGroupEnhancedTreeNode newNode =
(ResourceGroupEnhancedTreeNode) selectionEvent.getRecord();
+ TreeNode currentNode = (null != currentNodeId) ?
treeGrid.getTree().findById(currentNodeId) : null;
+
+ // if re-selecting the current node just return, otherwise deselect
the currently selected node
+ if (null != currentNode) {
+ if (newNode.equals(currentNode)) {
+ return;
} else {
- if (selectedNode.getParentID().equals(FAKE_ROOT_ID)) {
- // the user selected the top group node
- selectedNodeId = selectedNode.getID();
- String groupId = selectedNodeId;
- com.allen_sauer.gwt.log.client.Log.debug("Selecting
group [" + groupId + "]...");
- String viewPath =
LinkManager.getResourceGroupLink(Integer.parseInt(groupId));
- CoreGUI.goToView(viewPath, true);
- } else {
- // the user selected a auto type group node; we have got
nothing to show, so cancel the selection of this node
- treeGrid.deselectRecord(selectedNode);
- }
+ treeGrid.deselectRecord(currentNode);
}
- } else {
- // the user selected a subcategory; we have got nothing to show,
so cancel the selection of this node
- treeGrid.deselectRecord(selectedNode);
}
- }
- return;
- }
- });
- treeGrid.addNodeContextClickHandler(new NodeContextClickHandler() {
- public void onNodeContextClick(final NodeContextClickEvent event) {
- // stop the browser right-click menu
- event.cancel();
+ com.allen_sauer.gwt.log.client.Log.debug("Node selected in tree:
" + newNode);
- // don't select the node on a right click, since we're not
navigating to it
- ResourceGroupEnhancedTreeNode node = (ResourceGroupEnhancedTreeNode)
event.getNode();
- treeGrid.deselectRecord(node);
- if (null != selectedNodeId) {
- treeGrid.selectRecord(treeGrid.getTree().findById(selectedNodeId));
- }
+ if (newNode.isCompatibleGroupTopNode()) {
+ currentNodeId = newNode.getID();
+ com.allen_sauer.gwt.log.client.Log.debug("Selecting
compatible group [" + currentNodeId
+ + "]...");
+ String viewPath =
LinkManager.getResourceGroupLink(Integer.parseInt(currentNodeId));
+ String currentViewPath = History.getToken();
+ if (!currentViewPath.startsWith(viewPath.substring(1))) {
+ CoreGUI.goToView(viewPath, true);
+ } else {
+ // this should not be necessary but for otherwise the top
node does not always show selected
+ treeGrid.markForRedraw();
+ }
- // only show the context menu for cluster nodes and our top root node
- ResourceType type = node.getResourceType();
- ClusterKey key = node.getClusterKey();
- if (type != null && (key != null ||
node.getParentID().equals(FAKE_ROOT_ID))) {
- contextMenu.showContextMenu(node);
+ } else if (newNode.isAutoClusterNode()) {
+ ClusterKey key = newNode.getClusterKey();
+ com.allen_sauer.gwt.log.client.Log.debug("Selecting
autocluster group [" + key + "]...");
+ currentNodeId = newNode.getID();
+ // the user selected a cluster node - let's switch to that
cluster group view
+ selectClusterGroup(key);
+
+ } else if (newNode.isMixedGroupTopNode()) {
+ currentNodeId = newNode.getID();
+ com.allen_sauer.gwt.log.client.Log.debug("Selecting mixed
group [" + currentNodeId + "]...");
+
+ } else {
+ // a subcategory node, deselect and reselect the current node
+ treeGrid.deselectRecord(newNode);
+ if (null != currentNode) {
+ treeGrid.selectRecord(currentNode);
+ }
+ }
}
+
+ return;
}
});
+ addMember(this.treeGrid);
}
public void setSelectedGroup(final int groupId, boolean isAutoCluster) {
- this.selectedGroupId = groupId;
-
ResourceGroupCriteria criteria = new ResourceGroupCriteria();
criteria.addFilterId(groupId);
criteria.addFilterVisible(Boolean.valueOf(!isAutoCluster));
@@ -241,16 +262,15 @@ public class ResourceGroupTreeView extends LocatableVLayout
implements Bookmarka
GWTServiceLookup.getResourceGroupService().findResourceGroupsByCriteria(criteria,
new AsyncCallback<PageList<ResourceGroup>>() {
- @Override
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
MSG.view_tree_common_loadFailed_group(String.valueOf(groupId)),
caught);
}
- @Override
public void onSuccess(PageList<ResourceGroup> result) {
ResourceGroup group = result.get(0);
- ResourceGroupTreeView.this.selectedGroup = group;
+ ResourceGroupTreeView.this.currentGroup = group;
GroupCategory groupCategory = group.getGroupCategory();
switch (groupCategory) {
@@ -271,8 +291,9 @@ public class ResourceGroupTreeView extends LocatableVLayout implements
Bookmarka
Tree tree = new Tree();
tree.setRoot(fakeRoot);
treeGrid.setData(tree);
- treeGrid.markForRedraw();
+ treeGrid.selectRecord(rootNode);
break;
+
case COMPATIBLE:
if (group.getClusterResourceGroup() == null) {
// This is a straight up compatible group.
@@ -293,14 +314,14 @@ public class ResourceGroupTreeView extends LocatableVLayout
implements Bookmarka
// Still looking at the same compat-recursive tree
ResourceGroupEnhancedTreeNode selectedNode;
- if (this.selectedGroup.getClusterKey() != null) {
+ if (this.currentGroup.getClusterKey() != null) {
// a child cluster node leaf was selected
selectedNode = (ResourceGroupEnhancedTreeNode) treeGrid.getTree().find(
- ResourceGroupEnhancedTreeNode.CLUSTER_KEY,
this.selectedGroup.getClusterKey());
+ ResourceGroupEnhancedTreeNode.CLUSTER_KEY,
this.currentGroup.getClusterKey());
} else {
// the top root node, representing the group itself, was selected
selectedNode = (ResourceGroupEnhancedTreeNode)
treeGrid.getTree().findById(
- String.valueOf(this.selectedGroup.getId()));
+ String.valueOf(this.currentGroup.getId()));
}
if (selectedNode != null) {
@@ -331,7 +352,7 @@ public class ResourceGroupTreeView extends LocatableVLayout implements
Bookmarka
ResourceTypeRepository.Cache.getInstance().getResourceTypes(typeIds.toArray(new
Integer[typeIds.size()]),
EnumSet.of(ResourceTypeRepository.MetadataType.subCategory),
new ResourceTypeRepository.TypesLoadedCallback() {
- @Override
+
public void onTypesLoaded(Map<Integer, ResourceType> types) {
ResourceGroupTreeView.this.typeMap = types;
loadTree(root);
@@ -342,12 +363,11 @@ public class ResourceGroupTreeView extends LocatableVLayout
implements Bookmarka
private void selectClusterGroup(ClusterKey key) {
GWTServiceLookup.getClusterService().createAutoClusterBackingGroup(key, true,
new AsyncCallback<ResourceGroup>() {
- @Override
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_createFailed_autoCluster(),
caught);
}
- @Override
public void onSuccess(ResourceGroup result) {
renderAutoCluster(result);
}
@@ -387,7 +407,7 @@ public class ResourceGroupTreeView extends LocatableVLayout implements
Bookmarka
treeGrid.setData(tree);
treeGrid.getTree().openFolder(rootNode);
- treeGrid.markForRedraw();
+ treeGrid.selectRecord(rootNode);
}
public void loadTree(ResourceGroupEnhancedTreeNode parentNode, ClusterFlyweight
parentClusterGroup,
@@ -636,5 +656,29 @@ public class ResourceGroupTreeView extends LocatableVLayout
implements Bookmarka
setAttribute(RESOURCE_TYPE, rt);
}
+ public boolean isTopNode() {
+ return getParentID().equals(FAKE_ROOT_ID);
+ }
+
+ public boolean isMixedGroupTopNode() {
+ return isTopNode() && (null == getResourceType());
+ }
+
+ public boolean isCompatibleGroupTopNode() {
+ return isTopNode() && (null != getResourceType()) && (null ==
getClusterKey());
+ }
+
+ public boolean isAutoGroupNode() {
+ return !isTopNode() && (null != getResourceType()) && (null
== getClusterKey());
+ }
+
+ public boolean isAutoClusterNode() {
+ return (null != getResourceType()) && (null != getClusterKey())
&& !isTopNode();
+ }
+
+ public boolean isSubCategoryNode() {
+ return (null == getResourceType()) && !isMixedGroupTopNode();
+ }
+
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
index 9870a42..455f414 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceTreeView.java
@@ -115,6 +115,7 @@ public class ResourceTreeView extends LocatableVLayout {
setShowResizeBar(true);
}
+ @Override
public void onInit() {
// TODO (ips): Are we intentionally avoiding calling super.onInit() here? If so,
why?
}
@@ -141,6 +142,7 @@ public class ResourceTreeView extends LocatableVLayout {
autoGroupContextMenu = new
ResourceGroupContextMenu(extendLocatorId("autoGroupContextMenu"));
treeGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
+
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (!selectionEvent.isRightButtonDown() &&
selectionEvent.getState()) {
ListGridRecord selectedRecord = treeGrid.getSelectedRecord();
@@ -168,6 +170,7 @@ public class ResourceTreeView extends LocatableVLayout {
AutoGroupTreeNode agNode = (AutoGroupTreeNode) selectedRecord;
selectedNodeId = agNode.getID();
getAutoGroupBackingGroup(agNode, new
AsyncCallback<ResourceGroup>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_loadFailed_selection(),
caught);
@@ -192,27 +195,35 @@ public class ResourceTreeView extends LocatableVLayout {
// setContextMenu(resourceContextMenu);
treeGrid.addNodeContextClickHandler(new NodeContextClickHandler() {
+
public void onNodeContextClick(final NodeContextClickEvent event) {
// stop the browser right-click menu
event.cancel();
// don't select the node on a right click, since we're not
navigating to it
treeGrid.deselectRecord(event.getNode());
+ TreeNode eventNode = event.getNode();
+
+ // re-select the current node if necessary
if (null != selectedNodeId) {
- treeGrid.selectRecord(treeGrid.getTree().findById(selectedNodeId));
+ TreeNode selectedNode = treeGrid.getTree().findById(selectedNodeId);
+ if (!eventNode.equals(selectedNode)) {
+ treeGrid.selectRecord(selectedNode);
+ }
}
- if (event.getNode() instanceof AutoGroupTreeNode) {
- showContextMenu((AutoGroupTreeNode) event.getNode());
- } else if (event.getNode() instanceof ResourceTreeNode) {
- if (!((ResourceTreeNode) event.getNode()).isLocked()) {
- showContextMenu((ResourceTreeNode) event.getNode());
+ if (eventNode instanceof AutoGroupTreeNode) {
+ showContextMenu((AutoGroupTreeNode) eventNode);
+ } else if (eventNode instanceof ResourceTreeNode) {
+ if (!((ResourceTreeNode) eventNode).isLocked()) {
+ showContextMenu((ResourceTreeNode) eventNode);
}
}
}
});
treeGrid.addDataArrivedHandler(new DataArrivedHandler() {
+
public void onDataArrived(DataArrivedEvent dataArrivedEvent) {
updateSelection();
}
@@ -236,6 +247,7 @@ public class ResourceTreeView extends LocatableVLayout {
criteria.addFilterAutoGroupParentResourceId(agNode.getParentResource().getId());
criteria.addFilterVisible(false);
resourceGroupService.findResourceGroupsByCriteria(criteria, new
AsyncCallback<PageList<ResourceGroup>>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_loadFailed_node(), caught);
}
@@ -315,6 +327,7 @@ public class ResourceTreeView extends LocatableVLayout {
private void showContextMenu(AutoGroupTreeNode agNode) {
getAutoGroupBackingGroup(agNode, new AsyncCallback<ResourceGroup>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_loadFailed_selection(),
caught);
}
@@ -334,6 +347,7 @@ public class ResourceTreeView extends LocatableVLayout {
criteria.addFilterId(resourceId);
GWTServiceLookup.getResourceService().findResourceCompositesByCriteria(criteria,
new AsyncCallback<PageList<ResourceComposite>>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getMessageCenter().notify(
new
Message(MSG.view_inventory_resource_loadFailed(String.valueOf(resourceId)),
@@ -359,6 +373,7 @@ public class ResourceTreeView extends LocatableVLayout {
ResourceTypeRepository.MetadataType.resourceConfigurationDefinition,
ResourceTypeRepository.MetadataType.measurements),
new ResourceTypeRepository.TypeLoadedCallback() {
+
public void onTypesLoaded(ResourceType type) {
buildResourceContextMenu(resourceComposite, type);
resourceContextMenu.showContextMenu();
@@ -386,6 +401,7 @@ public class ResourceTreeView extends LocatableVLayout {
// plugin config
MenuItem pluginConfiguration = new
MenuItem(MSG.view_tabs_common_connectionSettings());
pluginConfiguration.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent event) {
CoreGUI.goToView(LinkManager.getResourceTabLink(resource.getId(),
"Inventory", "ConnectionSettings"));
}
@@ -400,6 +416,7 @@ public class ResourceTreeView extends LocatableVLayout {
resourceConfiguration.setEnabled(enabled);
if (enabled) {
resourceConfiguration.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent event) {
CoreGUI.goToView(LinkManager.getResourceTabLink(resource.getId(),
"Configuration", "Current"));
}
@@ -420,6 +437,7 @@ public class ResourceTreeView extends LocatableVLayout {
for (final OperationDefinition operationDefinition :
resourceType.getOperationDefinitions()) {
MenuItem operationItem = new
MenuItem(operationDefinition.getDisplayName());
operationItem.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent event) {
CoreGUI.goToView(LinkManager.getResourceTabLink(resource.getId(),
ResourceDetailView.Tab.OPERATIONS,
ResourceDetailView.OperationsSubTab.SCHEDULES)
@@ -445,6 +463,7 @@ public class ResourceTreeView extends LocatableVLayout {
MenuItem createItem = new MenuItem(childType.getName());
createItem.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent event) {
ResourceFactoryCreateWizard.showCreateWizard(resource,
childType);
}
@@ -470,6 +489,7 @@ public class ResourceTreeView extends LocatableVLayout {
MenuItem importItem = new MenuItem(childType.getName());
importItem.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent event) {
ResourceFactoryImportWizard.showImportWizard(resource,
childType);
}
@@ -497,6 +517,7 @@ public class ResourceTreeView extends LocatableVLayout {
criteria.addFilterSupportsManualAdd(true);
criteria.fetchParentResourceTypes(true);
rts.findResourceTypesByCriteria(criteria, new
AsyncCallback<PageList<ResourceType>>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_contextMenu_loadFailed_manualAddChildren(),
caught);
@@ -508,6 +529,7 @@ public class ResourceTreeView extends LocatableVLayout {
MenuItem item = new MenuItem(type.getName());
item.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent event) {
ResourceFactoryImportWizard.showImportWizard(resource,
type);
}
@@ -527,6 +549,7 @@ public class ResourceTreeView extends LocatableVLayout {
DashboardCriteria criteria = new DashboardCriteria();
GWTServiceLookup.getDashboardService().findDashboardsByCriteria(criteria,
new AsyncCallback<PageList<Dashboard>>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_contextMenu_loadFailed_dashboard(),
caught);
@@ -547,6 +570,7 @@ public class ResourceTreeView extends LocatableVLayout {
defSubItem.addItem(addToDBItem);
addToDBItem.addClickHandler(new ClickHandler() {
+
public void onClick(MenuItemClickEvent
menuItemClickEvent) {
DashboardPortlet p = new DashboardPortlet(MSG
.view_tree_common_contextMenu_resourceGraph(),
ResourceGraphPortlet.KEY, 250);
@@ -559,6 +583,7 @@ public class ResourceTreeView extends LocatableVLayout {
GWTServiceLookup.getDashboardService().storeDashboard(d,
new AsyncCallback<Dashboard>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
MSG.view_tree_common_contextMenu_saveChartToDashboardFailure(),
@@ -651,6 +676,7 @@ public class ResourceTreeView extends LocatableVLayout {
addMember(treeGrid);
treeGrid.fetchData(treeGrid.getCriteria(), new DSCallback() {
+
public void execute(DSResponse response, Object rawData,
DSRequest request) {
Log.info("Done fetching data for tree.");
updateSelection();
@@ -670,6 +696,7 @@ public class ResourceTreeView extends LocatableVLayout {
ResourceTypeRepository.MetadataType.children,
ResourceTypeRepository.MetadataType.subCategory),
new ResourceTypeRepository.ResourceTypeLoadedCallback() {
+
public void onResourceTypeLoaded(List<Resource>
result) {
treeGrid.getTree()
.linkNodes(ResourceTreeDatasource.buildNodes(lineage, lockedData));
@@ -710,6 +737,7 @@ public class ResourceTreeView extends LocatableVLayout {
criteria.addFilterVisible(false);
criteria.fetchResourceType(true);
resourceGroupService.findResourceGroupsByCriteria(criteria, new
AsyncCallback<PageList<ResourceGroup>>() {
+
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_loadFailed_node(), caught);
}
@@ -719,12 +747,10 @@ public class ResourceTreeView extends LocatableVLayout {
// load the tree up to the autogroup's parent resource
loadTree(backingGroup.getAutoGroupParentResource().getId(), new
AsyncCallback<Void>() {
- @Override
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(MSG.view_tree_common_loadFailed_children(),
caught);
}
- @Override
public void onSuccess(Void arg) {
// get the node ID and use it to add a map entry, then call
this again to finish up...
selectedNodeId =
AutoGroupTreeNode.idOf(backingGroup.getAutoGroupParentResource(),
commit 22f96df0829e252b3c3de748bbddc7a5d7710704
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Mar 25 11:13:55 2011 -0400
Selenium - Make the Login and Registration dialogs locatable.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
index 3a5fa85..865793a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/LoginView.java
@@ -39,7 +39,6 @@ import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
@@ -69,6 +68,7 @@ import
org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIButton;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableWindow;
/**
* @author Greg Hinkle
@@ -78,8 +78,8 @@ public class LoginView extends LocatableCanvas {
private static boolean loginShowing = false;
- private Window window;
- private DynamicForm form;
+ private LocatableWindow window;
+ private LocatableDynamicForm form;
private LocatableDynamicForm inputForm;
private SubmitItem loginButton;
@@ -157,7 +157,7 @@ public class LoginView extends LocatableCanvas {
form.setFields(logo, header, new RowSpacerItem(), user, password,
loginButton);
- window = new Window();
+ window = new LocatableWindow(extendLocatorId("LoginWindow"));
window.setWidth(400);
window.setHeight(275);
window.setTitle(MSG.common_title_welcome());
@@ -367,7 +367,7 @@ public class LoginView extends LocatableCanvas {
row.addMember(logoutLabel);
column.addMember(row);
- window = new Window();
+ window = new
LocatableWindow(extendLocatorId("RegistrationWindow"));
window.setWidth(670);
window.setHeight(330);
window.setTitle(MSG.view_login_registerUser());