modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
| 122 +++++++---
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
| 1
2 files changed, 97 insertions(+), 26 deletions(-)
New commits:
commit 8fae9036b8d8a4b2a16a3fecc72fb10ec87438d9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Feb 17 00:23:21 2011 -0500
Add I18N property for AD view
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
index fc0ada7..c2b3748 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
@@ -196,7 +196,7 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
if (isPlatform) {
if (isCheckboxMarked) {
- SC.ask("Also select the platform children?", new
BooleanCallback() {
+ SC.ask(MSG.view_autoDiscoveryQ_confirmSelect(), new
BooleanCallback() {
public void execute(Boolean confirmed) {
if (confirmed) {
for (ListGridRecord child :
treeGrid.getTree().getChildren(selectedNode)) {
diff --git
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index 7fee6eb..ff6beb0 100644
---
a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++
b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -1027,6 +1027,7 @@ view_autoDiscoveryQ_field_discoveryTime = Discovery Time
view_autoDiscoveryQ_field_inventoryStatus = Inventory Status
view_autoDiscoveryQ_loadFailure = Failed to load the inventory discovery queue
view_autoDiscoveryQ_showStatus = Show
+view_autoDiscoveryQ_confirmSelect = Also select the platform children?
#==================== Bundles ======================
commit 58131a2c0d844ccbc404fdc95dc0935c895fa386
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Feb 17 00:11:23 2011 -0500
fix: Bug 565852 - Ugly error message when trying to "Ignore" a platform
The use case for ignoring a platform is a little fuzzy, why run the agent
in the first place. But regardless, the root problem is that you get a
bad error trying to ignore a server resource beneath an uncommitted parent
platform. In general the button enablement for AD was lacking so the fix
is to prevent invalid button enablement.
Also, allow a user to just select/import a platform without automatically
selecting the children.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
index 1d5a254..fc0ada7 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/discovery/ResourceAutodiscoveryView.java
@@ -28,6 +28,8 @@ import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.types.Autofit;
import com.smartgwt.client.types.SelectionAppearance;
import com.smartgwt.client.types.VerticalAlignment;
+import com.smartgwt.client.util.BooleanCallback;
+import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.HTMLFlow;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Img;
@@ -44,6 +46,7 @@ import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
import com.smartgwt.client.widgets.tree.TreeGrid;
import com.smartgwt.client.widgets.tree.TreeGridField;
+import com.smartgwt.client.widgets.tree.TreeNode;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
@@ -135,9 +138,6 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
}
treeGrid.setSelectionAppearance(SelectionAppearance.CHECKBOX);
- treeGrid.setShowSelectedStyle(false);
- treeGrid.setShowPartialSelection(true);
- treeGrid.setCascadeSelection(true);
// Do this last since it causes the TreeGrid to be initialized.
treeGrid.deselectAllRecords();
@@ -180,8 +180,91 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
footer.addMember(form);
treeGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
+ // use this to ignore selection changes we initiate from within this handler
+ private boolean selectionChangedHandlerDisabled = false;
+
public void onSelectionChanged(SelectionEvent selectionEvent) {
- updateButtonEnablement(importButton, ignoreButton, unignoreButton);
+ if (selectionChangedHandlerDisabled ||
selectionEvent.isRightButtonDown()) {
+ return;
+ }
+ selectionChangedHandlerDisabled = true;
+
+ final TreeNode selectedNode = (TreeNode) selectionEvent.getRecord();
+ TreeNode parentNode = treeGrid.getTree().getParent(selectedNode);
+ boolean isPlatform = treeGrid.getTree().isRoot(parentNode);
+ boolean isCheckboxMarked = treeGrid.isSelected(selectedNode);
+
+ if (isPlatform) {
+ if (isCheckboxMarked) {
+ SC.ask("Also select the platform children?", new
BooleanCallback() {
+ public void execute(Boolean confirmed) {
+ if (confirmed) {
+ for (ListGridRecord child :
treeGrid.getTree().getChildren(selectedNode)) {
+ if (!treeGrid.isSelected(child)) {
+ treeGrid.selectRecord(child);
+ }
+ }
+ }
+ updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
+ selectionChangedHandlerDisabled = false;
+ }
+ });
+ } else {
+ for (ListGridRecord child :
treeGrid.getTree().getChildren(selectedNode)) {
+ if (treeGrid.isSelected(child)) {
+ treeGrid.deselectRecord(child);
+ }
+ }
+ // the immediate redraw below should not be necessary but without
it the deselected
+ // platform checkbox remained checked.
+ treeGrid.redraw();
+ updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
+ selectionChangedHandlerDisabled = false;
+ }
+ } else {
+ if (isCheckboxMarked) {
+ if (!treeGrid.isSelected(parentNode)) {
+ treeGrid.selectRecord(parentNode);
+ }
+ }
+ updateButtonEnablement(importButton, ignoreButton, unignoreButton);
+ selectionChangedHandlerDisabled = false;
+ }
+ }
+
+ private void updateButtonEnablement(IButton importButton, IButton
ignoreButton, IButton unignoreButton) {
+ if (treeGrid.getSelection().length == 0) {
+ importButton.setDisabled(true);
+ ignoreButton.setDisabled(true);
+ unignoreButton.setDisabled(true);
+ return;
+ }
+
+ boolean importOk = false;
+ boolean ignoreOk = false;
+ boolean unignoreOk = false;
+
+ for (ListGridRecord listGridRecord : treeGrid.getSelection()) {
+ TreeNode node = (TreeNode) listGridRecord;
+ String status = node.getAttributeAsString("status");
+ TreeNode parentNode = treeGrid.getTree().getParent(node);
+ boolean isPlatform = treeGrid.getTree().isRoot(parentNode);
+
+ importOk |= InventoryStatus.NEW.name().equals(status);
+ unignoreOk |= InventoryStatus.IGNORED.name().equals(status);
+
+ if (!isPlatform) {
+ String parentStatus =
parentNode.getAttributeAsString("status");
+ if (InventoryStatus.COMMITTED.name().equals(parentStatus)) {
+ ignoreOk |= InventoryStatus.NEW.name().equals(status);
+ }
+ }
+ }
+
+ importButton.setDisabled(!importOk || unignoreOk);
+ ignoreButton.setDisabled(!ignoreOk || unignoreOk);
+ unignoreButton.setDisabled(!unignoreOk || importOk || ignoreOk);
+ markForRedraw();
}
});
@@ -189,20 +272,18 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
public void onClick(ClickEvent clickEvent) {
disableButtons(importButton, ignoreButton, unignoreButton);
CoreGUI.getMessageCenter().notify(
- new Message("Importing the selected
Resources...",
- Message.Severity.Info,
EnumSet.of(Message.Option.Transient)));
+ new Message("Importing the selected Resources...",
Message.Severity.Info, EnumSet
+ .of(Message.Option.Transient)));
resourceService.importResources(getSelectedIds(), new
AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
CoreGUI.getErrorHandler().handleError(MSG.view_autoDiscoveryQ_importFailure(), caught);
}
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_autoDiscoveryQ_importSuccessful(),
Message.Severity.Info));
+ new Message(MSG.view_autoDiscoveryQ_importSuccessful(),
Message.Severity.Info));
refresh();
- updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
}
});
}
@@ -212,20 +293,18 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
public void onClick(ClickEvent clickEvent) {
disableButtons(importButton, ignoreButton, unignoreButton);
CoreGUI.getMessageCenter().notify(
- new Message("Ignoring the selected
Resources...",
- Message.Severity.Info,
EnumSet.of(Message.Option.Transient)));
+ new Message("Ignoring the selected Resources...",
Message.Severity.Info, EnumSet
+ .of(Message.Option.Transient)));
resourceService.ignoreResources(getSelectedIds(), new
AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
CoreGUI.getErrorHandler().handleError(MSG.view_autoDiscoveryQ_ignoreFailure(), caught);
}
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_autoDiscoveryQ_ignoreSuccessful(),
Message.Severity.Info));
+ new Message(MSG.view_autoDiscoveryQ_ignoreSuccessful(),
Message.Severity.Info));
refresh();
- updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
}
});
}
@@ -235,20 +314,18 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
public void onClick(ClickEvent clickEvent) {
disableButtons(importButton, ignoreButton, unignoreButton);
CoreGUI.getMessageCenter().notify(
- new Message("Unignoring the selected
Resources...",
- Message.Severity.Info,
EnumSet.of(Message.Option.Transient)));
+ new Message("Unignoring the selected Resources...",
Message.Severity.Info, EnumSet
+ .of(Message.Option.Transient)));
resourceService.unignoreResources(getSelectedIds(), new
AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
- updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
CoreGUI.getErrorHandler().handleError(MSG.view_autoDiscoveryQ_unignoreFailure(), caught);
}
public void onSuccess(Void result) {
CoreGUI.getMessageCenter().notify(
- new Message(MSG.view_autoDiscoveryQ_unignoreSuccessful(),
Message.Severity.Info));
+ new Message(MSG.view_autoDiscoveryQ_unignoreSuccessful(),
Message.Severity.Info));
refresh();
- updateButtonEnablement(importButton, ignoreButton,
unignoreButton);
}
});
}
@@ -256,13 +333,6 @@ public class ResourceAutodiscoveryView extends LocatableVLayout {
}
- private void updateButtonEnablement(IButton importButton, IButton ignoreButton,
IButton unignoreButton) {
- boolean noneSelected = treeGrid.getSelection().length == 0;
- importButton.setDisabled(noneSelected);
- ignoreButton.setDisabled(noneSelected);
- unignoreButton.setDisabled(noneSelected);
- }
-
private void disableButtons(IButton... buttons) {
for (IButton button : buttons) {
button.setDisabled(true);