001 package hep.aida.ref.sql.JAS3Plugin;
002
003 import hep.aida.ref.sql.SQLAnalysisFactory;
004 import hep.aida.ref.sql.Accessor;
005
006 // FreeHEP
007 import org.freehep.application.studio.Plugin;
008 import org.freehep.util.FreeHEPLookup;
009 import org.freehep.swing.wizard.WizardPage;
010 import org.freehep.xml.menus.XMLMenuBuilder;
011 import org.freehep.application.studio.Studio;
012 import org.freehep.util.commanddispatcher.*;
013
014 // JAS
015 import org.freehep.jas.services.DataSource;
016
017 // Java
018 import java.net.URL;
019 import org.xml.sax.SAXException;
020 import java.io.IOException;
021
022 /** <code>SQLTuplePlugin</code> is a JAS3 plugin of SQLTuple.
023 * <p><font color="#880088">
024 * $Id: SQLTuplePlugin.java,v 1.8 2007/05/23 16:38:44 hrivnac Exp $
025 * <pre>
026 * $Log: SQLTuplePlugin.java,v $
027 * Revision 1.8 2007/05/23 16:38:44 hrivnac
028 * logical connections for Plotter; better UML
029 *
030 * Revision 1.7 2006/11/20 13:51:59 hrivnac
031 * Connection is closed except within JAS3
032 *
033 * Revision 1.6 2005/09/28 22:49:55 hrivnac
034 * added SQLTuple-aware projections
035 *
036 * Revision 1.5 2004/10/29 22:27:25 hrivnac
037 * imports corrected
038 *
039 * Revision 1.4 2004/10/27 16:28:34 hrivnac
040 * Log4J logging is connected to JAS3 Console
041 *
042 * Revision 1.3 2004/10/22 15:33:00 hrivnac
043 * cleaned
044 *
045 * Revision 1.2 2004/10/08 22:20:50 hrivnac
046 * JAS3Plugin works from JAS3 Menu
047 *
048 * Revision 1.1 2004/10/08 15:22:33 hrivnac
049 * JAS3 plugin works
050 *
051 * </pre>
052 * </font></p>
053 * @opt attributes
054 * @opt operations
055 * @opt types
056 * @opt visibility
057 * @version $Id: SQLTuplePlugin.java,v 1.8 2007/05/23 16:38:44 hrivnac Exp $
058 * @author <a href="mailto:Julius.Hrivnac@cern.ch">J.Hrivnac</a> */
059 public class SQLTuplePlugin extends Plugin
060 implements DataSource {
061
062 /** Init plugin.
063 * @throws IOException if XML menus file can't be read.
064 * @throws SAXException if XML menus file can't be parsed. */
065 protected void init() throws IOException, SAXException {
066
067 // Get Studio
068 _app = (Studio)getApplication();
069
070 // Add menus
071 XMLMenuBuilder builder = _app.getXMLMenuBuilder();
072 URL xml = getClass().getResource("SQLTuplePlugin.menus");
073 builder.build(xml);
074
075 // Add toolbar
076 //_app.addToolBar(builder.getToolBar("SQLTupleToolbar"), "SQLTuple Toolbar");
077
078 // Add CommandProcessor
079 _commands = new SQLTupleCommands(this);
080 _app.getCommandTargetManager().add(_commands);
081
082 // Register SQLAnalysisFactory
083 new SQLAnalysisFactory();
084
085 // Init Plugin
086 FreeHEPLookup lookup = getApplication().getLookup();
087 lookup.add(this);
088
089 // Set Logging bridge
090 JAS3Log4JAppender.init(this, getApplication());
091
092 // Inform about existence
093 Accessor.setWithinJAS();
094 }
095
096 /** Give plugin name.
097 * @return "SQLTuple Connection" */
098 public String getName() {
099 return "SQLTuple Connection";
100 }
101
102 /** Give Wizard page.
103 * @return The {@link SQLTupleWizardPage}. */
104 public WizardPage getWizardPage() {
105 return new SQLTupleWizardPage();
106 }
107
108 /** Give associated {@link Studio}.
109 * @return The associated {@link Studio}. */
110 Studio app() {
111 return _app;
112 }
113
114 private Studio _app;
115
116 private SQLTupleCommands _commands;
117
118 }