package com.vividsolutions.jump.workbench.ui.plugin.datastore;
import java.awt.BorderLayout;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import com.vividsolutions.jump.I18N;
import com.vividsolutions.jump.util.Blackboard;
import com.vividsolutions.jump.workbench.datastore.ConnectionManager;
import com.vividsolutions.jump.workbench.plugin.EnableCheck;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
import com.vividsolutions.jump.workbench.ui.GUIUtil;
import com.vividsolutions.jump.workbench.ui.MenuNames;
import com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller;
import com.vividsolutions.jump.workbench.ui.toolbox.ToolboxDialog;
import com.vividsolutions.jump.workbench.ui.toolbox.ToolboxPlugIn;
public class ConnectionManagerToolboxPlugIn extends ToolboxPlugIn {
private static final String INSTANCE_KEY = ConnectionManagerToolboxPlugIn.class
.getName()
+ " - INSTANCE";
private ConnectionManagerToolboxPlugIn() {
}
public String getName() {
// Specify name explicitly, as auto-name-generator
// says "Connection Manager Toolbox" [Jon Aquino 2005-03-14]
return I18N.get("jump.workbench.ui.plugin.datastore.ConnectionManagerToolboxPlugIn.Connection-Manager");
}
public static final ConnectionManagerToolboxPlugIn instance(
Blackboard blackboard) {
if (blackboard.get(INSTANCE_KEY) == null) {
blackboard.put(INSTANCE_KEY, new ConnectionManagerToolboxPlugIn());
}
return (ConnectionManagerToolboxPlugIn) blackboard.get(INSTANCE_KEY);
}
public void initialize(final PlugInContext context) throws Exception {
if (1 == 1) {
throw new UnsupportedOperationException(
"To do: fix: ConnectionManagerToolbox does not stay in sync with ConnectionManager object. Implement eventing. [Jon Aquino 2005-03-24]");
}
new FeatureInstaller(context.getWorkbenchContext()).addMainMenuItem(
this, (new String[] { MenuNames.VIEW }), getName() + "...{pos:1}",
true, null, new EnableCheck() {
public String check(JComponent component) {
((JCheckBoxMenuItem) component).setSelected(getToolbox(
context.getWorkbenchContext()).isVisible());
return null;
}
});
}
protected void initializeToolbox(ToolboxDialog toolbox) {
ConnectionManagerPanel connectionManagerPanel = new ConnectionManagerPanel(
ConnectionManager
.instance(toolbox.getContext()),
toolbox.getContext().getRegistry(), toolbox.getContext()
.getErrorHandler(),toolbox.getContext());
toolbox.getCenterPanel().add(connectionManagerPanel,
BorderLayout.CENTER);
toolbox.setInitialLocation(new GUIUtil.Location(20, true, 20, false));
}
}