package com.hackerdude.apps.sqlide.dialogs;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.hackerdude.apps.sqlide.ProgramIcons;
import com.hackerdude.apps.sqlide.pluginapi.IDEPluginIF;
import com.hackerdude.apps.sqlide.plugins.definitions.PluginDefinition;
public class PluginDefinitionPanel extends JPanel {
private final PluginDefinition NULL_DEFINITION = getNullPluginDefinition();
private BorderLayout borderLayout1 = new BorderLayout();
private JLabel lblPluginDefinitionPanel = new JLabel();
private JPanel jPanel1 = new JPanel();
private GridBagLayout gridBagLayout1 = new GridBagLayout();
private JPanel pnlPluginName = new JPanel();
private JLabel lblPluginName = new JLabel();
private JPanel jPanel2 = new JPanel();
private JLabel lblPluginClass = new JLabel();
public PluginDefinition definition = NULL_DEFINITION;
public PluginDefinitionPanel() {
try {
jbInit();
updateControls();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
lblPluginDefinitionPanel.setText("Plugin Definition Panel");
this.setLayout(borderLayout1);
jPanel1.setLayout(gridBagLayout1);
lblPluginName.setText("Plugin Name: ");
lblPluginClass.setText("Plugin Class:");
this.add(lblPluginDefinitionPanel, BorderLayout.NORTH);
this.add(jPanel1, BorderLayout.CENTER);
jPanel1.add(pnlPluginName, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
pnlPluginName.add(lblPluginName, null);
jPanel1.add(jPanel2, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jPanel2.add(lblPluginClass, null);
}
public void setPluginDefinition(PluginDefinition definition) {
this.definition = definition;
if ( definition == null ) this.definition = NULL_DEFINITION;
updateControls();
}
public void updateControls() {
lblPluginName.setText("Plugin Name: "+definition.pluginInstance.getPluginName());
lblPluginName.setIcon(definition.pluginInstance.getPluginIcon());
lblPluginClass.setText("Plugin Class: "+definition.pluginInstance.getClass().getName());
}
private PluginDefinition getNullPluginDefinition() {
PluginDefinition result = new PluginDefinition();
result.pluginInstance = new IDEPluginIF() {
public String getPluginName() { return "No Plugin Selected"; }
public String getPluginShortName() { return "N/A"; }
public Icon getPluginIcon() {
return ProgramIcons.getInstance().getServerIcon();
}
public String getPluginVersion() { return "N/A"; }
public void freePlugin() {}
public void initPlugin() {}
};
return result;
}
}