--- a/usr/src/java/vpanels/app/usermgr/com/oracle/solaris/vp/panels/usermgr/client/swing/MainControl.java Thu Apr 26 00:14:30 2012 -0400
+++ b/usr/src/java/vpanels/app/usermgr/com/oracle/solaris/vp/panels/usermgr/client/swing/MainControl.java Fri Apr 27 00:52:26 2012 -0400
@@ -26,7 +26,10 @@
package com.oracle.solaris.vp.panels.usermgr.client.swing;
import java.util.List;
+import java.util.Map;
import javax.swing.*;
+import javax.swing.event.*;
+import java.awt.event.*;
import javax.swing.border.Border;
import com.oracle.solaris.vp.panel.common.action.*;
import com.oracle.solaris.vp.panel.common.control.*;
@@ -36,6 +39,9 @@
import com.oracle.solaris.vp.util.misc.finder.Finder;
import com.oracle.solaris.vp.util.swing.ClippedBorder;
+/**
+ * Main User Manager Control
+ */
public class MainControl extends ListSelectorControl
<UserMgrPanelDescriptor, ListSelectorPanel, UserManagedObject> {
@@ -50,6 +56,8 @@
//
private ManagedObjectTableModel model;
+ private ListSelectorPanel panel;
+ private UserMgrBasicControl control = null;
//
// Constructors
@@ -64,6 +72,11 @@
//
@Override
+ public String getHelpMapID() {
+ return "usermgr-mainpanel";
+ }
+
+ @Override
protected void save() throws ActionAbortedException, ActionFailedException,
ActionUnauthorizedException {
@@ -73,11 +86,9 @@
getPanelDescriptor().saveAddedUsers();
getPanelDescriptor().saveModifiedUsers();
+ control.clearChanges();
super.save();
-
- // update status counts
- getPanelDescriptor().setStatusText();
}
//
@@ -87,7 +98,7 @@
@Override
protected void ensureChildrenCreated() {
if (children.size() == 0) {
- SwingControl control = new UserMgrControl(getPanelDescriptor());
+ control = new UserMgrBasicControl(getPanelDescriptor());
addChildren(control);
addToLayout(control);
}
@@ -98,8 +109,8 @@
//
@Override
protected ListSelectorPanel createComponent() {
- ListSelectorPanel panel = new ListSelectorPanel();
- panel.setSelectionTitle(Finder.getString("usermgr.list.title"));
+ panel = new ListSelectorPanel();
+ panel.setSelectionTitle(Finder.getString("usermgr.list.title.user"));
Border border = panel.getBorder();
panel.setBorder(new ClippedBorder(border, false, true, true, true));
@@ -114,9 +125,10 @@
panel.getChangeableAggregator().addChangeables(
getPanelDescriptor().getChangeableAggregator());
- // Add actions to create/delete users
+ // Add actions to create/delete/filter users
addAction(panel, new AddUserAction(this), true, true);
addAction(panel, new DeleteUserAction(this), true, true);
+ addAction(panel, new FilterUserAction(this), true, true);
setDefaultContentView(new UserMgrEmptyPanel());
@@ -129,6 +141,7 @@
addDefaultApplyAction();
addDefaultCancelAction(true);
addDefaultOkayAction(true);
+ addDefaultHelpAction();
}
@Override
@@ -180,8 +193,8 @@
return null;
}
UserManagedObject uobj = selection.get(0);
- Navigable navigable = new SimpleNavigable(UserMgrControl.ID,
- uobj.getName(), UserMgrControl.PARAM_USER, uobj.getId());
+ Navigable navigable = new SimpleNavigable(UserMgrBasicControl.ID,
+ uobj.getName(), UserMgrBasicControl.PARAM_USER, uobj.getId());
return new Navigable[] {navigable};
}
@@ -194,7 +207,8 @@
*/
@Override
protected int getListIndexOf(Control child) {
- UserManagedObject umo = ((UserMgrControl)child).getUserManagedObject();
+ UserManagedObject umo =
+ ((UserMgrBasicControl)child).getUserManagedObject();
int uIndex = getPanelDescriptor().indexOf(umo);
UserManagedObject utemp = (UserManagedObject) getComponent().
@@ -216,4 +230,40 @@
return model;
}
+ /**
+ * Get the model to use in the Users list
+ */
+ public void setListTitle(String listTitle) {
+ if (panel != null)
+ panel.setSelectionTitle(listTitle);
+ }
+
+
+ @Override
+ protected void addDefaultCancelAction(final boolean quit) {
+ getComponent().getButtonBar().getCancelButton().addActionListener(
+ new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ Control.UnsavedChangesAction action;
+ ChangeableAggregator aggregator =
+ getComponent().getChangeableAggregator();
+ if (aggregator != null && aggregator.isChanged()) {
+ action = getUnsavedChangesAction();
+ } else {
+ action = Control.UnsavedChangesAction.DISCARD;
+ }
+ switch (action) {
+ case SAVE:
+ doSaveAndQuit();
+ break;
+ case DISCARD:
+ doQuit();
+ break;
+ case CANCEL:
+ break;
+ }
+ }
+ });
+ }
}