From: <sh...@us...> - 2007-10-16 08:53:51
|
Revision: 10899 http://jedit.svn.sourceforge.net/jedit/?rev=10899&view=rev Author: shlomy Date: 2007-10-16 01:53:50 -0700 (Tue, 16 Oct 2007) Log Message: ----------- Some small changes Modified Paths: -------------- plugins/CtagsInterface/trunk/CtagsInterface.props plugins/CtagsInterface/trunk/actions.xml plugins/CtagsInterface/trunk/src/ctags/CtagsInterfacePlugin.java Removed Paths: ------------- plugins/CtagsInterface/trunk/src/ctags/Testdb.java Modified: plugins/CtagsInterface/trunk/CtagsInterface.props =================================================================== --- plugins/CtagsInterface/trunk/CtagsInterface.props 2007-10-16 07:33:43 UTC (rev 10898) +++ plugins/CtagsInterface/trunk/CtagsInterface.props 2007-10-16 08:53:50 UTC (rev 10899) @@ -10,11 +10,16 @@ plugin.ctags.CtagsInterfacePlugin.depend.0=jdk 1.5 plugin.ctags.CtagsInterfacePlugin.depend.1=jedit 04.03.11.00 +# Use the plugin home directory for the tag database +plugin.ctags.CtagsInterfacePlugin.usePluginHome=true + # action labels ctags-interface-add-file.label=Add tag file... +ctags-interface-print-tags.label=Print tags # menu items -plugin.ctags.CtagsInterfacePlugin.menu=ctags-interface-add-file +plugin.ctags.CtagsInterfacePlugin.menu=ctags-interface-add-file \ + ctags-interface-print-tags # class-browser-show-selected-hierarchy # dockables Modified: plugins/CtagsInterface/trunk/actions.xml =================================================================== --- plugins/CtagsInterface/trunk/actions.xml 2007-10-16 07:33:43 UTC (rev 10898) +++ plugins/CtagsInterface/trunk/actions.xml 2007-10-16 08:53:50 UTC (rev 10899) @@ -5,9 +5,14 @@ <ACTION NAME="ctags-interface-add-file" NO_REPEAT="TRUE"> <CODE> - ctags.CtagsInterfacePlugin.addTagFile("/home/shlomy/topcoder/tags"); + ctags.CtagsInterfacePlugin.addTagFile(view); </CODE> </ACTION> + <ACTION NAME="ctags-interface-print-tags" NO_REPEAT="TRUE"> + <CODE> + ctags.CtagsInterfacePlugin.printTags(); + </CODE> + </ACTION> </ACTIONS> Modified: plugins/CtagsInterface/trunk/src/ctags/CtagsInterfacePlugin.java =================================================================== --- plugins/CtagsInterface/trunk/src/ctags/CtagsInterfacePlugin.java 2007-10-16 07:33:43 UTC (rev 10898) +++ plugins/CtagsInterface/trunk/src/ctags/CtagsInterfacePlugin.java 2007-10-16 08:53:50 UTC (rev 10899) @@ -11,7 +11,11 @@ import java.sql.Statement; import java.util.Hashtable; +import javax.swing.JOptionPane; + import org.gjt.sp.jedit.EditPlugin; +import org.gjt.sp.jedit.View; +import org.gjt.sp.jedit.jEdit; public class CtagsInterfacePlugin extends EditPlugin { @@ -21,8 +25,9 @@ { try { Class.forName("org.hsqldb.jdbcDriver"); - conn = DriverManager.getConnection("jdbc:hsqldb:tagdb", "sa", ""); - update("CREATE TABLE tags (name VARCHAR(256), file VARCHAR(256), pattern VARCHAR(256))"); + conn = DriverManager.getConnection("jdbc:hsqldb:file:" + + getDBFilePath(), "sa", ""); + update("CREATE CACHED TABLE tags (name VARCHAR(256), file VARCHAR(256), pattern VARCHAR(256))"); } catch (Exception e) { e.printStackTrace(); } @@ -40,8 +45,12 @@ } } + static public String getDBFilePath() { + return jEdit.getSettingsDirectory() + "/CtagsInterface/tagdb"; + } + static public synchronized void update(String expression) throws SQLException { - System.err.println("update(" + expression + ")"); + //System.err.println("update(" + expression + ")"); Statement st = null; st = conn.createStatement(); int i = st.executeUpdate(expression); @@ -50,7 +59,7 @@ st.close(); } static public synchronized void query(String expression) throws SQLException { - System.err.println("query(" + expression + ")"); + //System.err.println("query(" + expression + ")"); Statement st = null; ResultSet rs = null; st = conn.createStatement(); @@ -73,8 +82,18 @@ System.err.println(buf.toString()); } } - - static void addTagFile(String tagFile) { + static void printTags() { + try { + query("SELECT * FROM tags"); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + static void addTagFile(View view) { + String tagFile = JOptionPane.showInputDialog("Tag file:"); + if (tagFile == null || tagFile.length() == 0) + return; BufferedReader in; try { in = new BufferedReader(new FileReader(tagFile)); @@ -107,7 +126,6 @@ update("INSERT INTO tags(name,file) VALUES('" + info.get("name") + "','" + info.get("file") + "')"); } - query("SELECT * FROM tags"); } catch (IOException e) { e.printStackTrace(); } catch (SQLException e) { Deleted: plugins/CtagsInterface/trunk/src/ctags/Testdb.java =================================================================== --- plugins/CtagsInterface/trunk/src/ctags/Testdb.java 2007-10-16 07:33:43 UTC (rev 10898) +++ plugins/CtagsInterface/trunk/src/ctags/Testdb.java 2007-10-16 08:53:50 UTC (rev 10899) @@ -1,202 +0,0 @@ -/* Copyright (c) 2001-2005, The HSQL Development Group - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of the HSQL Development Group nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -package ctags; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Statement; - -/** - * Title: Testdb - * Description: simple hello world db example of a - * standalone persistent db application - * - * every time it runs it adds four more rows to sample_table - * it does a query and prints the results to standard out - * - * Author: Karl Meissner ka...@me... - */ -public class Testdb { - - Connection conn; //our connnection to the db - presist for life of program - - // we dont want this garbage collected until we are done - public Testdb(String db_file_name_prefix) throws Exception { // note more general exception - - // Load the HSQL Database Engine JDBC driver - // hsqldb.jar should be in the class path or made part of the current jar - Class.forName("org.hsqldb.jdbcDriver"); - - // connect to the database. This will load the db files and start the - // database if it is not alread running. - // db_file_name_prefix is used to open or create files that hold the state - // of the db. - // It can contain directory names relative to the - // current working directory - conn = DriverManager.getConnection("jdbc:hsqldb:" - + db_file_name_prefix, // filenames - "sa", // username - ""); // password - } - - public void shutdown() throws SQLException { - - Statement st = conn.createStatement(); - - // db writes out to files and performs clean shuts down - // otherwise there will be an unclean shutdown - // when program ends - st.execute("SHUTDOWN"); - conn.close(); // if there are no other open connection - } - -//use for SQL command SELECT - public synchronized void query(String expression) throws SQLException { - - Statement st = null; - ResultSet rs = null; - - st = conn.createStatement(); // statement objects can be reused with - - // repeated calls to execute but we - // choose to make a new one each time - rs = st.executeQuery(expression); // run the query - - // do something with the result set. - dump(rs); - st.close(); // NOTE!! if you close a statement the associated ResultSet is - - // closed too - // so you should copy the contents to some other object. - // the result set is invalidated also if you recycle an Statement - // and try to execute some other query before the result set has been - // completely examined. - } - -//use for SQL commands CREATE, DROP, INSERT and UPDATE - public synchronized void update(String expression) throws SQLException { - - Statement st = null; - - st = conn.createStatement(); // statements - - int i = st.executeUpdate(expression); // run the query - - if (i == -1) { - System.out.println("db error : " + expression); - } - - st.close(); - } // void update() - - public static void dump(ResultSet rs) throws SQLException { - - // the order of the rows in a cursor - // are implementation dependent unless you use the SQL ORDER statement - ResultSetMetaData meta = rs.getMetaData(); - int colmax = meta.getColumnCount(); - int i; - Object o = null; - - // the result set is a cursor into the data. You can only - // point to one row at a time - // assume we are pointing to BEFORE the first row - // rs.next() points to next row and returns true - // or false if there is no next row, which breaks the loop - for (; rs.next(); ) { - for (i = 0; i < colmax; ++i) { - o = rs.getObject(i + 1); // Is SQL the first column is indexed - - // with 1 not 0 - System.out.print(o.toString() + " "); - } - - System.out.println(" "); - } - } //void dump( ResultSet rs ) - - public static void main(String[] args) { - - Testdb db = null; - - try { - db = new Testdb("db_file"); - } catch (Exception ex1) { - ex1.printStackTrace(); // could not start db - - return; // bye bye - } - - try { - - //make an empty table - // - // by declaring the id column IDENTITY, the db will automatically - // generate unique values for new rows- useful for row keys - db.update( - "CREATE TABLE sample_table ( id INTEGER IDENTITY, str_col VARCHAR(256), num_col INTEGER)"); - } catch (SQLException ex2) { - - //ignore - //ex2.printStackTrace(); // second time we run program - // should throw execption since table - // already there - // - // this will have no effect on the db - } - - try { - - // add some rows - will create duplicates if run more then once - // the id column is automatically generated - db.update( - "INSERT INTO sample_table(str_col,num_col) VALUES('Ford', 100)"); - db.update( - "INSERT INTO sample_table(str_col,num_col) VALUES('Toyota', 200)"); - db.update( - "INSERT INTO sample_table(str_col,num_col) VALUES('Honda', 300)"); - db.update( - "INSERT INTO sample_table(str_col,num_col) VALUES('GM', 400)"); - - // do a query - db.query("SELECT * FROM sample_table WHERE num_col < 250"); - - // at end of program - db.shutdown(); - } catch (SQLException ex3) { - ex3.printStackTrace(); - } - } // main() -} // class Testdb This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |