001: package net.sourceforge.squirrel_sql.plugins.dbinfo;
002:
003: /*
004: * Copyright (C) 2001 Colin Bell
005: * colbell@users.sourceforge.net
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License
009: * as published by the Free Software Foundation; either version 2
010: * of the License, or any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
015: * GNU General Public License for more details.
016: *
017: * You should have received a copy of the GNU General Public License
018: * along with this program; if not, write to the Free Software
019: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
020: */
021: import java.io.File;
022: import java.io.IOException;
023:
024: import javax.swing.Action;
025:
026: import net.sourceforge.squirrel_sql.client.IApplication;
027: import net.sourceforge.squirrel_sql.client.gui.session.SQLInternalFrame;
028: import net.sourceforge.squirrel_sql.client.gui.session.ObjectTreeInternalFrame;
029: import net.sourceforge.squirrel_sql.client.session.ISession;
030: import net.sourceforge.squirrel_sql.client.action.ActionCollection;
031: import net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin;
032: import net.sourceforge.squirrel_sql.client.plugin.PluginException;
033: import net.sourceforge.squirrel_sql.client.plugin.PluginResources;
034: import net.sourceforge.squirrel_sql.client.plugin.PluginSessionCallback;
035: import net.sourceforge.squirrel_sql.client.preferences.IGlobalPreferencesPanel;
036: import net.sourceforge.squirrel_sql.client.preferences.SquirrelPreferences;
037:
038: /*
039: ?? Need to add Source tab when stored proc selected in object tree and
040: execute DBIndo.getProcSourceSql() to retrieve src.
041:
042: Associate a specific .xml file with a driver.
043: */
044:
045: /**
046: * The Database Info plugin class.
047: *
048: * @author <A HREF="mailto:colbell@users.sourceforge.net">Colin Bell</A>
049: */
050: public class DBInfoPlugin extends DefaultSessionPlugin {
051: /** This plugins resources. */
052: private PluginResources _resources;
053:
054: /** Folder DBInfo stores XML files. */
055: private File _dataFolder;
056:
057: /**
058: * Return the internal name of this plugin.
059: *
060: * @return the internal name of this plugin.
061: */
062: public String getInternalName() {
063: return "dbinfo";
064: }
065:
066: /**
067: * Return the descriptive name of this plugin.
068: *
069: * @return the descriptive name of this plugin.
070: */
071: public String getDescriptiveName() {
072: return "Database Info Plugin";
073: }
074:
075: /**
076: * Returns the current version of this plugin.
077: *
078: * @return the current version of this plugin.
079: */
080: public String getVersion() {
081: return "0.1";
082: }
083:
084: /**
085: * Returns the authors name.
086: *
087: * @return the authors name.
088: */
089: public String getAuthor() {
090: return "??";
091: }
092:
093: /**
094: * Initialize this plugin.
095: */
096: public synchronized void initialize() throws PluginException {
097: super .initialize();
098:
099: _resources = new PluginResources(
100: "net.sourceforge.squirrel_sql.plugins.dbinfo.dbinfo",
101: this );
102:
103: createActions();
104:
105: // Folder that stores data files.
106: try {
107: _dataFolder = new File(getPluginAppSettingsFolder(), "data");
108: } catch (IOException ex) {
109: throw new PluginException(ex);
110: }
111: if (!_dataFolder.exists()) {
112: _dataFolder.mkdir();
113: }
114: }
115:
116: /**
117: * Application is shutting down.
118: */
119: public void unload() {
120: super .unload();
121: }
122:
123: private void createActions() {
124: final IApplication app = getApplication();
125: ActionCollection coll = app.getActionCollection();
126: Action action = new ShowDBInfoFilesAction(app, _resources);
127: coll.add(action);
128: app.addToMenu(IApplication.IMenuIDs.PLUGINS_MENU, action);
129: }
130:
131: public boolean allowsSessionStartedInBackground() {
132: return true;
133: }
134:
135: public PluginSessionCallback sessionStarted(ISession session) {
136: PluginSessionCallback ret = new PluginSessionCallback() {
137: public void sqlInternalFrameOpened(
138: SQLInternalFrame sqlInternalFrame, ISession sess) {
139: // TODO
140: // Plugin supports only the main session window
141: }
142:
143: public void objectTreeInternalFrameOpened(
144: ObjectTreeInternalFrame objectTreeInternalFrame,
145: ISession sess) {
146: // TODO
147: // Plugin supports only the main session window
148: }
149: };
150: return ret;
151: }
152: }
|