Revision: 5807
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5807&view=rev
Author: manningr
Date: 2010-08-21 17:35:27 +0000 (Sat, 21 Aug 2010)
Log Message:
-----------
Initial changes to convert from Ant build to Maven build
Added Paths:
-----------
trunk/sql12/plugins/codecompletion/pom.xml
trunk/sql12/plugins/codecompletion/src/main/
trunk/sql12/plugins/codecompletion/src/main/java/
trunk/sql12/plugins/codecompletion/src/main/java/net/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/AutoCorrectProvider.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionAutoCorrectInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionCatalogInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionFunctionInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionKeywordInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionPlugin.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionSchemaInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTypeInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletorModel.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CompleteCodeAction.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CompletionFunctionsModel.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/Resources.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/StandardCompletorModel.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/AbstractJoin.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/CodeCompletionFunction.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/GenericCodeCompletionInfo.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/InnerJoin.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/Join.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/LeftJoin.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/RightJoin.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/TestCompletionFunction.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferences.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesController.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesPanel.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/ConfigCboItem.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/PrefixedConfig.java
trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/PrefixesTableModel.java
trunk/sql12/plugins/codecompletion/src/main/resources/
trunk/sql12/plugins/codecompletion/src/main/resources/doc/
trunk/sql12/plugins/codecompletion/src/main/resources/net/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/I18NStrings.properties
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/Resources.properties
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/completionfunctions/I18NStrings.properties
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/
trunk/sql12/plugins/codecompletion/src/main/resources/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/I18NStrings.properties
trunk/sql12/plugins/codecompletion/src/test/
trunk/sql12/plugins/codecompletion/src/test/java/
trunk/sql12/plugins/codecompletion/src/test/java/net/
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionPluginTest.java
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/ResourcesTest.java
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesTest.java
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/PrefixedConfigTest.java
trunk/sql12/plugins/codecompletion/src/test/java/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/PrefixesTableModelTest.java
Removed Paths:
-------------
trunk/sql12/plugins/codecompletion/doc/
trunk/sql12/plugins/codecompletion/plugin_build.xml
trunk/sql12/plugins/codecompletion/src/net/
Property Changed:
----------------
trunk/sql12/plugins/codecompletion/
Property changes on: trunk/sql12/plugins/codecompletion
___________________________________________________________________
Added: svn:ignore
+ target
.settings
.project
.classpath
Deleted: trunk/sql12/plugins/codecompletion/plugin_build.xml
===================================================================
--- trunk/sql12/plugins/codecompletion/plugin_build.xml 2010-08-21 16:26:51 UTC (rev 5806)
+++ trunk/sql12/plugins/codecompletion/plugin_build.xml 2010-08-21 17:35:27 UTC (rev 5807)
@@ -1,87 +0,0 @@
-<?xml version="1.0"?>
-<!--
- This is an Apache Ant build file to build the code completion plugin
- for distribution.
--->
-<project name="plugin-codecompletion" default="build" basedir=".">
- <target name="init">
- <tstamp/>
- <property name="internal_name" value="codecompletion"/>
- <property name="version" value="1.0"/>
-
- <property name="debug" value="on"/>
- <property name="optimize" value="off"/>
- <property name="deprecation" value="on"/>
- <property name="targetVM" value="1.6"/>
-
- <echo message="---------------- ${internal_name} ${version} ----------------"/>
- <property environment="env"/>
- </target>
-
- <target name="initdirs" unless="p_plugin.work_dir">
- <property name="dist_dir" value="../../../squirrel-sql-dist/squirrel-sql"/>
- <property name="plugins_dist_dir" value="${dist_dir}/plugins"/>
- <property name="p_plugin.work_dir" value="${plugins_dist_dir}/${internal_name}/work"/>
- <property name="p_plugin.core_libs_dir" value="${dist_dir}/core/dist/lib"/>
- <property name="p_plugin.dist_dir" value="${dist_dir}/core/dist/plugins"/>
- </target>
-
- <!--
- ==================================================================
- Compile the plugin.
- No parameters.
- ==================================================================
- -->
- <target name="build" depends="init, initdirs">
- <property name="obj_dir" value="${p_plugin.work_dir}/obj"/>
-
- <mkdir dir="${obj_dir}"/>
- <mkdir dir="${p_plugin.dist_dir}"/>
-
- <javac srcdir="src"
- destdir="${obj_dir}"
- deprecation="${deprecation}"
- debug="${debug}"
- optimize="${optimize}"
- includeJavaRuntime="yes"
- source="${targetVM}"
- target="${targetVM}">
-
- <classpath>
- <fileset dir="${p_plugin.core_libs_dir}">
- <include name="**/*.*"/>
- </fileset>
- </classpath>
- </javac>
- <copy todir="${obj_dir}" >
- <fileset dir="src" >
- <include name="**/*.gif"/>
- <include name="**/*.jpg"/>
- <include name="**/*.jpeg"/>
- <include name="**/*.xml"/>
- <include name="**/*.properties"/>
- </fileset>
- </copy>
-
- <jar jarfile="${p_plugin.dist_dir}/${internal_name}.jar" compress="false">
- <fileset dir="${obj_dir}">
- <include name="**/*.*"/>
- </fileset>
- </jar>
-
- <copy todir="${p_plugin.dist_dir}/${internal_name}" >
- <fileset dir="doc" >
- <include name="*.*"/>
- </fileset>
- </copy>
-
- <jar jarfile="${p_plugin.dist_dir}/${internal_name}/src.jar" compress="false">
- <fileset dir=".">
- <include name="src/**/*.*"/>
- <include name="plugin_build.xml"/>
- </fileset>
- </jar>
- </target>
-
-</project>
-
Added: trunk/sql12/plugins/codecompletion/pom.xml
===================================================================
--- trunk/sql12/plugins/codecompletion/pom.xml (rev 0)
+++ trunk/sql12/plugins/codecompletion/pom.xml 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,135 @@
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>net.sf.squirrel-sql.plugins</groupId>
+ <artifactId>squirrelsql-plugins-parent-pom</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <groupId>net.sf.squirrel-sql.plugins</groupId>
+ <artifactId>codecompletion</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>Codecompletion Plugin</name>
+ <description>Codecompletion Plugin</description>
+ <inceptionYear>2001</inceptionYear>
+ <developers>
+ <developer>
+ <name>Gerd Wagner</name>
+ <roles>
+ <role>Administrator</role>
+ <role>Developer</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Rob Manning</name>
+ <roles>
+ <role>Developer</role>
+ <role>Release Manager</role>
+ </roles>
+ </developer>
+ </developers>
+ <licenses>
+ <license>
+ <name>GNU Lesser General Public License</name>
+ <url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <url>http://www.squirrelsql.org/</url>
+ <scm>
+ <connection>scm:svn:https://squirrel-sql.svn.sourceforge.net/svnroot/squirrel-sql/trunk/sql12/</connection>
+ <developerConnection>scm:svn:http://squirrel-sql.svn.sourceforge.net/viewvc/squirrel-sql/trunk/sql12/</developerConnection>
+ <url>http://squirrel-sql.svn.sourceforge.net/viewvc/squirrel-sql/trunk/sql12/</url>
+ </scm>
+ <issueManagement>
+ <system>SourceForge Tracker</system>
+ <url>http://sourceforge.net/tracker/?group_id=28383%26atid=393414</url>
+ </issueManagement>
+ <ciManagement>
+ <system>Hudson</system>
+ <url>https://www.squirrel-sql.org/hudson/</url>
+ </ciManagement>
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>fw</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>squirrel-sql</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>squirrel-sql</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.squirrel-sql</groupId>
+ <artifactId>squirrelsql-test-utils</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <type>pom</type>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>${source-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire-plugin-version}</version>
+ <configuration>
+ <parallel>${surefire-parallel-type}</parallel>
+ <threadCount>${surefire-thread-count}</threadCount>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>${jar-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>${assembly-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>${findbugs-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>${pmd-plugin-version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${checkstyle-plugin-version}</version>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <!--
+ Since generating javadoc can be time-consuming, this is not done unless a "javadoc" profile is activated.
+ -->
+ <profile>
+ <id>javadoc</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${javadoc-plugin-version}</version>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/AutoCorrectProvider.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/AutoCorrectProvider.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/AutoCorrectProvider.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/AutoCorrectProvider.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,8 @@
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+import java.util.Hashtable;
+
+public interface AutoCorrectProvider
+{
+ Hashtable<String, String> getAutoCorrects();
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionAutoCorrectInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionAutoCorrectInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionAutoCorrectInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionAutoCorrectInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,30 @@
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+
+
+public class CodeCompletionAutoCorrectInfo extends CodeCompletionInfo
+{
+ private String _toCorrect;
+ private String _correction;
+
+ public CodeCompletionAutoCorrectInfo(String toCorrect, String correction)
+ {
+ _toCorrect = toCorrect;
+ _correction = correction;
+ }
+
+ public String getCompareString()
+ {
+ return _toCorrect;
+ }
+
+ public String toString()
+ {
+ return _correction + " ;-)";
+ }
+
+ public String getCompletionString()
+ {
+ return _correction;
+ }
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionCatalogInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionCatalogInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionCatalogInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionCatalogInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2004 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+
+public class CodeCompletionCatalogInfo extends CodeCompletionInfo
+{
+ private String _catalog;
+
+ public CodeCompletionCatalogInfo(String catalog)
+ {
+ _catalog = catalog;
+ }
+
+ public String getCompareString()
+ {
+ return _catalog;
+ }
+
+ public String toString()
+ {
+ return _catalog;
+ }
+}
\ No newline at end of file
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2003 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+
+public class CodeCompletionColumnInfo extends CodeCompletionInfo
+{
+ private String _columnName;
+ private String _columnType;
+ private int _columnSize;
+ private boolean _nullable;
+ private boolean _useCompletionPrefs;
+ private boolean _showRemarksInColumnCompletion;
+
+ private String _toString;
+ private int _decimalDigits;
+
+ private String _remarks;
+
+
+ public CodeCompletionColumnInfo(String columnName, String remarks, String columnType, int columnSize, int decimalDigits, boolean nullable, boolean useCompletionPrefs, boolean showRemarksInColumnCompletion)
+ {
+ _columnName = columnName;
+ _columnType = columnType;
+ _columnSize = columnSize;
+ _decimalDigits = decimalDigits;
+ _nullable = nullable;
+ _useCompletionPrefs = useCompletionPrefs;
+ _showRemarksInColumnCompletion = showRemarksInColumnCompletion;
+ String decimalDigitsString = 0 == _decimalDigits ? "" : "," + _decimalDigits;
+ _remarks = remarks;
+ _toString = _columnName + getRemarksString() + _columnType + "(" + _columnSize + decimalDigitsString + ") " + (_nullable? "NULL": "NOT NULL");
+ }
+
+ private String getRemarksString()
+ {
+ String ret = " ";
+ if (_showRemarksInColumnCompletion && null != _remarks && 0 < _remarks.trim().length())
+ {
+ ret = " (" + _remarks + ") ";
+ }
+ return ret;
+ }
+
+ public String getCompareString()
+ {
+ return _columnName;
+ }
+
+ public String toString()
+ {
+ return _toString;
+ }
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionFunctionInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionFunctionInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionFunctionInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionFunctionInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2003 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+
+public class CodeCompletionFunctionInfo extends CodeCompletionInfo
+{
+ private String _function;
+
+ public CodeCompletionFunctionInfo(String function)
+ {
+ _function = function;
+ }
+
+ public String getCompareString()
+ {
+ return _function;
+ }
+
+ public String toString()
+ {
+ return _function;
+ }
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,28 @@
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+import net.sourceforge.squirrel_sql.fw.completion.CompletionInfo;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+
+
+public abstract class CodeCompletionInfo extends CompletionInfo
+{
+ /**
+ * Default implementation
+ */
+ public ArrayList<CodeCompletionInfo> getColumns(net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo schemaInfo, String colNamePattern) throws SQLException
+ {
+ return new ArrayList<CodeCompletionInfo>();
+ }
+
+
+ /**
+ * Will be called after getCompletionString()
+ * @return Position to mo mve the Carret back counted from the end of the completion string.
+ */
+ public int getMoveCarretBackCount()
+ {
+ return 0;
+ }
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,345 @@
+/*
+ * Copyright (C) 2003 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfoUpdateListener;
+import net.sourceforge.squirrel_sql.client.session.parser.kernel.TableAliasInfo;
+import net.sourceforge.squirrel_sql.fw.sql.IProcedureInfo;
+import net.sourceforge.squirrel_sql.fw.sql.ITableInfo;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
+import net.sourceforge.squirrel_sql.plugins.codecompletion.prefs.CodeCompletionPreferences;
+
+import javax.swing.*;
+import java.util.*;
+
+public class CodeCompletionInfoCollection
+{
+ private static final StringManager s_stringMgr =
+ StringManagerFactory.getStringManager(CodeCompletionInfoCollection.class);
+
+
+ private Hashtable<String, Vector<CodeCompletionInfo>> _completionInfosByCataLogAndSchema =
+ new Hashtable<String, Vector<CodeCompletionInfo>>();
+ private Vector<CodeCompletionInfo> _aliasCompletionInfos =
+ new Vector<CodeCompletionInfo>();
+
+ private Vector<CodeCompletionSchemaInfo> _schemas =
+ new Vector<CodeCompletionSchemaInfo>();
+ private Vector<CodeCompletionCatalogInfo> _catalogs =
+ new Vector<CodeCompletionCatalogInfo>();
+
+ private ISession _session;
+ private CodeCompletionPlugin _plugin;
+ private boolean _useCompletionPrefs;
+
+ private static final int MAX_COMPLETION_INFOS = 300;
+
+ // i18n[codecompletion.listTruncated=Completion list truncated. Narrow by typing to get missing entries.]
+ private static final String TOO_MANY_COMPLETION_INFOS = s_stringMgr.getString("codecompletion.listTruncated");
+ private CodeCompletionPreferences _prefs;
+
+ public CodeCompletionInfoCollection(ISession session, CodeCompletionPlugin plugin, boolean useCompletionPrefs)
+ {
+ _session = session;
+ _plugin = plugin;
+ _useCompletionPrefs = useCompletionPrefs;
+
+ _prefs = (CodeCompletionPreferences) _session.getPluginObject(_plugin, CodeCompletionPlugin.PLUGIN_OBJECT_PREFS_KEY);
+
+ _session.getSchemaInfo().addSchemaInfoUpdateListener(new SchemaInfoUpdateListener()
+ {
+ public void schemaInfoUpdated()
+ {
+ _completionInfosByCataLogAndSchema =
+ new Hashtable<String, Vector<CodeCompletionInfo>>();
+ }
+ });
+ }
+
+ private void load(String catalog, String schema, boolean showLoadingMessage)
+ {
+ String key = (catalog + "," + schema).toUpperCase();
+
+ if(null == _completionInfosByCataLogAndSchema.get(key))
+ {
+ if(!_session.getSchemaInfo().isLoaded())
+ {
+ if(showLoadingMessage)
+ {
+ // i18n[codecompletion.beingLoaded=Code competion infomation is still being loaded.\nTry again later.]
+ String msg = s_stringMgr.getString("codecompletion.beingLoaded");
+ JOptionPane.showMessageDialog(_session.getApplication().getMainFrame(), msg);
+ }
+ return;
+ }
+
+ Vector<CodeCompletionInfo> completionInfos = new Vector<CodeCompletionInfo>();
+
+ ITableInfo[] tables = _session.getSchemaInfo().getITableInfos(catalog, schema);
+
+ Hashtable<String, CodeCompletionInfo> completionInfoByUcTableName = new Hashtable<String, CodeCompletionInfo>();
+
+
+ for (int i = 0; i < tables.length; i++)
+ {
+ String ucTableName = tables[i].getSimpleName().toUpperCase();
+
+ CodeCompletionTableInfo dupl = (CodeCompletionTableInfo) completionInfoByUcTableName.get(ucTableName);
+
+ CodeCompletionTableInfo tableInfo = new CodeCompletionTableInfo(tables[i].getSimpleName(),
+ tables[i].getType(),
+ tables[i].getCatalogName(),
+ tables[i].getSchemaName(),
+ _useCompletionPrefs,
+ _prefs.isShowRemarksInColumnCompletion());
+
+ if(null != dupl)
+ {
+ tableInfo.setHasDuplicateNameInDfifferentSchemas();
+ dupl.setHasDuplicateNameInDfifferentSchemas();
+ }
+
+ completionInfos.add(tableInfo);
+ completionInfoByUcTableName.put(ucTableName, tableInfo);
+ }
+
+ IProcedureInfo[] storedProceduresInfos = _session.getSchemaInfo().getStoredProceduresInfos(catalog, schema);
+ for (int i = 0; i < storedProceduresInfos.length; i++)
+ {
+ CodeCompletionStoredProcedureInfo buf =
+ new CodeCompletionStoredProcedureInfo(storedProceduresInfos[i].getSimpleName(),
+ storedProceduresInfos[i].getProcedureType(),
+ _session,
+ catalog,
+ schema,
+ _useCompletionPrefs,
+ _prefs);
+ completionInfos.add(buf);
+ }
+
+
+ if(null == catalog && null == schema)
+ {
+ // These objects do not depend on catalogs or schemas.
+ // It is enough if we load them once.
+
+ String[] keywords = _session.getSchemaInfo().getKeywords();
+ for (int i = 0; i < keywords.length; i++)
+ {
+ completionInfos.add(new CodeCompletionKeywordInfo(keywords[i]));
+ }
+
+ String[] dataTypes = _session.getSchemaInfo().getDataTypes();
+ for (int i = 0; i < dataTypes.length; i++)
+ {
+
+ if(false == _session.getSchemaInfo().isTable(dataTypes[i]))
+ {
+ // For example Postgres returns table names as datatypes.
+ // In those cases this prevents to have the table names twice.
+ completionInfos.add(new CodeCompletionTypeInfo(dataTypes[i]));
+ }
+ }
+
+ String[] functions = _session.getSchemaInfo().getFunctions();
+ for (int i = 0; i < functions.length; i++)
+ {
+ completionInfos.add(new CodeCompletionFunctionInfo(functions[i]));
+ }
+
+ String[] catalogs = _session.getSchemaInfo().getCatalogs();
+ for (int i = 0; i < catalogs.length; i++)
+ {
+ completionInfos.add(new CodeCompletionCatalogInfo(catalogs[i]));
+ _catalogs.add(new CodeCompletionCatalogInfo(catalogs[i]));
+ }
+
+ String[] schemas = _session.getSchemaInfo().getSchemas();
+ for (int i = 0; i < schemas.length; i++)
+ {
+ completionInfos.add(new CodeCompletionSchemaInfo(schemas[i]));
+ _schemas.add(new CodeCompletionSchemaInfo(schemas[i]));
+ }
+
+ AutoCorrectProvider autoCorrectProvider =
+ (AutoCorrectProvider) _session.getApplication().getPluginManager().bindExternalPluginService("syntax", AutoCorrectProvider.class);
+
+ if(null == autoCorrectProvider)
+ {
+ // i18n[codecompletion.useSyntaxPlugin=Code completion will work better if you use the Syntax plugin. Get it from squirrelsql.org, it's free!]
+ _session.showMessage(s_stringMgr.getString("codecompletion.useSyntaxPlugin"));
+ }
+ else
+ {
+ Hashtable<String, String> autoCorrections = autoCorrectProvider.getAutoCorrects();
+
+ for(Enumeration<String> e=autoCorrections.keys(); e.hasMoreElements();)
+ {
+ String toCorrect = e.nextElement();
+ String correction = autoCorrections.get(toCorrect);
+
+ completionInfos.add(new CodeCompletionAutoCorrectInfo(toCorrect, correction));
+ }
+ }
+
+ }
+
+
+
+ Collections.sort(completionInfos);
+
+ _completionInfosByCataLogAndSchema.put(key, completionInfos);
+ }
+ }
+
+
+ public CodeCompletionInfo[] getInfosStartingWith(String catalog, String schema, String prefix)
+ {
+ load(catalog, schema, true);
+
+ Vector<CodeCompletionInfo> completionInfos = getCompletionInfos(catalog, schema);
+
+ if(null == completionInfos)
+ {
+ // CompletionInfos are still loading
+ return new CodeCompletionInfo[0];
+ }
+
+ String upperCasePrefix = prefix.trim().toUpperCase();
+
+ if("".equals(upperCasePrefix))
+ {
+ Vector<CodeCompletionInfo> buf = new Vector<CodeCompletionInfo>();
+ buf.addAll(_aliasCompletionInfos);
+
+ if(MAX_COMPLETION_INFOS < completionInfos.size())
+ {
+ buf.addAll(completionInfos.subList(0,MAX_COMPLETION_INFOS));
+ _session.showMessage(TOO_MANY_COMPLETION_INFOS);
+ }
+ else
+ {
+ buf.addAll(completionInfos);
+ }
+
+
+ return buf.toArray(new CodeCompletionInfo[0]);
+ }
+
+ Vector<CodeCompletionInfo> ret = new Vector<CodeCompletionInfo>();
+
+ for(int i=0; i < _aliasCompletionInfos.size(); ++i)
+ {
+ CodeCompletionInfo buf = _aliasCompletionInfos.get(i);
+ if(buf.upperCaseCompletionStringStartsWith(upperCasePrefix))
+ {
+ ret.add(buf);
+ }
+ }
+
+
+ for(int i=0; i < completionInfos.size(); ++i)
+ {
+ CodeCompletionInfo buf = completionInfos.get(i);
+ if(buf.upperCaseCompletionStringStartsWith(upperCasePrefix))
+ {
+ ret.add(buf);
+
+ if(MAX_COMPLETION_INFOS < ret.size())
+ {
+ _session.showMessage(TOO_MANY_COMPLETION_INFOS);
+ break;
+ }
+ }
+ }
+
+ return ret.toArray(new CodeCompletionInfo[0]);
+ }
+
+ private Vector<CodeCompletionInfo> getCompletionInfos(String catalog, String schema)
+ {
+ String key = (catalog + "," + schema).toUpperCase();
+ Vector<CodeCompletionInfo> ret = _completionInfosByCataLogAndSchema.get(key);
+
+ if(null == ret)
+ {
+ load(catalog, schema, false);
+ }
+ ret = _completionInfosByCataLogAndSchema.get(key);
+
+ return ret;
+ }
+
+ public void replaceLastAliasInfos(TableAliasInfo[] aliasInfos)
+ {
+ _aliasCompletionInfos = new Vector<CodeCompletionInfo>(aliasInfos.length);
+
+ for (int i = 0; i < aliasInfos.length; i++)
+ {
+ if(false == aliasInfos[i].aliasName.startsWith("#"))
+ {
+ _aliasCompletionInfos.add(new CodeCompletionTableAliasInfo(aliasInfos[i], _useCompletionPrefs, _prefs.isShowRemarksInColumnCompletion()));
+ }
+ }
+ }
+
+ public boolean isCatalog(String name)
+ {
+ for (int i = 0; i < _catalogs.size(); i++)
+ {
+ CodeCompletionCatalogInfo info = _catalogs.get(i);
+ if(info.getCompareString().equalsIgnoreCase(name))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isSchema(String name)
+ {
+ for (int i = 0; i < _schemas.size(); i++)
+ {
+ CodeCompletionSchemaInfo info = _schemas.get(i);
+ if(info.getCompareString().equalsIgnoreCase(name))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean addCompletionsAtListBegin(String catalog, String schema, CodeCompletionInfo[] completions)
+ {
+ Vector<CodeCompletionInfo> completionInfos = getCompletionInfos(catalog, schema);
+
+ if(null == completionInfos)
+ {
+ // CompletionInfos are still loading
+ return false;
+ }
+ else
+ {
+ Arrays.sort(completions);
+ completionInfos.addAll(0,Arrays.asList(completions));
+ return true;
+ }
+ }
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionKeywordInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionKeywordInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionKeywordInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionKeywordInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2003 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+
+public class CodeCompletionKeywordInfo extends CodeCompletionInfo
+{
+ private String _keyword;
+
+ public CodeCompletionKeywordInfo(String keyword)
+ {
+ _keyword = keyword;
+ }
+
+ public String getCompareString()
+ {
+ return _keyword;
+ }
+
+ public String toString()
+ {
+ return _keyword;
+ }
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionPlugin.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionPlugin.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionPlugin.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionPlugin.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,344 @@
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+/*
+ * Copyright (C) 2003 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+import net.sourceforge.squirrel_sql.client.gui.session.ObjectTreeInternalFrame;
+import net.sourceforge.squirrel_sql.client.gui.session.SQLInternalFrame;
+import net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin;
+import net.sourceforge.squirrel_sql.client.plugin.PluginException;
+import net.sourceforge.squirrel_sql.client.plugin.PluginResources;
+import net.sourceforge.squirrel_sql.client.plugin.PluginSessionCallback;
+import net.sourceforge.squirrel_sql.client.preferences.INewSessionPropertiesPanel;
+import net.sourceforge.squirrel_sql.client.session.ISQLPanelAPI;
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanel;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.ObjectTreePanel;
+import net.sourceforge.squirrel_sql.client.session.properties.ISessionPropertiesPanel;
+import net.sourceforge.squirrel_sql.fw.gui.GUIUtils;
+import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
+import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+import net.sourceforge.squirrel_sql.fw.util.Utilities;
+import net.sourceforge.squirrel_sql.fw.xml.XMLBeanReader;
+import net.sourceforge.squirrel_sql.fw.xml.XMLBeanWriter;
+import net.sourceforge.squirrel_sql.plugins.codecompletion.prefs.CodeCompletionPreferences;
+import net.sourceforge.squirrel_sql.plugins.codecompletion.prefs.CodeCompletionPreferencesController;
+
+import javax.swing.*;
+import java.io.File;
+import java.util.Iterator;
+
+/**
+ * The plugin class.
+ *
+ * @author Gerd Wagner
+ */
+public class CodeCompletionPlugin extends DefaultSessionPlugin
+{
+ /** Logger for this class. */
+ @SuppressWarnings("unused")
+ private final static ILogger
+ s_log = LoggerController.createLogger(CodeCompletionPlugin.class);
+
+
+ /** Resources for this plugin. */
+ private Resources _resources;
+ private static final String PREFS_FILE_NAME = "codecompletionprefs.xml";
+
+ private CodeCompletionPreferences _newSessionPrefs;
+ public static final String PLUGIN_OBJECT_PREFS_KEY = "codecompletionprefs";
+
+ /**
+ * Return the internal name of this plugin.
+ *
+ * @return the internal name of this plugin.
+ */
+ public String getInternalName()
+ {
+ return "codecompletion";
+ }
+
+ /**
+ * Return the descriptive name of this plugin.
+ *
+ * @return the descriptive name of this plugin.
+ */
+ public String getDescriptiveName()
+ {
+ return "SQL Entry Code Completion";
+ }
+
+ /**
+ * Returns the current version of this plugin.
+ *
+ * @return the current version of this plugin.
+ */
+ public String getVersion()
+ {
+ return "1.0";
+ }
+
+
+ /**
+ * Returns a comma separated list of other contributors.
+ *
+ * @return Contributors names.
+ */
+ public String getContributors()
+ {
+ return "Christian Sell";
+ }
+
+ /**
+ * Returns the authors name.
+ *
+ * @return the authors name.
+ */
+ public String getAuthor()
+ {
+ return "Gerd Wagner";
+ }
+
+ /**
+ * Returns the name of the change log for the plugin. This should
+ * be a text or HTML file residing in the <TT>getPluginAppSettingsFolder</TT>
+ * directory.
+ *
+ * @return the changelog file name or <TT>null</TT> if plugin doesn't have
+ * a change log.
+ */
+ public String getChangeLogFileName()
+ {
+ return "changes.txt";
+ }
+
+ /**
+ * Returns the name of the Help file for the plugin. This should
+ * be a text or HTML file residing in the <TT>getPluginAppSettingsFolder</TT>
+ * directory.
+ *
+ * @return the Help file name or <TT>null</TT> if plugin doesn't have
+ * a help file.
+ */
+ public String getHelpFileName()
+ {
+ return "readme.html";
+ }
+
+ /**
+ * Returns the name of the Licence file for the plugin. This should
+ * be a text or HTML file residing in the <TT>getPluginAppSettingsFolder</TT>
+ * directory.
+ *
+ * @return the Licence file name or <TT>null</TT> if plugin doesn't have
+ * a licence file.
+ */
+ public String getLicenceFileName()
+ {
+ return "licence.txt";
+ }
+
+ /**
+ * Called on application startup after application started.
+ */
+ public void initialize() throws PluginException
+ {
+ _resources = new Resources(this);
+ loadPrefs();
+ }
+
+ public void unload()
+ {
+ savePrefs();
+ }
+
+ private void savePrefs()
+ {
+ try
+ {
+ File prefsFile = new File(getPluginUserSettingsFolder(), PREFS_FILE_NAME);
+ final XMLBeanWriter wtr = new XMLBeanWriter(_newSessionPrefs);
+ wtr.save(prefsFile);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+
+ private void loadPrefs()
+ {
+ try
+ {
+ _newSessionPrefs = new CodeCompletionPreferences();
+ File prefsFile = new File(getPluginUserSettingsFolder(), PREFS_FILE_NAME);
+ if(prefsFile.exists())
+ {
+ XMLBeanReader reader = new XMLBeanReader();
+ reader.load(prefsFile, getClass().getClassLoader());
+
+ Iterator<?> it = reader.iterator();
+
+ if (it.hasNext())
+ {
+ _newSessionPrefs = (CodeCompletionPreferences) it.next();
+ }
+
+ }
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+ /**
+ * Create preferences panel for the New Session Properties dialog.
+ *
+ * @return preferences panel.
+ */
+ public INewSessionPropertiesPanel[] getNewSessionPropertiesPanels()
+ {
+ return new INewSessionPropertiesPanel[]
+ {
+ new CodeCompletionPreferencesController(_newSessionPrefs)
+ };
+ }
+
+ /**
+ * Create panels for the Session Properties dialog.
+ *
+ * @return Array of panels for the properties dialog.
+ */
+ public ISessionPropertiesPanel[] getSessionPropertiesPanels(ISession session)
+ {
+ CodeCompletionPreferences sessionPrefs = (CodeCompletionPreferences)session.getPluginObject(this, PLUGIN_OBJECT_PREFS_KEY);
+
+ return new ISessionPropertiesPanel[]
+ {
+ new CodeCompletionPreferencesController(sessionPrefs)
+ };
+ }
+
+ public void sessionCreated(ISession session)
+ {
+ CodeCompletionPreferences prefs = (CodeCompletionPreferences) Utilities.cloneObject(_newSessionPrefs, getClass().getClassLoader());
+ session.putPluginObject(this, PLUGIN_OBJECT_PREFS_KEY, prefs);
+ }
+
+
+ public boolean allowsSessionStartedInBackground()
+ {
+ return true;
+ }
+
+ /**
+ * Session has been started.
+ *
+ * @param session Session that has started.
+ */
+ public PluginSessionCallback sessionStarted(final ISession session)
+ {
+ ISQLPanelAPI sqlPaneAPI = session.getSessionSheet().getSQLPaneAPI();
+ initCodeCompletionSqlEditor(sqlPaneAPI, session);
+
+ initCodeCompletionObjectTreeFind(session, session.getSessionSheet().getObjectTreePanel());
+
+ PluginSessionCallback ret = new PluginSessionCallback()
+ {
+ public void sqlInternalFrameOpened(final SQLInternalFrame sqlInternalFrame, final ISession sess)
+ {
+ initCodeCompletionSqlEditor(sqlInternalFrame.getSQLPanelAPI(), sess);
+ }
+
+ public void objectTreeInternalFrameOpened(ObjectTreeInternalFrame objectTreeInternalFrame, ISession sess)
+ {
+ initCodeCompletionObjectTreeFind(sess, objectTreeInternalFrame.getObjectTreePanel());
+ }
+ };
+
+ return ret;
+ }
+
+ private void initCodeCompletionSqlEditor(final ISQLPanelAPI sqlPaneAPI, final ISession session)
+ {
+ GUIUtils.processOnSwingEventThread(new Runnable()
+ {
+ public void run()
+ {
+ CodeCompletionInfoCollection c = new CodeCompletionInfoCollection(session, CodeCompletionPlugin.this, true);
+
+ CompleteCodeAction cca =
+ new CompleteCodeAction(session.getApplication(),
+ CodeCompletionPlugin.this,
+ sqlPaneAPI.getSQLEntryPanel(),
+ session,
+ c,
+ null);
+
+ JMenuItem item = sqlPaneAPI.addToSQLEntryAreaMenu(cca);
+
+ _resources.configureMenuItem(cca, item);
+
+ JComponent comp = sqlPaneAPI.getSQLEntryPanel().getTextComponent();
+ comp.registerKeyboardAction(cca, _resources.getKeyStroke(cca), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
+
+ sqlPaneAPI.addToToolsPopUp("completecode", cca);
+ }
+
+ });
+ }
+
+ private void initCodeCompletionObjectTreeFind(final ISession session, final ObjectTreePanel objectTreePanel)
+ {
+ GUIUtils.processOnSwingEventThread(new Runnable()
+ {
+ public void run()
+ {
+ ISQLEntryPanel findEntryPanel = objectTreePanel.getFindController().getFindEntryPanel();
+
+ CodeCompletionInfoCollection c = new CodeCompletionInfoCollection(session, CodeCompletionPlugin.this, false);
+
+ CompleteCodeAction cca =
+ new CompleteCodeAction(session.getApplication(),
+ CodeCompletionPlugin.this,
+ findEntryPanel,
+ session,
+ c,
+ objectTreePanel);
+
+
+ JComponent comp = findEntryPanel.getTextComponent();
+ comp.registerKeyboardAction(cca, _resources.getKeyStroke(cca), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
+ }
+
+ });
+ }
+
+ /**
+ * Retrieve plugins resources.
+ *
+ * @return Plugins resources.
+ */
+ public PluginResources getResources()
+ {
+ return _resources;
+ }
+
+}
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionSchemaInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionSchemaInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionSchemaInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionSchemaInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2004 Gerd Wagner
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+
+public class CodeCompletionSchemaInfo extends CodeCompletionInfo
+{
+ private String _schema;
+
+ public CodeCompletionSchemaInfo(String schema)
+ {
+ _schema = schema;
+ }
+
+ public String getCompareString()
+ {
+ return _schema;
+ }
+
+ public String toString()
+ {
+ return _schema;
+ }
+}
\ No newline at end of file
Copied: trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java (from rev 5805, trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java)
===================================================================
--- trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java (rev 0)
+++ trunk/sql12/plugins/codecompletion/src/main/java/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java 2010-08-21 17:35:27 UTC (rev 5807)
@@ -0,0 +1,222 @@
+package net.sourceforge.squirrel_sql.plugins.codecompletion;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.plugins.codecompletion.prefs.CodeCompletionPreferences;
+import net.sourceforge.squirrel_sql.plugins.codecompletion.prefs.PrefixedConfig;
+
+import java.sql.SQLException;
+import java.sql.ResultSet;
+import java.sql.DatabaseMetaData;
+import java.util.Vector;
+
+
+public class CodeCompletionStoredProcedureInfo extends CodeCompletionInfo
+{
+ private String _procName;
+ private int _procType;
+ private ISession _session;
+ private boolean _useCompletionPrefs;
+ private String _catalog;
+ private String _schema;
+ private int _moveCarretBackCount = 0;
+
+ private String _toString;
+
+ private String _params = null;
+
+ /**
+ * This Sessions prefs. Note it is just a reference. Contents change when user changes Session properties.
+ */
+ private CodeCompletionPreferences _prefs;
+
+ public CodeCompletionStoredProcedureInfo(String procName, int procType, ISession session, String catalog, String schema, boolean useCompletionPrefs, CodeCompletionPreferences prefs)
+ {
+ _procName = procName;
+ _procType = procType;
+ _session = session;
+ _useCompletionPrefs = useCompletionPrefs;
+ _prefs = prefs;
+ _catalog = catalog;
+ _schema = schema;
+
+ _toString = _procName + " (SP)";
+
+ }
+
+ public String getCompareString()
+ {
+ return _procName;
+ }
+
+ public String getCompletionString()
+ {
+ try
+ {
+ if(false == _useCompletionPrefs)
+ {
+ _moveCarretBackCount = 0;
+ return _procName;
+ }
+
+
+ String ret = "";
+
+ int completionConfig = getCopmpletionConfig();
+
+ _moveCarretBackCount = 0;
+
+ String params = getParams();
+ switch (completionConfig)
+ {
+ case CodeCompletionPreferences.CONFIG_SP_WITH_PARARMS:
+ ret = "{call " + _procName + "(" + params + ")}";
+ if (0 < params.length())
+ {
+ _moveCarretBackCount = params.length() + 2;
+ }
+ break;
+ case CodeCompletionPreferences.CONFIG_SP_WITHOUT_PARARMS:
+ ret = "{call " + _procName + "()}";
+ if (0 < params.length())
+ {
+ _moveCarretBackCount = 2;
+ }
+ break;
+ case CodeCompletionPreferences.CONFIG_UDF_WITH_PARARMS:
+ ret = _procName + "(" + params + ")";
+ if (0 < params.length())
+ {
+ _moveCarretBackCount = params.length() + 1;
+ }
+ break;
+ case CodeCompletionPreferences.CONFIG_UDF_WITHOUT_PARARMS:
+ if (0 < params.length())
+ {
+ _moveCarretBackCount = 1;
+ }
+ ret = _procName + "()";
+ break;
+ }
+
+ return ret;
+ }
+ catch (SQLException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private int getCopmpletionConfig()
+ {
+ PrefixedConfig[] prefixedConfigs = _prefs.getPrefixedConfigs();
+
+ for (int i = 0; i < prefixedConfigs.length; i++)
+ {
+ if(_procName.toUpperCase().startsWith(prefixedConfigs[i].getPrefix().toUpperCase()))
+ {
+ return prefixedConfigs[i].getCompletionConfig();
+ }
+ }
+
+ return _prefs.getGeneralCompletionConfig();
+ }
+
+
+ private String getParams() throws SQLException
+ {
+ if (null == _params)
+ {
+ ResultSet res = _session.getSQLConnection().getConnection().getMetaData().getProcedureColumns(_catalog, _schema, _procName, null);
+
+ Vector<String> ret = new Vector<String>();
+ while (res.next())
+ {
+ switch (res.getInt("COLUMN_TYPE"))
+ {
+ case DatabaseMetaData.procedureColumnIn:
+ case DatabaseMetaData.procedureColumnOut:
+ case DatabaseMetaData.procedureColumnInOut:
+ ret.add(getParamString(res));
+ }
+ }
+ res.close();
+
+ String[] _paramStrings = ret.toArray(new String[ret.size()]);
+
+
+ _params = "";
+ if (0 < _paramStrings.length)
+ {
+ _params += _paramStrings[0];
+ }
+
+ for (int i = 1; i < _paramStrings.length; i++)
+ {
+ _params += ", " + _paramStrings[i];
+ }
+ }
+
+ return _params;
+ }
+
+ private String getParamString(ResultSet res) throws SQLException
+ {
+ String ret = "<";
+
+ switch(res.getInt("COLUMN_TYPE"))
+ {
+ case DatabaseMetaData.procedureColumnIn:
+ ret += "IN ";
+ break;
+ case DatabaseMetaData.procedureColumnOut:
+ ret += "OUT ";
+ break;
+ case DatabaseMetaData.procedureColumnInOut:
+ ret += "INOUT ";
+ break;
+ }
+
+ ret += res.getString("TYPE_NAME") + " ";
+
+ ret += res.getString("COLUMN_NAME");
+
+ String remarks = res.getString("REMARKS");
+
+ if(null != remarks)
+ {
+ ret += " " + remarks.replace('\n', ' ');
+ }
+
+ ret += ">";
+
+ return ret;
+ }
+
+ public String toString()
+ {
+ ...
[truncated message content] |