package com.hackerdude.apps.sqlide.plugins.pgsql.storedproc;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.Action;
import javax.swing.Icon;
import com.hackerdude.apps.sqlide.ProgramIcons;
import com.hackerdude.apps.sqlide.dataaccess.DatabaseProcess;
import com.hackerdude.apps.sqlide.pluginapi.AbstractVisualPlugin;
/**
* A stored procedure editor.
*/
public class StoredProcedureEditor extends AbstractVisualPlugin {
DatabaseProcess process;
ItemStoredProcedureNode storedProcedure;
EditorPanel editorPanel;
BorderLayout layout;
public StoredProcedureEditor() {
super();
layout = new BorderLayout();
setLayout(layout);
editorPanel = new EditorPanel();
add(editorPanel, BorderLayout.CENTER);
}
public String getPluginName() { return "Procedure Editor"; }
public String getPluginVersion() { return "0.0"; }
public String getPluginShortName() { return "Function "+(storedProcedure==null?"":" - "+storedProcedure.toString()); }
public void initPlugin() {
super.initPlugin();
}
public void freePlugin() {
}
public Icon getPluginIcon() {
return ProgramIcons.getInstance().findIcon("images/storedproc.gif");
}
public Action[] getPossibleActions() {
return NULL_ACTIONS;
}
public void receivePluginFocus() {
}
public void setDatabaseProcess(DatabaseProcess process) {
this.process = process;
}
public DatabaseProcess getDatabaseProcess() {
return process;
}
public boolean executeStandardAction(ActionEvent evt) {
return false;
}
public void setStoredProcedure(ItemStoredProcedureNode storedProcedure) {
this.storedProcedure = storedProcedure;
}
public void doCopy() {}
public void doCut() {
}
public void doPaste() {
}
public void doSaveFileAs() {
}
public void doSaveFile() {
/** @todo Save procedure to the server. */
}
public void doOpenFile() {
}
public void readStoredProcedureSource() {
Connection conn = null;
ResultSet result = null;
PreparedStatement statement = null;
String sqlCall = ProcedureBrowserExtension.sqlCalls.getProperty(ProcedureBrowserExtension.SQL_RETRIEVE_PROC_SRC_PROPERTY);
try {
conn = process.getConnection();
statement = conn.prepareStatement(sqlCall);
statement.setString(1, storedProcedure.toString());
result = statement.executeQuery();
while ( result.next() ) {
String procedureSource = result.getString("prosrc");
editorPanel.area.setText(procedureSource);
// editorPanel.area.setSelectionStart(0);
// editorPanel.area.setSelectionEnd(0);
}
}
catch (Exception ex) {
}
}
}