--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/BlockingGlassPane.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/BlockingGlassPane.java Fri Apr 10 10:32:17 2009 -0400
@@ -80,14 +80,17 @@
prevFocusComp = KeyboardFocusManager.
getCurrentKeyboardFocusManager().getFocusOwner();
requestFocusInWindow();
- } else if (prevFocusComp != null) {
- EventQueue.invokeLater(
- new Runnable() {
- @Override
- public void run() {
- prevFocusComp.requestFocusInWindow();
- }
- });
+ } else {
+ final Component comp = prevFocusComp;
+ if (comp != null) {
+ EventQueue.invokeLater(
+ new Runnable() {
+ @Override
+ public void run() {
+ comp.requestFocusInWindow();
+ }
+ });
+ }
}
}
}
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/ListSelectorControl.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/ListSelectorControl.java Fri Apr 10 10:32:17 2009 -0400
@@ -82,6 +82,7 @@
//
private NavListSelectionModel listSelModel;
+ private Component defaultContentView;
private List<StructuredAction<List<S>, ?, ?>> mActions =
new ArrayList<StructuredAction<List<S>, ?, ?>>();
@@ -123,6 +124,15 @@
}
}
+ @Override
+ public void childStopped(Control child) {
+ super.childStopped(child);
+
+ JPanel contentCardPane = getComponent().getContentCardPane();
+ CardLayout cards = (CardLayout)contentCardPane.getLayout();
+ cards.show(contentCardPane, getId());
+ }
+
//
// SwingControl methods
//
@@ -143,6 +153,11 @@
}
}
});
+
+ Component defaultContentView = getDefaultContentView();
+ if (defaultContentView != null) {
+ panel.getContentCardPane().add(defaultContentView, getId());
+ }
}
@Override
@@ -173,7 +188,7 @@
/**
* Adds the {@code Component}s of the given {@link SwingControl}s,
* presumably children of this {@code ListSelectorControl}, to the layout of
- * the UI. The {@code Component}s must not already be parented to be added.
+ * the UI. The {@code Component}s must not already be parented to be added.
* <p>
* This methid is called automatically by {@link #childStarted}, but
* subclasses may call it when creating child {@link Control}s if there is a
@@ -206,6 +221,21 @@
}
/**
+ * Gets a {@code Component} to display in the {@link ListSelectorPanel}'s
+ * content area when no {@code Component} of a child {@link SwingControl} is
+ * shown.
+ * <p/>
+ * This default implementation returns {@code null}.
+ *
+ * @see #setDefaultContentView
+ *
+ * @return a {@code Component}, or {@code null} to not show a default
+ */
+ protected Component getDefaultContentView() {
+ return defaultContentView;
+ }
+
+ /**
* Gets the index of the list item that corresponds to the given child
* {@code Control}.
*/
@@ -233,6 +263,20 @@
protected abstract Navigable[] getPathForSelection(int[] indexes,
Object[] items);
+ /**
+ * Sets a {@code Component} to display in the {@link ListSelectorPanel}'s
+ * content area when no {@code Component} of a child {@link SwingControl} is
+ * shown.
+ *
+ * @param defaultContentView
+ * a {@code Component}, or {@code null} to not show a default
+ *
+ * @see #getDefaultContentView
+ */
+ protected void setDefaultContentView(Component defaultContentView) {
+ this.defaultContentView = defaultContentView;
+ }
+
//
// Private methods
//
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CloneVirtualHostAction.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CloneVirtualHostAction.java Fri Apr 10 10:32:17 2009 -0400
@@ -33,6 +33,7 @@
import org.opensolaris.os.scf.common.ScfException;
import org.opensolaris.os.vp.common.smf.ServiceMXBean;
import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.*;
import org.opensolaris.os.vp.panel.common.model.ManagedObject;
import org.opensolaris.os.vp.panel.common.smf.*;
import org.opensolaris.os.vp.panel.swing.action.CloneManagedObjectAction;
@@ -158,6 +159,13 @@
}
}
+ // Navigate to the new virtual host
+ Navigable navigable = new SimpleNavigable(
+ VirtualHostControl.ID, null,
+ VirtualHostControl.PARAM_VHOST, vHost.getId());
+
+ control.getNavigator().goToAsync(control, navigable);
+
return vHost;
}
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateMimeTypeAction.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateMimeTypeAction.java Fri Apr 10 10:32:17 2009 -0400
@@ -33,6 +33,7 @@
import javax.swing.*;
import org.opensolaris.os.scf.common.ScfException;
import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.*;
import org.opensolaris.os.vp.panel.common.smf.ScfUtil;
import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
import org.opensolaris.os.vp.util.misc.*;
@@ -205,6 +206,13 @@
throw new ActionUnauthorizedException(e);
}
+ // Navigate to the new MIME type
+ Navigable navigable = new SimpleNavigable(
+ MimeTypeControl.ID, null,
+ MimeTypeControl.PARAM_MIMETYPE, mimeType.getId());
+
+ control.getNavigator().goToAsync(control, navigable);
+
return mimeType;
}
}
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateModuleAction.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateModuleAction.java Fri Apr 10 10:32:17 2009 -0400
@@ -34,6 +34,7 @@
import javax.swing.filechooser.FileSystemView;
import org.opensolaris.os.scf.common.ScfException;
import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.*;
import org.opensolaris.os.vp.panel.common.smf.ScfUtil;
import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
import org.opensolaris.os.vp.util.misc.*;
@@ -201,6 +202,13 @@
throw new ActionUnauthorizedException(e);
}
+ // Navigate to the new module
+ Navigable navigable = new SimpleNavigable(
+ ModuleControl.ID, null,
+ ModuleControl.PARAM_MODULE, module.getId());
+
+ control.getNavigator().goToAsync(control, navigable);
+
return module;
}
}
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateVirtualHostAction.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateVirtualHostAction.java Fri Apr 10 10:32:17 2009 -0400
@@ -33,6 +33,7 @@
import org.opensolaris.os.scf.common.ScfException;
import org.opensolaris.os.vp.common.smf.ServiceMXBean;
import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.*;
import org.opensolaris.os.vp.panel.common.model.ManagedObject;
import org.opensolaris.os.vp.panel.common.smf.*;
import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
@@ -144,6 +145,13 @@
}
}
+ // Navigate to the new virtual host
+ Navigable navigable = new SimpleNavigable(
+ VirtualHostControl.ID, null,
+ VirtualHostControl.PARAM_VHOST, vHost.getId());
+
+ control.getNavigator().goToAsync(control, navigable);
+
return vHost;
}
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypesControl.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypesControl.java Fri Apr 10 10:32:17 2009 -0400
@@ -26,9 +26,8 @@
package org.opensolaris.os.vp.panels.apache.client.swing;
-import java.awt.*;
+import java.awt.Image;
import java.net.URL;
-import java.util.*;
import java.util.List;
import javax.swing.ListModel;
import org.opensolaris.os.vp.panel.common.control.*;
@@ -105,7 +104,9 @@
protected void ensureChildrenCreated() {
if (children.size() == 0) {
ApachePanelDescriptor descriptor = getPanelDescriptor();
- addChildren(new MimeTypeControl(descriptor, this));
+ SwingControl child = new MimeTypeControl(descriptor, this);
+ addChildren(child);
+ addToLayout(child);
}
}
@@ -132,6 +133,8 @@
addDefaultOkayAction(panel, false);
addDefaultHelpAction(panel);
+ setDefaultContentView(new NoMimeTypePanel());
+
return panel;
}
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulesControl.java Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulesControl.java Fri Apr 10 10:32:17 2009 -0400
@@ -26,9 +26,8 @@
package org.opensolaris.os.vp.panels.apache.client.swing;
-import java.awt.*;
+import java.awt.Image;
import java.net.URL;
-import java.util.*;
import java.util.List;
import javax.swing.ListModel;
import org.opensolaris.os.vp.panel.common.control.*;
@@ -104,7 +103,9 @@
protected void ensureChildrenCreated() {
if (children.size() == 0) {
ApachePanelDescriptor descriptor = getPanelDescriptor();
- addChildren(new ModuleControl(descriptor, this));
+ SwingControl child = new ModuleControl(descriptor, this);
+ addChildren(child);
+ addToLayout(child);
}
}
@@ -131,6 +132,8 @@
addDefaultOkayAction(panel, false);
addDefaultHelpAction(panel);
+ setDefaultContentView(new NoModulePanel());
+
return panel;
}
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/resources/Resources.properties Fri Apr 10 10:24:57 2009 -0400
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/resources/Resources.properties Fri Apr 10 10:32:17 2009 -0400
@@ -86,6 +86,7 @@
#
mimetypes.title = Custom MIME types
+mimetypes.default.message = No MIME types are defined. Click the "{0}" button to create one.
mimetypes.action.create.button = New MIME Type...
mimetypes.action.create.title = Create a MIME Type
mimetypes.action.delete.button = Delete
@@ -110,6 +111,7 @@
#
modules.title = Custom Modules
+modules.default.message = No modules are defined. Click the "{0}" button to create one.
modules.action.create.button = New Module...
modules.action.create.title = Create a Module
modules.action.create.message = Specify a domain name for the new virtual host.