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 }