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      }