package com.hackerdude.apps.sqlide.dialogs; import java.awt.BorderLayout; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JSplitPane; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import com.hackerdude.apps.sqlide.RunningPlugins; import com.hackerdude.apps.sqlide.SqlIdeApplication; import com.hackerdude.apps.sqlide.plugins.definitions.PluginDefinition; import com.hackerdude.swing.SwingUtils; public class DlgPluginManager extends JDialog { private BorderLayout borderLayout1 = new BorderLayout(); private JSplitPane spPluginSplit = new JSplitPane(); private PluginRegistryPanel runningPluginsPanel = new PluginRegistryPanel(); private PluginDefinitionPanel pnlPluginDefinition = new PluginDefinitionPanel(); private final ListSelectionListener LIST_SELECTION_LISTENER = new PluginRegistrySelectionListener(); public DlgPluginManager(JFrame owner) { super(owner); try { jbInit(); runningPluginsPanel.addListSelectionListener(LIST_SELECTION_LISTENER); } catch(Exception e) { e.printStackTrace(); } } public DlgPluginManager() { try { jbInit(); runningPluginsPanel.addListSelectionListener(LIST_SELECTION_LISTENER); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.getContentPane().setLayout(borderLayout1); spPluginSplit.setOrientation(JSplitPane.VERTICAL_SPLIT); this.getContentPane().add(spPluginSplit, BorderLayout.NORTH); spPluginSplit.add(runningPluginsPanel, JSplitPane.TOP); spPluginSplit.add(pnlPluginDefinition, JSplitPane.BOTTOM); } public static void main(String[] args) { RunningPlugins plugins = SqlIdeApplication.getInstance().getRunningPlugins(); DlgPluginManager mgr = new DlgPluginManager(); mgr.setTitle("Plugin Manager"); mgr.runningPluginsPanel.setRunningPlugins(plugins); mgr.pack(); mgr.show(); } public static void showPluginManager(JFrame owner, String title) { RunningPlugins plugins = SqlIdeApplication.getInstance().getRunningPlugins(); DlgPluginManager mgr = new DlgPluginManager(owner); mgr.setTitle(title); mgr.setModal(true); mgr.runningPluginsPanel.setRunningPlugins(plugins); mgr.pack(); mgr.setLocation(SwingUtils.getCenteredWindowPoint(mgr)); mgr.show(); } class PluginRegistrySelectionListener implements ListSelectionListener { public void valueChanged(ListSelectionEvent evt) { ListSelectionModel model = (ListSelectionModel)evt.getSource(); int index = model.getLeadSelectionIndex(); PluginDefinition definition = index == -1?null:(PluginDefinition)runningPluginsPanel.getElementAt(index); pnlPluginDefinition.setPluginDefinition(definition); } } }