modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
| 25 ++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
| 14 ++-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/selector/AbstractSelector.java
| 37 ++++++++--
4 files changed, 61 insertions(+), 17 deletions(-)
New commits:
commit 74b209041a0b4d7646b68791a1082ef7eaed44b9
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Nov 29 08:54:18 2010 -0500
fix getSelection() in AbstractSelector and add new getSelectedRecords() and
getSelectedItems() methods; fix some potential NPEs in UserEditView and RoleEditView
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
index 800c7a0..f8f9b5a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java
@@ -255,15 +255,19 @@ public class RoleEditView extends
AbstractRecordEditor<RolesDataSource> implemen
protected void save() {
// Grab the currently assigned sets from each of the selectors and stick them
into the corresponding canvas
// items on the form, so when the form is saved, they'll get submitted along
with the rest of the simple fields
- // to the datasource's add or update methods .
- ListGridRecord[] groupRecords =
this.groupSelector.getAssignedGrid().getRecords();
- getForm().setValue(RolesDataSource.Field.RESOURCE_GROUPS, groupRecords);
+ // to the datasource's add or update methods.
+ if (this.groupSelector != null) {
+ ListGridRecord[] groupRecords = this.groupSelector.getSelectedRecords();
+ getForm().setValue(RolesDataSource.Field.RESOURCE_GROUPS, groupRecords);
+ }
- ListGridRecord[] subjectRecords =
this.subjectSelector.getAssignedGrid().getRecords();
- getForm().setValue(RolesDataSource.Field.SUBJECTS, subjectRecords);
+ if (this.subjectSelector != null) {
+ ListGridRecord[] subjectRecords = this.subjectSelector.getSelectedRecords();
+ getForm().setValue(RolesDataSource.Field.SUBJECTS, subjectRecords);
+ }
if (this.ldapGroupSelector != null) {
- ListGridRecord[] ldapGroupRecords =
this.ldapGroupSelector.getAssignedGrid().getRecords();
+ ListGridRecord[] ldapGroupRecords =
this.ldapGroupSelector.getSelectedRecords();
getForm().setValue(RolesDataSource.Field.LDAP_GROUPS, ldapGroupRecords);
}
@@ -276,8 +280,13 @@ public class RoleEditView extends
AbstractRecordEditor<RolesDataSource> implemen
super.reset();
this.permissionsItem.reset();
- this.groupSelector.reset();
- this.subjectSelector.reset();
+
+ if (this.groupSelector != null) {
+ this.groupSelector.reset();
+ }
+ if (this.subjectSelector != null) {
+ this.subjectSelector.reset();
+ }
if (this.ldapGroupSelector != null) {
this.ldapGroupSelector.reset();
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
index 80194f7..8f9a192 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java
@@ -102,7 +102,7 @@ public class RoleLdapGroupSelector extends
AbstractSelector<PageList<LdapGroup>>
if (currentRoleId > -1) {
//add listener to AvailableGrid, to act after successfully populated.
- getAvailableGrid().addDataArrivedHandler(new DataArrivedHandler() {
+ this.availableGrid.addDataArrivedHandler(new DataArrivedHandler() {
@Override
public void onDataArrived(DataArrivedEvent event) {
int currentRoleId = getCurrentRoleId();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
index 391c8f8..b54c5f4 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/users/UserEditView.java
@@ -214,8 +214,13 @@ public class UserEditView extends
AbstractRecordEditor<UsersDataSource> {
@Override
protected void save() {
- ListGridRecord[] roleRecords = this.roleSelector.getAssignedGrid().getRecords();
- getForm().setValue(UsersDataSource.Field.ROLES, roleRecords);
+ // Grab the currently assigned roles from the selector and stick them into the
corresponding canvas
+ // item on the form, so when the form is saved, they'll get submitted along
with the rest of the simple fields
+ // to the datasource's add or update methods.
+ if (roleSelector != null) {
+ ListGridRecord[] roleRecords = this.roleSelector.getSelectedRecords();
+ getForm().setValue(UsersDataSource.Field.ROLES, roleRecords);
+ }
// Submit the form values to the datasource.
super.save();
@@ -224,7 +229,10 @@ public class UserEditView extends
AbstractRecordEditor<UsersDataSource> {
@Override
protected void reset() {
super.reset();
- this.roleSelector.reset();
+
+ if (this.roleSelector != null) {
+ this.roleSelector.reset();
+ }
}
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/selector/AbstractSelector.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/selector/AbstractSelector.java
index 62174c6..daae8b2 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/selector/AbstractSelector.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/selector/AbstractSelector.java
@@ -109,11 +109,13 @@ public abstract class AbstractSelector<T> extends
LocatableVLayout {
this.hlayout = new HLayout();
this.assignedGrid = new
LocatableListGrid(extendLocatorId("assignedGrid"));
+ this.assignedGrid.setEmptyMessage(MSG.common_msg_loading());
if (this.isReadOnly) {
this.assignedGrid.setSelectionType(SelectionStyle.NONE);
} else {
this.availableGrid = new
LocatableListGrid(extendLocatorId("availableGrid"));
+ this.availableGrid.setEmptyMessage(MSG.common_msg_loading());
}
}
@@ -122,12 +124,37 @@ public abstract class AbstractSelector<T> extends
LocatableVLayout {
}
/**
- * Returns the list of IDs for the records being transferred.
+ * Returns the set of currently selected {@link Record record}s.
+ *
+ * @return the set of currently selected {@link Record record}s
+ */
+ public ListGridRecord[] getSelectedRecords() {
+ return this.assignedGrid.getSelection();
+ }
+
+ /**
+ * Returns the set of currently selected {@link T item}s.
+ *
+ * @return the set of currently selected {@link T item}s
+ */
+ public Set<T> getSelectedItems() {
+ ListGridRecord[] selectedRecords = this.assignedGrid.getSelection();
+ return getDataSource().buildDataObjects(selectedRecords);
+ }
+
+ /**
+ * Returns the IDs of the currently selected items
*
- * @return the list of IDs for the records being transferred
+ * @return the IDs of the currently selected items
*/
public Set<Integer> getSelection() {
- return selection;
+ ListGridRecord[] selectedRecords = this.assignedGrid.getSelection();
+ Set<Integer> ids = new HashSet<Integer>(selectedRecords.length);
+ for (ListGridRecord selectedRecord : selectedRecords) {
+ Integer id = selectedRecord.getAttributeAsInt(getSelectorKey());
+ ids.add(id);
+ }
+ return ids;
}
public Set<String> getSelectionAlternateIds() {
@@ -521,12 +548,12 @@ public abstract class AbstractSelector<T> extends
LocatableVLayout {
availableGrid.markForRedraw();
}
- // TODO: Add reset() method.
-
+ @Deprecated
public LocatableListGrid getAvailableGrid() {
return availableGrid;
}
+ @Deprecated
public LocatableListGrid getAssignedGrid() {
return assignedGrid;
}
Show replies by date