Thread: [Squirrel-sql-commits] SF.net SVN: squirrel-sql:[5568] trunk/sql12
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: <ger...@us...> - 2010-04-04 09:55:18
|
Revision: 5568 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5568&view=rev Author: gerdwagner Date: 2010-04-04 09:55:12 +0000 (Sun, 04 Apr 2010) Log Message: ----------- Code completion Plugin: Users may choose to see column remarks in completion lists. Modified Paths: -------------- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java trunk/sql12/doc/changes.txt trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferences.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesController.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesPanel.java trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/I18NStrings.properties Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/ExtendedColumnInfo.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -34,6 +34,7 @@ private String _schem; private String _simpleTableName; private String _qualifiedName; + private String _remarks; public ExtendedColumnInfo(TableColumnInfo info, String simpleTableName) { @@ -41,6 +42,7 @@ _columnType = info.getTypeName(); _columnSize = info.getColumnSize(); _decimalDigits = info.getDecimalDigits(); + _remarks = info.getRemarks(); if ("YES".equals(info.isNullable())) { _nullable = true; @@ -91,6 +93,11 @@ return _schem; } + public String getRemarks() + { + return _remarks; + } + public String getSimpleTableName() { return _simpleTableName; Modified: trunk/sql12/doc/changes.txt =================================================================== --- trunk/sql12/doc/changes.txt 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/doc/changes.txt 2010-04-04 09:55:12 UTC (rev 5568) @@ -7,6 +7,10 @@ Enhancements: +Code completion Plugin: + - Users may choose to see column remarks in completion lists. + See Menu File --> New Session Properties --> Code Completion --> Checkbox an bottom of panel + Hibernate Plugin: - Results of HQL Queries can be displayed as objects - Hibernate logs can be seen in SQuirreL logs when Hibernate logging is configured for console output. Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionColumnInfo.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -18,32 +18,45 @@ package net.sourceforge.squirrel_sql.plugins.codecompletion; -import java.sql.Types; - - 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 columnType, int columnSize, int decimalDigits, boolean nullable) + + 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; - _toString = _columnName + " " + _columnType + "(" + _columnSize + decimalDigitsString + ") " + (_nullable? "NULL": "NOT NULL"); + _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; Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionInfoCollection.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -24,6 +24,7 @@ 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.*; @@ -34,14 +35,14 @@ StringManagerFactory.getStringManager(CodeCompletionInfoCollection.class); - private Hashtable<String, Vector<CodeCompletionInfo>> _completionInfosByCataLogAndSchema = + private Hashtable<String, Vector<CodeCompletionInfo>> _completionInfosByCataLogAndSchema = new Hashtable<String, Vector<CodeCompletionInfo>>(); - private Vector<CodeCompletionInfo> _aliasCompletionInfos = + private Vector<CodeCompletionInfo> _aliasCompletionInfos = new Vector<CodeCompletionInfo>(); - private Vector<CodeCompletionSchemaInfo> _schemas = + private Vector<CodeCompletionSchemaInfo> _schemas = new Vector<CodeCompletionSchemaInfo>(); - private Vector<CodeCompletionCatalogInfo> _catalogs = + private Vector<CodeCompletionCatalogInfo> _catalogs = new Vector<CodeCompletionCatalogInfo>(); private ISession _session; @@ -52,13 +53,16 @@ // 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) + 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() @@ -90,8 +94,9 @@ ITableInfo[] tables = _session.getSchemaInfo().getITableInfos(catalog, schema); - Hashtable<String, CodeCompletionInfo> completionInfoByUcTableName = - new Hashtable<String, CodeCompletionInfo>(); + Hashtable<String, CodeCompletionInfo> completionInfoByUcTableName = new Hashtable<String, CodeCompletionInfo>(); + + for (int i = 0; i < tables.length; i++) { String ucTableName = tables[i].getSimpleName().toUpperCase(); @@ -101,7 +106,9 @@ CodeCompletionTableInfo tableInfo = new CodeCompletionTableInfo(tables[i].getSimpleName(), tables[i].getType(), tables[i].getCatalogName(), - tables[i].getSchemaName()); + tables[i].getSchemaName(), + _useCompletionPrefs, + _prefs.isShowRemarksInColumnCompletion()); if(null != dupl) { @@ -120,10 +127,10 @@ new CodeCompletionStoredProcedureInfo(storedProceduresInfos[i].getSimpleName(), storedProceduresInfos[i].getProcedureType(), _session, - _plugin, catalog, schema, - _useCompletionPrefs); + _useCompletionPrefs, + _prefs); completionInfos.add(buf); } @@ -288,7 +295,7 @@ { if(false == aliasInfos[i].aliasName.startsWith("#")) { - _aliasCompletionInfos.add(new CodeCompletionTableAliasInfo(aliasInfos[i])); + _aliasCompletionInfos.add(new CodeCompletionTableAliasInfo(aliasInfos[i], _useCompletionPrefs, _prefs.isShowRemarksInColumnCompletion())); } } } Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionStoredProcedureInfo.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -15,7 +15,6 @@ private String _procName; private int _procType; private ISession _session; - private CodeCompletionPlugin _plugin; private boolean _useCompletionPrefs; private String _catalog; private String _schema; @@ -30,14 +29,13 @@ */ private CodeCompletionPreferences _prefs; - public CodeCompletionStoredProcedureInfo(String procName, int procType, ISession session, CodeCompletionPlugin plugin, String catalog, String schema, boolean useCompletionPrefs) + public CodeCompletionStoredProcedureInfo(String procName, int procType, ISession session, String catalog, String schema, boolean useCompletionPrefs, CodeCompletionPreferences prefs) { _procName = procName; _procType = procType; _session = session; - _plugin = plugin; _useCompletionPrefs = useCompletionPrefs; - _prefs = (CodeCompletionPreferences) _session.getPluginObject(_plugin, CodeCompletionPlugin.PLUGIN_OBJECT_PREFS_KEY); + _prefs = prefs; _catalog = catalog; _schema = schema; Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableAliasInfo.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -25,9 +25,9 @@ private String _toString; - public CodeCompletionTableAliasInfo(TableAliasInfo aliasInfo) + public CodeCompletionTableAliasInfo(TableAliasInfo aliasInfo, boolean useCompletionPrefs, boolean showRemarksInColumnCompletion) { - super(aliasInfo.tableName, "TABLE", null, null); + super(aliasInfo.tableName, "TABLE", null, null, useCompletionPrefs, showRemarksInColumnCompletion); _aliasInfo = aliasInfo; _toString = _aliasInfo.aliasName + " (Alias for " + _aliasInfo.tableName + ")"; } Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/CodeCompletionTableInfo.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -31,14 +31,18 @@ String _toString; private String _catalog; private String _schema; + private boolean _useCompletionPrefs; + private boolean _showRemarksInColumnCompletion; - public CodeCompletionTableInfo(String tableName, String tableType, String catalog, String schema) + public CodeCompletionTableInfo(String tableName, String tableType, String catalog, String schema, boolean useCompletionPrefs, boolean showRemarksInColumnCompletion) { _tableName = tableName; _tableType = tableType; _catalog = catalog; _schema = schema; + _useCompletionPrefs = useCompletionPrefs; + _showRemarksInColumnCompletion = showRemarksInColumnCompletion; if(null != _tableType && !"TABLE".equals(_tableType)) @@ -90,10 +94,14 @@ { String columnName = schemColInfos[i].getColumnName(); String columnType = schemColInfos[i].getColumnType(); + String remarks = schemColInfos[i].getRemarks(); int columnSize = schemColInfos[i].getColumnSize(); int decimalDigits = schemColInfos[i].getDecimalDigits(); boolean nullable = schemColInfos[i].isNullable(); - CodeCompletionColumnInfo buf = new CodeCompletionColumnInfo(columnName, columnType, columnSize, decimalDigits, nullable); + + CodeCompletionColumnInfo buf = + new CodeCompletionColumnInfo(columnName, remarks, columnType, columnSize, decimalDigits, nullable, _useCompletionPrefs, _showRemarksInColumnCompletion); + String bufStr = buf.toString(); if (!uniqCols.contains(bufStr)) { Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferences.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferences.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferences.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -1,5 +1,7 @@ package net.sourceforge.squirrel_sql.plugins.codecompletion.prefs; +import net.sourceforge.squirrel_sql.plugins.codecompletion.CodeCompletionPlugin; + import java.io.Serializable; public class CodeCompletionPreferences implements Serializable @@ -12,6 +14,7 @@ private int generalCompletionConfig = CONFIG_SP_WITH_PARARMS; private PrefixedConfig[] prefixedConfigs = new PrefixedConfig[0]; private int maxLastSelectedCompletionNames = 1; + private boolean _showRemarksInColumnCompletion; public int getGeneralCompletionConfig() { @@ -42,5 +45,14 @@ { this.maxLastSelectedCompletionNames = maxLastSelectedCompletionNames; } + + public boolean isShowRemarksInColumnCompletion() + { + return _showRemarksInColumnCompletion; + } + + public void setShowRemarksInColumnCompletion(boolean b) + { + _showRemarksInColumnCompletion = b; + } } -// Just a Test \ No newline at end of file Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesController.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesController.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesController.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -67,9 +67,11 @@ _panel.tblPrefixes.addColumn(tcCompletionConfig); - _panel.txtMaxLastSelectedCompletionNamesPanel.setText("" + _prefs.getMaxLastSelectedCompletionNames()); + _panel.txtMaxLastSelectedCompletionNames.setText("" + _prefs.getMaxLastSelectedCompletionNames()); + _panel.chkShowRemarksInColumnCompletion.setSelected(_prefs.isShowRemarksInColumnCompletion()); + _panel.btnNewRow.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) @@ -160,13 +162,14 @@ try { - _prefs.setMaxLastSelectedCompletionNames(Math.max(0, Integer.parseInt(_panel.txtMaxLastSelectedCompletionNamesPanel.getText()))); + _prefs.setMaxLastSelectedCompletionNames(Math.max(0, Integer.parseInt(_panel.txtMaxLastSelectedCompletionNames.getText()))); } catch (NumberFormatException e) { } + _prefs.setShowRemarksInColumnCompletion(_panel.chkShowRemarksInColumnCompletion.isSelected()); } Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesPanel.java =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesPanel.java 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/CodeCompletionPreferencesPanel.java 2010-04-04 09:55:12 UTC (rev 5568) @@ -23,7 +23,8 @@ JButton btnNewRow; JButton btnDeleteRows; - JTextField txtMaxLastSelectedCompletionNamesPanel; + JTextField txtMaxLastSelectedCompletionNames; + JCheckBox chkShowRemarksInColumnCompletion; public CodeCompletionPreferencesPanel() @@ -86,6 +87,9 @@ gbc = new GridBagConstraints(0,9,1,1,1,0,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(15,5,5,5),0,0 ); add(createMaxLastSelectedCompletionNamesPanel(),gbc); + + gbc = new GridBagConstraints(0,10,1,1,1,0,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(15,5,5,5),0,0 ); + add(createShowRemarksInColumnCompletionPanel(),gbc); } @@ -106,10 +110,10 @@ gbc = new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 5, 5, 5), 0, 0); NumberFormat format = NumberFormat.getIntegerInstance(); - txtMaxLastSelectedCompletionNamesPanel = new JFormattedTextField(format); - txtMaxLastSelectedCompletionNamesPanel.setPreferredSize(new Dimension(30, txtMaxLastSelectedCompletionNamesPanel.getPreferredSize().height)); + txtMaxLastSelectedCompletionNames = new JFormattedTextField(format); + txtMaxLastSelectedCompletionNames.setPreferredSize(new Dimension(30, txtMaxLastSelectedCompletionNames.getPreferredSize().height)); - ret.add(txtMaxLastSelectedCompletionNamesPanel, gbc); + ret.add(txtMaxLastSelectedCompletionNames, gbc); // i18n[CodeCompletionPreferencesPanel.numberOfTables=number of tables] gbc = new GridBagConstraints(1, 1, 1, 1, 0, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 5, 5), 0, 0); @@ -120,7 +124,33 @@ return ret; } + private JPanel createShowRemarksInColumnCompletionPanel() + { + JPanel ret = new JPanel(); + ret.setLayout(new GridBagLayout()); + + GridBagConstraints gbc; + + // i18n[CodeCompletionPreferencesPanel.showRemarksInColumnCompletionNote= + // Choose this option to see column remarks in code completion lists.\n + // Note: If you change this option on a running Session you need to do a Session cache refresh (F5)] + MultipleLineLabel lbl = new MultipleLineLabel(s_stringMgr.getString("CodeCompletionPreferencesPanel.showRemarksInColumnCompletionNote")); + gbc = new GridBagConstraints(0, 0, 2, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 5, 5), 0, 0); + ret.add(lbl, gbc); + + gbc = new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 5, 5, 5), 0, 0); + // i18n[CodeCompletionPreferencesPanel.showRemarksInColumnCompletionChk=Show remarks in column completion] + chkShowRemarksInColumnCompletion = new JCheckBox(s_stringMgr.getString("CodeCompletionPreferencesPanel.showRemarksInColumnCompletionChk")); + ret.add(chkShowRemarksInColumnCompletion, gbc); + + + ret.setBorder(BorderFactory.createEtchedBorder()); + + return ret; + } + + private JPanel createButtonsPanel() { GridBagConstraints gbc; Modified: trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/I18NStrings.properties =================================================================== --- trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/I18NStrings.properties 2010-04-04 08:48:51 UTC (rev 5567) +++ trunk/sql12/plugins/codecompletion/src/net/sourceforge/squirrel_sql/plugins/codecompletion/prefs/I18NStrings.properties 2010-04-04 09:55:12 UTC (rev 5568) @@ -32,3 +32,7 @@ CodeCompletionPreferencesPanel.maxLastSelectedCompletionNames=If you call code completion without being in the scope of a table/view, for which number of tables the parser last found would you like to see colums on top of the completion list? CodeCompletionPreferencesPanel.numberOfTables=number of tables + + +CodeCompletionPreferencesPanel.showRemarksInColumnCompletionNote=Choose this option to see column remarks in code completion lists.\nNote: If you change this option on a running Session you need to do a Session cache refresh (F5) +CodeCompletionPreferencesPanel.showRemarksInColumnCompletionChk=Show remarks in column completion This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-05-20 20:44:54
|
Revision: 5625 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5625&view=rev Author: gerdwagner Date: 2010-05-20 20:44:48 +0000 (Thu, 20 May 2010) Log Message: ----------- Fonts in RSyntax Modified Paths: -------------- trunk/sql12/doc/changes.txt trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelRSyntaxTextArea.java trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelSyntaxScheme.java Modified: trunk/sql12/doc/changes.txt =================================================================== --- trunk/sql12/doc/changes.txt 2010-05-10 18:17:46 UTC (rev 5624) +++ trunk/sql12/doc/changes.txt 2010-05-20 20:44:48 UTC (rev 5625) @@ -6,6 +6,7 @@ Bug-fixes: +2991971: RSyntax text editor ignores font settings 2992443: Cannot use RSyntax or Netbeans editors Parser could be triggered far to often which resulted in high CPU and memory load. Modified: trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelRSyntaxTextArea.java =================================================================== --- trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelRSyntaxTextArea.java 2010-05-10 18:17:46 UTC (rev 5624) +++ trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelRSyntaxTextArea.java 2010-05-20 20:44:48 UTC (rev 5625) @@ -14,6 +14,7 @@ import net.sourceforge.squirrel_sql.plugins.syntax.rsyntax.search.SquirrelRSyntaxSearchEngine; import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; +import org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaEditorKit; import org.fife.ui.rsyntaxtextarea.SyntaxScheme; import org.fife.ui.rtextarea.RTextAreaUI; @@ -22,6 +23,7 @@ import javax.swing.event.ChangeListener; import javax.swing.text.Document; import javax.swing.text.DefaultCaret; +import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.ActionEvent; @@ -122,7 +124,10 @@ public void updateFromPreferences() { - _squirrelSyntaxScheme.initSytles(_prefs); + setFont(_session.getProperties().getFontInfo().createFont()); + _squirrelSyntaxScheme.initSytles(_prefs, _session.getProperties().getFontInfo()); + new RSyntaxTextAreaEditorKit.IncreaseFontSizeAction().actionPerformedImpl(new ActionEvent(this, 1, "foo"), this); + new RSyntaxTextAreaEditorKit.DecreaseFontSizeAction().actionPerformedImpl(new ActionEvent(this, 1, "bar"), this); repaint(); } Modified: trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelSyntaxScheme.java =================================================================== --- trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelSyntaxScheme.java 2010-05-10 18:17:46 UTC (rev 5624) +++ trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/SquirrelSyntaxScheme.java 2010-05-20 20:44:48 UTC (rev 5625) @@ -1,5 +1,7 @@ package net.sourceforge.squirrel_sql.plugins.syntax.rsyntax; +import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties; +import net.sourceforge.squirrel_sql.fw.gui.FontInfo; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.Style; import org.fife.ui.rsyntaxtextarea.SyntaxScheme; @@ -22,19 +24,19 @@ super(true); } - public void initSytles(SyntaxPreferences prefs) + public void initSytles(SyntaxPreferences prefs, FontInfo fontInfo) { super.restoreDefaults(); Style[] stylesBuf = new Style[SquirrelTokenMarker.getNumTokenTypes()]; System.arraycopy(styles, 0, stylesBuf, 0, styles.length); - Font temp = RSyntaxTextArea.getDefaultFont(); StyleContext sc = StyleContext.getDefaultStyleContext(); - Font boldFont = sc.getFont(temp.getFamily(), Font.BOLD, - temp.getSize()); - Font italicFont = sc.getFont(temp.getFamily(), Font.ITALIC, - temp.getSize()); + + Font boldFont = sc.getFont(fontInfo.getFamily(), Font.BOLD, fontInfo.getSize()); + Font italicFont = sc.getFont(fontInfo.getFamily(), Font.ITALIC, fontInfo.getSize()); + + // stylesBuf[SquirrelTokenMarker.TOKEN_IDENTIFIER_TABLE] = new Style(Color.green, null); // stylesBuf[SquirrelTokenMarker.TOKEN_IDENTIFIER_DATA_TYPE] = new Style(new Color(178,178,0), null, boldFont); // stylesBuf[SquirrelTokenMarker.TOKEN_IDENTIFIER_COLUMN] = new Style(new Color(102,102,0), null, boldFont); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-05-27 04:09:36
|
Revision: 5627 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5627&view=rev Author: gerdwagner Date: 2010-05-27 04:09:30 +0000 (Thu, 27 May 2010) Log Message: ----------- RSyntax: When code reformatting was used on Windows, carriage return chars (\r) where inserted in the editor. These chars made keyboard arrow keys fail: If you stepped over an \r the key hit did nothing. Modified Paths: -------------- trunk/sql12/doc/changes.txt trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java Modified: trunk/sql12/doc/changes.txt =================================================================== --- trunk/sql12/doc/changes.txt 2010-05-20 21:16:01 UTC (rev 5626) +++ trunk/sql12/doc/changes.txt 2010-05-27 04:09:30 UTC (rev 5627) @@ -6,6 +6,10 @@ Bug-fixes: +RSyntax: When code reformatting was used on Windows, carriage return chars (\r) where inserted in the editor. +These chars made keyboard arrow keys fail: If you stepped over an \r the key hit did nothing. + + 2991971: RSyntax text editor ignores font settings 2992443: Cannot use RSyntax or Netbeans editors Modified: trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java =================================================================== --- trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java 2010-05-20 21:16:01 UTC (rev 5626) +++ trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java 2010-05-27 04:09:30 UTC (rev 5627) @@ -145,11 +145,12 @@ */ public void setText(String text) { + text = removeCarriageReturn(text); setText(text, true); triggerParser(); } - /** + /** * Replace the contents of the SQL entry area with the passed SQL script and * specify whether to select it. * @@ -161,6 +162,7 @@ */ public void setText(String text, boolean select) { + text = removeCarriageReturn(text); _textArea.setText(text); if (select) { @@ -178,6 +180,7 @@ */ public void appendText(String sqlScript) { + sqlScript = removeCarriageReturn(sqlScript); appendText(sqlScript, false); } @@ -193,6 +196,7 @@ */ public void appendText(String sqlScript, boolean select) { + sqlScript = removeCarriageReturn(sqlScript); Document doc = _textArea.getDocument(); try @@ -282,12 +286,32 @@ */ public void replaceSelection(String sqlScript) { + sqlScript = removeCarriageReturn(sqlScript); _textArea.replaceSelection(sqlScript); triggerParser(); } + + /** + * RSyntax does not like CRs, even on Windows. + * If you insert ones you find that arrow keys do not work correctly: + * When steping over a CR it looks like the arrow key does nothing. + * + * E.G.: Code reformating comes with CRs in line ends on Windows + */ + private String removeCarriageReturn(String text) + { + if(null == text) + { + return null; + } + + return text.replaceAll("\r",""); + } + + private void triggerParser() { IParserEventsProcessor parserEventsProcessor = _propertiesWrapper.getParserEventsProcessor(getIdentifier(), _session); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-05-30 22:54:33
|
Revision: 5637 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5637&view=rev Author: gerdwagner Date: 2010-05-30 22:54:27 +0000 (Sun, 30 May 2010) Log Message: ----------- RSyntax: Turned off drag and drop inside the editor. It conflicted with our drag and drop feature for files and caused editor texts to vanish. See bug #3006515. Modified Paths: -------------- trunk/sql12/doc/changes.txt trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java Modified: trunk/sql12/doc/changes.txt =================================================================== --- trunk/sql12/doc/changes.txt 2010-05-30 18:35:50 UTC (rev 5636) +++ trunk/sql12/doc/changes.txt 2010-05-30 22:54:27 UTC (rev 5637) @@ -6,6 +6,9 @@ Bug-fixes: +RSyntax: Turned off drag and drop inside the editor. It conflicted with our +drag and drop feature for files and caused editor texts to vanish. See bug #3006515. + RSyntax: When code reformatting was used on Windows, carriage return chars (\r) where inserted in the editor. These chars made keyboard arrow keys fail: If you stepped over an \r the key hit did nothing. Modified: trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java =================================================================== --- trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java 2010-05-30 18:35:50 UTC (rev 5636) +++ trunk/sql12/plugins/syntax/src/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/RSyntaxSQLEntryPanel.java 2010-05-30 22:54:27 UTC (rev 5637) @@ -84,6 +84,14 @@ dt = new DropTarget(_textArea, new FileEditorDropTargetListener(session)); + + + ////////////////////////////////////////////////////////////////////// + // Dragging inside the text area itself conflicts with file dnd + // so we disable it. See bug #3006515 + _textArea.setDragEnabled(false); + // + //////////////////////////////////////////////////////////////////// } public int getCaretLineNumber() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-06-06 22:21:25
|
Revision: 5640 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5640&view=rev Author: gerdwagner Date: 2010-06-06 22:21:17 +0000 (Sun, 06 Jun 2010) Log Message: ----------- New way to view query results: There is an new tab inside a query result named "Overview". It might need some trying out to understand what it does. Modified Paths: -------------- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/squirrel.properties trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java trunk/sql12/doc/changes.txt trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/ResultSetDataSet.java trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/ButtonTableHeader.java trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/SortableTableModel.java trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/util/Utilities.java Added Paths: ----------- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/images/next.png trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/images/prev.png trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/I18NStrings.properties trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewDataSet.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewFrame.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewHolder.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewCtrl.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewPanel.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/BooleanIndexedColumn.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/Calculator.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/CharRange.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScale.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleButton.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleLayout.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleListener.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScalePanel.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableCellEditor.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableModel.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTablePopupHandler.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DoubleIndexedColumn.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/I18NStrings.properties trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/IndexedColumn.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/IndexedColumnFactory.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/IntegerIndexedColumn.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/Interval.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/NoIx.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleFactory.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/StringCalculator.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/StringIndexedColumn.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/TimestampIndexedColumn.java trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/SortingListener.java Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java 2010-05-30 23:16:33 UTC (rev 5639) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/SquirrelResources.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -77,6 +77,8 @@ String AUTOHIDE_OFF = "autohideOff"; String MINIMIZE = "minimize"; + String PREV_SCALE = "prevScale"; + String NEXT_SCALE = "nextScale"; } public SquirrelResources(String rsrcBundleBaseName) Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/images/next.png =================================================================== (Binary files differ) Property changes on: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/images/next.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/images/prev.png =================================================================== (Binary files differ) Property changes on: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/images/prev.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/squirrel.properties =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/squirrel.properties 2010-05-30 23:16:33 UTC (rev 5639) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/resources/squirrel.properties 2010-06-06 22:21:17 UTC (rev 5640) @@ -62,7 +62,11 @@ autohideOff.image=autohideOff.gif minimize.image=minimize.gif +prevScale.image=prev.png +nextScale.image=next.png + + ######## # icons displayed in the drivers list indicating whether # or not driver could be loaded. Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2010-05-30 23:16:33 UTC (rev 5639) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -30,8 +30,6 @@ public interface IResultTab { - void reInit(IDataSetUpdateableTableModel creator, SQLExecutionInfo exInfo); - /** * Show the results from the passed <TT>IDataSet</TT>. * Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2010-05-30 23:16:33 UTC (rev 5639) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -34,7 +34,10 @@ import java.text.NumberFormat; import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.OverwiewCtrl; import net.sourceforge.squirrel_sql.fw.datasetviewer.*; import net.sourceforge.squirrel_sql.fw.gui.MultipleLineLabel; import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier; @@ -150,7 +153,7 @@ /** * @see net.sourceforge.squirrel_sql.client.session.mainpanel.IResultTab#reInit(net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel, net.sourceforge.squirrel_sql.client.session.SQLExecutionInfo) */ - public void reInit(IDataSetUpdateableTableModel creator, SQLExecutionInfo exInfo) + private void reInit(IDataSetUpdateableTableModel creator, SQLExecutionInfo exInfo) { _creator = creator; _creator.addListener(new DataSetUpdateableTableModelListener() @@ -460,6 +463,24 @@ String infoTabTitle = s_stringMgr.getString("ResultTab.infoTabTitle"); _tp.addTab(infoTabTitle, sp); + + + final int overViewIx = _tp.getTabCount(); + final OverwiewCtrl ctrl = new OverwiewCtrl(_session); + _tp.addTab(ctrl.getTitle(), ctrl.getPanel()); + + _tp.addChangeListener(new ChangeListener() + { + @Override + public void stateChanged(ChangeEvent e) + { + if (overViewIx == _tp.getSelectedIndex()) + { + ctrl.init(_rsds); + } + } + }); + } private final class TabButton extends JButton Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java 2010-05-30 23:16:33 UTC (rev 5639) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -130,10 +130,6 @@ private Map<IIdentifier,ResultTabInfo> _allTabs = new HashMap<IIdentifier,ResultTabInfo>(); - /** - * Pool of <TT>ResultTabInfo</TT> objects available for use. - */ - private List<ResultTabInfo> _availableTabs = new ArrayList<ResultTabInfo>(); /** * Pool of <TT>ResultTabInfo</TT> objects currently being used. @@ -506,7 +502,6 @@ tab.clear(); _tabbedExecutionsPanel.remove(tab); ResultTabInfo tabInfo = _allTabs.get(tab.getIdentifier()); - _availableTabs.add(tabInfo); _usedTabs.remove(tabInfo); tabInfo._resultFrame = null; fireTabRemovedEvent(tab); @@ -759,32 +754,21 @@ final IResultTab resultTabToReplace) { final ResultTab tab; - if (_availableTabs.size() > 0) - { - ResultTabInfo ti = _availableTabs.remove(0); - _usedTabs.add(ti); - tab = ti._tab; - tab.reInit(creator, exInfo); - s_log.debug("Using tab " + tab.getIdentifier().toString() - + " for results."); - } - else - { - ResultTabListener resultTabListener = new ResultTabListener() + + ResultTabListener resultTabListener = new ResultTabListener() + { + public void rerunSQL(String sql, IResultTab resultTab) { - public void rerunSQL(String sql, IResultTab resultTab) - { - onRerunSQL(sql, resultTab); - } - }; + onRerunSQL(sql, resultTab); + } + }; - tab = new ResultTab(_session, this, _idFactory.createIdentifier(), exInfo, creator, resultTabListener); - ResultTabInfo ti = new ResultTabInfo(tab); - _allTabs.put(tab.getIdentifier(), ti); - _usedTabs.add(ti); - s_log.debug("Created new tab " + tab.getIdentifier().toString() - + " for results."); - } + tab = new ResultTab(_session, this, _idFactory.createIdentifier(), exInfo, creator, resultTabListener); + ResultTabInfo ti = new ResultTabInfo(tab); + _allTabs.put(tab.getIdentifier(), ti); + _usedTabs.add(ti); + s_log.debug("Created new tab " + tab.getIdentifier().toString() + + " for results."); try { Copied: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/I18NStrings.properties (from rev 5579, trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/I18NStrings.properties) =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/I18NStrings.properties (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/I18NStrings.properties 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,18 @@ +OverwiewCtrl.title=Overview + +OverwiewPanel.prevOverview=Previous overview +OverwiewPanel.nextOverview=Next overview + +OverwiewPanel.showInTable=As table +OverwiewPanel.showInTableToolTip=Show this overview as table +OverwiewPanel.showTableInWin=As table in new window +OverwiewPanel.showTableInWinToolTip=Show this overview as table in a new window + + +OverwiewPanel.saveColumnWidth=Remember widths +OverwiewPanel.saveColumnWidthToolTip=Remember current column widths + + +OverviewFrame.title=Overview table window + +OverviewFrame.stayOnTop=Stay on top \ No newline at end of file Copied: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewDataSet.java (from rev 5579, trunk/sql12/plugins/hibernate/src/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ResultDataSet.java) =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewDataSet.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewDataSet.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,43 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview; + +import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition; +import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetDefinition; +import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException; +import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSet; +import net.sourceforge.squirrel_sql.fw.util.IMessageHandler; + +import java.util.List; + +public class OverviewDataSet implements IDataSet +{ + private int _curIx = -1; + private ColumnDisplayDefinition[] _columnDisplayDefinitions; + private List<Object[]> _allRows; + + + public OverviewDataSet(List<Object[]> allRows, ColumnDisplayDefinition[] columnDisplayDefinitions) + { + _allRows = allRows; + _columnDisplayDefinitions = columnDisplayDefinitions; + } + + public int getColumnCount() throws DataSetException + { + return _columnDisplayDefinitions.length; + } + + public DataSetDefinition getDataSetDefinition() throws DataSetException + { + return new DataSetDefinition(_columnDisplayDefinitions); + } + + public boolean next(IMessageHandler msgHandler) throws DataSetException + { + return ++_curIx < _allRows.size(); + } + + public Object get(int columnIndex) throws DataSetException + { + return _allRows.get(_curIx)[columnIndex]; + } +} \ No newline at end of file Copied: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewFrame.java (from rev 5579, trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultFrame.java) =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewFrame.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewFrame.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,109 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview; + +import net.sourceforge.squirrel_sql.client.IApplication; +import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget; +import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.WidgetAdapter; +import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.WidgetEvent; +import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel; +import net.sourceforge.squirrel_sql.fw.util.StringManager; +import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.prefs.Preferences; + +public class OverviewFrame extends DialogWidget +{ + private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(OverviewFrame.class); + + private static final String PREF_KEY_OVERVIEW_FRAME_WIDTH = "Squirrel.overview.FrameWidth"; + private static final String PREF_KEY_OVERVIEW_FRAME_HIGHT = "Squirrel.overview.FrameHight"; + + + private JCheckBox _chkOnTop; + + public OverviewFrame(DataSetViewerTablePanel simpleTable, IApplication app) + { + super(s_stringMgr.getString("OverviewFrame.title"), true, true, true, true, app); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + final Container cont = getContentPane(); + cont.setLayout(new BorderLayout()); + + if (app.getDesktopStyle().supportsLayers()) + { + JPanel pnlButtons = new JPanel(new GridBagLayout()); + GridBagConstraints gbc; + + + // i18n[resultFrame.stayOnTop=Stay on top] + _chkOnTop = new JCheckBox(s_stringMgr.getString("OverviewFrame.stayOnTop")); + gbc = new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,5,0,5), 0,0); + pnlButtons.add(_chkOnTop, gbc); + _chkOnTop.setSelected(true); + + + _chkOnTop.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + onStayOnTopChanged(); + } + }); + + gbc = new GridBagConstraints(2,0,1,1,1,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,5,0,5), 0,0); + pnlButtons.add(new JPanel(), gbc); + cont.add(pnlButtons, BorderLayout.NORTH); + } + + + cont.add(new JScrollPane(simpleTable.getComponent()), BorderLayout.CENTER); + + + int width = Preferences.userRoot().getInt(PREF_KEY_OVERVIEW_FRAME_WIDTH, 300); + int hight = Preferences.userRoot().getInt(PREF_KEY_OVERVIEW_FRAME_HIGHT, 300); + + setSize(new Dimension(width, hight)); + + + addWidgetListener(new WidgetAdapter() + { + @Override + public void widgetClosing(WidgetEvent evt) + { + onWidgetClosing(); + } + }); + } + + private void onWidgetClosing() + { + Dimension size = getSize(); + + Preferences.userRoot().putInt(PREF_KEY_OVERVIEW_FRAME_WIDTH, size.width); + Preferences.userRoot().putInt(PREF_KEY_OVERVIEW_FRAME_HIGHT, size.height); + } + + + private void onStayOnTopChanged() + { + if(_chkOnTop.isSelected()) + { + setLayer(JLayeredPane.PALETTE_LAYER.intValue()); + } + else + { + setLayer(JLayeredPane.DEFAULT_LAYER.intValue()); + } + + // Needs to be done in both cases because if the window goes back to + // the default layer it goes back behind all other windows too. + toFront(); + } + + + +} \ No newline at end of file Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewHolder.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewHolder.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverviewHolder.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,162 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview; + +import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale.DataScaleTable; +import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel; + +import java.awt.*; + +public class OverviewHolder +{ + private DataScaleTable _dataScaleTable; + private SimpleTable _simpleTable; + + public DataScaleTable getDataScaleTable() + { + return _dataScaleTable; + } + + public boolean isEmpty() + { + return null == _dataScaleTable && null == _simpleTable; + } + + public void setOverview(DataScaleTable dataScaleTable) + { + + if(null != _dataScaleTable) + { + dataScaleTable.setParentScaleTable(_dataScaleTable); + } + _dataScaleTable = dataScaleTable; + + _simpleTable = null; + } + + + public void setOverview(DataSetViewerTablePanel simpleTable) + { + _simpleTable = new SimpleTable(simpleTable, _dataScaleTable); + _dataScaleTable = null; + } + + public void setParent() + { + if(null != _simpleTable) + { + _dataScaleTable = _simpleTable.getParent(); + _simpleTable = null; + return; + } + + if(null != _dataScaleTable) + { + _dataScaleTable = _dataScaleTable.getParentScaleTable(); + _simpleTable = null; + return; + } + } + + public void setKid() + { + if (null != _dataScaleTable.getKidScaleTable()) + { + _dataScaleTable = _dataScaleTable.getKidScaleTable(); + _simpleTable = null; + } + else + { + _simpleTable = new SimpleTable(_dataScaleTable.getKidSimpleTable(), _dataScaleTable); + _dataScaleTable = null; + } + } + + + public boolean hasParent() + { + if(null != _simpleTable) + { + return true; + } + + if(null != _dataScaleTable) + { + return null != _dataScaleTable.getParentScaleTable(); + } + + throw new IllegalStateException("Either _simpleTable or _dataScaleTable must be initialized"); + } + + public boolean hasKid() + { + if(null != _simpleTable) + { + return false; + } + + if(null != _dataScaleTable) + { + return null != _dataScaleTable.getKidScaleTable() || null != _dataScaleTable.getKidSimpleTable(); + } + + throw new IllegalStateException("Either _simpleTable or _dataScaleTable must be initialized"); + } + + public Component getComponent() + { + if(null != _simpleTable) + { + return _simpleTable.getComponent(); + } + + if(null != _dataScaleTable) + { + return _dataScaleTable; + } + + throw new IllegalStateException("Either _simpleTable or _dataScaleTable must be initialized"); + } + + public boolean canShowInSimpleTable() + { + return null != _dataScaleTable; + } + + public boolean isScaleTable() + { + return null != _dataScaleTable; + } + + + private static class SimpleTable + { + private DataScaleTable _parent; + private DataSetViewerTablePanel _simpleTable; + + public SimpleTable(DataSetViewerTablePanel simpleTable, DataScaleTable parent) + { + _simpleTable = simpleTable; + _parent = parent; + _parent.setKidSimpleTable(_simpleTable); + } + + public DataScaleTable getParent() + { + return _parent; + } + + public Component getComponent() + { + return _simpleTable.getComponent(); + } + } + +// private void stopCellEditing(DataScaleTable dataScaleTable) +// { +// TableCellEditor tableCellEditor = dataScaleTable.getCellEditor(); +// if (null != tableCellEditor) +// { +// tableCellEditor.stopCellEditing(); +// tableCellEditor.cancelCellEditing(); +// } +// } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewCtrl.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewCtrl.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewCtrl.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,282 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview; + +import net.sourceforge.squirrel_sql.client.IApplication; +import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget; +import net.sourceforge.squirrel_sql.client.session.ISession; +import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale.*; +import net.sourceforge.squirrel_sql.fw.datasetviewer.*; +import net.sourceforge.squirrel_sql.fw.util.StringManager; +import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + +import javax.swing.*; +import javax.swing.table.DefaultTableColumnModel; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.List; + +public class OverwiewCtrl +{ + private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(OverwiewCtrl.class); + + private OverviewHolder _overviewHolder = new OverviewHolder(); + private OverwiewPanel _overwiewPanel; + private IApplication _app; + + public OverwiewCtrl(final ISession session) + { + _app = session.getApplication(); + _overwiewPanel = new OverwiewPanel(_app.getResources()); + + _overwiewPanel.btnNext.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onNext(); + } + }); + + _overwiewPanel.btnPrev.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onPrev(); + } + }); + + _overwiewPanel.btnShowInTable.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onShowInTable(); + } + }); + + + _overwiewPanel.btnShowInTableWin.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onShowInTableWin(); + } + }); + + _overwiewPanel.btnSaveColumnWidth.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onSaveColumnWidths(); + } + }); + + } + + private void onSaveColumnWidths() + { + _overviewHolder.getDataScaleTable().saveColumnWidths(); + } + + + private void onShowInTableWin() + { + DataSetViewerTablePanel simpleTable = createSimpleTable(); + openWindowForTable(simpleTable); + } + + private void openWindowForTable(DataSetViewerTablePanel simpleTable) + { + OverviewFrame overviewFrame = new OverviewFrame(simpleTable, _app); + _app.getMainFrame().addWidget(overviewFrame); + overviewFrame.setLayer(JLayeredPane.PALETTE_LAYER); + overviewFrame.setVisible(true); + DialogWidget.centerWithinDesktop(overviewFrame); + } + + private void onShowInTable() + { + _overviewHolder.setOverview(createSimpleTable()); + initGui(); + } + + + private void onShowIntervalInTable(Interval interval) + { + List<Object[]> rows = interval.getResultRows(); + ColumnDisplayDefinition[] columnDisplayDefinitions = _overviewHolder.getDataScaleTable().getColumnDisplayDefinitions(); + + _overviewHolder.setOverview(createSimpleTable(rows, columnDisplayDefinitions)); + initGui(); + } + + private void onShowIntervalInTableWin(Interval interval) + { + List<Object[]> rows = interval.getResultRows(); + ColumnDisplayDefinition[] columnDisplayDefinitions = _overviewHolder.getDataScaleTable().getColumnDisplayDefinitions(); + + openWindowForTable(createSimpleTable(rows, columnDisplayDefinitions)); + } + + + private DataSetViewerTablePanel createSimpleTable() + { + List<Object[]> allRows = _overviewHolder.getDataScaleTable().getAllRows(); + ColumnDisplayDefinition[] columnDisplayDefinitions = _overviewHolder.getDataScaleTable().getColumnDisplayDefinitions(); + + return createSimpleTable(allRows, columnDisplayDefinitions); + } + + private DataSetViewerTablePanel createSimpleTable(List<Object[]> allRows, ColumnDisplayDefinition[] columnDisplayDefinitions) + { + try + { + OverviewDataSet ods = new OverviewDataSet(allRows, columnDisplayDefinitions); + + DataSetViewerTablePanel dsv = new DataSetViewerTablePanel(); + dsv.init(null); + dsv.show(ods); + return dsv; + } + catch (DataSetException e) + { + throw new RuntimeException(e); + } + } + + + private void onPrev() + { + _overviewHolder.setParent(); + initGui(); + + } + + private void onNext() + { + _overviewHolder.setKid(); + initGui(); + } + + public String getTitle() + { + return s_stringMgr.getString("OverwiewCtrl.title"); + } + + public Component getPanel() + { + return _overwiewPanel; + } + + public void init(ResultSetDataSet rsds) + { + if(false == _overviewHolder.isEmpty()) + { + return; + } + + + List<Object[]> rows = rsds.getAllDataForReadOnly(); + DataSetDefinition dataSetDefinition = rsds.getDataSetDefinition(); + ColumnDisplayDefinition[] columnDefinitions = dataSetDefinition.getColumnDefinitions(); + + initScales(rows, columnDefinitions); + } + + private void onIntervalSelected(Interval interval, ColumnDisplayDefinition[] columnDefinitions) + { + if (false == interval.containsAllRows()) + { + List<Object[]> rows = interval.getResultRows(); + initScales(rows, columnDefinitions); + } + } + + + private void initScales(List<Object[]> rows, final ColumnDisplayDefinition[] columnDefinitions) + { + if(0 == rows.size()) + { + initScaleTable(new DataScale[0], rows, columnDefinitions); + return; + } + + + DataScale[] scales = new DataScale[columnDefinitions.length]; + + DataScaleListener dataScaleListener = new DataScaleListener() + { + @Override + public void intervalSelected(Interval interval) + { + onIntervalSelected(interval, columnDefinitions); + } + + @Override + public void showInTableWin(Interval interval) + { + onShowIntervalInTableWin(interval); + } + + @Override + public void showInTable(Interval interval) + { + onShowIntervalInTable(interval); + } + }; + + + for (int i = 0; i < columnDefinitions.length; i++) + { + scales[i] = new ScaleFactory(rows, i, columnDefinitions[i]).createScale(dataScaleListener); + } + + initScaleTable(scales, rows, columnDefinitions); + } + + private void initScaleTable(DataScale[] scales, List<Object[]> rows, ColumnDisplayDefinition[] columnDefinitions) + { + DataScaleTableModel dataScaleTableModel = new DataScaleTableModel(scales); + DataScaleTable dataScaleTable = new DataScaleTable(dataScaleTableModel, rows, columnDefinitions); + + TableColumnModel tcm = new DefaultTableColumnModel(); + dataScaleTable.setColumnModel(tcm); + + for (int i = 0; i < DataScaleTableModel.getColumnNames().length; i++) + { + TableColumn col = new TableColumn(i); + col.setHeaderValue(DataScaleTableModel.getColumnNames()[i]); + if (DataScaleTableModel.COL_NAME_COLUMN.equals(DataScaleTableModel.getColumnNames()[i])) + { + col.setPreferredWidth(dataScaleTableModel.getColumnWidthForColName(DataScaleTableModel.COL_NAME_COLUMN)); + } + else if (DataScaleTableModel.COL_NAME_DATA.equals(DataScaleTableModel.getColumnNames()[i])) + { + col.setPreferredWidth(dataScaleTableModel.getColumnWidthForColName(DataScaleTableModel.COL_NAME_DATA)); + } + tcm.addColumn(col); + } + + _overviewHolder.setOverview(dataScaleTable); + initGui(); + + } + + private void initGui() + { + _overwiewPanel.btnPrev.setEnabled(_overviewHolder.hasParent()); + _overwiewPanel.btnNext.setEnabled(_overviewHolder.hasKid()); + + _overwiewPanel.btnShowInTable.setEnabled(_overviewHolder.canShowInSimpleTable()); + _overwiewPanel.btnShowInTableWin.setEnabled(_overviewHolder.canShowInSimpleTable()); + + _overwiewPanel.btnSaveColumnWidth.setEnabled(_overviewHolder.isScaleTable()); + + _overwiewPanel.scrollPane.setViewportView(_overviewHolder.getComponent()); + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewPanel.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewPanel.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/OverwiewPanel.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,84 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview; + +import net.sourceforge.squirrel_sql.client.resources.SquirrelResources; +import net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale.DataScaleTable; +import net.sourceforge.squirrel_sql.fw.util.StringManager; +import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + +import javax.swing.*; +import java.awt.*; + +public class OverwiewPanel extends JPanel +{ + JScrollPane scrollPane = new JScrollPane(); + + private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(OverwiewPanel.class); + + + JButton btnPrev; + JButton btnNext; + + JButton btnShowInTableWin; + JButton btnShowInTable; + JButton btnSaveColumnWidth; + + public OverwiewPanel(SquirrelResources rsrc) + { + setLayout(new GridBagLayout()); + + GridBagConstraints gbc; + + gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.NORTHEAST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5),0,0); + createButtonPanel(rsrc); + add(createButtonPanel(rsrc), gbc); + + gbc = new GridBagConstraints(0,1,1,1,1,1,GridBagConstraints.NORTHEAST, GridBagConstraints.BOTH, new Insets(5,5,5,5),0,0); + add(scrollPane, gbc); + } + + private JPanel createButtonPanel(SquirrelResources rsrc) + { + JPanel ret = new JPanel(new GridBagLayout()); + + GridBagConstraints gbc; + + gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(0,0,0,5),0,0); + btnPrev = new JButton(rsrc.getIcon(SquirrelResources.IImageNames.PREV_SCALE)); + btnPrev.setToolTipText(s_stringMgr.getString("OverwiewPanel.prevOverview")); + btnPrev.setEnabled(false); + ret.add(btnPrev, gbc); + + + gbc = new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(0,0,0,20),0,0); + btnNext = new JButton(rsrc.getIcon(SquirrelResources.IImageNames.NEXT_SCALE)); + btnNext.setToolTipText(s_stringMgr.getString("OverwiewPanel.nextOverview")); + btnNext.setEnabled(false); + ret.add(btnNext, gbc); + + gbc = new GridBagConstraints(2,0,1,1,0,0,GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(0,0,0,5),0,0); + btnShowInTable = new JButton(s_stringMgr.getString("OverwiewPanel.showInTable")); + btnShowInTable.setToolTipText(s_stringMgr.getString("OverwiewPanel.showInTableToolTip")); + ret.add(btnShowInTable, gbc); + + gbc = new GridBagConstraints(3,0,1,1,0,0,GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(0,0,0,0),0,0); + btnShowInTableWin = new JButton(s_stringMgr.getString("OverwiewPanel.showTableInWin")); + btnShowInTableWin.setToolTipText(s_stringMgr.getString("OverwiewPanel.showTableInWinToolTip")); + ret.add(btnShowInTableWin, gbc); + + gbc = new GridBagConstraints(4,0,1,1,0,0,GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, new Insets(0,20,0,0),0,0); + btnSaveColumnWidth = new JButton(s_stringMgr.getString("OverwiewPanel.saveColumnWidth")); + btnSaveColumnWidth.setToolTipText(s_stringMgr.getString("OverwiewPanel.saveColumnWidthToolTip")); + ret.add(btnSaveColumnWidth, gbc); + + + gbc = new GridBagConstraints(5,0,1,1,1,1,GridBagConstraints.NORTHEAST, GridBagConstraints.HORIZONTAL, new Insets(5,5,5,5),0,0); + ret.add(new JPanel(), gbc); + + return ret; + } + + public void setTable(DataScaleTable dataScaleTable) + { + scrollPane.setViewportView(dataScaleTable); + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/BooleanIndexedColumn.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/BooleanIndexedColumn.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/BooleanIndexedColumn.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,103 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition; + +import java.util.Comparator; +import java.util.List; + +public class BooleanIndexedColumn extends IndexedColumn +{ + + public BooleanIndexedColumn(List<Object[]> rows, int colIx, ColumnDisplayDefinition colDef) + { + super(rows, colIx, colDef); + + Comparator comparator = new Comparator<Object>() + { + @Override + public int compare(Object ix1, Object ix2) + { + if( ix1 instanceof NoIx && ix2 instanceof NoIx) + { + return compareBoolean(((NoIx) ix1).get(), ((NoIx) ix2).get()); + } + else if(ix1 instanceof NoIx) + { + return compareBoolean(((NoIx) ix1).get(), getRow((Integer) ix2)); + } + else if(ix2 instanceof NoIx) + { + return compareBoolean(getRow((Integer) ix1), ((NoIx) ix2).get()); + } + else + { + return compareBoolean(getRow((Integer) ix1), getRow((Integer) ix2)); + } + } + }; + + sortIx(comparator); + + } + + + private int compareBoolean(Object o1, Object o2) + { + Boolean b1 = asBoolean(o1); + + Boolean b2 = asBoolean(o2); + + + if(b1 == null && b2 != null) + { + return -1; + } + else if(b1 != null && b2 == null) + { + return 1; + } + else if(b1 == null && b2 == null) + { + return 0; + } + + return b1.compareTo(b2); + + } + + private Boolean asBoolean(Object o) + { + Boolean b = null; + if (null != o) + { + if(o instanceof Number) + { + b = 0 != ((Number)o).intValue(); + } + else + { + b = (Boolean)o; + } + } + return b; + } + + + @Override + public Calculator getCalculator() + { + return new Calculator() + { + @Override + public Object getMid(Object min, Object max) + { + return onGetMid(min, max); + } + }; + } + + private Object onGetMid(Object min, Object max) + { + return asBoolean(min) && asBoolean(max); + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/Calculator.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/Calculator.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/Calculator.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,6 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +public interface Calculator<T> +{ + T getMid(T min, T max); +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/CharRange.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/CharRange.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/CharRange.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,61 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +public class CharRange +{ + private int _minChar = ' '; + private int _maxChar = '~'; + + private boolean _isInit; + private boolean _initializing; + + public char getRange() + { + return (char) (_maxChar - _minChar + 1); + } + + public void init(String s) + { + if(false == _initializing) + { + return; + } + + if(null == s || 0 == s.length()) + { + return; + } + + if(false == _isInit) + { + _minChar = s.charAt(0); + _maxChar = s.charAt(0); + _isInit = true; + } + + for (int i = 0; i < s.length(); i++) + { + _minChar = Math.min(_minChar, s.charAt(i)); + _maxChar = Math.max(_maxChar, s.charAt(i)); + } + } + + void beginInit() + { + _initializing = true; + } + + void endInit() + { + _initializing = false; + } + + public char getMinChar() + { + return (char) _minChar; + } + + public char getMaxChar() + { + return (char) _maxChar; + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScale.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScale.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScale.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,135 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.HashMap; + +public class DataScale implements Comparable<DataScale> +{ + private DataScalePanel _panel; + + private ArrayList<Interval> _intervals = new ArrayList<Interval>(); + private String _column; + private DataScaleListener _dataScaleListener; + private int _columnIndex; + private HashMap<JButton, Interval> _intervalByButton = new HashMap<JButton, Interval>(); + + public DataScale(String column, DataScaleListener dataScaleListener, int columnIndex) + { + _column = column; + _dataScaleListener = dataScaleListener; + + // Needed just to define reasonable sorting of data column in overview table + _columnIndex = columnIndex; + } + + public String getColumn() + { + return _column; + } + + public void addInterval(Interval interval) + { + _intervals.add(interval); + } + + + public DataScalePanel getPanel() + { + if(null == _panel) + { + double[] wights = new double[_intervals.size()]; + + for (int i = 0; i < _intervals.size(); i++) + { + wights[i] = _intervals.get(i).getWight(); + } + + _panel = new DataScalePanel(new DataScaleLayout(wights)); + + for (int i = 0; i < _intervals.size(); i++) + { + _panel.add(createButton(i)); + } + } + + return _panel; + } + + private JButton createButton(final int intervalIx) + { + final String text = _intervals.get(intervalIx).getLabel(); + + final JButton ret = new JButton(text); + ret.setToolTipText(_intervals.get(intervalIx).getToolTip()); + + ret.setBorder(BorderFactory.createLineBorder(Color.black)); + + ret.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onButtonPressed(_intervals.get(intervalIx)); + } + }); + + _intervalByButton.put(ret, _intervals.get(intervalIx)); + + return ret; + } + + private void onButtonPressed(Interval interval) + { + _dataScaleListener.intervalSelected(interval); + } + + + public double getSumWeights() + { + double ret = 0; + + for (Interval interval : _intervals) + { + ret += interval.getWight(); + } + + return ret; + } + + public int getSumLens() + { + int ret = 0; + + for (Interval interval : _intervals) + { + ret += interval.getLen(); + } + return ret; + + } + + @Override + public int compareTo(DataScale other) + { + return ((Integer)_columnIndex).compareTo(other._columnIndex); + } + + void showInTableSelected(JButton buttonPopupWasOpenedAt) + { + _dataScaleListener.showInTable(_intervalByButton.get(buttonPopupWasOpenedAt)); + } + + void showInTableWin(JButton buttonPopupWasOpenedAt) + { + _dataScaleListener.showInTableWin(_intervalByButton.get(buttonPopupWasOpenedAt)); + } + + public JButton[] getButtons() + { + return _intervalByButton.keySet().toArray(new JButton[_intervalByButton.keySet().size()]); + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleButton.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleButton.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleButton.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,11 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import javax.swing.*; + +public class DataScaleButton extends JButton +{ + public DataScaleButton(DataScale dataScale, int wightAndLabelIx) + { + //To change body of created methods use File | Settings | File Templates. + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleLayout.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleLayout.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleLayout.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,84 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import java.awt.*; + +class DataScaleLayout extends GridLayout +{ + + private Dimension buf = new Dimension(); + + private double[] _renormedWeights; + + public DataScaleLayout(double[] weights) + { + super(1, weights.length); + createRenormedWeights(weights); + } + + /** + * Renorming is done to make sure very small intervals become visible. + */ + private void createRenormedWeights(double[] weights) + { + double[] buf = new double[weights.length]; + + + double sumRenormed = 0; + for (int i = 0; i < weights.length; i++) + { + //System.out.println("weight = " + weights[i]); + + buf[i] = Math.max(weights[i], 1d/60d); + sumRenormed += buf[i]; + } + + _renormedWeights = new double[buf.length]; + for (int i = 0; i < buf.length; i++) + { + _renormedWeights[i] = buf[i] / sumRenormed; + + //System.out.println("_renormedWeight = " + _renormedWeights[i]); + } + } + + + @Override + public void layoutContainer(Container parent) + { + synchronized (parent.getTreeLock()) + { + Insets insets = parent.getInsets(); + + if (_renormedWeights.length == 0) + { + return; + } + + Dimension pSize = parent.getSize(buf); + + int pw = pSize.width - (insets.left + insets.right); + int h = pSize.height - (insets.top + insets.bottom); + + int y = insets.top; + int x = insets.left; + + + int pwLeftOver = pw; + for (int i = 0; i < _renormedWeights.length; i++) + { + if ( i < _renormedWeights.length - 1) + { + int width = (int) (_renormedWeights[i] * (double) pw + 0.5); + parent.getComponent(i).setBounds(x, y, width, h); + x += width; + + pwLeftOver -= width; + } + else + { + parent.getComponent(i).setBounds(x, y, pwLeftOver, h); + } + } + } + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleListener.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleListener.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleListener.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,10 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +public interface DataScaleListener +{ + void intervalSelected(Interval interval); + + void showInTableWin(Interval interval); + + void showInTable(Interval interval); +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScalePanel.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScalePanel.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScalePanel.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,47 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseEvent; + +public class DataScalePanel extends JPanel +{ + + private Point pBuf = new Point(); + private Dimension dBuf = new Dimension(); + + public DataScalePanel(DataScaleLayout dataScaleLayout) + { + super(dataScaleLayout); + } + + + @Override + public String getToolTipText(MouseEvent event) + { + + JButton button = getButtonAt(event.getX()); + + if (null == button) + { + return super.getToolTipText(event); + } + else + { + return button.getToolTipText(); + } + } + + public JButton getButtonAt(int x) + { + for (Component component : getComponents()) + { + if(component.getLocation(pBuf).x < x && x < component.getLocation(pBuf).x + component.getSize(dBuf).width) + { + return (JButton) component; + } + } + + return null; + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,163 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition; +import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel; +import net.sourceforge.squirrel_sql.fw.gui.SortableTable; +import net.sourceforge.squirrel_sql.fw.gui.SortableTableModel; + +import javax.swing.*; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableModel; +import java.awt.*; +import java.util.List; + +public class DataScaleTable extends SortableTable +{ + + + private List<Object[]> _allRows; + private ColumnDisplayDefinition[] _columnDefinitions; + + private DataScaleTable _parent; + private DataScaleTable _kid; + private DataSetViewerTablePanel _kidSimpleTable; + + public DataScaleTable(DataScaleTableModel dataScaleTableModel, List<Object[]> allRows, ColumnDisplayDefinition[] columnDefinitions) + { + super(dataScaleTableModel); + _allRows = allRows; + _columnDefinitions = columnDefinitions; + + setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + + setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + new DataScaleTablePopupHandler(this); + } + + + @Override + public TableCellRenderer getCellRenderer(int row, int column) + { + String headerValue = (String) getColumnModel().getColumn(column).getHeaderValue(); + if(DataScaleTableModel.COL_NAME_COLUMN.equals(headerValue)) + { + return super.getCellRenderer(row, column); + } + else + { + DataScaleTableModel model = getDataScaleTableModel(); + return createScaleDataCellRenderer(model); + } + } + + @Override + public TableCellEditor getCellEditor(int row, int column) + { + String headerValue = (String) getColumnModel().getColumn(column).getHeaderValue(); + if(DataScaleTableModel.COL_NAME_COLUMN.equals(headerValue)) + { + return super.getCellEditor(row, column); + } + else + { + DataScaleTableModel model = getDataScaleTableModel(); + + SortableTableModel sortableTableModel = (SortableTableModel) getModel(); + return new DataScaleTableCellEditor(model.getDataScaleAt(sortableTableModel.transfromToModelRow(row))); + } + } + + DataScaleTableModel getDataScaleTableModel() + { + TableModel ret = ((SortableTableModel) getModel()).getActualModel(); + + while(ret instanceof SortableTableModel) + { + ret = ((SortableTableModel)ret).getActualModel(); + } + + return (DataScaleTableModel) ret; + } + + + private TableCellRenderer createScaleDataCellRenderer(final DataScaleTableModel dataScaleTableModel) + { + return new TableCellRenderer() + { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) + { + SortableTableModel sortableTableModel = (SortableTableModel) getModel(); + return dataScaleTableModel.getDataScaleAt(sortableTableModel.transfromToModelRow(row)).getPanel(); + } + }; + } + + public List<Object[]> getAllRows() + { + return _allRows; + } + + public ColumnDisplayDefinition[] getColumnDisplayDefinitions() + { + return _columnDefinitions; + } + + public void setParentScaleTable(DataScaleTable parent) + { + ScaleTableState st = new ScaleTableState(parent); + st.apply(this); + + _parent = parent; + + _parent.setKidScaleTable(this); + } + + public void setKidScaleTable(DataScaleTable kid) + { + _kid = kid; + _kidSimpleTable = null; + } + + public DataScaleTable getKidScaleTable() + { + return _kid; + } + + public DataScaleTable getParentScaleTable() + { + return _parent; + } + + public void setKidSimpleTable(DataSetViewerTablePanel simpleTable) + { + _kidSimpleTable = simpleTable; + _kid = null; + } + + public DataSetViewerTablePanel getKidSimpleTable() + { + return _kidSimpleTable; + } + + public void saveColumnWidths() + { + int wColumn = DataScaleTableModel.DEFAULT_COL_WIDTH_COLUMN; + int wData = DataScaleTableModel.DEFAULT_COL_WIDTH_DATA; + for (int i = 0; i < getColumnModel().getColumnCount(); i++) + { + if(DataScaleTableModel.COL_NAME_COLUMN.equals(getColumnModel().getColumn(i).getHeaderValue())) + { + wColumn = getColumnModel().getColumn(i).getWidth(); + } + else if(DataScaleTableModel.COL_NAME_DATA.equals(getColumnModel().getColumn(i).getHeaderValue())) + { + wData = getColumnModel().getColumn(i).getWidth(); + } + + DataScaleTableModel.saveColumWidhts(wColumn, wData); + } + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableCellEditor.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableCellEditor.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableCellEditor.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,65 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import javax.swing.*; +import javax.swing.event.CellEditorListener; +import javax.swing.table.TableCellEditor; +import java.awt.*; +import java.util.EventObject; + + +public class DataScaleTableCellEditor implements TableCellEditor +{ + private DataScale _dataScale; + + public DataScaleTableCellEditor(DataScale dataScale) + { + _dataScale = dataScale; + } + + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) + { + DataScale ds = (DataScale) value; + return ds.getPanel(); + } + + @Override + public Object getCellEditorValue() + { + return _dataScale; + } + + @Override + public boolean isCellEditable(EventObject anEvent) + { + return true; + } + + @Override + public boolean shouldSelectCell(EventObject anEvent) + { + return true; //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public boolean stopCellEditing() + { + return true; //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void cancelCellEditing() + { + } + + @Override + public void addCellEditorListener(CellEditorListener l) + { + } + + @Override + public void removeCellEditorListener(CellEditorListener l) + { + } +} Added: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableModel.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableModel.java (rev 0) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTableModel.java 2010-06-06 22:21:17 UTC (rev 5640) @@ -0,0 +1,96 @@ +package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; + +import net.sourceforge.squirrel_sql.fw.util.StringManager; +import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + +import javax.swing.table.AbstractTableModel; +import java.util.prefs.Preferences; + +public class DataScaleTableModel extends AbstractTableModel +{ + private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(DataScaleTableModel.class); + + private static final String PREF_KEY_... [truncated message content] |
From: <ger...@us...> - 2010-06-17 21:46:12
|
Revision: 5644 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5644&view=rev Author: gerdwagner Date: 2010-06-17 21:46:01 +0000 (Thu, 17 Jun 2010) Log Message: ----------- Keep SQL result table layout on rerun SQL Modified Paths: -------------- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java trunk/sql12/doc/changes.txt trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java Added Paths: ----------- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java Removed Paths: ------------- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/IResultTab.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -22,9 +22,9 @@ import net.sourceforge.squirrel_sql.client.session.SQLExecutionInfo; import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException; -import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel; import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet; import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetMetaDataDataSet; +import net.sourceforge.squirrel_sql.fw.datasetviewer.TableState; import net.sourceforge.squirrel_sql.fw.id.IHasIdentifier; import net.sourceforge.squirrel_sql.fw.id.IIdentifier; @@ -86,4 +86,5 @@ */ IIdentifier getIdentifier(); + TableState getResultSortableTableState(); } \ No newline at end of file Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/ResultTab.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -483,7 +483,7 @@ } - private final class TabButton extends JButton + private final class TabButton extends JButton { TabButton(Action action) { @@ -544,7 +544,19 @@ return _id; } - private static class QueryInfoPanel extends JPanel + @Override + public TableState getResultSortableTableState() + { + return _resultSetOutput.getResultSortableTableState(); + } + + public void applyResultSortableTableState(TableState sortableTableState) + { + _resultSetOutput.applyResultSortableTableState(sortableTableState); + } + + + private static class QueryInfoPanel extends JPanel { private static final long serialVersionUID = 2124193091025851544L; Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/SQLResultExecuterPanel.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -56,7 +56,6 @@ import net.sourceforge.squirrel_sql.client.action.ActionCollection; import net.sourceforge.squirrel_sql.client.gui.builders.UIFactory; import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DialogWidget; -import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DesktopStyle; import net.sourceforge.squirrel_sql.client.preferences.SquirrelPreferences; import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanel; import net.sourceforge.squirrel_sql.client.session.ISQLExecuterHandler; @@ -71,10 +70,7 @@ import net.sourceforge.squirrel_sql.client.session.event.ISQLExecutionListener; import net.sourceforge.squirrel_sql.client.session.event.ResultTabEvent; import net.sourceforge.squirrel_sql.client.session.properties.SessionProperties; -import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException; -import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel; -import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet; -import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetMetaDataDataSet; +import net.sourceforge.squirrel_sql.fw.datasetviewer.*; import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeClob; import net.sourceforge.squirrel_sql.fw.dialects.DialectFactory; import net.sourceforge.squirrel_sql.fw.dialects.DialectType; @@ -799,6 +795,16 @@ } else { + if (null != resultTabToReplace && _session.getProperties().getKeepTableLayoutOnRerun()) + { + TableState sortableTableState = resultTabToReplace.getResultSortableTableState(); + if (null != sortableTableState) + { + tab.applyResultSortableTableState(sortableTableState); + } + } + + int indexToReplace = -1; ImageIcon tabIcon = null; Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/DataScaleTable.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -1,5 +1,6 @@ package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; +import net.sourceforge.squirrel_sql.fw.datasetviewer.TableState; import net.sourceforge.squirrel_sql.fw.datasetviewer.ColumnDisplayDefinition; import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel; import net.sourceforge.squirrel_sql.fw.gui.SortableTable; @@ -107,7 +108,7 @@ public void setParentScaleTable(DataScaleTable parent) { - ScaleTableState st = new ScaleTableState(parent); + TableState st = new TableState(parent); st.apply(this); _parent = parent; Deleted: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/overview/datascale/ScaleTableState.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -1,67 +0,0 @@ -package net.sourceforge.squirrel_sql.client.session.mainpanel.overview.datascale; - -import javax.swing.*; -import java.awt.*; - -public class ScaleTableState -{ - private int _sortedColumn; - private boolean _sortedAscending; - private Rectangle _visibleRect; - private int[] _columnWidths; - private int _selectedRow; - - public ScaleTableState(DataScaleTable table) - { - _sortedColumn = table.getSortableTableModel().getSortedColumn(); - _sortedAscending = table.getSortableTableModel().isSortedAscending(); - - _columnWidths = new int[table.getColumnModel().getColumnCount()]; - - _selectedRow = table.getSelectedRow(); - - for (int i = 0; i < _columnWidths.length; i++) - { - _columnWidths[i] = table.getColumnModel().getColumn(i).getWidth(); - } - _visibleRect = table.getVisibleRect(); - - - - } - - public void apply(final DataScaleTable table) - { - Runnable runnable = new Runnable() - { - public void run() - { - doApply(table); - } - }; - - SwingUtilities.invokeLater(runnable); - } - - private void doApply(DataScaleTable table) - { - if(-1 != _sortedColumn) - { - table.getSortableTableModel().sortByColumn(_sortedColumn, _sortedAscending); - } - - - for (int i = 0; i < _columnWidths.length; i++) - { - table.getColumnModel().getColumn(i).setPreferredWidth(_columnWidths[i]); - } - - if(-1 != _selectedRow) - { - table.getSelectionModel().setSelectionInterval(_selectedRow, _selectedRow); - } - - - table.scrollRectToVisible(_visibleRect); - } -} Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/GeneralSessionPropertiesPanel.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -72,7 +72,9 @@ String TABLE = s_stringMgr.getString("generalSessionPropertiesPanel.table"); // i18n[generalSessionPropertiesPanel.editableTable=Editable Table] String EDITABLE_TABLE = s_stringMgr.getString("generalSessionPropertiesPanel.editableTable"); - // i18n[generalSessionPropertiesPanel.text=Text] + // i18n[generalSessionPropertiesPanel.chkKeepTableLayoutOnRerun=Keep table layout on rerun SQL] + String KEEP_TABLE_LAYOUT_ON_RERUN= s_stringMgr.getString("generalSessionPropertiesPanel.chkKeepTableLayoutOnRerun"); + // i18n[generalSessionPropertiesPanel.text=Text] String TEXT = s_stringMgr.getString("generalSessionPropertiesPanel.text"); // i18n[generalSessionPropertiesPanel.dataTYpe1=Properties for the individual Data Types may be set in the] @@ -148,6 +150,7 @@ private TabPlacementCombo _sqlResultsTabPlacementCmb = new TabPlacementCombo(); private OutputTypeCombo _metaDataCmb = new OutputTypeCombo(false); private OutputTypeCombo _sqlResultsCmb = new OutputTypeCombo(true); + private JCheckBox _chkKeepTableLayoutOnRerun = new JCheckBox(); private OutputTypeCombo _tableContentsCmb = new OutputTypeCombo(true); MyPanel() @@ -222,6 +225,7 @@ _metaDataCmb.selectClassName(props.getMetaDataOutputClassName()); _sqlResultsCmb.selectClassName(props.getSQLResultsOutputClassName()); + _chkKeepTableLayoutOnRerun.setSelected(props.getKeepTableLayoutOnRerun()); _tableContentsCmb.selectClassName(props.getTableContentsOutputClassName()); } @@ -230,6 +234,7 @@ props.setShowToolBar(_showToolBar.isSelected()); props.setMetaDataOutputClassName(_metaDataCmb.getSelectedClassName()); props.setSQLResultsOutputClassName(_sqlResultsCmb.getSelectedClassName()); + props.setKeepTableLayoutOnRerun(_chkKeepTableLayoutOnRerun.isSelected()); props.setTableContentsOutputClassName(_tableContentsCmb.getSelectedClassName()); TabPlacement tp = (TabPlacement)_mainTabPlacementCmb.getSelectedItem(); @@ -347,6 +352,13 @@ ++gbc.gridx; pnl.add(_sqlResultsCmb, gbc); + + ++gbc.gridy; + gbc.gridx = 0; + gbc.gridwidth = 2; + _chkKeepTableLayoutOnRerun.setText(GeneralSessionPropertiesPanelI18n.KEEP_TABLE_LAYOUT_ON_RERUN); + pnl.add(_chkKeepTableLayoutOnRerun, gbc); + return pnl; } } Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/I18NStrings.properties 2010-06-17 21:46:01 UTC (rev 5644) @@ -84,4 +84,6 @@ SessionObjectTreePropertiesPanel.schemaPrefixNote=(Note: This property only influences Schema display in the Object tree. To configure Schema loading use Alias properties.) -SessionSQLPropertiesPanel.tokenizerNotEditableMsg=One or more of the following properties are not editable because they are perdefined by your database specific Plugin. You may be able to change these properties in the Plugin's Globale Preferences. \ No newline at end of file +SessionSQLPropertiesPanel.tokenizerNotEditableMsg=One or more of the following properties are not editable because they are perdefined by your database specific Plugin. You may be able to change these properties in the Plugin's Globale Preferences. + +generalSessionPropertiesPanel.chkKeepTableLayoutOnRerun=Keep SQL result table layout on rerun SQL \ No newline at end of file Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionProperties.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -37,10 +37,6 @@ */ public class SessionProperties implements Cloneable, Serializable, ISessionProperties { - /** - * Change this when this class changes. - */ - private static final long serialVersionUID = 1L; public interface IDataSetDestinations { @@ -87,6 +83,7 @@ String SQL_START_OF_LINE_COMMENT = "sqlStartOfLineComment"; String SQL_STATEMENT_SEPARATOR_STRING = "sqlStatementSeparatorString"; String TABLE_CONTENTS_OUTPUT_CLASS_NAME = "tableContentsOutputClassName"; + String KEEP_TABLE_LAYOUT_ON_RERUN = "keepTableLayoutOnRerun"; String LIMIT_SQL_RESULT_TABS = "limitSqlResultTabs"; String REMOVE_MULTI_LINE_COMMENT = "removeMultiLineComment"; } @@ -230,6 +227,9 @@ private boolean _limitSqlResultTabs = true; + private boolean _keepTableLayoutOnRerun; + + /** * The maximum number of open result tabs. * <= 0 means unlimited. @@ -907,6 +907,20 @@ return _objectFilterExclude; } + public boolean getKeepTableLayoutOnRerun() + { + return _keepTableLayoutOnRerun; + } + + public synchronized void setKeepTableLayoutOnRerun(boolean data) + { + final boolean oldValue = _keepTableLayoutOnRerun; + _keepTableLayoutOnRerun = data; + getPropertyChangeReporter().firePropertyChange(IPropertyNames.KEEP_TABLE_LAYOUT_ON_RERUN, + oldValue, _keepTableLayoutOnRerun); + } + + /** * Set the comma-separated list of catalog prefixes to display in the object tree. */ Modified: trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java =================================================================== --- trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/app/src/net/sourceforge/squirrel_sql/client/session/properties/SessionPropertiesBeanInfo.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -94,6 +94,9 @@ new PropertyDescriptor(IPropNames.TABLE_CONTENTS_OUTPUT_CLASS_NAME, SessionProperties.class, "getTableContentsOutputClassName", "setTableContentsOutputClassName"), + new PropertyDescriptor(IPropNames.KEEP_TABLE_LAYOUT_ON_RERUN, + SessionProperties.class, "getKeepTableLayoutOnRerun", + "setKeepTableLayoutOnRerun"), new PropertyDescriptor(IPropNames.ABORT_ON_ERROR, SessionProperties.class, "getAbortOnError", "setAbortOnError"), new PropertyDescriptor(IPropNames.SQL_RESULT_TAB_LIMIT, SessionProperties.class, Modified: trunk/sql12/doc/changes.txt =================================================================== --- trunk/sql12/doc/changes.txt 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/doc/changes.txt 2010-06-17 21:46:01 UTC (rev 5644) @@ -6,6 +6,11 @@ Enhancements: +Session Property: "Keep SQL result table layout on rerun SQL" +If this option is checked the layout of the table of a SQL result is tried to be restored after rerunning the SQL. +Note: You rerun a SQL when you click the running man button on the upper left of a SQL result. + + New way to view query results: There is an new tab inside a query result named "Overview". It might need some trying out to understand what it does. Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java =================================================================== --- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/BaseDataSetViewerDestination.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -199,4 +199,15 @@ } return dsv; } + + @Override + public TableState getResultSortableTableState() + { + return null; + } + + @Override + public void applyResultSortableTableState(TableState sortableTableState) + { + } } Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java =================================================================== --- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -837,5 +837,17 @@ // // End of code related to printing // - + + + @Override + public TableState getResultSortableTableState() + { + return new TableState(_table); + } + + @Override + public void applyResultSortableTableState(TableState sortableTableState) + { + sortableTableState.apply(_table); + } } Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java =================================================================== --- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java 2010-06-14 00:24:51 UTC (rev 5643) +++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/IDataSetViewer.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -95,4 +95,8 @@ * @return the object IDataSetUpdateableModel object. */ IDataSetUpdateableModel getUpdateableModelReference(); + + TableState getResultSortableTableState(); + + void applyResultSortableTableState(TableState sortableTableState); } Added: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java =================================================================== --- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java (rev 0) +++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java 2010-06-17 21:46:01 UTC (rev 5644) @@ -0,0 +1,112 @@ +package net.sourceforge.squirrel_sql.fw.datasetviewer; + +import net.sourceforge.squirrel_sql.fw.gui.SortableTable; +import net.sourceforge.squirrel_sql.fw.gui.SortableTableModel; + +import javax.swing.*; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; +import java.awt.*; +import java.util.HashMap; + +public class TableState +{ + private boolean _applySorting; + + private int _sortedColumn; + private boolean _sortedAscending; + private Rectangle _visibleRect; + private HashMap<Integer, Integer> _columnWidthsByModelIndex = new HashMap<Integer, Integer>(); + private HashMap<Integer, Integer> _columnIndexByModelIndex = new HashMap<Integer, Integer>(); + private int _selectedRow; + + public TableState(JTable table) + { + + if(table.getModel() instanceof SortableTableModel) + { + _applySorting = true; + _sortedColumn = ((SortableTableModel)table.getModel()).getSortedColumn(); + _sortedAscending = ((SortableTableModel)table.getModel()).isSortedAscending(); + } + + + _selectedRow = table.getSelectedRow(); + + for (int i = 0; i < table.getColumnModel().getColumnCount(); i++) + { + TableColumn column = table.getColumnModel().getColumn(i); + _columnWidthsByModelIndex.put(column.getModelIndex(), column.getWidth()); + _columnIndexByModelIndex.put(column.getModelIndex(), i); + } + _visibleRect = table.getVisibleRect(); + + + + } + + public void apply(final JTable table) + { + Runnable runnable = new Runnable() + { + public void run() + { + doApply(table); + } + }; + + SwingUtilities.invokeLater(runnable); + } + + private void doApply(JTable table) + { + if (_applySorting && table.getModel() instanceof SortableTableModel) + { + if(-1 != _sortedColumn) + { + ((SortableTableModel)table.getModel()).sortByColumn(_sortedColumn, _sortedAscending); + } + } + + + for (int i = 0; i < table.getColumnModel().getColumnCount(); i++) + { + Integer width = _columnWidthsByModelIndex.get(table.getColumnModel().getColumn(i).getModelIndex()); + if (null != width) + { + table.getColumnModel().getColumn(i).setPreferredWidth(width); + } + } + + for (Integer modelIndex : _columnIndexByModelIndex.keySet()) + { + moveTo(table.getColumnModel(), modelIndex, _columnIndexByModelIndex.get(modelIndex)); + } + + + if(-1 != _selectedRow) + { + table.getSelectionModel().setSelectionInterval(_selectedRow, _selectedRow); + } + + + table.scrollRectToVisible(_visibleRect); + } + + private void moveTo(TableColumnModel columnModel, int modelIndex, int columnIndex) + { + if(columnIndex >= columnModel.getColumnCount() || columnIndex <= 0) + { + return; + } + + for (int i = 0; i < columnModel.getColumnCount(); i++) + { + if (modelIndex == columnModel.getColumn(i).getModelIndex()) + { + columnModel.moveColumn(i, columnIndex); + break; + } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-06-24 21:52:52
|
Revision: 5650 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5650&view=rev Author: gerdwagner Date: 2010-06-24 21:52:46 +0000 (Thu, 24 Jun 2010) Log Message: ----------- 2973045: Export to excel results in strange rounding; Thanks to Bogdan Cristian Paulon for the patch Modified Paths: -------------- trunk/sql12/doc/changes.txt trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvCommand.java Modified: trunk/sql12/doc/changes.txt =================================================================== --- trunk/sql12/doc/changes.txt 2010-06-22 01:23:24 UTC (rev 5649) +++ trunk/sql12/doc/changes.txt 2010-06-24 21:52:46 UTC (rev 5650) @@ -30,6 +30,7 @@ 2991971: RSyntax text editor ignores font settings 2992443: Cannot use RSyntax or Netbeans editors +2973045: Export to excel results in strange rounding; Thanks to Bogdan Cristian Paulon for the patch Parser could be triggered far to often which resulted in high CPU and memory load. This problem was caused by redundant carriage return chars (\r). Modified: trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvCommand.java =================================================================== --- trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvCommand.java 2010-06-22 01:23:24 UTC (rev 5649) +++ trunk/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvCommand.java 2010-06-24 21:52:46 UTC (rev 5650) @@ -468,7 +468,7 @@ ret = new jxl.write.Number(colIdx, curRow, ((Number) cellObj).floatValue()); break; case Types.NUMERIC: - ret = new jxl.write.Number(colIdx, curRow, ((Number) cellObj).floatValue()); + ret = new jxl.write.Number(colIdx, curRow, ((Number) cellObj).doubleValue()); break; case Types.FLOAT: ret = new jxl.write.Number(colIdx, curRow, ((Number) cellObj).floatValue()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-07-20 22:42:18
|
Revision: 5744 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5744&view=rev Author: manningr Date: 2010-07-20 22:42:11 +0000 (Tue, 20 Jul 2010) Log Message: ----------- Added alternate constructor to CreateDataScriptCommand which allows calling methods to provide an implementation of IAbortController rather than choose the one that creates automatically. This is primarily for running DialectExternalTest in a head-less environment. Modified Paths: -------------- trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/AbortController.java trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/CreateDataScriptCommand.java trunk/sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects/DialectExternalTest.java Added Paths: ----------- trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/IAbortController.java Modified: trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/AbortController.java =================================================================== --- trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/AbortController.java 2010-07-20 00:07:07 UTC (rev 5743) +++ trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/AbortController.java 2010-07-20 22:42:11 UTC (rev 5744) @@ -10,7 +10,7 @@ import java.awt.event.ActionListener; import java.awt.event.ActionEvent; -public class AbortController +public class AbortController implements IAbortController { private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(AbortController.class); @@ -46,16 +46,25 @@ }); } + /** + * @see net.sourceforge.squirrel_sql.plugins.sqlscript.table_script.IAbortController#isStop() + */ public boolean isStop() { return _stop; } + /** + * @see net.sourceforge.squirrel_sql.plugins.sqlscript.table_script.IAbortController#isVisble() + */ public boolean isVisble() { return _dlg.isVisible(); } + /** + * @see net.sourceforge.squirrel_sql.plugins.sqlscript.table_script.IAbortController#setVisible(boolean) + */ public void setVisible(final boolean b) { GUIUtils.processOnSwingEventThread Modified: trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/CreateDataScriptCommand.java =================================================================== --- trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/CreateDataScriptCommand.java 2010-07-20 00:07:07 UTC (rev 5743) +++ trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/CreateDataScriptCommand.java 2010-07-20 22:42:11 UTC (rev 5744) @@ -33,9 +33,8 @@ import net.sourceforge.squirrel_sql.client.session.IObjectTreeAPI; import net.sourceforge.squirrel_sql.client.session.ISession; import net.sourceforge.squirrel_sql.fw.dialects.DialectFactory; +import net.sourceforge.squirrel_sql.fw.dialects.DialectUtils; import net.sourceforge.squirrel_sql.fw.dialects.HibernateDialect; -import net.sourceforge.squirrel_sql.fw.dialects.CreateScriptPreferences; -import net.sourceforge.squirrel_sql.fw.dialects.DialectUtils; import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo; import net.sourceforge.squirrel_sql.fw.sql.ISQLConnection; import net.sourceforge.squirrel_sql.fw.sql.ISQLDatabaseMetaData; @@ -59,7 +58,7 @@ /** flag that gets set when the first timestamp column is encountered */ private Boolean dialectSupportsSubSecondTimestamps = null; - protected AbortController _abortController; + protected IAbortController _abortController; /** * Current session. @@ -84,6 +83,19 @@ _abortController = new AbortController(_session.getApplication()); } + /** + * Ctor specifying the current session and IAbortController. + */ + public CreateDataScriptCommand(ISession session, IAbortController abortController, SQLScriptPlugin plugin, + boolean templateScriptOnly) + { + super(); + _session = session; + _plugin = plugin; + _templateScriptOnly = templateScriptOnly; + _abortController = abortController; + } + protected void showAbortFrame() { if (false == _abortController.isVisble()) Added: trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/IAbortController.java =================================================================== --- trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/IAbortController.java (rev 0) +++ trunk/sql12/plugins/sqlscript/src/net/sourceforge/squirrel_sql/plugins/sqlscript/table_script/IAbortController.java 2010-07-20 22:42:11 UTC (rev 5744) @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2009 Rob Manning + * man...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; 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.sqlscript.table_script; + +/** + * AbortController is a widget for allowing the user to express their desire to interrupt the current + * (possibly) long-running process. This interface describes the operations that an AbortController must + * support. + */ +public interface IAbortController +{ + + + /** + * @return true if the user has indicated their desire to stop the long-running process; false otherwise. + */ + public abstract boolean isStop(); + + /** + * @return true if the widget has been displayed and is visible to the user. + */ + public abstract boolean isVisble(); + + + /** + * Sets whether or not the widget should become visible or should hide. + * + * @param b true displays the widget; false causes the widget to hide. + */ + public abstract void setVisible(final boolean b); + +} \ No newline at end of file Modified: trunk/sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects/DialectExternalTest.java =================================================================== --- trunk/sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects/DialectExternalTest.java 2010-07-20 00:07:07 UTC (rev 5743) +++ trunk/sql12/test/external/net/sourceforge/squirrel_sql/fw/dialects/DialectExternalTest.java 2010-07-20 22:42:11 UTC (rev 5744) @@ -77,11 +77,13 @@ import net.sourceforge.squirrel_sql.plugins.refactoring.gui.IMergeTableDialogFactory; import net.sourceforge.squirrel_sql.plugins.sqlscript.SQLScriptPlugin; import net.sourceforge.squirrel_sql.plugins.sqlscript.table_script.CreateDataScriptCommand; +import net.sourceforge.squirrel_sql.plugins.sqlscript.table_script.IAbortController; import org.easymock.EasyMock; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.mockito.Mockito; import utils.EasyMockHelper; @@ -299,6 +301,8 @@ private static int testsRun = 0; + private final IAbortController mockAbortController = Mockito.mock(IAbortController.class); + @Before public void setup() throws Exception { @@ -2422,7 +2426,7 @@ final String timestampTypeName = dialect.getTypeName(Types.TIMESTAMP, 5, 5, 5); - final CreateDataScriptHelper command = new CreateDataScriptHelper(session, null, false); + final CreateDataScriptHelper command = new CreateDataScriptHelper(session, mockAbortController, null, false); dropTable(session, testTimestampTable); runSQL(session, "create table " + testTimestampTable + " ( mytime " + timestampTypeName + " )"); @@ -2946,9 +2950,9 @@ private class CreateDataScriptHelper extends CreateDataScriptCommand { - public CreateDataScriptHelper(ISession session, SQLScriptPlugin plugin, boolean templateScriptOnly) + public CreateDataScriptHelper(ISession session, IAbortController abortController, SQLScriptPlugin plugin, boolean templateScriptOnly) { - super(session, plugin, templateScriptOnly); + super(session, abortController, plugin, templateScriptOnly); } public StringBuffer getSQL(String tableName) throws SQLException This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-08-21 18:11:57
|
Revision: 5825 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5825&view=rev Author: manningr Date: 2010-08-21 18:11:49 +0000 (Sat, 21 Aug 2010) Log Message: ----------- Initial changes to convert from Ant build to Maven build Added Paths: ----------- trunk/sql12/squirrelsql-translations/ trunk/sql12/squirrelsql-translations/pom.xml trunk/sql12/squirrelsql-translations/src/ trunk/sql12/squirrelsql-translations/src/main/ trunk/sql12/squirrelsql-translations/src/main/resources/ trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_bg_BG.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_cs_CZ.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_de_DE.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_es.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_fr.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_it_IT.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_ko_KR.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_pl.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_pt_BR.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_ru.jar trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_zh_CN.jar trunk/sql12/web-site/pom.xml trunk/sql12/web-site/src/ trunk/sql12/web-site/src/main/ trunk/sql12/web-site/src/main/resources/ trunk/sql12/web-site/src/main/resources/faq.html trunk/sql12/web-site/src/main/resources/images/ Removed Paths: ------------- trunk/sql12/web-site/faq.html trunk/sql12/web-site/images/ Property Changed: ---------------- trunk/sql12/web-site/ Property changes on: trunk/sql12/squirrelsql-translations ___________________________________________________________________ Added: svn:ignore + target .settings .project .classpath Added: trunk/sql12/squirrelsql-translations/pom.xml =================================================================== --- trunk/sql12/squirrelsql-translations/pom.xml (rev 0) +++ trunk/sql12/squirrelsql-translations/pom.xml 2010-08-21 18:11:49 UTC (rev 5825) @@ -0,0 +1,79 @@ +<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</groupId> + <artifactId>squirrel-root-pom</artifactId> + <version>3.2.0-SNAPSHOT</version> + </parent> + + <groupId>net.sf.squirrel-sql.translations</groupId> + <artifactId>squirrelsql-translations</artifactId> + <version>3.2.0-SNAPSHOT</version> + <packaging>jar</packaging> + + <name>SQuirreL-SQL Translations</name> + <description> + The project that contains all of the translation jars that are shipped with the installer + </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> + + <!-- This is blatant copy/paste from squirrelsql-launcher pom.xml --> + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <addMavenDescriptor>false</addMavenDescriptor> + </archive> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_bg_BG.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_bg_BG.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_cs_CZ.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_cs_CZ.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_de_DE.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_de_DE.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_es.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_es.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_fr.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_fr.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_it_IT.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_it_IT.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_ko_KR.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_ko_KR.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_pl.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_pl.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_pt_BR.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_pt_BR.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_ru.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_ru.jar) =================================================================== (Binary files differ) Copied: trunk/sql12/squirrelsql-translations/src/main/resources/squirrel-sql_zh_CN.jar (from rev 5805, trunk/sql12/translations/squirrel-sql_zh_CN.jar) =================================================================== (Binary files differ) Property changes on: trunk/sql12/web-site ___________________________________________________________________ Added: svn:ignore + target .settings .project .classpath Deleted: trunk/sql12/web-site/faq.html =================================================================== --- trunk/sql12/web-site/faq.html 2010-08-21 18:11:08 UTC (rev 5824) +++ trunk/sql12/web-site/faq.html 2010-08-21 18:11:49 UTC (rev 5825) @@ -1,587 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<meta name="generator" content="HTML Tidy, see www.w3.org"> -<title></title> -</head> -<body> -<table summary="FAQ Table" border="0" cellpadding="0" cellspacing="0" - width="100%"> - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_t.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tr.gif" width="10" height="10"></td> - </tr> - - <tr> - <td class="body_left_border"> </td> - <td width='100%' bgcolor="white" valign="top"> - <h1 class="body">FAQ - SQuirreL SQL Client.</h1> - - <p></p> - - <ul> - <li><a href="#faq13">I removed the directory where SQuirreL - was installed, and installed it into a new location. I was surprised - to see all of my alias, drivers and preference settings were - maintained when I launched SQuirreL from the new location. Where are - alias, driver and preference configurations persisted?</a> - <li><a href="#faq12">Is there a way to configure Squirrel to - show integers without commas? We use integer IDs that look like - 1000234. Squirrel is currently showing the ID as 1,000,234</a> - <li><a href="#faq11">I don't see Oracle system tables/views - list in the code completion dialog. Can I configure this somehow?</a></li> - - <li><a href="#faq10">How do I install SQuirreL SQL Client on - Windows Vista?</a></li> - - <li><a href="#faq9">I get a blank window when running - SQuirreL on Fedora Core while using Desktop Effects (Compiz) and the - Sun JDK.</a></li> - - <li><a href="#faq0">What database systems does SQuirreL work - with?</a></li> - - <li><a href="#faq1">What version of the JVM is SQuirreL - compatible with?</a></li> - - <li><a href="#faq2">I get a "Segmentation fault" on Linux</a></li> - - <li><a href="#faq3">I get a "Login has timed out" error with - Microsoft SQL Server</a></li> - - <li><a href="#faq3_1">I get a "Can't start a cloned - connection while in manual transaction mode" error with Microsoft SQL - Server</a></li> - - <li><a href="#faq4">I don't see an object tree with - PostgreSQL</a></li> - - <li><a href="#faq5">I get a "NullPointerException" at <tt>BaseSQLEntryPanel.java:23</tt></a></li> - - <li><a href="#faq6">Ingres reports "Error: contsbt: - ca.edbc.util.EdbcEx: No MST is currently in progress, cannot declare - another cursor." when I connect and nothing is listed under the - schema name in the Object Tree.</a></li> - - <li><a href="#faq7">Informix reports "The specified table - (schema.table) is not in the database" when trying to view the - contents of a table in the current schema.</a></li> - - <li><a href="#faq8">I am using SQuirreL 2.x and when I - connect to a database I get the following warning message:</a></li> - </ul> - - <pre> - JRE/JDBC Version mismatch - - The driver being used ... is not JDBC N.N compliant. - You should consider getting a more recent version of this driver. - -</pre> <br> - </td> - <td class="body_right_border"> </td> - </tr> - - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_bl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_b.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_br.gif" width="10" height="10"></td> - </tr> -</table> - -<p class="menu_divider"> -<table summary="Plugin Section" border="0" cellpadding="0" - cellspacing="0" width="100%"> - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_t.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tr.gif" width="10" height="10"></td> - </tr> - - <tr> - <td class="body_left_border"> </td> - <td width='100%' bgcolor="white" valign="top"> - <h1 class="body">FAQ - Plugins.</h1> - - <br> - - - <ul> - <li><a href="#plug0">How do I write a plugin?</a></li> - - <li><a href="#plug1">What are these directories "Colin Bell" - and "Johan Compagner" in the plugins directory?</a></li> - - <li><a href="#plug2">I can't see any "Look and Feel" files.</a></li> - - <li><a href="#plug3">I get a <tt>java.lang.NoClassDefFoundError: - org/w3c/dom/Node</tt> error when trying to validate SQL.</a></li> - </ul> - - <br> - </td> - <td class="body_right_border"> </td> - </tr> - - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_bl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_b.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_br.gif" width="10" height="10"></td> - </tr> -</table> - -<p class="menu_divider"> -<table summary="Answers" border="0" cellpadding="0" cellspacing="0" - width="100%"> - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_t.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tr.gif" width="10" height="10"></td> - </tr> - - <tr> - <td class="body_left_border"> </td> - <td width='100%' bgcolor="white" valign="top"> - <h1 class="body">Answers - SQuirreL SQL Client.</h1> - - - <h1 class="question"><a name="faq13">I removed the directory - where SQuirreL was installed, and installed it into a new location. I - was surprised to see all of my alias, drivers and preference settings - were maintained when I launched SQuirreL from the new location. Where - are alias, driver and preference configurations persisted?</a></h1> - - <div class="answer">All preference data is stored in the <user.home>/.squirrel-sql/ - folder. The <user.home> folder is typically /home/<username> - on UNIX and C:\Documents and Settings\<username> on - Windows. The aliases are stored in SQLAliases23.xml and - SQLAliases23_treeStructure.xml, while the driver definitions are found - in SQLDrivers.xml. Other preference data is also stored in various - files in this directory.</div> - - <h1 class="question"><a name="faq12">Is there a way to - configure Squirrel to show integers without commas? We use integer IDs - that look like 1000234. Squirrel is currently showing the ID as - 1,000,234.</a></h1> - - <div class="answer">Yes there is. Open Global Preferences from - the File menu and then click on Data Type Control tab. Scroll down to - the bottom. Scroll down to the "FLOAT, REAL, DOUBLE, NUMERIC" section, - select "Use default format".</div> - - <h1 class="question"><a name="faq11">I don't see Oracle - system tables/views list in the code completion dialog. Can I - configure this somehow?</a></h1> - - <div class="answer">For startup performance, fine-grain control - was introduced to allow you to specify which schemas are loaded. This - is a big deal for Oracle as it has by default many schemas which are - rarely used and some that are used occasionally that have tons of - objects in them (e.g. SYS). You can control this configuration per - alias as follows: - - <ol> - <li>Right-click on the alias and choose "Alias Properties".</li> - - <li>In the "Schemas" tab of the resulting dialog, choose - "Specify Schema loading and caching".</li> - - <li>Click the "Connect database to refresh Schema table" - button.(Now, for each schema listed you are able to specify whether - or not tables, views and/or procedures are loaded into the object - tree, by clicking the cell in Tables, Views, or Procedures.</li> - - <li>Turn off all schemas and then explicitly add the ones you - need for this particular alias. You can achieve this easily with the - buttons below the schema table. It forms a sentence that should read - "Set <All Objects> in all Schemas to <Don't load>", then - click Apply. All Table, View and Procedure cells move to "Don't load" - value.</li> - - <li>Find your schema and change the Tables, Views and Procedures - cells for that row to "Load ..." (caching will help if you have a - large number of objects that are always present)</li> - - <li>Next find the SYS schema and change it to load VIEWS.</li> - - <li>Start a new session with that alias and SYS views will be - loaded into the object tree of that new session</li> - </ol> - </div> - - <h1 class="question"><a name="faq10">How do I install - SQuirreL SQL Client on Windows Vista?</a></h1> - - <p class="answer">Doug Lawry has reported that the following steps - are required in order to install SQuirreL SQL Client on Windows Vista.<br> - </p> - - <ol> - <li>Start "cmd.exe" using "Run as administrator"</li> - - <li>Change directory to the file location</li> - - <li>Run "java -jar squirrel-sql-2.5.1-install.jar"</li> - </ol> - - <h1 class="question"><a name="faq9">I get a blank SQuirreL - 2.4 window when running on Fedora Core while using Desktop Effects - (Compiz) and Sun Java 1.5. What gives?</a></h1> - - <p class="answer">Andrew Melton has reported that disabling - Desktop Effects (and using metacity) solved the problem. Furthermore, - he also reports that after re-enabling Desktop Effects SQuirreL still - renders correctly. Additionally, <a - href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775">this - Java bug</a> seems to be at least related to if not the same problem.</p> - - <h1 class="question"><a name="faq0">What database systems - does SQuirreL work with?</a></h1> - - <p class="answer">In theory SQuirreL should work with any DBMS - that has a JDBC 2.0 driver. However not all drivers/DBMS's are fully - complient with the JDBC 2.0 specification. People have reported - SQuirreL working with the following:</p> - - <ul> - <li><a href="http://axion.tigris.org/">Axion Java RDBMS</a>.</li> - - <li><a href="http://www.daffodildb.com/one-dollar-db.html">Daffodil - (One$DB)</a></li> - - <li><a href="http://db.apache.org/derby/">Apache Derby</a> - (formerly Cloudscape) <a - href="http://db.apache.org/derby/integrate/SQuirreL_Derby.html">Using - SQuirreL SQL with Derby</a> (by Susan Cline)</li> - - <li><a - href="http://www.fujitsu-siemens.com/rl/products/software/sesamsql.html"> - Fujitsu Siemens SESAM/SQL-Server</a> with the <a - href="http://www.fujitsu-siemens.com/rl/products/software/sesamsqljdbc.html"> - SESAM/SQL</a> JDBC driver.</li> - - <li><a href="http://sourceforge.net/projects/firebird/">Firebird</a> - with the JayBird JCA/JDBC Driver.</li> - - <li><a href="http://www.frontbase.com/">FrontBase</a></li> - - <li><a href="http://hsqldb.sourceforge.net/">HSQL</a>.</li> - - <li><a href="http://hsql.sourceforge.net/">Hypersonic SQL</a>.</li> - - <li><a href="http://www.h2database.com/">H2</a></li> - - <li><a href="http://www.ibm.com/">IBM DB2</a> for Linux, OS/400 - and Windows.</li> - - <li><a href="http://www.informix.com/">Informix</a>.</li> - - <li><a href="http://www.ingres.com/">CA Ingres</a> 2.6 SP2 with - EDBC driver v1.8 (probably works with Caribou Lake driver too).</li> - - <li><a href="http://www.instantdb.com/">InstantDB</a>.</li> - - <li><a href="http://www.interbase.com/">Interbase</a> with the <a - href="http://www.interbase.com/">Interclient</a> JDBC driver.</li> - - <li><a href="http://mckoi.com/database/">Mckoi SQL</a>.</li> - - <li><a href="http://www.microsoft.com">Microsoft Access</a> with - the JDBC/ODBC bridge.</li> - - <li><a href="http://www.microsoft.com">Microsoft SQL Server</a> - with the Microsoft, <a href="http://www.weblogic.com">WebLogic</a> - and <a href="http://jtds.sourceforge.net">jTDS</a> JDBC drivers.</li> - - <li><a href="http://www.mimer.com/">Mimer SQL</a></li> - - <li><a href="http://www.mysql.com">MySQL</a> with the <a - href="http://mmmysql.sourceforge.net/">MM MySQL</a> JDBC driver.</li> - - <li><a href="http://www.netezza.com">Netezza</a> Data Warehouse - with 4.0.4P2 Driver</li> - - <li><a href="http://www.oracle.com">Oracle 8i, 9i and 10g</a> - with the Oracle thin and OCI drivers.</li> - - <li><a href="http://www.pointbase.com">Pointbase</a>.</li> - - <li><a href="http://www.postgresql.org">PostgreSQL 7.1.3 and - higher.</a>.</li> - - <li><a href="http://www.progress.com">Progress OpenEdge - 10.1x</a>.</li> - - <li><a href="http://www.sapdb.org">SAPDB</a>.</li> - - <li><a href="http://www.sybase.com">Sybase</a> with the <a - href="http://www.sybase.com">JConnect</a> JDBC driver. There are - currently some issues with Sybase JConnect 5.5 and SQuirreL 1.1 - although JConnect 4.5 seems to work.</li> - - <li><a - href="http://www.ncr.com/en/solutions/data_warehousing/dataware.htm">Teradata - Warehouse</a></li> - - <li><a href="http://www.thinksql.co.uk">ThinkSQL RDBMS</a>.</li> - - <li><a href="http://www.vertica.com">Vertica</a> Analytic - Database</li> - </ul> - - <p class="answer">Please send us an <a - href="mailto:man...@us...">email</a> if you have - used SQuirreL successfully with other products.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq1">Which version of the JVM - is SQuirreL compatible with?</a></h1> - - <p class="answer">Different versions of SQuirreL have different - minimum JVM version requirements. The following table provides a - summary of the version requirements:<br> - </p> - - <table align="center" border="2" cellpadding="5" - summary="Compatibility Matrix"> - <tr> - <th>SQuirreL Version</th> - <th>Minimum JVM Version</th> - </tr> - - <tr align="center"> - <td>3.0+</td> - <td>1.6</td> - </tr> - - <tr align="center"> - <td>2.4 - 2.6.x</td> - <td>1.5</td> - </tr> - - <tr align="center"> - <td>2.0 - 2.3.x</td> - <td>1.4.2</td> - </tr> - - <tr align="center"> - <td>1.1 Final</td> - <td>1.3.1</td> - </tr> - </table> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq2">I get a "Segmentation - fault" on Linux</a></h1> - - <p class="answer">Early versions of the Sun 1.3.0 VM on Linux - throw a segmentation fault when running SQuirreL. Either update to the - latest 1.3.1 VM or pass the -classic flag to the Java executable - - i.e.</p> - - <p class="code">java -classic -cp...</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq3">I get a "Login has timed - out" error with Microsoft SQL Server</a></h1> - - <p class="answer">Early beta versions of the Microsoft type 4 JDBC - driver had a bug which would cause this error when trying to connect. - Go to the General Tab in the Global Preferences dialog and change the - SQL Login Timeout to 0.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq3_1">I get a "Can't start a - cloned connection while in manual transaction mode" error with - Microsoft SQL Server</a></h1> - - <p class="answer">When connecting to Microsoft SQL Server with - auto-commit off or changing auto-commit to false for an existing - connection you may get this error. To stop it from occuring enable the - 'selectmethod=cursor' driver property in the alias.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq4">I don't see an object - tree with PostgreSQL</a></h1> - - <p class="answer">Versions of PostgreSQL prior to 7.1.3 didn't - supply sufficent metadata to build the object tree in SQuirreL. A fix - has been put into SQuirreL so that it would work with PostgreSQL - 7.1.2.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq5">I get a - "NullPointerException" at <tt>BaseSQLEntryPanel.java:23</tt></a></h1> - - <p class="answer">This is a known problem with JDK1.3.0 on some - platforms. Upgrade your Java version to 1.3.1 or better.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq6">Ingres reports "Error: - contsbt: ca.edbc.util.EdbcEx: No MST is currently in progress, cannot - declare another cursor." when I connect and nothing is listed under - the schema name in the Object Tree</a></h1> - - <p class="answer">Right-click on the schema in the explorer and - select refresh, objects should appear as normal.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq7">Informix reports "The - specified table (schema.table) is not in the database" when trying to - view the contents of a table in the current schema</a></h1> - - <p class="answer">This is a bug in earlier versions of the - Informix JDBC driver and is known to be fixed in version 9.4 of - Informix and version 2.21 of the Informix JDBC driver.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="faq8">I am using SQuirreL 2.x - and when I connect to a database I get the following warning message:</a></h1> - - <pre> - JRE/JDBC Version mismatch - - The driver being used ... is not JDBC N.N compliant. - You should consider getting a more recent version of this driver. - -</pre> - - <div class="answer">It's telling you that your JRE version is - much newer than your driver's supported JDBC version. In general, it's - hard to tell how well tested an older driver is with a newer - JVM(1.4+). The odds are good that the newer JVM wasn't available when - the older driver was written. So the warning message is there to let - you know that you aren't getting the most efficient use from SQuirreL - 2.x and your database driver. SQuirreL 2.x requires JVM 1.4 or higher - so your choices are limited there. Upgrade your JDBC driver if - possible - if not, then you can disable the warning. To disable it go - to Global Preferences -> General and uncheck the checkbox next to <b><i>Warning - for JRE/JDBC Version Mismatch</i></b></div> - - <br> - - - <p><a href="#top">Top</a></p> - </td> - <td class="body_right_border"> </td> - </tr> - - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_bl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_b.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_br.gif" width="10" height="10"></td> - </tr> -</table> - -<p class="menu_divider"> -<table summary="Plugin Answers" border="0" cellpadding="0" - cellspacing="0" width="100%"> - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_t.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_tr.gif" width="10" height="10"></td> - </tr> - - <tr> - <td class="body_left_border"> </td> - <td width='100%' bgcolor="white" valign="top"> - <h1 class="body">Answers - Plugins.</h1> - - <h1 class="question"><a name="plug0">How do I write a plugin?</a></h1> - - <p class="answer">There is some information in the document <a - href="http://squirrel-sql.svn.sourceforge.net/viewvc/squirrel-sql/trunk/sql12/doc/plugins.html"> - plugins.html</a> which you can find in the docs directory within your - SQuirreL program directory. This document badly needs a lot of work - and its on our todo list. You can also look at the existing plugins to - see how they've done things.</p> - - <p class="answer">If you have an idea for a plugin just send a - message to the SQuirreL Developers list giving a brief description. - This helps to ensure that two people don't develop the same plugin.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="plug1">What are these - directories "Colin Bell" and "Johan Compagner" in the plugins - directory?</a></h1> - - <p class="answer">Some people have reported these directories - appearing when running JDK 1.3 on Windows 2000. It appears to be a - problem with the Hotspot VM. Passing the -classic flag to the java - executable fixes the problem - i.e.</p> - - <p class="code">java -classic -cp...</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="plug2">I can't see any "Look - and Feel" files.</a></h1> - - <p class="answer">This can be caused by the <a href="#plug1">What - are these directories "Colin Bell" and "Johan Compagner" in the - plugins directory?</a> problem.</p> - - <p><a href="#top">Top</a></p> - - <h1 class="question"><a name="plug3">I get a - java.lang.NoClassDefFoundError: org/w3c/dom/Node error when trying to - validate SQL.</a></h1> - - <p class="answer">If you use the SQL Validator plugin with JDK 1.3 - you will need a JAXP 1.1 XML compliant parser such as <a - href="http://xml.apache.org/dist/xerces-j/">xml-xerces</a> or the <a - href="http://java.sun.com/xml/jaxp/index.html">JAXP 1.1 reference - implementation</a>. Copy the jar files from your XML parser to the - directory <squirrel-sql>/plugins/sqlval/lib. For xml-xerces this - should be xerces.jar and for JAXP 1.1 reference implementation this - should be crimson.jar and jaxp.jar.</p> - - <p><a href="#top">Top</a></p> - </td> - <td class="body_right_border"> </td> - </tr> - - <tr> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_bl.gif" width="10" height="10"></td> - <td width='100%' height='10'><img alt="border image" border="0" - src="images/border_b.gif" width="100%" height="10"></td> - <td width='10' height='10'><img alt="border image" border="0" - src="images/border_br.gif" width="10" height="10"></td> - </tr> -</table> -</body> -</html> - Added: trunk/sql12/web-site/pom.xml =================================================================== --- trunk/sql12/web-site/pom.xml (rev 0) +++ trunk/sql12/web-site/pom.xml 2010-08-21 18:11:49 UTC (rev 5825) @@ -0,0 +1,77 @@ +<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</groupId> + <artifactId>squirrel-root-pom</artifactId> + <version>3.2.0-SNAPSHOT</version> + </parent> + + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>website</artifactId> + <version>3.2.0-SNAPSHOT</version> + <packaging>jar</packaging> + + <name>Website Files</name> + <description>Website Files needed by the installer.</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>Release Manager</role> + <role>Developer</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> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>${jar-plugin-version}</version> + <configuration> + <archive> + <addMavenDescriptor>false</addMavenDescriptor> + </archive> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file Copied: trunk/sql12/web-site/src/main/resources/faq.html (from rev 5805, trunk/sql12/web-site/faq.html) =================================================================== --- trunk/sql12/web-site/src/main/resources/faq.html (rev 0) +++ trunk/sql12/web-site/src/main/resources/faq.html 2010-08-21 18:11:49 UTC (rev 5825) @@ -0,0 +1,587 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta name="generator" content="HTML Tidy, see www.w3.org"> +<title></title> +</head> +<body> +<table summary="FAQ Table" border="0" cellpadding="0" cellspacing="0" + width="100%"> + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_t.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tr.gif" width="10" height="10"></td> + </tr> + + <tr> + <td class="body_left_border"> </td> + <td width='100%' bgcolor="white" valign="top"> + <h1 class="body">FAQ - SQuirreL SQL Client.</h1> + + <p></p> + + <ul> + <li><a href="#faq13">I removed the directory where SQuirreL + was installed, and installed it into a new location. I was surprised + to see all of my alias, drivers and preference settings were + maintained when I launched SQuirreL from the new location. Where are + alias, driver and preference configurations persisted?</a> + <li><a href="#faq12">Is there a way to configure Squirrel to + show integers without commas? We use integer IDs that look like + 1000234. Squirrel is currently showing the ID as 1,000,234</a> + <li><a href="#faq11">I don't see Oracle system tables/views + list in the code completion dialog. Can I configure this somehow?</a></li> + + <li><a href="#faq10">How do I install SQuirreL SQL Client on + Windows Vista?</a></li> + + <li><a href="#faq9">I get a blank window when running + SQuirreL on Fedora Core while using Desktop Effects (Compiz) and the + Sun JDK.</a></li> + + <li><a href="#faq0">What database systems does SQuirreL work + with?</a></li> + + <li><a href="#faq1">What version of the JVM is SQuirreL + compatible with?</a></li> + + <li><a href="#faq2">I get a "Segmentation fault" on Linux</a></li> + + <li><a href="#faq3">I get a "Login has timed out" error with + Microsoft SQL Server</a></li> + + <li><a href="#faq3_1">I get a "Can't start a cloned + connection while in manual transaction mode" error with Microsoft SQL + Server</a></li> + + <li><a href="#faq4">I don't see an object tree with + PostgreSQL</a></li> + + <li><a href="#faq5">I get a "NullPointerException" at <tt>BaseSQLEntryPanel.java:23</tt></a></li> + + <li><a href="#faq6">Ingres reports "Error: contsbt: + ca.edbc.util.EdbcEx: No MST is currently in progress, cannot declare + another cursor." when I connect and nothing is listed under the + schema name in the Object Tree.</a></li> + + <li><a href="#faq7">Informix reports "The specified table + (schema.table) is not in the database" when trying to view the + contents of a table in the current schema.</a></li> + + <li><a href="#faq8">I am using SQuirreL 2.x and when I + connect to a database I get the following warning message:</a></li> + </ul> + + <pre> + JRE/JDBC Version mismatch + + The driver being used ... is not JDBC N.N compliant. + You should consider getting a more recent version of this driver. + +</pre> <br> + </td> + <td class="body_right_border"> </td> + </tr> + + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_bl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_b.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_br.gif" width="10" height="10"></td> + </tr> +</table> + +<p class="menu_divider"> +<table summary="Plugin Section" border="0" cellpadding="0" + cellspacing="0" width="100%"> + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_t.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tr.gif" width="10" height="10"></td> + </tr> + + <tr> + <td class="body_left_border"> </td> + <td width='100%' bgcolor="white" valign="top"> + <h1 class="body">FAQ - Plugins.</h1> + + <br> + + + <ul> + <li><a href="#plug0">How do I write a plugin?</a></li> + + <li><a href="#plug1">What are these directories "Colin Bell" + and "Johan Compagner" in the plugins directory?</a></li> + + <li><a href="#plug2">I can't see any "Look and Feel" files.</a></li> + + <li><a href="#plug3">I get a <tt>java.lang.NoClassDefFoundError: + org/w3c/dom/Node</tt> error when trying to validate SQL.</a></li> + </ul> + + <br> + </td> + <td class="body_right_border"> </td> + </tr> + + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_bl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_b.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_br.gif" width="10" height="10"></td> + </tr> +</table> + +<p class="menu_divider"> +<table summary="Answers" border="0" cellpadding="0" cellspacing="0" + width="100%"> + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_t.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tr.gif" width="10" height="10"></td> + </tr> + + <tr> + <td class="body_left_border"> </td> + <td width='100%' bgcolor="white" valign="top"> + <h1 class="body">Answers - SQuirreL SQL Client.</h1> + + + <h1 class="question"><a name="faq13">I removed the directory + where SQuirreL was installed, and installed it into a new location. I + was surprised to see all of my alias, drivers and preference settings + were maintained when I launched SQuirreL from the new location. Where + are alias, driver and preference configurations persisted?</a></h1> + + <div class="answer">All preference data is stored in the <user.home>/.squirrel-sql/ + folder. The <user.home> folder is typically /home/<username> + on UNIX and C:\Documents and Settings\<username> on + Windows. The aliases are stored in SQLAliases23.xml and + SQLAliases23_treeStructure.xml, while the driver definitions are found + in SQLDrivers.xml. Other preference data is also stored in various + files in this directory.</div> + + <h1 class="question"><a name="faq12">Is there a way to + configure Squirrel to show integers without commas? We use integer IDs + that look like 1000234. Squirrel is currently showing the ID as + 1,000,234.</a></h1> + + <div class="answer">Yes there is. Open Global Preferences from + the File menu and then click on Data Type Control tab. Scroll down to + the bottom. Scroll down to the "FLOAT, REAL, DOUBLE, NUMERIC" section, + select "Use default format".</div> + + <h1 class="question"><a name="faq11">I don't see Oracle + system tables/views list in the code completion dialog. Can I + configure this somehow?</a></h1> + + <div class="answer">For startup performance, fine-grain control + was introduced to allow you to specify which schemas are loaded. This + is a big deal for Oracle as it has by default many schemas which are + rarely used and some that are used occasionally that have tons of + objects in them (e.g. SYS). You can control this configuration per + alias as follows: + + <ol> + <li>Right-click on the alias and choose "Alias Properties".</li> + + <li>In the "Schemas" tab of the resulting dialog, choose + "Specify Schema loading and caching".</li> + + <li>Click the "Connect database to refresh Schema table" + button.(Now, for each schema listed you are able to specify whether + or not tables, views and/or procedures are loaded into the object + tree, by clicking the cell in Tables, Views, or Procedures.</li> + + <li>Turn off all schemas and then explicitly add the ones you + need for this particular alias. You can achieve this easily with the + buttons below the schema table. It forms a sentence that should read + "Set <All Objects> in all Schemas to <Don't load>", then + click Apply. All Table, View and Procedure cells move to "Don't load" + value.</li> + + <li>Find your schema and change the Tables, Views and Procedures + cells for that row to "Load ..." (caching will help if you have a + large number of objects that are always present)</li> + + <li>Next find the SYS schema and change it to load VIEWS.</li> + + <li>Start a new session with that alias and SYS views will be + loaded into the object tree of that new session</li> + </ol> + </div> + + <h1 class="question"><a name="faq10">How do I install + SQuirreL SQL Client on Windows Vista?</a></h1> + + <p class="answer">Doug Lawry has reported that the following steps + are required in order to install SQuirreL SQL Client on Windows Vista.<br> + </p> + + <ol> + <li>Start "cmd.exe" using "Run as administrator"</li> + + <li>Change directory to the file location</li> + + <li>Run "java -jar squirrel-sql-2.5.1-install.jar"</li> + </ol> + + <h1 class="question"><a name="faq9">I get a blank SQuirreL + 2.4 window when running on Fedora Core while using Desktop Effects + (Compiz) and Sun Java 1.5. What gives?</a></h1> + + <p class="answer">Andrew Melton has reported that disabling + Desktop Effects (and using metacity) solved the problem. Furthermore, + he also reports that after re-enabling Desktop Effects SQuirreL still + renders correctly. Additionally, <a + href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775">this + Java bug</a> seems to be at least related to if not the same problem.</p> + + <h1 class="question"><a name="faq0">What database systems + does SQuirreL work with?</a></h1> + + <p class="answer">In theory SQuirreL should work with any DBMS + that has a JDBC 2.0 driver. However not all drivers/DBMS's are fully + complient with the JDBC 2.0 specification. People have reported + SQuirreL working with the following:</p> + + <ul> + <li><a href="http://axion.tigris.org/">Axion Java RDBMS</a>.</li> + + <li><a href="http://www.daffodildb.com/one-dollar-db.html">Daffodil + (One$DB)</a></li> + + <li><a href="http://db.apache.org/derby/">Apache Derby</a> + (formerly Cloudscape) <a + href="http://db.apache.org/derby/integrate/SQuirreL_Derby.html">Using + SQuirreL SQL with Derby</a> (by Susan Cline)</li> + + <li><a + href="http://www.fujitsu-siemens.com/rl/products/software/sesamsql.html"> + Fujitsu Siemens SESAM/SQL-Server</a> with the <a + href="http://www.fujitsu-siemens.com/rl/products/software/sesamsqljdbc.html"> + SESAM/SQL</a> JDBC driver.</li> + + <li><a href="http://sourceforge.net/projects/firebird/">Firebird</a> + with the JayBird JCA/JDBC Driver.</li> + + <li><a href="http://www.frontbase.com/">FrontBase</a></li> + + <li><a href="http://hsqldb.sourceforge.net/">HSQL</a>.</li> + + <li><a href="http://hsql.sourceforge.net/">Hypersonic SQL</a>.</li> + + <li><a href="http://www.h2database.com/">H2</a></li> + + <li><a href="http://www.ibm.com/">IBM DB2</a> for Linux, OS/400 + and Windows.</li> + + <li><a href="http://www.informix.com/">Informix</a>.</li> + + <li><a href="http://www.ingres.com/">CA Ingres</a> 2.6 SP2 with + EDBC driver v1.8 (probably works with Caribou Lake driver too).</li> + + <li><a href="http://www.instantdb.com/">InstantDB</a>.</li> + + <li><a href="http://www.interbase.com/">Interbase</a> with the <a + href="http://www.interbase.com/">Interclient</a> JDBC driver.</li> + + <li><a href="http://mckoi.com/database/">Mckoi SQL</a>.</li> + + <li><a href="http://www.microsoft.com">Microsoft Access</a> with + the JDBC/ODBC bridge.</li> + + <li><a href="http://www.microsoft.com">Microsoft SQL Server</a> + with the Microsoft, <a href="http://www.weblogic.com">WebLogic</a> + and <a href="http://jtds.sourceforge.net">jTDS</a> JDBC drivers.</li> + + <li><a href="http://www.mimer.com/">Mimer SQL</a></li> + + <li><a href="http://www.mysql.com">MySQL</a> with the <a + href="http://mmmysql.sourceforge.net/">MM MySQL</a> JDBC driver.</li> + + <li><a href="http://www.netezza.com">Netezza</a> Data Warehouse + with 4.0.4P2 Driver</li> + + <li><a href="http://www.oracle.com">Oracle 8i, 9i and 10g</a> + with the Oracle thin and OCI drivers.</li> + + <li><a href="http://www.pointbase.com">Pointbase</a>.</li> + + <li><a href="http://www.postgresql.org">PostgreSQL 7.1.3 and + higher.</a>.</li> + + <li><a href="http://www.progress.com">Progress OpenEdge + 10.1x</a>.</li> + + <li><a href="http://www.sapdb.org">SAPDB</a>.</li> + + <li><a href="http://www.sybase.com">Sybase</a> with the <a + href="http://www.sybase.com">JConnect</a> JDBC driver. There are + currently some issues with Sybase JConnect 5.5 and SQuirreL 1.1 + although JConnect 4.5 seems to work.</li> + + <li><a + href="http://www.ncr.com/en/solutions/data_warehousing/dataware.htm">Teradata + Warehouse</a></li> + + <li><a href="http://www.thinksql.co.uk">ThinkSQL RDBMS</a>.</li> + + <li><a href="http://www.vertica.com">Vertica</a> Analytic + Database</li> + </ul> + + <p class="answer">Please send us an <a + href="mailto:man...@us...">email</a> if you have + used SQuirreL successfully with other products.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq1">Which version of the JVM + is SQuirreL compatible with?</a></h1> + + <p class="answer">Different versions of SQuirreL have different + minimum JVM version requirements. The following table provides a + summary of the version requirements:<br> + </p> + + <table align="center" border="2" cellpadding="5" + summary="Compatibility Matrix"> + <tr> + <th>SQuirreL Version</th> + <th>Minimum JVM Version</th> + </tr> + + <tr align="center"> + <td>3.0+</td> + <td>1.6</td> + </tr> + + <tr align="center"> + <td>2.4 - 2.6.x</td> + <td>1.5</td> + </tr> + + <tr align="center"> + <td>2.0 - 2.3.x</td> + <td>1.4.2</td> + </tr> + + <tr align="center"> + <td>1.1 Final</td> + <td>1.3.1</td> + </tr> + </table> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq2">I get a "Segmentation + fault" on Linux</a></h1> + + <p class="answer">Early versions of the Sun 1.3.0 VM on Linux + throw a segmentation fault when running SQuirreL. Either update to the + latest 1.3.1 VM or pass the -classic flag to the Java executable - + i.e.</p> + + <p class="code">java -classic -cp...</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq3">I get a "Login has timed + out" error with Microsoft SQL Server</a></h1> + + <p class="answer">Early beta versions of the Microsoft type 4 JDBC + driver had a bug which would cause this error when trying to connect. + Go to the General Tab in the Global Preferences dialog and change the + SQL Login Timeout to 0.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq3_1">I get a "Can't start a + cloned connection while in manual transaction mode" error with + Microsoft SQL Server</a></h1> + + <p class="answer">When connecting to Microsoft SQL Server with + auto-commit off or changing auto-commit to false for an existing + connection you may get this error. To stop it from occuring enable the + 'selectmethod=cursor' driver property in the alias.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq4">I don't see an object + tree with PostgreSQL</a></h1> + + <p class="answer">Versions of PostgreSQL prior to 7.1.3 didn't + supply sufficent metadata to build the object tree in SQuirreL. A fix + has been put into SQuirreL so that it would work with PostgreSQL + 7.1.2.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq5">I get a + "NullPointerException" at <tt>BaseSQLEntryPanel.java:23</tt></a></h1> + + <p class="answer">This is a known problem with JDK1.3.0 on some + platforms. Upgrade your Java version to 1.3.1 or better.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq6">Ingres reports "Error: + contsbt: ca.edbc.util.EdbcEx: No MST is currently in progress, cannot + declare another cursor." when I connect and nothing is listed under + the schema name in the Object Tree</a></h1> + + <p class="answer">Right-click on the schema in the explorer and + select refresh, objects should appear as normal.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq7">Informix reports "The + specified table (schema.table) is not in the database" when trying to + view the contents of a table in the current schema</a></h1> + + <p class="answer">This is a bug in earlier versions of the + Informix JDBC driver and is known to be fixed in version 9.4 of + Informix and version 2.21 of the Informix JDBC driver.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="faq8">I am using SQuirreL 2.x + and when I connect to a database I get the following warning message:</a></h1> + + <pre> + JRE/JDBC Version mismatch + + The driver being used ... is not JDBC N.N compliant. + You should consider getting a more recent version of this driver. + +</pre> + + <div class="answer">It's telling you that your JRE version is + much newer than your driver's supported JDBC version. In general, it's + hard to tell how well tested an older driver is with a newer + JVM(1.4+). The odds are good that the newer JVM wasn't available when + the older driver was written. So the warning message is there to let + you know that you aren't getting the most efficient use from SQuirreL + 2.x and your database driver. SQuirreL 2.x requires JVM 1.4 or higher + so your choices are limited there. Upgrade your JDBC driver if + possible - if not, then you can disable the warning. To disable it go + to Global Preferences -> General and uncheck the checkbox next to <b><i>Warning + for JRE/JDBC Version Mismatch</i></b></div> + + <br> + + + <p><a href="#top">Top</a></p> + </td> + <td class="body_right_border"> </td> + </tr> + + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_bl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_b.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_br.gif" width="10" height="10"></td> + </tr> +</table> + +<p class="menu_divider"> +<table summary="Plugin Answers" border="0" cellpadding="0" + cellspacing="0" width="100%"> + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_t.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_tr.gif" width="10" height="10"></td> + </tr> + + <tr> + <td class="body_left_border"> </td> + <td width='100%' bgcolor="white" valign="top"> + <h1 class="body">Answers - Plugins.</h1> + + <h1 class="question"><a name="plug0">How do I write a plugin?</a></h1> + + <p class="answer">There is some information in the document <a + href="http://squirrel-sql.svn.sourceforge.net/viewvc/squirrel-sql/trunk/sql12/doc/plugins.html"> + plugins.html</a> which you can find in the docs directory within your + SQuirreL program directory. This document badly needs a lot of work + and its on our todo list. You can also look at the existing plugins to + see how they've done things.</p> + + <p class="answer">If you have an idea for a plugin just send a + message to the SQuirreL Developers list giving a brief description. + This helps to ensure that two people don't develop the same plugin.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="plug1">What are these + directories "Colin Bell" and "Johan Compagner" in the plugins + directory?</a></h1> + + <p class="answer">Some people have reported these directories + appearing when running JDK 1.3 on Windows 2000. It appears to be a + problem with the Hotspot VM. Passing the -classic flag to the java + executable fixes the problem - i.e.</p> + + <p class="code">java -classic -cp...</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="plug2">I can't see any "Look + and Feel" files.</a></h1> + + <p class="answer">This can be caused by the <a href="#plug1">What + are these directories "Colin Bell" and "Johan Compagner" in the + plugins directory?</a> problem.</p> + + <p><a href="#top">Top</a></p> + + <h1 class="question"><a name="plug3">I get a + java.lang.NoClassDefFoundError: org/w3c/dom/Node error when trying to + validate SQL.</a></h1> + + <p class="answer">If you use the SQL Validator plugin with JDK 1.3 + you will need a JAXP 1.1 XML compliant parser such as <a + href="http://xml.apache.org/dist/xerces-j/">xml-xerces</a> or the <a + href="http://java.sun.com/xml/jaxp/index.html">JAXP 1.1 reference + implementation</a>. Copy the jar files from your XML parser to the + directory <squirrel-sql>/plugins/sqlval/lib. For xml-xerces this + should be xerces.jar and for JAXP 1.1 reference implementation this + should be crimson.jar and jaxp.jar.</p> + + <p><a href="#top">Top</a></p> + </td> + <td class="body_right_border"> </td> + </tr> + + <tr> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_bl.gif" width="10" height="10"></td> + <td width='100%' height='10'><img alt="border image" border="0" + src="images/border_b.gif" width="100%" height="10"></td> + <td width='10' height='10'><img alt="border image" border="0" + src="images/border_br.gif" width="10" height="10"></td> + </tr> +</table> +</body> +</html> + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-08-21 18:23:56
|
Revision: 5832 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5832&view=rev Author: manningr Date: 2010-08-21 18:23:50 +0000 (Sat, 21 Aug 2010) Log Message: ----------- Initial changes to convert from Ant build to Maven build Removed Paths: ------------- trunk/sql12/mac/ trunk/sql12/translations/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-08-26 17:58:57
|
Revision: 5849 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5849&view=rev Author: gerdwagner Date: 2010-08-26 17:58:51 +0000 (Thu, 26 Aug 2010) Log Message: ----------- Fixed two bugs Modified Paths: -------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/aliasproperties/DriverPropertiesController.java trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/plugins/firebirdmanager/src/main/java/net/sourceforge/squirrel_sql/plugins/firebirdmanager/FirebirdManagerPlugin.java Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/aliasproperties/DriverPropertiesController.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/aliasproperties/DriverPropertiesController.java 2010-08-22 22:12:41 UTC (rev 5848) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/aliasproperties/DriverPropertiesController.java 2010-08-26 17:58:51 UTC (rev 5849) @@ -85,17 +85,17 @@ } } - DriverPropertyInfo[] infoAr; + DriverPropertyInfo[] infoAr = new DriverPropertyInfo[0]; try { infoAr = jdbcDriver.getPropertyInfo(alias.getUrl(), new Properties()); } - catch (SQLException e) + catch (Exception e) { // I18n[DriverPropertiesController.gettingDriverPropetiesFailed=Loading the properties from the JDBC driver failed.\nCan not load driver properties tab.] _errMsg = s_stringMgr.getString("DriverPropertiesController.gettingDriverPropetiesFailed"); _app.getMessageHandler().showErrorMessage(_errMsg); - return; + //return; } SQLDriverPropertyCollection driverPropertiesClone = alias.getDriverPropertiesClone(); Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-08-22 22:12:41 UTC (rev 5848) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-08-26 17:58:51 UTC (rev 5849) @@ -23,6 +23,10 @@ Bug-fixes: +Firebird Manger Plugin: Removed dialog (that pointed out missig Firebird driver) from startup routines. + +Fixed Alias Properties not showing when drivers getPropertyInfo() fails. Behavior has been seen with Oracle driver. + RSyntax: Turned off drag and drop inside the editor. It conflicted with our drag and drop feature for files and caused editor texts to vanish. See bug #3006515. Modified: trunk/sql12/plugins/firebirdmanager/src/main/java/net/sourceforge/squirrel_sql/plugins/firebirdmanager/FirebirdManagerPlugin.java =================================================================== --- trunk/sql12/plugins/firebirdmanager/src/main/java/net/sourceforge/squirrel_sql/plugins/firebirdmanager/FirebirdManagerPlugin.java 2010-08-22 22:12:41 UTC (rev 5848) +++ trunk/sql12/plugins/firebirdmanager/src/main/java/net/sourceforge/squirrel_sql/plugins/firebirdmanager/FirebirdManagerPlugin.java 2010-08-26 17:58:51 UTC (rev 5849) @@ -368,8 +368,12 @@ return fb.getMajorVersion() >= 2; } catch (ClassNotFoundException e) { log.error(i18n.ERROR_DRIVER_NOT_INSTALLED); - JOptionPane.showMessageDialog(null, i18n.ERROR_DRIVER_NOT_INSTALLED); - return false; + + // This was shown at application start up. The message box did hide behind the splash screen. + // In general it is not a good idea to pop up message boxes at start up from within Plugin intializations. + // JOptionPane.showMessageDialog(null, i18n.ERROR_DRIVER_NOT_INSTALLED); + + return false; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-09-05 00:19:28
|
Revision: 5870 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5870&view=rev Author: manningr Date: 2010-09-05 00:19:22 +0000 (Sun, 05 Sep 2010) Log Message: ----------- Relocated update site to installer section and adjusted it to depend on installer-deps Modified Paths: -------------- trunk/sql12/installer/pom.xml trunk/sql12/pom.xml Added Paths: ----------- trunk/sql12/installer/squirrelsql-update-site/ trunk/sql12/installer/squirrelsql-update-site/pom.xml Removed Paths: ------------- trunk/sql12/installer/squirrelsql-update-site/pom.xml trunk/sql12/squirrelsql-update-site/ Modified: trunk/sql12/installer/pom.xml =================================================================== --- trunk/sql12/installer/pom.xml 2010-09-04 02:37:56 UTC (rev 5869) +++ trunk/sql12/installer/pom.xml 2010-09-05 00:19:22 UTC (rev 5870) @@ -64,5 +64,6 @@ <module>squirrelsql-macosx-installer</module> <module>squirrelsql-source</module> <module>squirrelsql-installer-deps</module> + <module>squirrelsql-update-site</module> </modules> -</project> \ No newline at end of file +</project> Deleted: trunk/sql12/installer/squirrelsql-update-site/pom.xml =================================================================== --- trunk/sql12/squirrelsql-update-site/pom.xml 2010-08-22 12:38:53 UTC (rev 5840) +++ trunk/sql12/installer/squirrelsql-update-site/pom.xml 2010-09-05 00:19:22 UTC (rev 5870) @@ -1,438 +0,0 @@ -<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</groupId> - <artifactId>squirrel-root-pom</artifactId> - <version>3.2.0-SNAPSHOT</version> - </parent> - <groupId>net.sf.squirrel-sql</groupId> - <artifactId>squirrelsql-update-site</artifactId> - <version>3.2.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>SQuirreLSQL Update Site Project</name> - <description> - This project is used to assemble the jars that produce the update site, and - run the update site plugin to generate the release.xml file. Finally, this - project can be used to deploy the update site to www.squirrel-sql.net - </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</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> - <!-- SQuirreL Dependencies --> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>fw</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>squirrel-sql</artifactId> - <version>${project.version}</version> - </dependency> - - <!-- Standard Plugins --> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>codecompletion</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>editextras</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>graph</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>laf</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sqlbookmark</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sqlscript</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>syntax</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - - <!-- Optional Plugins --> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>dataimport</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>dbcopy</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>db2</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>derby</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>firebird</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>firebirdmanager</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>h2</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>hibernate</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>informix</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>mssql</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>mysql</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>oracle</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>postgres</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>refactoring</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sessionscript</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>smarttools</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sqlparam</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sqlreplace</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sqlval</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>sybase</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - <dependency> - <groupId>net.sf.squirrel-sql.plugins</groupId> - <artifactId>i18n</artifactId> - <version>${project.version}</version> - <classifier>assembly</classifier> - <type>zip</type> - </dependency> - - <!-- Non-plugin dependencies --> - <dependency> - <groupId>net.sf.squirrel-sql.translations</groupId> - <artifactId>squirrelsql-translations</artifactId> - <version>${project.version}</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>squirrelsql-java-version-checker</artifactId> - <version>${project.version}</version> - <type>jar</type> - </dependency> - </dependencies> - <properties> - <squirrelsql.version>test</squirrelsql.version> - </properties> - <build> - <plugins> - <!-- Set the squirrelsql.version property if it has not already been set. --> - <plugin> - <groupId>net.sf.squirrel-sql</groupId> - <artifactId>squirrelsql-version-plugin</artifactId> - <version>${squirrelsql-version-plugin-version}</version> - <executions> - <execution> - <phase>initialize</phase> - <goals> - <goal>set-version</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>${dependency-plugin-version}</version> - <executions> - <execution> - <id>copy-core-artifacts</id> - <phase>process-resources</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - <configuration> - <stripVersion>true</stripVersion> - <outputDirectory>${project.build.directory}/release/core</outputDirectory> - <excludeClassifiers>assembly</excludeClassifiers> - <excludeTypes>zip</excludeTypes> - </configuration> - </execution> - <execution> - <id>copy-plugin-artifacts</id> - <phase>process-resources</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - <configuration> - <stripVersion>true</stripVersion> - <includeClassifiers>assembly</includeClassifiers> - <includeTypes>zip</includeTypes> - <excludeTransitive>true</excludeTransitive> - <outputDirectory>${project.build.directory}/release/plugins</outputDirectory> - </configuration> - </execution> - <execution> - <id>extract-translations</id> - <phase>process-resources</phase> - <goals> - <goal>unpack</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>net.sf.squirrel-sql.translations</groupId> - <artifactId>squirrelsql-translations</artifactId> - <version>${project.version}</version> - <type>jar</type> - <outputDirectory>${project.build.directory}/release/i18n</outputDirectory> - <includes>**/*.jar</includes> - </artifactItem> - </artifactItems> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>net.sf.squirrel-sql</groupId> - <artifactId>squirrelsql-update-site-plugin</artifactId> - <version>${squirrelsql-update-site-plugin-version}</version> - <executions> - <execution> - <phase>prepare-package</phase> - <goals> - <goal>build-update-site</goal> - </goals> - <configuration> - <releaseDirectory>${project.build.directory}/release</releaseDirectory> - <releaseVersion>${squirrelsql.version}</releaseVersion> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.2</version> - <configuration> - <classesDirectory>${project.build.directory}/release</classesDirectory> - <archive> - <addMavenDescriptor>false</addMavenDescriptor> - </archive> - <includes> - <include>**/*.jar</include> - <include>**/*.zip</include> - <include>release.xml</include> - </includes> - </configuration> - </plugin> - </plugins> - <extensions> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ftp</artifactId> - <version>1.0-beta-6</version> - </extension> - </extensions> - </build> - <profiles> - <profile> - <id>uploadUpdateSite</id> - <activation> - <property> - <name>uploadUpdateSite</name> - </property> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>wagon-maven-plugin</artifactId> - <version>${wagon-plugin-version}</version> - <configuration> - <serverId>update-site-ftp-server</serverId> - <!-- property update.site.ftp.server defined in settings.xml installer profile --> - <url>ftp://${update.site.ftp.server}</url> - </configuration> - <executions> - <execution> - <id>ftp-upload-release</id> - <phase>deploy</phase> - <goals> - <goal>upload</goal> - </goals> - <configuration> - <fromDir>target/release</fromDir> - <!-- property update.site.path defined in settings.xml installer profile --> - <toDir>${update.site.path}</toDir> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> -</project> \ No newline at end of file Copied: trunk/sql12/installer/squirrelsql-update-site/pom.xml (from rev 5864, trunk/sql12/squirrelsql-update-site/pom.xml) =================================================================== --- trunk/sql12/installer/squirrelsql-update-site/pom.xml (rev 0) +++ trunk/sql12/installer/squirrelsql-update-site/pom.xml 2010-09-05 00:19:22 UTC (rev 5870) @@ -0,0 +1,235 @@ +<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</groupId> + <artifactId>installer</artifactId> + <version>3.2.0-SNAPSHOT</version> + </parent> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrelsql-update-site</artifactId> + <version>3.2.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>SQuirreLSQL Update Site Project</name> + <description> + This project is used to assemble the jars that produce the update site, and + run the update site plugin to generate the release.xml file. Finally, this + project can be used to deploy the update site to www.squirrel-sql.net + </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</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>${project.groupId}</groupId> + <artifactId>squirrelsql-installer-deps</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrelsql-launcher</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>doc</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>website</artifactId> + </exclusion> + </exclusions> + </dependency> + + </dependencies> + <properties> + <squirrelsql.version>test</squirrelsql.version> + </properties> + <build> + <plugins> + <!-- Set the squirrelsql.version property if it has not already been set. --> + <plugin> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrelsql-version-plugin</artifactId> + <version>${squirrelsql-version-plugin-version}</version> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>set-version</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>${dependency-plugin-version}</version> + <executions> + <execution> + <id>copy-core-artifacts</id> + <phase>process-resources</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <stripVersion>true</stripVersion> + <outputDirectory>${project.build.directory}/release/core</outputDirectory> + <excludeClassifiers>assembly</excludeClassifiers> + <excludeTypes>zip</excludeTypes> + <excludeArtifactIds>squirrelsql-installer-deps,squirrelsql-java-version-checker</excludeArtifactIds> + </configuration> + </execution> + <execution> + <id>copy-plugin-artifacts</id> + <phase>process-resources</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <stripVersion>true</stripVersion> + <includeClassifiers>assembly</includeClassifiers> + <includeTypes>zip</includeTypes> +<!-- <excludeTransitive>true</excludeTransitive>--> + <outputDirectory>${project.build.directory}/release/plugin</outputDirectory> + </configuration> + </execution> + <execution> + <id>extract-translations</id> + <phase>process-resources</phase> + <goals> + <goal>unpack</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>net.sf.squirrel-sql.translations</groupId> + <artifactId>squirrelsql-translations</artifactId> + <version>${project.version}</version> + <type>jar</type> + <outputDirectory>${project.build.directory}/release/i18n</outputDirectory> + <includes>**/*.jar</includes> + </artifactItem> + </artifactItems> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrelsql-update-site-plugin</artifactId> + <version>${squirrelsql-update-site-plugin-version}</version> + <executions> + <execution> + <phase>prepare-package</phase> + <goals> + <goal>build-update-site</goal> + </goals> + <configuration> + <releaseDirectory>${project.build.directory}/release</releaseDirectory> + <releaseVersion>${squirrelsql.version}</releaseVersion> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.2</version> + <configuration> + <classesDirectory>${project.build.directory}/release</classesDirectory> + <archive> + <addMavenDescriptor>false</addMavenDescriptor> + </archive> + <includes> + <include>**/*.jar</include> + <include>**/*.zip</include> + <include>release.xml</include> + </includes> + </configuration> + </plugin> + </plugins> + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ftp</artifactId> + <version>1.0-beta-6</version> + </extension> + </extensions> + </build> + <profiles> + <profile> + <id>uploadUpdateSite</id> + <activation> + <property> + <name>uploadUpdateSite</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>wagon-maven-plugin</artifactId> + <version>${wagon-plugin-version}</version> + <configuration> + <serverId>update-site-ftp-server</serverId> + <!-- property update.site.ftp.server defined in settings.xml installer profile --> + <url>ftp://${update.site.ftp.server}</url> + </configuration> + <executions> + <execution> + <id>ftp-upload-release</id> + <phase>deploy</phase> + <goals> + <goal>upload</goal> + </goals> + <configuration> + <fromDir>target/release</fromDir> + <!-- property update.site.path defined in settings.xml installer profile --> + <toDir>${update.site.path}</toDir> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> Modified: trunk/sql12/pom.xml =================================================================== --- trunk/sql12/pom.xml 2010-09-04 02:37:56 UTC (rev 5869) +++ trunk/sql12/pom.xml 2010-09-05 00:19:22 UTC (rev 5870) @@ -131,7 +131,6 @@ <module>doc</module> <module>web-site</module> <module>installer</module> - <module>squirrelsql-update-site</module> </modules> </profile> <!-- @@ -165,4 +164,4 @@ </build> </profile> </profiles> -</project> \ No newline at end of file +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-09-06 16:56:43
|
Revision: 5874 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5874&view=rev Author: manningr Date: 2010-09-06 16:56:33 +0000 (Mon, 06 Sep 2010) Log Message: ----------- 1) Removed squirrelsql-test-utils as this doesn't appear to work consistently in all plugins and I misunderstood the best practice listed here: http://www.sonatype.com/books/mvnex-book/reference/optimizing-sect-dependencies.html. This pattern had the effect of causing 'mvn dependency:analyze' to complain about used non-declared dependencies and also caused some plugin tests to fail to compile when pluginManagement section in the parent pom was in use. Replaced this with direct plugin-managed dependencies. 2) Removed versionId/groupId wherever they could be inherited by the parent pom. 3) Removed dependency versions wherever they could be inherited by the parent pom. 4) Removed plugin versions wherever they could be inherited by the parent pom. 4) Added parent relative path. 5) Replaced hard-coded version for shared third-party dependencies with variable set in parent pom. Modified Paths: -------------- trunk/sql12/app/pom.xml trunk/sql12/doc/pom.xml trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/fw/pom.xml trunk/sql12/installer/pom.xml trunk/sql12/installer/squirrelsql-installer-deps/pom.xml trunk/sql12/installer/squirrelsql-java-version-checker/pom.xml trunk/sql12/installer/squirrelsql-launcher/pom.xml trunk/sql12/installer/squirrelsql-macosx-installer/pom.xml trunk/sql12/installer/squirrelsql-other-installer/pom.xml trunk/sql12/installer/squirrelsql-source/pom.xml trunk/sql12/installer/squirrelsql-update-site/pom.xml trunk/sql12/plugins/cache/pom.xml trunk/sql12/plugins/codecompletion/pom.xml trunk/sql12/plugins/dataimport/pom.xml trunk/sql12/plugins/db2/pom.xml trunk/sql12/plugins/dbcopy/pom.xml trunk/sql12/plugins/dbdiff/pom.xml trunk/sql12/plugins/derby/pom.xml trunk/sql12/plugins/editextras/pom.xml trunk/sql12/plugins/example/pom.xml trunk/sql12/plugins/exportconfig/pom.xml trunk/sql12/plugins/favs/pom.xml trunk/sql12/plugins/firebird/pom.xml trunk/sql12/plugins/firebirdmanager/pom.xml trunk/sql12/plugins/graph/pom.xml trunk/sql12/plugins/h2/pom.xml trunk/sql12/plugins/hibernate/pom.xml trunk/sql12/plugins/i18n/pom.xml trunk/sql12/plugins/informix/pom.xml trunk/sql12/plugins/laf/pom.xml trunk/sql12/plugins/macosx/pom.xml trunk/sql12/plugins/mssql/pom.xml trunk/sql12/plugins/mysql/pom.xml trunk/sql12/plugins/netezza/pom.xml trunk/sql12/plugins/oracle/pom.xml trunk/sql12/plugins/postgres/pom.xml trunk/sql12/plugins/refactoring/pom.xml trunk/sql12/plugins/sessionscript/pom.xml trunk/sql12/plugins/smarttools/pom.xml trunk/sql12/plugins/sqlbookmark/pom.xml trunk/sql12/plugins/sqlparam/pom.xml trunk/sql12/plugins/sqlreplace/pom.xml trunk/sql12/plugins/sqlscript/pom.xml trunk/sql12/plugins/sqlval/pom.xml trunk/sql12/plugins/squirrelsql-plugins-assembly-descriptor/pom.xml trunk/sql12/plugins/squirrelsql-plugins-parent-pom/pom.xml trunk/sql12/plugins/sybase/pom.xml trunk/sql12/plugins/syntax/pom.xml trunk/sql12/plugins/userscript/pom.xml trunk/sql12/pom.xml trunk/sql12/squirrelsql-integration-environment/pom.xml trunk/sql12/squirrelsql-translations/pom.xml trunk/sql12/web-site/pom.xml Removed Paths: ------------- trunk/sql12/squirrelsql-test-utils/ Property Changed: ---------------- trunk/sql12/app/ Property changes on: trunk/sql12/app ___________________________________________________________________ Modified: svn:ignore - target .settings .project .classpath + target .settings .project .classpath update Modified: trunk/sql12/app/pom.xml =================================================================== --- trunk/sql12/app/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/app/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -5,16 +5,15 @@ <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrel-root-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrel-sql</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> + <name>SQuirreL Main Application Jar</name> <description> - This is the jar that contains the main application classes - which are very - specific to SQuirreLSQL. + This is the jar that contains the main application classes which are very specific to SQuirreLSQL. </description> <inceptionYear>2001</inceptionYear> <developers> @@ -69,7 +68,6 @@ <dependency> <groupId>jgoodies</groupId> <artifactId>forms</artifactId> - <version>1.0.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> @@ -78,17 +76,30 @@ <scope>test</scope> </dependency> <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>squirrelsql-test-utils</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>test</scope> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> </dependencies> <build> <!-- - Filter in the version from the version-plugin below, into - Version.properties. Turn off filtering for all other files here + Filter in the version from the version-plugin below, into Version.properties. Turn off filtering + for all other files here --> <resources> <resource> @@ -173,31 +184,4 @@ </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> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>${javadoc-plugin-version}</version> - <executions> - <execution> - <id>attach-javadocs</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> </project> Modified: trunk/sql12/doc/pom.xml =================================================================== --- trunk/sql12/doc/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/doc/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -6,11 +6,10 @@ <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrel-root-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>doc</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>SQuirreL-SQL Documentation</name> @@ -66,7 +65,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> @@ -75,32 +73,5 @@ </plugin> </plugins> </build> - <profiles> - <!-- - Since signing jars is probably only useful for releasing, this is not done unless the "sign-jar" profile - is activated - --> - <profile> - <id>sign-jar</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-gpg-plugin</artifactId> - <version>${gpg-plugin-version}</version> - <executions> - <execution> - <id>sign-artifacts</id> - <phase>verify</phase> - <goals> - <goal>sign</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> </project> \ No newline at end of file Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-06 16:56:33 UTC (rev 5874) @@ -21,6 +21,8 @@ Incorporated patch which provides a node under each table in the object tree that lists all of the constraints for that table. (Thanks to Bogdan Cristian Paulon) +Netezza Plugin: Added support for displaying external tables in the object tree. + Bug-fixes: Firebird Manger Plugin: Removed dialog (that pointed out missig Firebird driver) from startup routines. Modified: trunk/sql12/fw/pom.xml =================================================================== --- trunk/sql12/fw/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/fw/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -1,293 +1,275 @@ <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> + 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</groupId> - <artifactId>squirrel-root-pom</artifactId> - <version>3.2.0-SNAPSHOT</version> - </parent> + <parent> + <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrel-root-pom</artifactId> + <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> - <groupId>net.sf.squirrel-sql</groupId> - <artifactId>fw</artifactId> - <version>3.2.0-SNAPSHOT</version> - <packaging>jar</packaging> + <artifactId>fw</artifactId> + <packaging>jar</packaging> - <name>Framework Library</name> - <description> + <name>Framework Library</name> + <description> The framework library contains utility classes that are generic and useful for building applications that introspect a database via JDBC. These are not intended to be SQuirreLSQL-specific and could be used by other projects JDBC front-end applications. This project is guaranteed to have no code dependencies on other SQuirreLSQL projects and could therefore be used when building a different JDBC front-end application. </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> + <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>antlr</groupId> - <artifactId>antlr</artifactId> - <version>2.7.5</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm-attrs</artifactId> - <version>1.5.3</version> - </dependency> - <dependency> - <groupId>asm</groupId> - <artifactId>asm</artifactId> - <version>1.5.3</version> - </dependency> - <dependency> - <groupId>cglib</groupId> - <artifactId>cglib</artifactId> - <version>2.1_3</version> - </dependency> - <dependency> - <groupId>commons-cli</groupId> - <artifactId>commons-cli</artifactId> - <version>1.0</version> - </dependency> - <dependency> - <groupId>commons-codec</groupId> - <artifactId>commons-codec</artifactId> - <version>1.3</version> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>2.1.1</version> - </dependency> - <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - <version>3.1</version> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>1.0.4</version> - </dependency> - <dependency> - <groupId>dom4j</groupId> - <artifactId>dom4j</artifactId> - <version>1.6.1</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-annotations</artifactId> - <version>${hibernate-annotations-version}</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-commons-annotations</artifactId> - <version>${hibernate-annotations-version}</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-entitymanager</artifactId> - <version>3.3.1.ga</version> - </dependency> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate</artifactId> - <version>3.2.4.sp1</version> - <exclusions> - <exclusion> - <groupId>javax.transaction</groupId> - <artifactId>jta</artifactId> - </exclusion> + <dependencies> + <dependency> + <groupId>antlr</groupId> + <artifactId>antlr</artifactId> + <version>2.7.5</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm-attrs</artifactId> + <version>1.5.3</version> + </dependency> + <dependency> + <groupId>asm</groupId> + <artifactId>asm</artifactId> + <version>1.5.3</version> + </dependency> + <dependency> + <groupId>cglib</groupId> + <artifactId>cglib</artifactId> + <version>2.1_3</version> + </dependency> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>1.0</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.3</version> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>2.1.1</version> + </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.0.4</version> + </dependency> + <dependency> + <groupId>dom4j</groupId> + <artifactId>dom4j</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + <version>${hibernate-annotations-version}</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-commons-annotations</artifactId> + <version>${hibernate-annotations-version}</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-entitymanager</artifactId> + <version>3.3.1.ga</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.2.4.sp1</version> + <exclusions> + <exclusion> + <groupId>javax.transaction</groupId> + <artifactId>jta</artifactId> + </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>net.sourceforge.jexcelapi</groupId> - <artifactId>jxl</artifactId> - <version>2.6.10</version> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.15</version> - <exclusions> - <exclusion> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - </exclusion> - <exclusion> - <groupId>javax.jms</groupId> - <artifactId>jms</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jdmk</groupId> - <artifactId>jmxtools</artifactId> - </exclusion> - <exclusion> - <groupId>com.sun.jmx</groupId> - <artifactId>jmxri</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>be.cyberelf.nanoxml</groupId> - <artifactId>nanoxml</artifactId> - <version>2.2.3</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-beans</artifactId> - <version>${spring-framework-version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring-framework-version}</version> - <exclusions> - <exclusion> - <groupId>aopalliance</groupId> - <artifactId>aopalliance</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context-support</artifactId> - <version>${spring-framework-version}</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> - <version>${spring-framework-version}</version> - </dependency> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>stringtemplate</artifactId> - <version>3.1-b1</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>squirrelsql-test-utils</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>test</scope> - </dependency> - </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>${compiler-plugin-version}</version> - <configuration> - <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ --> - <source>${javac-source-version}</source> - <target>${javac-target-version}</target> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <redirectTestOutputToFile>true</redirectTestOutputToFile> - <!-- This is temporarily disabled because it prevents any tests from running for some - unknown reason --> -<!-- <parallel>${surefire-parallel-type}</parallel>--> -<!-- <threadCount>${surefire-thread-count}</threadCount>--> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> - <executions> - <execution> - <goals> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> - <executions> - <execution> - <id>attach-sources</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </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> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>${javadoc-plugin-version}</version> - <executions> - <execution> - <id>attach-javadocs</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> - + </exclusions> + </dependency> + <dependency> + <groupId>net.sourceforge.jexcelapi</groupId> + <artifactId>jxl</artifactId> + <version>2.6.10</version> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.15</version> + <exclusions> + <exclusion> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + </exclusion> + <exclusion> + <groupId>javax.jms</groupId> + <artifactId>jms</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jdmk</groupId> + <artifactId>jmxtools</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jmx</groupId> + <artifactId>jmxri</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>be.cyberelf.nanoxml</groupId> + <artifactId>nanoxml</artifactId> + <version>2.2.3</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + <version>${spring-framework-version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${spring-framework-version}</version> + <exclusions> + <exclusion> + <groupId>aopalliance</groupId> + <artifactId>aopalliance</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context-support</artifactId> + <version>${spring-framework-version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring-framework-version}</version> + </dependency> + <dependency> + <groupId>org.antlr</groupId> + <artifactId>stringtemplate</artifactId> + <version>3.1-b1</version> + </dependency> + <dependency> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ --> + <source>${javac-source-version}</source> + <target>${javac-target-version}</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + <!-- + This is temporarily disabled because it prevents any tests from running for some unknown + reason + --> + <!-- <parallel>${surefire-parallel-type}</parallel>--> + <!-- <threadCount>${surefire-thread-count}</threadCount>--> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> </project> Modified: trunk/sql12/installer/pom.xml =================================================================== --- trunk/sql12/installer/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -6,11 +6,10 @@ <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrel-root-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>installer</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Installer Module Pom</name> Modified: trunk/sql12/installer/squirrelsql-installer-deps/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-installer-deps/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-installer-deps/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -6,9 +6,7 @@ <groupId>net.sf.squirrel-sql</groupId> <version>3.2.0-SNAPSHOT</version> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrelsql-installer-deps</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Installer Dependencies</name> <description>This pom collects all of the common dependencies shared by each the installers.</description> @@ -302,7 +300,7 @@ <type>jar</type> </dependency> <dependency> - <groupId>net.sf.squirrel-sql</groupId> + <groupId>${project.groupId}</groupId> <artifactId>squirrelsql-java-version-checker</artifactId> <version>${project.version}</version> <type>jar</type> Modified: trunk/sql12/installer/squirrelsql-java-version-checker/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-java-version-checker/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-java-version-checker/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -8,9 +8,7 @@ <version>3.2.0-SNAPSHOT</version> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrelsql-java-version-checker</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>SQuirreL-SQL Java Version Checker</name> @@ -69,7 +67,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> Modified: trunk/sql12/installer/squirrelsql-launcher/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-launcher/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-launcher/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -8,9 +8,7 @@ <version>3.2.0-SNAPSHOT</version> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrelsql-launcher</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>SQuirrel-SQL Launcher Scripts</name> @@ -64,7 +62,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> Modified: trunk/sql12/installer/squirrelsql-macosx-installer/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-macosx-installer/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-macosx-installer/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrel-root-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrelsql-macosx-installer</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>SQuirreL-SQL Mac OS X Installer</name> <description>This project is used to build the installer for Mac OS X</description> @@ -60,15 +59,15 @@ </properties> <dependencies> <dependency> - <groupId>net.sf.squirrel-sql</groupId> + <groupId>${project.groupId}</groupId> <artifactId>squirrelsql-installer-deps</artifactId> - <version>3.2.0-SNAPSHOT</version> + <version>${project.version}</version> <type>pom</type> </dependency> <dependency> - <groupId>net.sf.squirrel-sql</groupId> + <groupId>${project.groupId}</groupId> <artifactId>squirrelsql-update-site</artifactId> - <version>3.2.0-SNAPSHOT</version> + <version>${project.version}</version> </dependency> <dependency> <groupId>net.sf.squirrel-sql.plugins</groupId> Modified: trunk/sql12/installer/squirrelsql-other-installer/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-other-installer/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-other-installer/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -5,12 +5,11 @@ <modelVersion>4.0.0</modelVersion> <parent> <groupId>net.sf.squirrel-sql</groupId> - <artifactId>squirrel-root-pom</artifactId> + <artifactId>installer</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrelsql-other-installer</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>SQuirreL-SQL Generic Installer</name> <description>This project is used to build the generic installer</description> @@ -59,15 +58,15 @@ </properties> <dependencies> <dependency> - <groupId>net.sf.squirrel-sql</groupId> + <groupId>${project.groupId}</groupId> <artifactId>squirrelsql-installer-deps</artifactId> - <version>3.2.0-SNAPSHOT</version> + <version>${project.version}</version> <type>pom</type> </dependency> <dependency> - <groupId>net.sf.squirrel-sql</groupId> + <groupId>${project.groupId}</groupId> <artifactId>squirrelsql-update-site</artifactId> - <version>3.2.0-SNAPSHOT</version> + <version>${project.version}</version> </dependency> </dependencies> <build> @@ -103,7 +102,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> - <version>${dependency-plugin-version}</version> <executions> <execution> <id>application-libraries</id> Modified: trunk/sql12/installer/squirrelsql-source/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-source/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-source/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -5,10 +5,12 @@ <artifactId>installer</artifactId> <groupId>net.sf.squirrel-sql</groupId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> + <artifactId>squirrelsql-source</artifactId> - <version>3.2.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>SQuirreL SQL Client Source Archive (Aggregate)</name> <description> This is a project to create a single source archive of the entire source tree as a @@ -63,7 +65,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> - <version>1.4</version> <executions> <execution> <configuration> @@ -80,7 +81,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> - <version>${assembly-plugin-version}</version> <executions> <execution> <id>create-source-archive</id> @@ -111,7 +111,6 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> - <version>1.2</version> <executions> <execution> <configuration> Modified: trunk/sql12/installer/squirrelsql-update-site/pom.xml =================================================================== --- trunk/sql12/installer/squirrelsql-update-site/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/installer/squirrelsql-update-site/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql</groupId> <artifactId>installer</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql</groupId> <artifactId>squirrelsql-update-site</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>SQuirreL-SQL Update Site Project</name> <description> Modified: trunk/sql12/plugins/cache/pom.xml =================================================================== --- trunk/sql12/plugins/cache/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/plugins/cache/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>squirrelsql-plugins-parent-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../squirrelsql-plugins-parent-pom/pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>cache</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Cache Plugin</name> <description>Cache Plugin</description> @@ -56,28 +55,38 @@ <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> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> </dependency> - <dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> + <dependency> <groupId>net.sf.squirrel-sql.thirdparty-non-maven</groupId> <artifactId>CacheDB</artifactId> <version>2008.2.0.526.0</version> @@ -87,54 +96,21 @@ <build> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <parallel>${surefire-parallel-type}</parallel> - <threadCount>${surefire-thread-count}</threadCount> - </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <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 Modified: trunk/sql12/plugins/codecompletion/pom.xml =================================================================== --- trunk/sql12/plugins/codecompletion/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/plugins/codecompletion/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>squirrelsql-plugins-parent-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../squirrelsql-plugins-parent-pom/pom.xml</relativePath> </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> @@ -56,27 +55,37 @@ <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> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> </dependencies> <properties> <pluginClassName>net.sourceforge.squirrel_sql.plugins.codecompletion.CodeCompletionPlugin</pluginClassName> @@ -84,54 +93,21 @@ <build> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <parallel>${surefire-parallel-type}</parallel> - <threadCount>${surefire-thread-count}</threadCount> - </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <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 Modified: trunk/sql12/plugins/dataimport/pom.xml =================================================================== --- trunk/sql12/plugins/dataimport/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/plugins/dataimport/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>squirrelsql-plugins-parent-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../squirrelsql-plugins-parent-pom/pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>dataimport</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Dataimport Plugin</name> <description>Dataimport Plugin</description> @@ -56,27 +55,37 @@ <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> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> </dependencies> <properties> <pluginClassName>net.sourceforge.squirrel_sql.plugins.dataimport.DataImportPlugin</pluginClassName> @@ -84,54 +93,21 @@ <build> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <parallel>${surefire-parallel-type}</parallel> - <threadCount>${surefire-thread-count}</threadCount> - </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <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 Modified: trunk/sql12/plugins/db2/pom.xml =================================================================== --- trunk/sql12/plugins/db2/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/plugins/db2/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,11 +7,12 @@ <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>squirrelsql-plugins-parent-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../squirrelsql-plugins-parent-pom/pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql.plugins</groupId> + <artifactId>db2</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> + <name>Db2 Plugin</name> <description>Db2 Plugin</description> <inceptionYear>2001</inceptionYear> @@ -56,27 +57,43 @@ <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>fw</artifactId> + <type>test-jar</type> + <scope>test</scope> + </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>gsbase</groupId> + <artifactId>gsbase</artifactId> </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> + <groupId>junit</groupId> + <artifactId>junit</artifactId> </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> </dependencies> <properties> <pluginClassName>net.sourceforge.squirrel_sql.plugins.db2.DB2Plugin</pluginClassName> @@ -84,54 +101,21 @@ <build> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <parallel>${surefire-parallel-type}</parallel> - <threadCount>${surefire-thread-count}</threadCount> - </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <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 Modified: trunk/sql12/plugins/dbcopy/pom.xml =================================================================== --- trunk/sql12/plugins/dbcopy/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/plugins/dbcopy/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>squirrelsql-plugins-parent-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../squirrelsql-plugins-parent-pom/pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>dbcopy</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Dbcopy Plugin</name> <description>Dbcopy Plugin</description> @@ -56,27 +55,37 @@ <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> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> </dependencies> <properties> <pluginClassName>net.sourceforge.squirrel_sql.plugins.dbcopy.DBCopyPlugin</pluginClassName> @@ -84,54 +93,21 @@ <build> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <parallel>${surefire-parallel-type}</parallel> - <threadCount>${surefire-thread-count}</threadCount> - </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <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 Modified: trunk/sql12/plugins/dbdiff/pom.xml =================================================================== --- trunk/sql12/plugins/dbdiff/pom.xml 2010-09-05 11:22:45 UTC (rev 5873) +++ trunk/sql12/plugins/dbdiff/pom.xml 2010-09-06 16:56:33 UTC (rev 5874) @@ -7,10 +7,9 @@ <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>squirrelsql-plugins-parent-pom</artifactId> <version>3.2.0-SNAPSHOT</version> + <relativePath>../squirrelsql-plugins-parent-pom/pom.xml</relativePath> </parent> - <groupId>net.sf.squirrel-sql.plugins</groupId> <artifactId>dbdiff</artifactId> - <version>3.2.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Dbdiff Plugin</name> <description>Dbdiff Plugin</description> @@ -56,27 +55,37 @@ <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> + <groupId>gsbase</groupId> + <artifactId>gsbase</artifactId> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymockclassextension</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + </dependency> </dependencies> <properties> <pluginClassName>net.sourceforge.squirrel_sql.plugins.dbdiff.DBDiffPlugin</pluginClassName> @@ -84,54 +93,21 @@ <build> <plugins> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>${source-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>${surefire-plugin-version}</version> - <configuration> - <parallel>${surefire-parallel-type}</parallel> - <threadCount>${surefire-thread-count}</threadCount> - </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> - <version>${jar-plugin-version}</version> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> <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> </p... [truncated message content] |
From: <ger...@us...> - 2010-09-07 23:02:34
|
Revision: 5876 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5876&view=rev Author: gerdwagner Date: 2010-09-07 23:02:28 +0000 (Tue, 07 Sep 2010) Log Message: ----------- Removed accesses to Swing from outside the event dispatch thread Modified Paths: -------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasCommand.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java trunk/sql12/plugins/dataimport/src/main/java/net/sourceforge/squirrel_sql/plugins/dataimport/DataImportPlugin.java Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasCommand.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasCommand.java 2010-09-07 23:01:55 UTC (rev 5875) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasCommand.java 2010-09-07 23:02:28 UTC (rev 5876) @@ -234,7 +234,8 @@ _user = user; _password = password; _props = props; - _app.getThreadPool().addTask(this); + //_app.getThreadPool().addTask(this); + run(); } /** Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java 2010-09-07 23:01:55 UTC (rev 5875) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/ObjectTreePanel.java 2010-09-07 23:02:28 UTC (rev 5876) @@ -164,13 +164,13 @@ createGUI(); - session.getApplication().getThreadPool().addTask(new Runnable() - { - public void run() - { +// session.getApplication().getThreadPool().addTask(new Runnable() +// { +// public void run() +// { doBackgroundInitializations(); - } - }); +// } +// }); } private void doBackgroundInitializations() Modified: trunk/sql12/plugins/dataimport/src/main/java/net/sourceforge/squirrel_sql/plugins/dataimport/DataImportPlugin.java =================================================================== --- trunk/sql12/plugins/dataimport/src/main/java/net/sourceforge/squirrel_sql/plugins/dataimport/DataImportPlugin.java 2010-09-07 23:01:55 UTC (rev 5875) +++ trunk/sql12/plugins/dataimport/src/main/java/net/sourceforge/squirrel_sql/plugins/dataimport/DataImportPlugin.java 2010-09-07 23:02:28 UTC (rev 5876) @@ -141,15 +141,6 @@ } /** - * @see net.sourceforge.squirrel_sql.client.plugin.DefaultSessionPlugin#allowsSessionStartedInBackground() - */ - @Override - public boolean allowsSessionStartedInBackground() - { - return true; - } - - /** * Called when a session started. * * @param session The session that is starting. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-09-08 02:48:51
|
Revision: 5878 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5878&view=rev Author: manningr Date: 2010-09-08 02:48:45 +0000 (Wed, 08 Sep 2010) Log Message: ----------- 1) Fixed bug# 2998121 (Update doesn't work, settings seem correct). Now, if the local release.xml file is not found the error dialog states as the cause, rather than merely saying the release.xml file couldn't be downloaded. 2) Adjusted the way that UpdateController uses JOPtionPane by introducing a service layer that allows for an implementation that delegates to JOPtionPane (moving the work to EDT if necessary) and allowing the implementation to swapped out for a mock object during testing. Modified Paths: -------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/UpdateControllerImpl.java trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/I18NStrings.properties Added Paths: ----------- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/IJOptionPaneService.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/JOptionPaneService.java Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/UpdateControllerImpl.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/UpdateControllerImpl.java 2010-09-07 23:19:16 UTC (rev 5877) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/UpdateControllerImpl.java 2010-09-08 02:48:45 UTC (rev 5878) @@ -48,6 +48,8 @@ import net.sourceforge.squirrel_sql.client.update.gui.UpdateSummaryDialog; import net.sourceforge.squirrel_sql.client.update.xmlbeans.ChannelXmlBean; import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; +import net.sourceforge.squirrel_sql.fw.gui.IJOptionPaneService; +import net.sourceforge.squirrel_sql.fw.gui.JOptionPaneService; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; import net.sourceforge.squirrel_sql.fw.util.log.ILogger; @@ -92,6 +94,8 @@ private ArtifactDownloaderFactory _downloaderFactory = null; + private IJOptionPaneService jOptionPaneService = new JOptionPaneService(); + static interface i18n { @@ -128,7 +132,7 @@ // i18n[UpdateControllerImpl.promptToDownloadAvailableUpdatesTitle=Updates Available] String PROMPT_TO_DOWNLOAD_AVAILABLE_UPDATES_TITLE = s_stringMgr.getString("UpdateControllerImpl.promptToDownloadAvailableUpdatesTitle"); - + } /** @@ -172,23 +176,31 @@ */ public void showUpdateDialog() { - JFrame parent = _app.getMainFrame(); - IUpdateSettings settings = getUpdateSettings(); - boolean isRemoteUpdateSite = settings.isRemoteUpdateSite(); - UpdateManagerDialog dialog = new UpdateManagerDialog(parent, isRemoteUpdateSite); - if (isRemoteUpdateSite) + final JFrame parent = _app.getMainFrame(); + final IUpdateSettings settings = getUpdateSettings(); + final boolean isRemoteUpdateSite = settings.isRemoteUpdateSite(); + GUIUtils.processOnSwingEventThread(new Runnable() { - dialog.setUpdateServerName(settings.getUpdateServer()); - dialog.setUpdateServerPort(settings.getUpdateServerPort()); - dialog.setUpdateServerPath(settings.getUpdateServerPath()); - dialog.setUpdateServerChannel(settings.getUpdateServerChannel()); - } - else - { - dialog.setLocalUpdatePath(settings.getFileSystemUpdatePath()); - } - dialog.addCheckUpdateListener(this); - dialog.setVisible(true); + + @Override + public void run() + { + UpdateManagerDialog dialog = new UpdateManagerDialog(parent, isRemoteUpdateSite); + if (isRemoteUpdateSite) + { + dialog.setUpdateServerName(settings.getUpdateServer()); + dialog.setUpdateServerPort(settings.getUpdateServerPort()); + dialog.setUpdateServerPath(settings.getUpdateServerPath()); + dialog.setUpdateServerChannel(settings.getUpdateServerChannel()); + } + else + { + dialog.setLocalUpdatePath(settings.getFileSystemUpdatePath()); + } + dialog.addCheckUpdateListener(UpdateControllerImpl.this); + dialog.setVisible(true); + } + }); } /** @@ -372,7 +384,7 @@ public boolean showConfirmMessage(String title, String msg) { int result = - JOptionPane.showConfirmDialog(_app.getMainFrame(), msg, title, JOptionPane.YES_NO_OPTION, + jOptionPaneService.showConfirmDialog(_app.getMainFrame(), msg, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); return (result == JOptionPane.YES_OPTION); } @@ -383,7 +395,7 @@ */ public void showMessage(String title, String msg) { - JOptionPane.showMessageDialog(_app.getMainFrame(), msg, title, JOptionPane.INFORMATION_MESSAGE); + jOptionPaneService.showMessageDialog(_app.getMainFrame(), msg, title, JOptionPane.INFORMATION_MESSAGE); } @@ -391,10 +403,10 @@ * @see net.sourceforge.squirrel_sql.client.update.UpdateController#showErrorMessage(java.lang.String, * java.lang.String) */ - public void showErrorMessage(String title, String msg, Exception e) + public void showErrorMessage(final String title, final String msg, final Exception e) { s_log.error(msg, e); - JOptionPane.showMessageDialog(_app.getMainFrame(), msg, title, JOptionPane.ERROR_MESSAGE); + jOptionPaneService.showMessageDialog(_app.getMainFrame(), msg, title, JOptionPane.ERROR_MESSAGE); } /** @@ -477,10 +489,16 @@ public void updateCheckFailed(final Exception e) { - if (e == null || e instanceof FileNotFoundException) + if (e == null) { showErrorMessage(i18n.UPDATE_CHECK_FAILED_TITLE, i18n.RELEASE_FILE_DOWNLOAD_FAILED_MSG); } + else if (e instanceof FileNotFoundException) + { + String msg = s_stringMgr.getString("UpdateControllerImpl.localReleaseFileNotFound", + _util.getSquirrelHomeDir()+"/"+UpdateUtil.LOCAL_UPDATE_DIR_NAME+"/"+RELEASE_XML_FILENAME); + showErrorMessage(i18n.UPDATE_CHECK_FAILED_TITLE, msg); + } else { showErrorMessage(i18n.UPDATE_CHECK_FAILED_TITLE, i18n.EXCEPTION_MSG + e.getClass().getName() @@ -576,6 +594,17 @@ _app.getSquirrelPreferences().setUpdateSettings(settings); } + /** + * Setter to allow injection of the service implementation. + * + * @param jOptionPaneService + * the non-static service that handles JOptionPane's static calls. + */ + public void setJOptionPaneService(IJOptionPaneService jOptionPaneService) + { + this.jOptionPaneService = jOptionPaneService; + } + private class GlobalPrefsListener implements GlobalPreferencesActionListener { Modified: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/I18NStrings.properties =================================================================== --- trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/I18NStrings.properties 2010-09-07 23:19:16 UTC (rev 5877) +++ trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/I18NStrings.properties 2010-09-08 02:48:45 UTC (rev 5878) @@ -18,5 +18,5 @@ UpdateControllerImpl.updateCheckFailedTitle=Update Check Failed UpdateControllerImpl.updateCheckTitle=Update Check +UpdateControllerImpl.localReleaseFileNotFound=Local file ({0}) is missing. Update aborted. - Added: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/IJOptionPaneService.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/IJOptionPaneService.java (rev 0) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/IJOptionPaneService.java 2010-09-08 02:48:45 UTC (rev 5878) @@ -0,0 +1,25 @@ +package net.sourceforge.squirrel_sql.fw.gui; + +import java.awt.Component; +import java.awt.HeadlessException; + +/** + * Interface to allow implementations to be injected depending on runtime environment (e.g. production or + * test). + */ +public interface IJOptionPaneService +{ + + /** + * @see javax.swing.JOptionPane#showMessageDialog(Component, Object, String, int) + */ + public abstract void showMessageDialog(final Component parentComponent, final Object message, + final String title, final int messageType); + + /** + * @see javax.swing.JOptionPane#showConfirmDialog(Component, Object, String, int, int) + */ + public int showConfirmDialog(final Component parentComponent, final Object message, final String title, + final int optionType, final int messageType) throws HeadlessException; + +} \ No newline at end of file Added: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/JOptionPaneService.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/JOptionPaneService.java (rev 0) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/JOptionPaneService.java 2010-09-08 02:48:45 UTC (rev 5878) @@ -0,0 +1,67 @@ +package net.sourceforge.squirrel_sql.fw.gui; + +import java.awt.Component; +import java.awt.HeadlessException; + +import javax.swing.JOptionPane; + +/** + * A Service implementation for JOptionPane static methods that allow guarantees they will be invoked on the + * event dispatch thread. The interface also allows classes that depend on this implementation in production + * to use a mock in unit tests. + */ +public class JOptionPaneService implements IJOptionPaneService +{ + + /** + * @see net.sourceforge.squirrel_sql.fw.gui.IJOptionPaneService#showMessageDialog(java.awt.Component, + * java.lang.Object, java.lang.String, int) + */ + @Override + public void showMessageDialog(final Component parentComponent, final Object message, final String title, + final int messageType) + { + GUIUtils.processOnSwingEventThread(new Runnable() + { + @Override + public void run() + { + JOptionPane.showMessageDialog(parentComponent, message, title, messageType); + } + }); + } + + /** + * @see net.sourceforge.squirrel_sql.fw.gui.IJOptionPaneService#showConfirmDialog(java.awt.Component, + * java.lang.Object, java.lang.String, int, int) + */ + public int showConfirmDialog(final Component parentComponent, final Object message, final String title, + final int optionType, final int messageType) throws HeadlessException + { + final RunnableWithIntResult inputRunner = new RunnableWithIntResult() + { + private int result = -1; + + @Override + public void run() + { + result = JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType); + + } + + @Override + public int getResult() + { + return result; + } + }; + + GUIUtils.processOnSwingEventThread(inputRunner, true); + return inputRunner.getResult(); + } + + private interface RunnableWithIntResult extends Runnable + { + public int getResult(); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-13 22:10:02
|
Revision: 5880 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5880&view=rev Author: gerdwagner Date: 2010-09-13 22:09:54 +0000 (Mon, 13 Sep 2010) Log Message: ----------- Used JDK 1.6 splash screen and this way fixed: 1808038: Splash screen was always on top hiding all other windows behind Modified Paths: -------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Main.java trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/gm/splash.jpg trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/log/Log4jLogger.java Added Paths: ----------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashStringWriter.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SquirrelSplashScreen.java Removed Paths: ------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashScreen.java Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java 2010-09-08 02:52:26 UTC (rev 5879) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java 2010-09-13 22:09:54 UTC (rev 5880) @@ -24,9 +24,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -import java.awt.AWTEvent; -import java.awt.EventQueue; -import java.awt.Toolkit; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.*; @@ -44,7 +41,7 @@ import net.sourceforge.squirrel_sql.client.action.ActionCollection; import net.sourceforge.squirrel_sql.client.gui.FileViewerFactory; -import net.sourceforge.squirrel_sql.client.gui.SplashScreen; +import net.sourceforge.squirrel_sql.client.gui.SquirrelSplashScreen; import net.sourceforge.squirrel_sql.client.gui.WindowManager; import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DesktopStyle; import net.sourceforge.squirrel_sql.client.gui.builders.UIFactory; @@ -72,7 +69,6 @@ import net.sourceforge.squirrel_sql.client.util.ApplicationFiles; import net.sourceforge.squirrel_sql.fw.datasetviewer.CellImportExportInfoSaver; import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DTProperties; -import net.sourceforge.squirrel_sql.fw.gui.CursorChanger; import net.sourceforge.squirrel_sql.fw.gui.ErrorDialog; import net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager; import net.sourceforge.squirrel_sql.fw.util.BareBonesBrowserLaunch; @@ -86,7 +82,6 @@ import net.sourceforge.squirrel_sql.fw.util.TaskThreadPool; 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.log.SystemOutToLog; import net.sourceforge.squirrel_sql.fw.xml.XMLBeanReader; import net.sourceforge.squirrel_sql.fw.xml.XMLBeanWriter; @@ -100,7 +95,7 @@ { /** Logger for this class. */ - private static ILogger s_log; + private static ILogger s_log = LoggerController.createLogger(Application.class); /** Internationalized strings for this class. */ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(Application.class); @@ -177,33 +172,7 @@ */ public void startup() { - LoggerController.registerLoggerFactory(new SquirrelLoggerFactory(true)); - s_log = LoggerController.createLogger(getClass()); - System.setErr(new PrintStream(new SystemOutToLog(System.err))); - System.setOut(new PrintStream(new SystemOutToLog(System.out))); - - - EventQueue q = Toolkit.getDefaultToolkit().getSystemEventQueue(); - q.push(new EventQueue() - { - protected void dispatchEvent(AWTEvent event) - { - try - { - super.dispatchEvent(event); - } - catch (Throwable t) - { - if (s_log.isDebugEnabled()) - { - t.printStackTrace(); - } - s_log.error("Exception occured dispatching Event " + event, t); - } - } - }); - final ApplicationArguments args = ApplicationArguments.getInstance(); // Setup the applications Look and Feel. @@ -226,39 +195,13 @@ } }); - SplashScreen splash = null; + SquirrelSplashScreen splash = null; if (args.getShowSplashScreen()) { - splash = new SplashScreen(_resources, 15, _prefs); + splash = new SquirrelSplashScreen(_prefs, 16); } - try - { - CursorChanger chg = null; - if (splash != null) - { - chg = new CursorChanger(splash); - chg.show(); - } - try - { - executeStartupTasks(splash, args); - } - finally - { - if (chg != null) - { - chg.restore(); - } - } - } - finally - { - if (splash != null) - { - splash.dispose(); - } - } + executeStartupTasks(splash, args); } /** @@ -690,7 +633,7 @@ * @throws IllegalArgumentException * Thrown if <TT>ApplicationArguments<.TT> is null. */ - private void executeStartupTasks(SplashScreen splash, ApplicationArguments args) + private void executeStartupTasks(SquirrelSplashScreen splash, ApplicationArguments args) { if (args == null) { throw new IllegalArgumentException("ApplicationArguments == null"); } @@ -834,7 +777,7 @@ * @param taskDescription * Description of new task. */ - private void indicateNewStartupTask(SplashScreen splash, String taskDescription) + private void indicateNewStartupTask(SquirrelSplashScreen splash, String taskDescription) { if (splash != null) { Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Main.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Main.java 2010-09-08 02:52:26 UTC (rev 5879) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Main.java 2010-09-13 22:09:54 UTC (rev 5880) @@ -1,6 +1,13 @@ package net.sourceforge.squirrel_sql.client; -import javax.swing.JOptionPane; +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.log.SystemOutToLog; + +import javax.swing.*; +import java.awt.*; +import java.io.IOException; +import java.io.PrintStream; /* * Copyright (C) 2001-2006 Colin Bell * co...@us... @@ -26,6 +33,9 @@ */ public class Main { + /** Logger for this class. */ + private static ILogger s_log; + /** * Default ctor. private as class should never be instantiated. */ @@ -39,8 +49,8 @@ * * @param args Arguments passed on command line. */ - public static void main(String[] args) - { + public static void main(String[] args) throws IOException + { if (ApplicationArguments.initialize(args)) { @@ -57,8 +67,52 @@ } else { - new Application().startup(); - } + startApp(); + } } } + + private static void startApp() throws IOException + { + LoggerController.registerLoggerFactory(new SquirrelLoggerFactory(true)); + s_log = LoggerController.createLogger(Main.class); + + System.setErr(new PrintStream(new SystemOutToLog(System.err))); + System.setOut(new PrintStream(new SystemOutToLog(System.out))); + + + + + EventQueue q = Toolkit.getDefaultToolkit().getSystemEventQueue(); + q.push(new EventQueue() + { + protected void dispatchEvent(AWTEvent event) + { + try + { + super.dispatchEvent(event); + } + catch (Throwable t) + { + if (s_log.isDebugEnabled()) + { + t.printStackTrace(); + } + s_log.error("Exception occured dispatching Event " + event, t); + } + } + }); + + + Runnable runnable = new Runnable() + { + public void run() + { + new Application().startup(); + } + }; + + SwingUtilities.invokeLater(runnable); + } + } Deleted: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashScreen.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashScreen.java 2010-09-08 02:52:26 UTC (rev 5879) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashScreen.java 2010-09-13 22:09:54 UTC (rev 5880) @@ -1,201 +0,0 @@ -package net.sourceforge.squirrel_sql.client.gui; -/* - * Copyright (C) 2001-2006 Colin Bell - * co...@us... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -import java.awt.Color; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.Icon; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.JWindow; -import javax.swing.SwingUtilities; - -import net.sourceforge.squirrel_sql.client.preferences.SquirrelPreferences; -import net.sourceforge.squirrel_sql.client.resources.SquirrelResources; -import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; -import net.sourceforge.squirrel_sql.fw.util.ClassLoaderListener; -import net.sourceforge.squirrel_sql.fw.util.StringManager; -import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; -import net.sourceforge.squirrel_sql.fw.util.log.ILogger; -import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; - -public class SplashScreen extends JWindow -{ - /** Logger for this class. */ - private final static ILogger s_log = - LoggerController.createLogger(SplashScreen.class); - - /** Internationalized strings for this class. */ - private static final StringManager s_stringMgr = - StringManagerFactory.getStringManager(SplashScreen.class); - - private JProgressBar _progressBar; - - private JLabel _pluginLabel; - - SquirrelPreferences _prefs; - - public SplashScreen(SquirrelResources rsrc, - int progressBarSize, - SquirrelPreferences prefs) - throws IllegalArgumentException - { - super(); - _prefs = prefs; - if (rsrc == null) - { - throw new IllegalArgumentException("Null Resources passed"); - } - createUserInterface(rsrc, progressBarSize); - } - - private void createUserInterface(SquirrelResources rsrc, int progressBarSize) - { - final JPanel mainPnl = new JPanel(new GridBagLayout()); - final Color bgColor = new Color(SquirrelResources.S_SPLASH_IMAGE_BACKGROUND); - mainPnl.setBackground(bgColor); - mainPnl.setBorder(BorderFactory.createRaisedBevelBorder()); - - GridBagConstraints gbc; - - Icon icon = rsrc.getIcon(SquirrelResources.IImageNames.SPLASH_SCREEN); - - gbc = new GridBagConstraints(0,0,1,1,1,1, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0,5,5,5),0,0); - mainPnl.add(new JLabel(icon), gbc); - - _progressBar = new JProgressBar(0, progressBarSize); - _progressBar.setStringPainted(true); - _progressBar.setString(""); - _progressBar.setBackground(bgColor); - _progressBar.setForeground(Color.blue); - - if (_prefs.getShowPluginFilesInSplashScreen()) - { - _pluginLabel = new JLabel("Dummy"); - _pluginLabel.setForeground(new Color(SquirrelResources.S_SPLASH_IMAGE_BACKGROUND)); - - gbc = new GridBagConstraints(0,1,1,1,0,0, - GridBagConstraints.NORTHWEST, - GridBagConstraints.HORIZONTAL, - new Insets(0,5,0,5),0,0); - mainPnl.add(new VersionPane(false), gbc); - - gbc = new GridBagConstraints(0,2,1,1,0,0, - GridBagConstraints.NORTHWEST, - GridBagConstraints.HORIZONTAL, - new Insets(0,5,3,5),0,0); - mainPnl.add(_pluginLabel, gbc); - - gbc = new GridBagConstraints(0,3,1,1,0,0, - GridBagConstraints.NORTHWEST, - GridBagConstraints.HORIZONTAL, - new Insets(0,5,3,5),0,0); - mainPnl.add(_progressBar, gbc); - - } - else - { - gbc = new GridBagConstraints(0,1,1,1,0,0, - GridBagConstraints.NORTHWEST, - GridBagConstraints.HORIZONTAL, - new Insets(0,5,7,5),0,0); - mainPnl.add(new VersionPane(false), gbc); - - gbc = new GridBagConstraints(0,2,1,1,0,0, - GridBagConstraints.NORTHWEST, - GridBagConstraints.HORIZONTAL, - new Insets(0,5,5,5),0,0); - mainPnl.add(_progressBar, gbc); - } - - getContentPane().add(mainPnl); - - pack(); - setSize(400,500); - - GUIUtils.centerWithinScreen(this); - setVisible(true); - } - - public void indicateLoadingFile(final String filename) { - try - { - SwingUtilities.invokeAndWait(new Runnable() - { - public void run() - { - if (filename != null) - { - _pluginLabel.setForeground(new Color(71, 73, 139)); - // i18n[SplashScreen.info.loadingfile=Loading file - ] - _pluginLabel.setText(s_stringMgr.getString("SplashScreen.info.loadingfile") + filename); - } - else - { - _pluginLabel.setForeground(new Color(SquirrelResources.S_SPLASH_IMAGE_BACKGROUND)); - _pluginLabel.setText("Dummy"); - } - _pluginLabel.validate(); - } - }); - } - catch (Exception ex) - { - //i18n[SplashScreen.error.updatingprogressbar=Error occured updating progress bar] - s_log.error(s_stringMgr.getString("SplashScreen.error.updatingprogressbar"), ex); - } - } - - public void indicateNewTask(final String text) - { - // Using a thread for this gets rid of most of the "white flash". - try - { - SwingUtilities.invokeAndWait(new Runnable() - { - public void run() - { - _progressBar.setString(text); - _progressBar.setValue(_progressBar.getValue() + 1); - } - }); - Thread.yield(); - } - catch (Exception ex) - { - // i18n[SplashScreen.error.updatingprogressbar=Error occured updating progress bar] - s_log.error(s_stringMgr.getString("SplashScreen.error.updatingprogressbar"), ex); - } - } - - public ClassLoaderListener getClassLoaderListener() { - return new ClassLoaderListener() { - public void loadedZipFile(String filename) { - indicateLoadingFile(filename); - } - public void finishedLoadingZipFiles() { - indicateLoadingFile(null); - } - }; - } -} Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashStringWriter.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashStringWriter.java (rev 0) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashStringWriter.java 2010-09-13 22:09:54 UTC (rev 5880) @@ -0,0 +1,165 @@ +package net.sourceforge.squirrel_sql.client.gui; + +import net.sourceforge.squirrel_sql.client.Version; +import net.sourceforge.squirrel_sql.fw.util.log.ILogger; +import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; + +import java.awt.*; + +public class SplashStringWriter +{ + private final static ILogger s_log = LoggerController.createLogger(SplashStringWriter.class); + + + private SplashScreen _splashScreen; + private boolean _hasTwoLines; + private int _maxNumberOffCallsToWriteUpperLine; + private static final Font FONT = new Font(Font.DIALOG, Font.BOLD, 14); + private static final Color BG = new Color(171, 176, 195); + private static final Color FG_UPPER = Color.black; + private static final Color FG_PROGRESS = new Color(74, 91, 153); + private static final Color FG_LOWER = new Color(74, 91, 153); + private static final int X_DIST = 10; + private static final int Y_DIST = 15; + private static final int X_PROGRESSBAR = X_DIST - 3; + + private Graphics2D _graphics; + + private int _yUpper; + private int _yLower; + private int _numberOffCallsToWriteUpperLine; + private int _yProgressbar; + private int _maxWidhtProgressbar; + private int _heightProgressbar; + private String _lowerLine; + private String _upperLine; + private int _paintAreaHeight; + + + public SplashStringWriter(SplashScreen splashScreen, boolean hasTwoLines, int maxNumberOffCallsToWriteUpperLine) + { + _splashScreen = splashScreen; + _hasTwoLines = hasTwoLines; + _maxNumberOffCallsToWriteUpperLine = maxNumberOffCallsToWriteUpperLine; + + _graphics = _splashScreen.createGraphics(); + + _graphics.setFont(FONT); + + + _yLower = _splashScreen.getSize().height - Y_DIST; + + FontMetrics fontMetrics = _graphics.getFontMetrics(FONT); + + if (_hasTwoLines) + { + _yUpper = _yLower - fontMetrics.getHeight() - Y_DIST; + } + else + { + _yUpper = _yLower; + } + + _yProgressbar = _yUpper - fontMetrics.getHeight() - 2; + + _maxWidhtProgressbar = _splashScreen.getSize().width - 2 * X_DIST; + + _heightProgressbar = fontMetrics.getHeight() + 10; + + _paintAreaHeight = 2 * Y_DIST + 2 * fontMetrics.getHeight() + 5; + + + _graphics.setColor(FG_UPPER); + + paintCopyrigthAndVersion(fontMetrics); + } + + private void paintCopyrigthAndVersion(FontMetrics fontMetrics) + { + String[] splits = Version.getCopyrightStatement().split("\\n"); + + int xVers = (_splashScreen.getSize().width - fontMetrics.getStringBounds(Version.getVersion(), _graphics).getBounds().width) / 2; + int yVers = _splashScreen.getSize().height - (_paintAreaHeight + ((splits.length + 1) * (fontMetrics.getHeight() + 5))); + _graphics.drawString(Version.getVersion(), xVers, yVers); + + + for (int i = 0; i < splits.length; i++) + { + int xSpilt = (_splashScreen.getSize().width - fontMetrics.getStringBounds(splits[i], _graphics).getBounds().width) / 2; + int ySplit = _splashScreen.getSize().height - (_paintAreaHeight + ((splits.length - i) * (fontMetrics.getHeight() + 5))); + _graphics.drawString(splits[i], xSpilt, ySplit); + } + } + + public void writeUpperProgressLine(String s) + { + _upperLine = s; + ++_numberOffCallsToWriteUpperLine; + paint(); + } + + public void writeLowerProgressLine(String s) + { + _lowerLine = s; + paint(); + } + + + private void paint() + { + + clear(); + + paintProgress(); + + paintStrings(); + } + + private void paintStrings() + { + write(_upperLine, _yUpper, FG_UPPER); + + if(_hasTwoLines) + { + write(_lowerLine, _yLower, FG_LOWER); + } + } + + private void paintProgress() + { + if(_maxNumberOffCallsToWriteUpperLine < _numberOffCallsToWriteUpperLine + 1) + { + String msg = "Programmer: Please increase _maxNumberOffCallsToWriteUpperLine to make the Progressbar work right"; + s_log.error(msg, new IllegalStateException(msg)); + + _numberOffCallsToWriteUpperLine = _maxNumberOffCallsToWriteUpperLine; + } + + int width = (int) + ( + (double)(_maxWidhtProgressbar) * ((double)(_numberOffCallsToWriteUpperLine)) / ((double)(_maxNumberOffCallsToWriteUpperLine)) + ); + + _graphics.setColor(FG_PROGRESS); + _graphics.fillRect(X_PROGRESSBAR, _yProgressbar, width, _heightProgressbar); + } + + private void clear() + { + _graphics.setColor(BG); + _graphics.fillRect(0, _splashScreen.getSize().height - _paintAreaHeight, _splashScreen.getSize().width, _paintAreaHeight); + } + + + private String write(String s, int y, Color fg) + { + if (null != s) + { + _graphics.setColor(fg); + _graphics.drawString(s, X_DIST, y); + _splashScreen.update(); + } + + return s; + } +} Copied: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SquirrelSplashScreen.java (from rev 5879, trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SplashScreen.java) =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SquirrelSplashScreen.java (rev 0) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/SquirrelSplashScreen.java 2010-09-13 22:09:54 UTC (rev 5880) @@ -0,0 +1,83 @@ +package net.sourceforge.squirrel_sql.client.gui; +/* + * Copyright (C) 2001-2006 Colin Bell + * co...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; 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.preferences.SquirrelPreferences; +import net.sourceforge.squirrel_sql.fw.util.ClassLoaderListener; +import net.sourceforge.squirrel_sql.fw.util.log.ILogger; +import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; + +import java.awt.*; + +public class SquirrelSplashScreen +{ + private final static ILogger s_log = LoggerController.createLogger(SquirrelSplashScreen.class); + + + private SplashStringWriter _splashStringWriter; + + public SquirrelSplashScreen(SquirrelPreferences prefs, int numberOffCallsToindicateNewTask) + { + SplashScreen splashScreen = SplashScreen.getSplashScreen(); + + if(null == splashScreen) + { + s_log.error("No SplashScreen availabe", new NullPointerException("No SplashScreen availabe. Please check VM parameter -splash:")); + return; + } + _splashStringWriter = new SplashStringWriter(splashScreen, prefs.getShowPluginFilesInSplashScreen(), numberOffCallsToindicateNewTask); + } + + + private void indicateLoadingFile(final String filename) + { + if(null == _splashStringWriter) + { + return; + } + + _splashStringWriter.writeLowerProgressLine(filename); + } + + public void indicateNewTask(final String text) + { + if(null == _splashStringWriter) + { + return; + } + + _splashStringWriter.writeUpperProgressLine(text); + } + + public ClassLoaderListener getClassLoaderListener() + { + return new ClassLoaderListener() + { + public void loadedZipFile(String filename) + { + indicateLoadingFile(filename); + } + + public void finishedLoadingZipFiles() + { + indicateLoadingFile(null); + } + }; + } +} Modified: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/gm/splash.jpg =================================================================== (Binary files differ) Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-08 02:52:26 UTC (rev 5879) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-13 22:09:54 UTC (rev 5880) @@ -23,6 +23,8 @@ Bug-fixes: +1808038: Splash screen was always on top hiding all other windows behind it + 2998121: (Update doesn't work, settings seem correct). Now, if the local release.xml file is not found the error dialog states as the cause, rather than merely saying the release.xml file couldn't be downloaded. Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/log/Log4jLogger.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/log/Log4jLogger.java 2010-09-08 02:52:26 UTC (rev 5879) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/log/Log4jLogger.java 2010-09-13 22:09:54 UTC (rev 5880) @@ -54,7 +54,7 @@ _listener = listener; _clazz = clazz; _log = Logger.getLogger(clazz); - _log.setLevel(Level.DEBUG); + _log.setLevel(Level.INFO); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-13 22:43:40
|
Revision: 5881 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5881&view=rev Author: gerdwagner Date: 2010-09-13 22:43:33 +0000 (Mon, 13 Sep 2010) Log Message: ----------- Hibernate plugin: Icon buttons for connecting and opening configuration could be very small. Modified Paths: -------------- trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/hibernate.gif Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-13 22:09:54 UTC (rev 5880) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-13 22:43:33 UTC (rev 5881) @@ -23,6 +23,8 @@ Bug-fixes: +Hibernate plugin: Icon buttons for connecting and opening configuration could be very small. + 1808038: Splash screen was always on top hiding all other windows behind it 2998121: (Update doesn't work, settings seem correct). Now, if the local release.xml file Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java 2010-09-13 22:09:54 UTC (rev 5880) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java 2010-09-13 22:43:33 UTC (rev 5881) @@ -60,11 +60,7 @@ _panel = new HibernateTabPanel(_mappedObjectsPanelManager.getComponent(), _hqlPanelController.getComponent(), _sqlPanelManager.getComponent(), _resource); _panel.btnConnected.setIcon(resource.getIcon(HibernatePluginResources.IKeys.DISCONNECTED_IMAGE)); - Dimension oldSize = _panel.btnConnected.getPreferredSize(); - Dimension newSize = new Dimension(oldSize.width-20, oldSize.height); - _panel.btnConnected.setPreferredSize(newSize); - - + _hibnerateConnector = new HibnerateConnector(new HibnerateConnectorListener() { public void connected(HibernateConnection con, HibernateConfiguration cfg) @@ -89,7 +85,6 @@ }); - _panel.btnOpenConfigs.setPreferredSize(_panel.btnConnected.getPreferredSize()); _panel.btnOpenConfigs.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) Modified: trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/hibernate.gif =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-13 22:50:05
|
Revision: 5882 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5882&view=rev Author: gerdwagner Date: 2010-09-13 22:49:59 +0000 (Mon, 13 Sep 2010) Log Message: ----------- Button sizes differed in Alias and Driver docking frame Modified Paths: -------------- trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/minimize.gif trunk/sql12/doc/src/main/resources/changes.txt Modified: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/resources/images/minimize.gif =================================================================== (Binary files differ) Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-13 22:43:33 UTC (rev 5881) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-13 22:49:59 UTC (rev 5882) @@ -23,6 +23,8 @@ Bug-fixes: +Button sizes differed in Alias and Driver docking frame + Hibernate plugin: Icon buttons for connecting and opening configuration could be very small. 1808038: Splash screen was always on top hiding all other windows behind it This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-19 09:15:20
|
Revision: 5894 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5894&view=rev Author: gerdwagner Date: 2010-09-19 09:15:14 +0000 (Sun, 19 Sep 2010) Log Message: ----------- Fixed problem with sorting after dragging columns Modified Paths: -------------- trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/ButtonTableHeader.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/SortingListener.java Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-19 01:00:17 UTC (rev 5893) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-19 09:15:14 UTC (rev 5894) @@ -23,6 +23,8 @@ Bug-fixes: +Fixed problem with sorting after dragging columns + Button sizes differed in Alias and Driver docking frame Hibernate plugin: Icon buttons for connecting and opening configuration could be very small. Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java 2010-09-19 01:00:17 UTC (rev 5893) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/TableState.java 2010-09-19 09:15:14 UTC (rev 5894) @@ -60,15 +60,6 @@ private void doApply(JTable table) { - if (_applySorting && table.getModel() instanceof SortableTableModel) - { - if(-1 != _sortedColumn) - { - ((SortableTableModel)table.getModel()).sortByColumn(_sortedColumn, _sortedAscending); - } - } - - for (int i = 0; i < table.getColumnModel().getColumnCount(); i++) { Integer width = _columnWidthsByModelIndex.get(table.getColumnModel().getColumn(i).getModelIndex()); @@ -83,13 +74,19 @@ moveTo(table.getColumnModel(), modelIndex, _columnIndexByModelIndex.get(modelIndex)); } - + if (_applySorting && table.getModel() instanceof SortableTableModel) + { + if(-1 != _sortedColumn) + { + ((SortableTableModel)table.getModel()).sortByColumn(_sortedColumn, _sortedAscending); + } + } + if(-1 != _selectedRow) { table.getSelectionModel().setSelectionInterval(_selectedRow, _selectedRow); } - table.scrollRectToVisible(_visibleRect); } Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/ButtonTableHeader.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/ButtonTableHeader.java 2010-09-19 01:00:17 UTC (rev 5893) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/ButtonTableHeader.java 2010-09-19 09:15:14 UTC (rev 5894) @@ -117,18 +117,19 @@ _sortingListener = new SortingListener() { @Override - public void sortingDone(int column, boolean ascending) + public void sortingDone(int modelColumnIx, boolean ascending) { - onSortingDone(column, ascending); + onSortingDone(modelColumnIx, ascending); } }; } - private void onSortingDone(int column, boolean ascending) + private void onSortingDone(int modelColumnIx, boolean ascending) { - int modColumn = getTable().convertColumnIndexToModel(column); + int viewColumnIndex = getViewColumnIndex(modelColumnIx); + if (ascending) { _currentSortedColumnIcon = s_ascIcon; @@ -137,12 +138,26 @@ { _currentSortedColumnIcon = s_descIcon; } - _currentlySortedColumnIdx = modColumn; - _pressedColumnIdx = modColumn; + _currentlySortedColumnIdx = viewColumnIndex; + _pressedColumnIdx = viewColumnIndex; repaint(); } + private int getViewColumnIndex(int modelColumnIx) + { + int viewColumnIndex = -1; + + for (int i = 0; i < getTable().getColumnModel().getColumnCount(); i++) + { + if(modelColumnIx == getTable().getColumnModel().getColumn(i).getModelIndex()) + { + viewColumnIndex = i; + } + } + return viewColumnIndex; + } + public void setTable(JTable table) { JTable oldTable = getTable(); Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/SortingListener.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/SortingListener.java 2010-09-19 01:00:17 UTC (rev 5893) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/gui/SortingListener.java 2010-09-19 09:15:14 UTC (rev 5894) @@ -2,5 +2,5 @@ public interface SortingListener { - void sortingDone(int column, boolean ascending); + void sortingDone(int modelColumnIx, boolean ascending); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-09-19 21:44:49
|
Revision: 5899 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5899&view=rev Author: manningr Date: 2010-09-19 21:44:43 +0000 (Sun, 19 Sep 2010) Log Message: ----------- Use the newer maven-jar-plugin version (2.3.1) which supports customizing the META-INF/MANIFEST.MF that is included in jar files. Enhanced the squirrel-sql.jar manifest to include the classpath with lib/*.jar and the splash image (icons/splash.jpg). Modified Paths: -------------- trunk/sql12/app/pom.xml trunk/sql12/pom.xml Modified: trunk/sql12/app/pom.xml =================================================================== --- trunk/sql12/app/pom.xml 2010-09-19 20:20:38 UTC (rev 5898) +++ trunk/sql12/app/pom.xml 2010-09-19 21:44:43 UTC (rev 5899) @@ -13,7 +13,8 @@ <name>SQuirreL Main Application Jar</name> <description> - This is the jar that contains the main application classes which are very specific to SQuirreLSQL. + This is the jar that contains the main application classes which are very specific to + SQuirreLSQL. </description> <inceptionYear>2001</inceptionYear> <developers> @@ -160,8 +161,23 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${jar-plugin-version}</version> + <configuration> + <archive> + <index>true</index> + <manifest> + <addClasspath>true</addClasspath> + <mainClass>net.sourceforge.squirrel_sql.client.Main</mainClass> + <classpathPrefix>lib/</classpathPrefix> + </manifest> + <manifestEntries> + <Built-By>SQuirreL Development Team</Built-By> + <SplashScreen-Image>icons/splash.jpg</SplashScreen-Image> + </manifestEntries> + </archive> + </configuration> <executions> <execution> + <id>test-jar</id> <goals> <goal>test-jar</goal> </goals> Modified: trunk/sql12/pom.xml =================================================================== --- trunk/sql12/pom.xml 2010-09-19 20:20:38 UTC (rev 5898) +++ trunk/sql12/pom.xml 2010-09-19 21:44:43 UTC (rev 5899) @@ -73,7 +73,7 @@ <gpg-plugin-version>1.1</gpg-plugin-version> <javac-source-version>1.6</javac-source-version> <javac-target-version>1.6</javac-target-version> - <jar-plugin-version>2.2</jar-plugin-version> + <jar-plugin-version>2.3.1</jar-plugin-version> <javadoc-plugin-version>2.6</javadoc-plugin-version> <maven-plugin-api-version>2.0</maven-plugin-api-version> <pmd-plugin-version>2.4</pmd-plugin-version> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-24 23:33:52
|
Revision: 5900 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5900&view=rev Author: gerdwagner Date: 2010-09-24 23:33:45 +0000 (Fri, 24 Sep 2010) Log Message: ----------- Introduced a new general data type property 'Use column labels instead of column names in result headers'. See Global Preferences --> Tab 'Data Type Controls'. Will be useful e.g. for MySQL if Aliases are used in Select clauses. Modified Paths: -------------- trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTextPanel.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/CellComponentFactory.java trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties Added Paths: ----------- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeGeneral.java Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-19 21:44:43 UTC (rev 5899) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-24 23:33:45 UTC (rev 5900) @@ -6,6 +6,9 @@ Enhancements: +Introduced a new general data type property 'Use column labels instead of column names in result headers'. +See Global Preferences --> Tab 'Data Type Controls'. Will be useful e.g. for MySQL if Aliases are used in Select clauses. + Session Property: "Keep SQL result table layout on rerun SQL" If this option is checked the layout of the table of a SQL result is tried to be restored after rerunning the SQL. Note: You rerun an SQL statement when you click the running man button on the upper left of a SQL result. Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java 2010-09-19 21:44:43 UTC (rev 5899) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTablePanel.java 2010-09-24 23:33:45 UTC (rev 5900) @@ -43,6 +43,7 @@ import javax.swing.table.TableColumnModel; import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.CellComponentFactory; +import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeGeneral; import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.RestorableJTextField; import net.sourceforge.squirrel_sql.fw.gui.ButtonTableHeader; import net.sourceforge.squirrel_sql.fw.gui.SortableTableModel; @@ -448,7 +449,18 @@ ExtTableColumn col = new ExtTableColumn(i, colWidth, CellComponentFactory.getTableCellRenderer(colDefs[i]), null); - col.setHeaderValue(colDef.getColumnName()); + + String headerValue; + if (DataTypeGeneral.isUseColumnLabelInsteadColumnName()) + { + headerValue = colDef.getLabel(); + } + else + { + headerValue = colDef.getColumnName(); + } + + col.setHeaderValue(headerValue); col.setColumnDisplayDefinition(colDef); cm.addColumn(col); } Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTextPanel.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTextPanel.java 2010-09-19 21:44:43 UTC (rev 5899) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/DataSetViewerTextPanel.java 2010-09-24 23:33:45 UTC (rev 5900) @@ -26,6 +26,7 @@ import javax.swing.JTextArea; +import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeGeneral; import net.sourceforge.squirrel_sql.fw.gui.TextPopupMenu; import net.sourceforge.squirrel_sql.fw.gui.action.BaseAction; import net.sourceforge.squirrel_sql.fw.gui.action.MakeEditableCommand; @@ -72,7 +73,17 @@ StringBuffer buf = new StringBuffer(); for (int i = 0; i < colDefs.length; ++i) { - buf.append(format(colDefs[i].getColumnName(), colDefs[i].getDisplayWidth(), ' ')); + String headerValue; + if (DataTypeGeneral.isUseColumnLabelInsteadColumnName()) + { + headerValue = colDefs[i].getLabel(); + } + else + { + headerValue = colDefs[i].getColumnName(); + } + + buf.append(format(headerValue, colDefs[i].getDisplayWidth(), ' ')); } addLine(buf.toString()); buf = new StringBuffer(); Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/CellComponentFactory.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/CellComponentFactory.java 2010-09-19 21:44:43 UTC (rev 5899) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/CellComponentFactory.java 2010-09-24 23:33:45 UTC (rev 5900) @@ -778,6 +778,7 @@ * be local to this directory. */ String [] initialClassNameList = { + net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeGeneral.class.getName(), net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeBlob.class.getName(), net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeClob.class.getName(), net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DataTypeString.class.getName(), Added: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeGeneral.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeGeneral.java (rev 0) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeGeneral.java 2010-09-24 23:33:45 UTC (rev 5900) @@ -0,0 +1,90 @@ +package net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent; + +import net.sourceforge.squirrel_sql.fw.gui.OkJPanel; +import net.sourceforge.squirrel_sql.fw.util.StringManager; +import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + +import javax.swing.*; +import java.awt.*; + +public class DataTypeGeneral +{ + public static final String USE_COLUMN_LABEL_INSTEAD_COLUMN_NAME = "useColumnLabelInsteadColumnName"; + + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(DataTypeGeneral.class); + + + private static boolean propertiesAlreadyLoaded = false; + private static boolean _useColumnLabelInsteadColumnName = false; + + public static OkJPanel getControlPanel() + { + loadProperties(); + return new GeneralOkJPanel(); + } + + public static boolean isUseColumnLabelInsteadColumnName() + { + loadProperties(); + return _useColumnLabelInsteadColumnName; + } + + private static void loadProperties() + { + + if (propertiesAlreadyLoaded == false) + { + String useColumnLabelInsteadColumnName = + DTProperties.get(DataTypeGeneral.class.getName(), USE_COLUMN_LABEL_INSTEAD_COLUMN_NAME); + + if (useColumnLabelInsteadColumnName != null && useColumnLabelInsteadColumnName.equals("true")) + { + _useColumnLabelInsteadColumnName = true; + } + + propertiesAlreadyLoaded = true; + } + } + + private static class GeneralOkJPanel extends OkJPanel + { + private JCheckBox _chkUseColumnLabelInsteadColumnName = + new JCheckBox(s_stringMgr.getString("dataTypeBlob.useColumnLabelInsteadColumnName")); + + + public GeneralOkJPanel() + { + _chkUseColumnLabelInsteadColumnName.setSelected(DataTypeGeneral._useColumnLabelInsteadColumnName); + + setLayout(new GridBagLayout()); + setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("dataTypeGeneral.generalType"))); + final GridBagConstraints gbc = new GridBagConstraints(); + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.insets = new Insets(4, 4, 4, 4); + gbc.anchor = GridBagConstraints.WEST; + + gbc.gridx = 0; + gbc.gridy = 0; + + gbc.gridwidth = 1; + add(_chkUseColumnLabelInsteadColumnName, gbc); + + } + + + /** + * User has clicked OK in the surrounding JPanel, + * so save the current state of all variables + */ + public void ok() + { + // get the values from the controls and set them in the static properties + _useColumnLabelInsteadColumnName = _chkUseColumnLabelInsteadColumnName.isSelected(); + DTProperties.put( + DataTypeGeneral.class.getName(), + USE_COLUMN_LABEL_INSTEAD_COLUMN_NAME, Boolean.valueOf(_useColumnLabelInsteadColumnName).toString()); + } + + } +} Modified: trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties =================================================================== --- trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties 2010-09-19 21:44:43 UTC (rev 5899) +++ trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties 2010-09-24 23:33:45 UTC (rev 5900) @@ -63,4 +63,7 @@ floatingPointBase.typeBigDecimal=FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL (SQL types 6, 7, 8, 2, 3) floatingPointBase.useDefaultFormat=Use default format ({0}) -floatingPointBase.uselocaleDependendFormat=Use locale-dependent format: {0} \ No newline at end of file +floatingPointBase.uselocaleDependendFormat=Use locale-dependent format: {0} +dataTypeBlob.useColumnLabelInsteadColumnName=Use column labels instead of column names in result headers + +dataTypeGeneral.generalType=General (applies to all types) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-28 17:26:44
|
Revision: 5901 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5901&view=rev Author: gerdwagner Date: 2010-09-28 17:26:38 +0000 (Tue, 28 Sep 2010) Log Message: ----------- RSyntax editor: Replace dialog: Replace button now does a find next after replacing Modified Paths: -------------- trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/plugins/syntax/src/main/java/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/search/SquirrelReplaceDialog.java Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-24 23:33:45 UTC (rev 5900) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-28 17:26:38 UTC (rev 5901) @@ -26,6 +26,8 @@ Bug-fixes: +RSyntax editor: Replace dialog: Replace button now does a find next after replacing. + Fixed problem with sorting after dragging columns Button sizes differed in Alias and Driver docking frame Modified: trunk/sql12/plugins/syntax/src/main/java/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/search/SquirrelReplaceDialog.java =================================================================== --- trunk/sql12/plugins/syntax/src/main/java/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/search/SquirrelReplaceDialog.java 2010-09-24 23:33:45 UTC (rev 5900) +++ trunk/sql12/plugins/syntax/src/main/java/net/sourceforge/squirrel_sql/plugins/syntax/rsyntax/search/SquirrelReplaceDialog.java 2010-09-28 17:26:38 UTC (rev 5901) @@ -149,7 +149,8 @@ { if("Replace".equals(e.getActionCommand())) { - actionListener.actionPerformed(e); + actionListener.actionPerformed(e); + findNextButton.doClick(10); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ger...@us...> - 2010-09-28 22:15:41
|
Revision: 5902 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5902&view=rev Author: gerdwagner Date: 2010-09-28 22:15:31 +0000 (Tue, 28 Sep 2010) Log Message: ----------- Hibernate Plugin: - New handling of limiting object count for HQL queries. - Hibernate session can now be started in an external process. This can keep SQuirreL from running into memory problems when working with the Hibernate Plugin. See Hibernate configuration panel for details. Modified Paths: -------------- trunk/sql12/doc/src/main/resources/changes.txt trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ConnectionListener.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HQLPanelController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePrefsListener.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateSQLPanel.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnector.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnectorListener.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateConnectionProvider.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateTabController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/SQLPanelManager.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasFinderListener.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasInfo.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/HQLCodeCompletorModel.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfigPanel.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/DetailAttribute.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappedObjectPanelManager.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappingRoot.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HibernateUtil.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/CommandLineOutput.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ObjectResultController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ObjectResultTabController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/PersistentCollectionResult.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/QueryListCreator.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ResultDataSet.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/SingleType.java trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/I18NStrings.properties trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/I18NStrings.properties Added Paths: ----------- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnectionFactory.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/LimitObjectCountDialog.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ProcessDetails.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ProcessDetailsController.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/ProcessDetailsDialog.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappedClassInfo.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/PropertyInfo.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateConfiguration.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernatePropertyInfo.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateServerConnection.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateServerConnectionImpl.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateSqlConnectionData.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/IntraVmConnectionFactory.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/MappedClassInfoData.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/RCParam.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ReflectionCaller.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ServerMain.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ServerMainImpl.java Removed Paths: ------------- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/RCParam.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ReflectionCaller.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/configuration/HibernateConfiguration.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/HibernatePropertyInfo.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappedClassInfo.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/MappingUtils.java trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/mapping/PropertyInfo.java Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-09-28 22:15:31 UTC (rev 5902) @@ -6,6 +6,12 @@ Enhancements: +Hibernate Plugin: + - New handling of limiting object count for HQL queries. + - Hibernate session can now be started in an external process. + This can keep SQuirreL from running into memory problems when working with the Hibernate Plugin. + See Hibernate configuration panel for details. + Introduced a new general data type property 'Use column labels instead of column names in result headers'. See Global Preferences --> Tab 'Data Type Controls'. Will be useful e.g. for MySQL if Aliases are used in Select clauses. Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ConnectionListener.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ConnectionListener.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ConnectionListener.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,6 +1,6 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; -import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfiguration; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration; public interface ConnectionListener { Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HQLPanelController.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HQLPanelController.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HQLPanelController.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -15,7 +15,6 @@ import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.util.ArrayList; -import java.util.List; public class HQLPanelController { Deleted: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,205 +0,0 @@ -package net.sourceforge.squirrel_sql.plugins.hibernate; - -import java.net.URLClassLoader; -import java.sql.Connection; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import net.sourceforge.squirrel_sql.fw.util.Utilities; -import net.sourceforge.squirrel_sql.fw.util.log.ILogger; -import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; -import net.sourceforge.squirrel_sql.plugins.hibernate.mapping.HibernatePropertyInfo; -import net.sourceforge.squirrel_sql.plugins.hibernate.mapping.MappedClassInfo; - -public class HibernateConnection -{ - private static ILogger s_log = LoggerController.createLogger(HibernateConnection.class); - private Object _sessionFactoryImpl; - private URLClassLoader _cl; - private ArrayList<MappedClassInfo> _mappedClassInfos; - private ReflectionCaller m_rcHibernateSession; - - - public HibernateConnection(Object sessionFactoryImpl, URLClassLoader cl) - { - _sessionFactoryImpl = sessionFactoryImpl; - _cl = cl; - } - - - public ArrayList<String> generateSQL(String hqlQuery) - { - try - { - - - Class sessionFactoryImplementorClass = (Class) new ReflectionCaller().getClass("org.hibernate.engine.SessionFactoryImplementor", _cl).getCallee(); - - List<ReflectionCaller> translators = - new ReflectionCaller(_cl) - .getClass("org.hibernate.engine.query.HQLQueryPlan", _cl) - .callConstructor(new Class[]{String.class, Boolean.TYPE, Map.class, sessionFactoryImplementorClass}, new Object[]{hqlQuery, false, Collections.EMPTY_MAP, _sessionFactoryImpl}) - .callArrayMethod("getTranslators"); - - ArrayList<String> ret = new ArrayList<String>(); - - - for (ReflectionCaller translator : translators) - { - List sqls = (List) translator.callMethod("collectSqlStrings").getCallee(); - - for (Object sql : sqls) - { - ret.add(sql.toString()); - } - } - return ret; - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - - - public void close() - { - try - { - new ReflectionCaller(_sessionFactoryImpl).callMethod("close"); - } - catch (Throwable t) - { - s_log.error(t); - } - _sessionFactoryImpl = null; - _cl = null; - _mappedClassInfos = null; - System.gc(); - - } - - public ArrayList<MappedClassInfo> getMappedClassInfos() - { - initMappedClassInfos(); - return _mappedClassInfos; - } - - public Class getPersistenCollectionClass() - { - try - { - return _cl.loadClass("org.hibernate.collection.PersistentCollection"); - } - catch (ClassNotFoundException e) - { - throw new RuntimeException(e); - } - } - - private void initMappedClassInfos() - { - if(null != _mappedClassInfos) - { - return; - } - - - _mappedClassInfos = new ArrayList<MappedClassInfo>(); - - ReflectionCaller sessionFactoryImplcaller = new ReflectionCaller(_sessionFactoryImpl); - Collection<ReflectionCaller> persisters = sessionFactoryImplcaller.callMethod("getAllClassMetadata").callCollectionMethod("values"); - - for (ReflectionCaller persister : persisters) - { - Object entityMode_POJO = persister.getClass("org.hibernate.EntityMode", _cl).getField("POJO").getCallee(); - Class mappedClass = (Class) persister.callMethod("getMappedClass", new Object[]{entityMode_POJO}).getCallee(); - - String identifierPropertyName = (String) persister.callMethod("getIdentifierPropertyName").getCallee(); - - Class identifierPropertyClass = persister.callMethod("getIdentifierType").callMethod("getReturnedClass").getCalleeClass(); - - String identifierPropertyClassName = identifierPropertyClass.getName(); - - - String tableName = (String) persister.callMethod("getTableName").getCallee(); - String[] identifierColumnNames = (String[]) persister.callMethod("getIdentifierColumnNames").getCallee(); - - - HibernatePropertyInfo identifierPropInfo = - new HibernatePropertyInfo(identifierPropertyName, identifierPropertyClassName, tableName, identifierColumnNames); - - identifierPropInfo.setIdentifier(true); - - - String[] propertyNames = (String[]) persister.callMethod("getPropertyNames").getCallee(); - - HibernatePropertyInfo[] infos = new HibernatePropertyInfo[propertyNames.length]; - for (int i = 0; i < propertyNames.length; i++) - { - ReflectionCaller propertyTypeCaller = persister.callMethod("getPropertyType", propertyNames[i]); - String mayBeCollectionTypeName = propertyTypeCaller.callMethod("getReturnedClass").getCalleeClass().getName(); - - String propTableName = (String) persister.callMethod("getPropertyTableName", propertyNames[i]).getCallee(); - String[] propertyColumnNames = (String[]) persister.callMethod("getPropertyColumnNames", propertyNames[i]).getCallee(); - - try - { - // If this isn't instanceof org.hibernate.type.CollectionType a NoSuchMethodException will be thrown - String role = (String) propertyTypeCaller.callMethod("getRole").getCallee(); - - ReflectionCaller collectionMetaDataCaller = sessionFactoryImplcaller.callMethod("getCollectionMetadata", role); - String typeName = collectionMetaDataCaller.callMethod("getElementType").callMethod("getReturnedClass").getCalleeClass().getName(); - - infos[i] = new HibernatePropertyInfo(propertyNames[i], typeName, propTableName, propertyColumnNames); - infos[i].setCollectionClassName(mayBeCollectionTypeName); - } - catch(RuntimeException e) - { - if(Utilities.getDeepestThrowable(e) instanceof NoSuchMethodException) - { - infos[i] = new HibernatePropertyInfo(propertyNames[i], mayBeCollectionTypeName, propTableName, propertyColumnNames); - } - else - { - throw e; - } - } - } - - _mappedClassInfos.add(new MappedClassInfo(mappedClass.getName(), tableName, identifierPropInfo, infos)); - } - } - - - public Connection getSqlConnection() - { - return (Connection) getRcHibernateSession().callMethod("getJDBCContext").callMethod("getConnectionManager").callMethod("getConnection").getCallee(); - } - - public List createQueryList(String hqlQuery, int sqlNbrRowsToShow) - { - ReflectionCaller rc = getRcHibernateSession().callMethod("createQuery", hqlQuery); - - if (0 <= sqlNbrRowsToShow) - { - rc = rc.callMethod("setMaxResults", new RCParam().add(sqlNbrRowsToShow, Integer.TYPE)); - } - - return (List) rc.callMethod("list").getCallee(); - } - - private ReflectionCaller getRcHibernateSession() - { - if(null == m_rcHibernateSession) - { - m_rcHibernateSession = new ReflectionCaller(_sessionFactoryImpl).callMethod("openSession"); - } - - return m_rcHibernateSession; - } -} Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java (rev 0) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -0,0 +1,173 @@ +package net.sourceforge.squirrel_sql.plugins.hibernate; + +import net.sourceforge.squirrel_sql.fw.util.log.ILogger; +import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; +import net.sourceforge.squirrel_sql.plugins.hibernate.mapping.MappedClassInfo; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateServerConnection; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateSqlConnectionData; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.MappedClassInfoData; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.ServerMain; + +import java.rmi.RMISecurityManager; +import java.rmi.RemoteException; +import java.security.Permission; +import java.util.ArrayList; +import java.util.List; + +public class HibernateConnection +{ + private static ILogger s_log = LoggerController.createLogger(HibernateConnection.class); + + private HibernateServerConnection _hibernateServerConnection; + private boolean _process; + private ServerMain _serverMain; + private boolean _endProcessOnDisconnect; + private ArrayList<MappedClassInfo> _mappedClassInfos; + + + private RMISecurityManager _rmiSecurityManager = + new RMISecurityManager() + { + @Override + public void checkPermission(Permission perm) + { + } + }; + + + public HibernateConnection(HibernateServerConnection hibernateServerConnection, boolean process, ServerMain serverMain, boolean endProcessOnDisconnect) + { + _hibernateServerConnection = hibernateServerConnection; + _process = process; + _serverMain = serverMain; + _endProcessOnDisconnect = endProcessOnDisconnect; + } + + public ArrayList<String> generateSQL(String hqlQuery) + { + try + { + return _hibernateServerConnection.generateSQL(hqlQuery); + } + catch (RemoteException e) + { + throw new RuntimeException(e); + } + } + + public void close() + { + if (_process) + { + if(_endProcessOnDisconnect) + { + try + { + _hibernateServerConnection.closeConnection(); + } + catch (Throwable t) + { + s_log.error("Error closing Hibernate connection.", t); + } + + try + { + _serverMain.exit(); + } + catch (Throwable t) + { + // This call will result in failure because the process VM exits during this call and will not return. + } + } + } + else + { + try + { + _hibernateServerConnection.closeConnection(); + } + catch (Throwable t) + { + s_log.error("Error closing Hibernate connection.", t); + } + } + } + + public ArrayList<MappedClassInfo> getMappedClassInfos() + { + try + { + if(null == _mappedClassInfos) + { + _mappedClassInfos = new ArrayList<MappedClassInfo>(); + ArrayList<MappedClassInfoData> mappedClassInfoData = _hibernateServerConnection.getMappedClassInfoData(); + + for (MappedClassInfoData aMappedClassInfoData : mappedClassInfoData) + { + _mappedClassInfos.add(new MappedClassInfo(aMappedClassInfoData)); + } + } + + return _mappedClassInfos; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + + } + + public Class getPersistenCollectionClass() + { + try + { + return _hibernateServerConnection.getPersistenCollectionClass(); + } + catch (Exception e) + { + throw new RuntimeException(e); + + } + } + + public HibernateSqlConnectionData getHibernateSqlConnectionData() + { + try + { + return _hibernateServerConnection.getHibernateSqlConnectionData(); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + public List createQueryList(String hqlQuery, int sqlNbrRowsToShow) + { + try + { + if (_process) + { + SecurityManager old =System.getSecurityManager(); + + try + { + System.setSecurityManager(_rmiSecurityManager); + return _hibernateServerConnection.createQueryList(hqlQuery, sqlNbrRowsToShow); + } + finally + { + System.setSecurityManager(old); + } + } + else + { + return _hibernateServerConnection.createQueryList(hqlQuery, sqlNbrRowsToShow); + } + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } +} Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnectionFactory.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnectionFactory.java (rev 0) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnectionFactory.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -0,0 +1,132 @@ +package net.sourceforge.squirrel_sql.plugins.hibernate; + +import net.sourceforge.squirrel_sql.fw.util.IMessageHandler; +import net.sourceforge.squirrel_sql.fw.util.log.ILogger; +import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.*; + +import java.io.IOException; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; + +public class HibernateConnectionFactory +{ + private static ILogger s_log = LoggerController.createLogger(HibernateConnectionFactory.class); + + public static HibernateConnection createHibernateConnection(HibernateConfiguration cfg, HibernatePlugin plugin) + throws Exception + { + if(cfg.isUseProcess()) + { + ServerMain serverMain = createProcessAndDoLookup(cfg, plugin); + return new HibernateConnection(serverMain.createHibernateServerConnection(cfg), cfg.isUseProcess(), serverMain, cfg.isEndProcessOnDisconnect()); + } + else + { + final IntraVmConnectionFactory intraVmConnectionFactory = new IntraVmConnectionFactory(); + return new HibernateConnection(intraVmConnectionFactory.createHibernateConnection(cfg), false, null, cfg.isEndProcessOnDisconnect()); + } + } + + private static ServerMain createProcessAndDoLookup(HibernateConfiguration cfg, HibernatePlugin plugin) + { + try + { + IMessageHandler mh = plugin.getApplication().getMessageHandler(); + + ServerMain stub; + if (cfg.isEndProcessOnDisconnect()) + { + mh.showMessage("Launching Hibernate process ..."); + try + { + launchProcess(cfg); + } + catch (Throwable e) + { + s_log.error("Error launching process. Maybe port is in use. Tryin to connect and kill existing process:", e); + try + { + stub = attachToProcess(cfg, mh, true); + if (null != stub) + { + stub.exit(); + } + } + catch (Throwable e1) + { + // Nothing + } + + launchProcess(cfg); + } + + stub = attachToProcess(cfg, mh, false); + } + else + { + stub = attachToProcess(cfg, mh, false); + if(null == stub) + { + mh.showMessage("Attaching to existing Hibernate process failed. Now will launch new process ..."); + launchProcess(cfg); + stub = attachToProcess(cfg, mh, false); + } + } + + + if (null == stub) + { + throw new IllegalStateException("Could not attach to Hibernate process"); + } + + mh.showMessage("Successfully attached to Hibernate process. Now creating Hibernate session."); + return stub; + } + catch (IOException e) + { + throw new RuntimeException(e); + } + } + + private static void launchProcess(HibernateConfiguration cfg) + throws IOException + { + String command = cfg.getCommand().trim(); + Runtime.getRuntime().exec(command); + } + + private static ServerMain attachToProcess(HibernateConfiguration cfg, IMessageHandler mh, boolean silent) + { + ServerMain stub = null; + Throwable reThrow = null; + + Object sync = new Object(); + synchronized (sync) + { + for(int i=0; i < 10; ++i) + { + try + { + sync.wait(150); + Registry registry = LocateRegistry.getRegistry("localhost", cfg.getProcessPort()); + stub = (ServerMain) registry.lookup(ServerMain.class.getName()); + + break; + } + catch (Throwable t) + { + reThrow = t; + } + } + } + + if(false == silent && null == stub) + { + mh.showErrorMessage("Failed to attach to Hibernate process: " + reThrow); + s_log.debug("Failed to attach to Hibernate process: " + reThrow, reThrow); + } + return stub; + } +} Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePrefsListener.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePrefsListener.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePrefsListener.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,6 +1,6 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; -import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfiguration; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration; import java.util.ArrayList; Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateSQLPanel.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateSQLPanel.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateSQLPanel.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,5 +1,6 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; +import net.sourceforge.squirrel_sql.fw.gui.IntegerField; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; import net.sourceforge.squirrel_sql.client.session.mainpanel.SQLResultExecuterPanel; @@ -17,6 +18,8 @@ JCheckBox _chkAlwaysFormatSql; JCheckBox _chkAlwaysExecuteSql; JCheckBox _chkAlwaysViewObjects; + JCheckBox _chkLimitObjectCount; + IntegerField _nbrLimitRows; JTabbedPane _tabResult_code; @@ -73,13 +76,26 @@ _chkAlwaysExecuteSql = new JCheckBox(s_stringMgr.getString("HibernateSQLPanel.Execute")); ret.add(_chkAlwaysExecuteSql, gbc); - gbc = new GridBagConstraints(5,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); - // i18n[HibernateSQLPanel.Execute=Execute SQL] + gbc = new GridBagConstraints(5,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,15,5,5),0,0); + // i18n[HibernateSQLPanel.ObjectSection=Objects:] + ret.add(new JLabel(s_stringMgr.getString("HibernateSQLPanel.ObjectSection")), gbc); + + + gbc = new GridBagConstraints(6,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); _chkAlwaysViewObjects = new JCheckBox(s_stringMgr.getString("HibernateSQLPanel.ViewObjects")); ret.add(_chkAlwaysViewObjects, gbc); + gbc = new GridBagConstraints(7,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); + _chkLimitObjectCount = new JCheckBox(s_stringMgr.getString("HibernateSQLPanel.LimitRows")); + ret.add(_chkLimitObjectCount, gbc); - gbc = new GridBagConstraints(6,0,1,1,1,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); + gbc = new GridBagConstraints(8,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); + _nbrLimitRows = new IntegerField(); + ret.add(_nbrLimitRows, gbc); + _nbrLimitRows.setColumns(8); + + + gbc = new GridBagConstraints(9,0,1,1,1,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); ret.add(new JPanel(), gbc); Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -3,23 +3,23 @@ import net.sourceforge.squirrel_sql.client.preferences.GlobalPreferencesSheet; import net.sourceforge.squirrel_sql.client.session.ISession; import net.sourceforge.squirrel_sql.client.session.mainpanel.IMainPanelTab; -import net.sourceforge.squirrel_sql.fw.util.StringManager; -import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; -import net.sourceforge.squirrel_sql.fw.util.Utilities; +import net.sourceforge.squirrel_sql.fw.util.*; import net.sourceforge.squirrel_sql.fw.util.log.ILogger; import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; import net.sourceforge.squirrel_sql.fw.xml.XMLBeanReader; import net.sourceforge.squirrel_sql.fw.xml.XMLException; -import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfiguration; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration; import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfigController; import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfigPanel; import net.sourceforge.squirrel_sql.plugins.hibernate.mapping.MappedObjectPanelManager; +import net.sourceforge.squirrel_sql.plugins.hibernate.util.HibernateUtil; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.util.*; import java.util.prefs.Preferences; @@ -60,8 +60,8 @@ _panel = new HibernateTabPanel(_mappedObjectsPanelManager.getComponent(), _hqlPanelController.getComponent(), _sqlPanelManager.getComponent(), _resource); _panel.btnConnected.setIcon(resource.getIcon(HibernatePluginResources.IKeys.DISCONNECTED_IMAGE)); - - _hibnerateConnector = new HibnerateConnector(new HibnerateConnectorListener() + + HibnerateConnectorListener hibnerateConnectorListener = new HibnerateConnectorListener() { public void connected(HibernateConnection con, HibernateConfiguration cfg) { @@ -72,10 +72,12 @@ { onConnectFailed(t); } - }); + }; + _hibnerateConnector = new HibnerateConnector(_plugin, hibnerateConnectorListener); + _panel.btnConnected.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) @@ -145,14 +147,11 @@ private void loadConfigsFromXml() throws IOException, XMLException { - XMLBeanReader reader = new XMLBeanReader(); - File pluginUserSettingsFolder = _plugin.getPluginUserSettingsFolder(); - File xmlFile = new File(pluginUserSettingsFolder.getPath(), HibernateConfigController.HIBERNATE_CONFIGS_XML_FILE); + XMLBeanReader reader = HibernateUtil.createHibernateConfigsReader(_plugin); - if (xmlFile.exists()) + if (null != reader) { - reader.load(xmlFile, _plugin.getClass().getClassLoader()); loadConfigs(reader, Preferences.userRoot().get(PREF_KEY_LAST_SELECTED_CONFIG, null)); } } Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnector.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnector.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnector.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,20 +1,18 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; import net.sourceforge.squirrel_sql.client.session.ISession; -import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfiguration; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration; import javax.swing.*; -import java.io.File; -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; public class HibnerateConnector { + private HibernatePlugin _plugin; private HibnerateConnectorListener _hibnerateConnectorListener; - public HibnerateConnector(HibnerateConnectorListener hibnerateConnectorListener) + public HibnerateConnector(HibernatePlugin plugin, HibnerateConnectorListener hibnerateConnectorListener) { + _plugin = plugin; _hibnerateConnectorListener = hibnerateConnectorListener; } @@ -46,44 +44,8 @@ { try { - URLClassLoader cl = getClassLoader(cfg); - Thread.currentThread().setContextClassLoader(cl); - - Object sessionFactoryImpl = null; - - if (cfg.isUserDefinedProvider()) - { - String provider = cfg.getProvider(); - Class<?> providerClass = cl.loadClass(provider); - - Object sessionFactoryProviderImpl = providerClass.newInstance(); - - sessionFactoryImpl = - new ReflectionCaller(sessionFactoryProviderImpl).callMethod("getSessionFactoryImpl").getCallee(); - } - else if (cfg.isJPA()) - { - String persistenceUnitName = cfg.getPersistenceUnitName(); - Class<?> persistenceClass = cl.loadClass("javax.persistence.Persistence"); - - Method createMeth = persistenceClass.getMethod("createEntityManagerFactory", String.class); - Object hibernateEntityManagerFactory = createMeth.invoke(persistenceClass, persistenceUnitName); - ReflectionCaller rc = new ReflectionCaller(hibernateEntityManagerFactory); - sessionFactoryImpl = rc.callMethod("getSessionFactory").getCallee(); - } - else - { - Class<?> confiugrationClass = cl.loadClass("org.hibernate.cfg.Configuration"); - ReflectionCaller rc = new ReflectionCaller(confiugrationClass.newInstance()); - - sessionFactoryImpl = rc.callMethod("configure").callMethod("buildSessionFactory").getCallee(); - } - - HibernateConnection con = new HibernateConnection(sessionFactoryImpl, cl); + HibernateConnection con = HibernateConnectionFactory.createHibernateConnection(cfg, _plugin); sendConnection(con, cfg); - - Thread.currentThread().setContextClassLoader(null); - } catch (final Throwable t) { @@ -96,7 +58,7 @@ }); } } - + private void sendConnection(final HibernateConnection con, final HibernateConfiguration cfg) { SwingUtilities.invokeLater(new Runnable() @@ -108,20 +70,4 @@ }); } - private URLClassLoader getClassLoader(HibernateConfiguration cfg) - throws Exception - { - String[] classpath = cfg.getClassPathEntries(); - - URL[] classpathUrls = new URL[classpath.length]; - - for (int i = 0; i < classpathUrls.length; i++) - { - classpathUrls[i] = new File(classpath[i]).toURI().toURL(); - } - - URLClassLoader cl = new URLClassLoader(classpathUrls, null); - - return cl; - } } Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnectorListener.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnectorListener.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnectorListener.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,6 +1,6 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; -import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfiguration; +import net.sourceforge.squirrel_sql.plugins.hibernate.server.HibernateConfiguration; public interface HibnerateConnectorListener { Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateConnectionProvider.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateConnectionProvider.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateConnectionProvider.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,5 +1,6 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; + public interface IHibernateConnectionProvider { HibernateConnection getHibernateConnection(); Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateTabController.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateTabController.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateTabController.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,8 +1,8 @@ package net.sourceforge.squirrel_sql.plugins.hibernate; + import javax.swing.*; import java.util.ArrayList; -import java.util.List; public interface IHibernateTabController { Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/LimitObjectCountDialog.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/LimitObjectCountDialog.java (rev 0) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/LimitObjectCountDialog.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -0,0 +1,134 @@ +package net.sourceforge.squirrel_sql.plugins.hibernate; + +import net.sourceforge.squirrel_sql.client.gui.mainframe.MainFrame; +import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; +import net.sourceforge.squirrel_sql.fw.gui.MultipleLineLabel; +import net.sourceforge.squirrel_sql.fw.util.StringManager; +import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; + +public class LimitObjectCountDialog extends JDialog +{ + private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(LimitObjectCountDialog.class); + + private JButton _btnCheck; + private JButton _btnCheckAndRemember; + private JButton _btnCancel; + private boolean _check; + private boolean _checkAndRemember; + + + public LimitObjectCountDialog(MainFrame mainFrame) + { + super(mainFrame, s_stringMgr.getString("LimitObjectCountDialog.title"), true); + + getContentPane().setLayout(new GridBagLayout()); + + GridBagConstraints gbc; + + gbc = new GridBagConstraints(0,0,1,1,1,1, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5),0,0); + getContentPane().add(new MultipleLineLabel(s_stringMgr.getString("LimitObjectCountDialog.text")), gbc); + + gbc = new GridBagConstraints(0,1,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5),0,0); + getContentPane().add(createButtonPanel(), gbc); + + + _btnCheck.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + _check = true; + close(); + } + }); + + _btnCheckAndRemember.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + _check = true; + _checkAndRemember = true; + close(); + } + }); + + + _btnCancel.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + close(); + } + }); + + + setSize(350,200); + + GUIUtils.centerWithinParent(this); + + setVisible(true); + + + AbstractAction closeAction = new AbstractAction() + { + public void actionPerformed(ActionEvent actionEvent) + { + close(); + } + }; + KeyStroke escapeStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); + getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(escapeStroke, "CloseAction"); + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(escapeStroke, "CloseAction"); + getRootPane().getInputMap(JComponent.WHEN_FOCUSED).put(escapeStroke, "CloseAction"); + getRootPane().getActionMap().put("CloseAction", closeAction); + + } + + private JPanel createButtonPanel() + { + JPanel ret = new JPanel(new GridBagLayout()); + GridBagConstraints gbc; + + gbc = new GridBagConstraints(0,0,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); + _btnCheck = new JButton(s_stringMgr.getString("LimitObjectCountDialog.select")); + ret.add(_btnCheck, gbc); + + gbc = new GridBagConstraints(1,0,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); + _btnCheckAndRemember = new JButton(s_stringMgr.getString("LimitObjectCountDialog.selectAndRemember")); + ret.add(_btnCheckAndRemember, gbc); + + gbc = new GridBagConstraints(2,0,1,1,0,0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0); + _btnCancel = new JButton(s_stringMgr.getString("LimitObjectCountDialog.cancel")); + ret.add(_btnCancel, gbc); + +// gbc = new GridBagConstraints(3,0,1,1,1,1, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(5,5,5,5),0,0); +// ret.add(new JPanel(), gbc); + + return ret; + + } + + private void close() + { + setVisible(false); + dispose(); + } + + public boolean check() + { + return _check; + } + + public boolean checkAndRemember() + { + return _checkAndRemember; + } +} Deleted: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/RCParam.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/RCParam.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/RCParam.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,46 +0,0 @@ -package net.sourceforge.squirrel_sql.plugins.hibernate; - -import java.util.ArrayList; - -public class RCParam -{ - private ArrayList<Class> _types = new ArrayList<Class>(); - private ArrayList<Object> _values = new ArrayList<Object>(); - - public RCParam() - { - } - - public RCParam(Object[] params) - { - for (int i = 0; i < params.length; i++) - { - _types.add(params[i].getClass()); - _values.add(params[i]); - } - } - - - public RCParam add(Object paramValue, Class type) - { - _types.add(type); - _values.add(paramValue); - - return this; - } - - public int size() - { - return _values.size(); - } - - public Class getType(int i) - { - return _types.get(i); - } - - public Object getValue(int i) - { - return _values.get(i); - } -} Deleted: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ReflectionCaller.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ReflectionCaller.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/ReflectionCaller.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,213 +0,0 @@ -package net.sourceforge.squirrel_sql.plugins.hibernate; - -import org.hibernate.engine.SubselectFetch; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Constructor; -import java.net.URLClassLoader; -import java.util.List; -import java.util.ArrayList; -import java.util.Collection; - -public class ReflectionCaller -{ - private Object _callee; - - - public ReflectionCaller(Object callee) - { - _callee = callee; - } - - public ReflectionCaller() - { - this(null); - } - - - public ReflectionCaller getClass(String className, ClassLoader cl) - { - try - { - return new ReflectionCaller(cl.loadClass(className)); - } - catch (ClassNotFoundException e) - { - throw new RuntimeException(e); - } - } - - public ReflectionCaller callConstructor(Class[] paramTypes, Object[] params) - { - try - { - Constructor constr = getCalleeClass().getDeclaredConstructor(paramTypes); - return new ReflectionCaller(constr.newInstance(params)); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - - } - - public List<ReflectionCaller> callArrayMethod(String methodName) - { - try - { - Method meth = getDeclaredMethodIncludingSuper(methodName); - - Object[] callees = (Object[]) meth.invoke(_callee); - - List<ReflectionCaller> ret = new ArrayList<ReflectionCaller>(); - - for (Object callee : callees) - { - ret.add(new ReflectionCaller(callee)); - } - - return ret; - - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - - public Object getCallee() - { - return _callee; - } - - public Collection<ReflectionCaller> callCollectionMethod(String methodName) - { - try - { - Method meth = getDeclaredMethodIncludingSuper(methodName); - meth.setAccessible(true); - - Collection callees = (Collection) meth.invoke(_callee); - - List<ReflectionCaller> ret = new ArrayList<ReflectionCaller>(); - - for (Object callee : callees) - { - ret.add(new ReflectionCaller(callee)); - } - - return ret; - - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - public ReflectionCaller getField(String fieldName) - { - try - { - return new ReflectionCaller(getCalleeClass().getDeclaredField(fieldName).get(_callee)); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - public Class getCalleeClass() - { - if(_callee instanceof Class) - { - return (Class) _callee; - } - else - { - return _callee.getClass(); - } - - } - - /** - * Though this method should normaly be redundant with - * callMethod(String methodName, Object... params) - * NoSuchMethodErrors occur if it isn't there. - */ - public ReflectionCaller callMethod(String methodName) - { - return callMethod(methodName, new RCParam(new Object[0])); - } - - public ReflectionCaller callMethod(String methodName, Object... params) - { - return callMethod(methodName, new RCParam(params)); - } - - - public ReflectionCaller callMethod(String methodName, RCParam param) - { - try - { - Class[] paramTypes = new Class[param.size()]; - Object[] paramValues = new Object[param.size()]; - - for (int i = 0; i < paramTypes.length; i++) - { - paramTypes[i] = param.getType(i); - paramValues[i] = param.getValue(i); - } - - Method meth = getDeclaredMethodIncludingSuper(methodName, paramTypes); - meth.setAccessible(true); - - return new ReflectionCaller(meth.invoke(_callee, paramValues)); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - - - private Method getDeclaredMethodIncludingSuper(String methodName, Class... paramTypes) - throws NoSuchMethodException - { - Class clazz = getCalleeClass(); - - NoSuchMethodException throwBuf = new NoSuchMethodException(methodName); - - while(null != clazz) - { - try - { - Method ret = clazz.getDeclaredMethod(methodName, paramTypes); - ret.setAccessible(true); - return ret; - } - catch (NoSuchMethodException e) - { - throwBuf = e; - } - clazz = clazz.getSuperclass(); - } - - throw throwBuf; - - } - - public static void main(String[] args) - { - ReflectionCaller c = new ReflectionCaller(Integer.class); - - System.out.println(c.getCalleeClass().getName()); - - - } - -} Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/SQLPanelManager.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/SQLPanelManager.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/SQLPanelManager.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -21,6 +21,8 @@ private static final String PREF_KEY_FORMAT_SQL = "SquirrelSQL.hibernate.sqlFormatSql"; private static final String PREF_KEY_EXECUTE_SQL = "SquirrelSQL.hibernate.sqlExecuteSql"; private static final String PREF_KEY_VIEW_OBJECTS = "SquirrelSQL.hibernate.objViewObjects"; + private static final String PREF_KEY_VIEW_LIMIT_OBJECT_COUNT = "SquirrelSQL.hibernate.limitObjectsCount"; + private static final String PREF_KEY_VIEW_LIMIT_OBJECT_COUNT_VAL = "SquirrelSQL.hibernate.limitObjectsCountVal"; private HibernateSQLPanel _hibernateSQLPanel; private SQLResultExecuterPanel _resultExecuterPanel; @@ -62,9 +64,61 @@ _hibernateSQLPanel._chkAlwaysFormatSql.setSelected(Preferences.userRoot().getBoolean(PREF_KEY_FORMAT_SQL, false)); _hibernateSQLPanel._chkAlwaysExecuteSql.setSelected(Preferences.userRoot().getBoolean(PREF_KEY_EXECUTE_SQL, false)); _hibernateSQLPanel._chkAlwaysViewObjects.setSelected(Preferences.userRoot().getBoolean(PREF_KEY_VIEW_OBJECTS, false)); + _hibernateSQLPanel._chkLimitObjectCount.setSelected(Preferences.userRoot().getBoolean(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT, false)); + + _hibernateSQLPanel._nbrLimitRows.setInt(Preferences.userRoot().getInt(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT_VAL, 100)); + _hibernateSQLPanel._nbrLimitRows.setEnabled(_hibernateSQLPanel._chkLimitObjectCount.isSelected()); + + + _hibernateSQLPanel._chkAlwaysViewObjects.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onViewObjectsChanged(); + } + }); + onViewObjectsChanged(); + + + _hibernateSQLPanel._chkLimitObjectCount.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + onLimitRowsChanged(); + } + }); } + private void onViewObjectsChanged() + { + boolean b = _hibernateSQLPanel._chkAlwaysViewObjects.isSelected(); + _hibernateSQLPanel._chkLimitObjectCount.setEnabled(b); + _hibernateSQLPanel._nbrLimitRows.setEnabled(b && _hibernateSQLPanel._chkLimitObjectCount.isSelected()); + } + private void onLimitRowsChanged() + { + if(_hibernateSQLPanel._chkLimitObjectCount.isSelected()) + { + LimitObjectCountDialog locc = new LimitObjectCountDialog(getSession().getApplication().getMainFrame()); + _hibernateSQLPanel._chkLimitObjectCount.setSelected(locc.check()); + + if(locc.checkAndRemember()) + { + Preferences.userRoot().putBoolean(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT, true); + } + } + else + { + Preferences.userRoot().putBoolean(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT, false); + } + + _hibernateSQLPanel._nbrLimitRows.setEnabled(_hibernateSQLPanel._chkLimitObjectCount.isSelected()); + } + + private void onFormatSql() { if (null != getEntryPanel().getText()) @@ -79,6 +133,11 @@ Preferences.userRoot().putBoolean(PREF_KEY_FORMAT_SQL, _hibernateSQLPanel._chkAlwaysFormatSql.isSelected()); Preferences.userRoot().putBoolean(PREF_KEY_EXECUTE_SQL, _hibernateSQLPanel._chkAlwaysExecuteSql.isSelected()); Preferences.userRoot().putBoolean(PREF_KEY_VIEW_OBJECTS, _hibernateSQLPanel._chkAlwaysViewObjects.isSelected()); + + // Omitted intentionally + //Preferences.userRoot().putBoolean(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT, _hibernateSQLPanel._chkLimitObjectCount.isSelected()); + + Preferences.userRoot().putInt(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT_VAL, _hibernateSQLPanel._nbrLimitRows.getInt()); } @@ -108,7 +167,10 @@ { if (_hibernateSQLPanel._chkAlwaysViewObjects.isSelected()) { - _objectResultController.displayObjects(con, hqlQuery); + boolean limitObjectCount = _hibernateSQLPanel._chkLimitObjectCount.isSelected(); + int limitObjectCountVal = _hibernateSQLPanel._nbrLimitRows.getInt(); + + _objectResultController.displayObjects(con, hqlQuery, limitObjectCount, limitObjectCountVal); _hibernateSQLPanel._tabResult_code.setSelectedComponent(_objectResultController.getPanel()); } } Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasFinderListener.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasFinderListener.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasFinderListener.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -1,7 +1,5 @@ package net.sourceforge.squirrel_sql.plugins.hibernate.completion; -import net.sourceforge.squirrel_sql.plugins.hibernate.mapping.MappedClassInfo; - import java.util.ArrayList; public interface AliasFinderListener Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasInfo.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasInfo.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/AliasInfo.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -5,9 +5,6 @@ import net.sourceforge.squirrel_sql.fw.completion.util.CompletionParser; import net.sourceforge.squirrel_sql.fw.completion.CompletionInfo; -import java.util.Collection; -import java.util.List; -import java.util.Collections; import java.util.ArrayList; public class AliasInfo extends CompletionInfo Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/HQLCodeCompletorModel.java =================================================================== --- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/HQLCodeCompletorModel.java 2010-09-28 17:26:38 UTC (rev 5901) +++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/completion/HQLCodeCompletorModel.java 2010-09-28 22:15:31 UTC (rev 5902) @@ -4,11 +4,11 @@ import net.sourceforge.squirrel_sql.fw.completion.CompletionCandidates; import net.sourceforge.squirrel_sql.fw.completion.ICompletorModel; import net.sourceforge.squirrel_sql.fw.completion.util.CompletionParser; +import net.sourceforge.squirrel_sql.plugins.hibernate.HibernateConnection; import net.sourceforge.squirrel_sql.plugins.hibernate.IHibernateConnectionProvider; import net.sourceforge.squirrel_sql.plugins.hibernate.ConnectionListener; import net.sourceforge.squirrel_sql.plugins.hibernate.HqlSyntaxHighlightTokenMatcherProxy; -import net.sourceforge.squirrel_sql.plugins.h... [truncated message content] |
From: <ger...@us...> - 2010-10-05 17:59:37
|
Revision: 5907 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5907&view=rev Author: gerdwagner Date: 2010-10-05 17:59:31 +0000 (Tue, 05 Oct 2010) Log Message: ----------- Bug fix: Double click in Alias tree always opened the selected Alias even if the mouse pointer wasn't placed on the Alias. This way Aliases where opened when tree nodes where quickly closed or opened. Modified Paths: -------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesList.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesListInternalFrame.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/BaseListInternalFrame.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/DriversListInternalFrame.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/IAliasesList.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JListAliasesListImpl.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JTreeAliasesListImpl.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/AliasPropertiesAction.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasAction.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/CopyAliasAction.java trunk/sql12/doc/src/main/resources/changes.txt Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesList.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesList.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesList.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -4,6 +4,7 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.MouseEvent; import java.awt.event.MouseListener; /* @@ -98,10 +99,11 @@ /** * Return the <TT>ISQLAlias</TT> that is currently selected. - */ - public SQLAlias getSelectedAlias() + * @param evt + */ + public SQLAlias getSelectedAlias(MouseEvent evt) { - return getCurrentImpl().getSelectedAlias(); + return getCurrentImpl().getSelectedAlias(evt); } public void sortAliases() Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesListInternalFrame.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesListInternalFrame.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/AliasesListInternalFrame.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -37,6 +37,7 @@ import java.awt.event.ActionEvent; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; +import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; @@ -279,10 +280,10 @@ return s_stringMgr.getString("AliasesListInternalFrame.windowtitle"); } - public ICommand getDoubleClickCommand() + public ICommand getDoubleClickCommand(MouseEvent evt) { ICommand cmd = null; - SQLAlias alias = _aliasesList.getSelectedAlias(); + SQLAlias alias = _aliasesList.getSelectedAlias(evt); if (alias != null) { cmd = new ConnectToAliasCommand(_app, alias); Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/BaseListInternalFrame.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/BaseListInternalFrame.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/BaseListInternalFrame.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -43,7 +43,7 @@ BasePopupMenu getPopupMenu(); IBaseList getList(); String getWindowTitle(); - ICommand getDoubleClickCommand(); + ICommand getDoubleClickCommand(MouseEvent evt); SquirrelPreferences getPreferences(); } @@ -133,7 +133,7 @@ { if (evt.getClickCount() == 2) { - ICommand cmd = _uiFactory.getDoubleClickCommand(); + ICommand cmd = _uiFactory.getDoubleClickCommand(evt); if (cmd != null) { try Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/DriversListInternalFrame.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/DriversListInternalFrame.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/DriversListInternalFrame.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -17,6 +17,7 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.VetoableChangeListener; @@ -34,7 +35,6 @@ import net.sourceforge.squirrel_sql.client.IApplication; import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.WidgetAdapter; import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.WidgetEvent; -import net.sourceforge.squirrel_sql.client.gui.desktopcontainer.DesktopStyle; import net.sourceforge.squirrel_sql.client.action.ActionCollection; import net.sourceforge.squirrel_sql.client.mainframe.action.CopyDriverAction; import net.sourceforge.squirrel_sql.client.mainframe.action.CreateDriverAction; @@ -191,7 +191,7 @@ return s_stringMgr.getString("DriversListInternalFrame.windowtitle"); } - public ICommand getDoubleClickCommand() + public ICommand getDoubleClickCommand(MouseEvent evt) { ICommand cmd = null; ISQLDriver driver = _driversList.getSelectedDriver(); Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/IAliasesList.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/IAliasesList.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/IAliasesList.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -1,5 +1,7 @@ package net.sourceforge.squirrel_sql.client.gui.db; +import java.awt.event.MouseEvent; + /* * Copyright (C) 2004 Colin Bell * co...@us... @@ -23,8 +25,9 @@ { /** * Return the <TT>ISQLAlias</TT> that is currently selected. - */ - public SQLAlias getSelectedAlias(); + * @param evt + */ + public SQLAlias getSelectedAlias(MouseEvent evt); void sortAliases(); Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JListAliasesListImpl.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JListAliasesListImpl.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JListAliasesListImpl.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -108,15 +108,16 @@ /** * Return the <TT>ISQLAlias</TT> that is currently selected. - */ - public SQLAlias getSelectedAlias() + * @param evt + */ + public SQLAlias getSelectedAlias(MouseEvent evt) { return (SQLAlias)getList().getSelectedValue(); } public void sortAliases() { - final ISQLAlias selectedAlias = getSelectedAlias(); + final ISQLAlias selectedAlias = getSelectedAlias(null); _model.sortAliases(); Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JTreeAliasesListImpl.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JTreeAliasesListImpl.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/gui/db/JTreeAliasesListImpl.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -459,7 +459,7 @@ _tree.setSelectionPath(new TreePath(treeModel.getPathToRoot(newNode))); } - public SQLAlias getSelectedAlias() + public SQLAlias getSelectedAlias(MouseEvent evt) { TreePath path = _tree.getSelectionPath(); @@ -473,6 +473,12 @@ return null; } + if(null != evt && false == _tree.getPathBounds(path).contains(evt.getPoint())) + { + // If the mouse wasn't placed on the selected Alias we do nothing. + return null; + } + DefaultMutableTreeNode tn = (DefaultMutableTreeNode) path.getLastPathComponent(); if(false == tn.getUserObject() instanceof ISQLAlias) Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/AliasPropertiesAction.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/AliasPropertiesAction.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/AliasPropertiesAction.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -19,7 +19,7 @@ public void actionPerformed(ActionEvent e) { - ISQLAlias selectedAlias = _aliasList.getSelectedAlias(); + ISQLAlias selectedAlias = _aliasList.getSelectedAlias(null); if(null == selectedAlias) { Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasAction.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasAction.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/ConnectToAliasAction.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -58,7 +58,7 @@ public void actionPerformed(ActionEvent evt) { moveToFrontAndSelectAliasFrame(); - final SQLAlias alias = _aliases.getSelectedAlias(); + final SQLAlias alias = _aliases.getSelectedAlias(null); if (alias != null) { new ConnectToAliasCommand(getApplication(), alias).execute(); Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/CopyAliasAction.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/CopyAliasAction.java 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/mainframe/action/CopyAliasAction.java 2010-10-05 17:59:31 UTC (rev 5907) @@ -65,7 +65,7 @@ public void actionPerformed(ActionEvent evt) { moveToFrontAndSelectAliasFrame(); - SQLAlias alias = _aliases.getSelectedAlias(); + SQLAlias alias = _aliases.getSelectedAlias(null); if (alias != null) { new CopyAliasCommand(getApplication(), alias).execute(); Modified: trunk/sql12/doc/src/main/resources/changes.txt =================================================================== --- trunk/sql12/doc/src/main/resources/changes.txt 2010-10-05 01:03:08 UTC (rev 5906) +++ trunk/sql12/doc/src/main/resources/changes.txt 2010-10-05 17:59:31 UTC (rev 5907) @@ -34,6 +34,9 @@ Bug-fixes: +Double click in Alias tree always opened the selected Alias even if the mouse pointer wasn't placed on the Alias. + This way Aliases where opened when tree nodes where quickly closed or opened. + RSyntax editor: Replace dialog: Replace button now does a find next after replacing. Fixed problem with sorting after dragging columns This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2010-10-12 11:38:35
|
Revision: 5916 http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=5916&view=rev Author: manningr Date: 2010-10-12 11:38:26 +0000 (Tue, 12 Oct 2010) Log Message: ----------- Moved I/O methods from FileUtils to IOUtilities and removed redundant FileUtils. Added fixer for classpath building function in squirrel-sql.sh. PreLaunchHelper now copies the splash screen image (splash.jpg) from squirrel-sql.jar into the icons folder. Added call to updateLauncherScript and copySplashScreenImage to the shutdown routine. For now this is needed due to a bug in the classpath building routine in squirrel-sql.sh. Modified Paths: -------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelper.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImpl.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchUpdateApplication.java trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ArtifactInstallerImplIntegrationTest.java trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImplIntegrationTest.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilities.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilitiesImpl.java Added Paths: ----------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ClasspathFunctionFixer.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactory.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactoryImpl.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/ScriptLineFixer.java trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml Removed Paths: ------------- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtils.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtilsImpl.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ScriptLineFixer.java trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/Application.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -66,6 +66,9 @@ import net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfoCacheSerializer; import net.sourceforge.squirrel_sql.client.update.autocheck.UpdateCheckTimer; import net.sourceforge.squirrel_sql.client.update.autocheck.UpdateCheckTimerImpl; +import net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelper; +import net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelperFactory; +import net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelperFactoryImpl; import net.sourceforge.squirrel_sql.client.util.ApplicationFiles; import net.sourceforge.squirrel_sql.fw.datasetviewer.CellImportExportInfoSaver; import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.DTProperties; @@ -159,6 +162,8 @@ private UpdateCheckTimer updateCheckTimer = null; + private PreLaunchHelperFactory preLaunchHelperFactory = new PreLaunchHelperFactoryImpl(); + /** * Default ctor. */ @@ -223,6 +228,8 @@ closeOutputStreams(); SchemaInfoCacheSerializer.waitTillStoringIsDone(); + + updateLaunchScript(); String msg = s_stringMgr.getString("Application.shutdowncomplete", Calendar.getInstance().getTime()); s_log.info(msg); @@ -385,6 +392,27 @@ return result; } + /** + * Ideally, it would be unnecessary to update the launch script here. Unfortunately, in squirrel-sql.sh + * due to a bug in how the updater's CLASSPATH is being built, the update application uses the old + * application and library jars instead of the ones in the downloads section. So, the new code that + * fixes the launch scripts doesn't get executed until the second update. Once that code is out there, + * ( that is, the 3.2 version has been released for a while, and we are pretty sure there are no older + * 3.x installations that still need to be upgraded), then it would be safe to remove this code. + */ + private void updateLaunchScript() { + try + { + PreLaunchHelper helper = preLaunchHelperFactory.createPreLaunchHelper(); + helper.updateLaunchScript(); + helper.copySplashImage(); + } + catch (Exception e) + { + s_log.error("Unexpected exception while attempting to update the launch script: "+e.getMessage(), e); + } + } + public IPluginManager getPluginManager() { return _pluginManager; @@ -1188,4 +1216,9 @@ public void setUpdateCheckTimer(UpdateCheckTimer timer) { this.updateCheckTimer = timer; } + + public void setPreLaunchHelperFactory(PreLaunchHelperFactory preLaunchHelperFactory) + { + this.preLaunchHelperFactory = preLaunchHelperFactory; + } } Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ClasspathFunctionFixer.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ClasspathFunctionFixer.java (rev 0) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ClasspathFunctionFixer.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -0,0 +1,80 @@ +package net.sourceforge.squirrel_sql.client.update.gui.installer; + +import net.sourceforge.squirrel_sql.fw.util.IOUtilities; +import net.sourceforge.squirrel_sql.fw.util.ScriptLineFixer; + +/* + * Copyright (C) 2010 Rob Manning + * man...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +public class ClasspathFunctionFixer implements ScriptLineFixer +{ + + private boolean inFunctionDeclaration = false; + + private boolean scriptWasAlreadyFixed = false; + + private boolean sawOpenCurlyBrace = false; + + @Override + public String fixLine(String line) + { + if (scriptWasAlreadyFixed) { + return line; + } + + String osName = System.getProperty("os.name"); + if (osName.toLowerCase().startsWith("windows")) { + return line; + } + + if (line.contains("buildCPFromDir()")) { + inFunctionDeclaration = true; + return line; + } + if (inFunctionDeclaration) { + + if (line.contains("{")) { + sawOpenCurlyBrace = true; + return line; + } + + // Perhaps the line has already been added. If so, skip future checks. + if (line.contains("CP=\"\"")) { + scriptWasAlreadyFixed = true; + return line; + } + + // At this point we are still in the function declaration, and the current line is neither the + // opening curly brace, nor the 'CP=""' line, so it must be the first actual line of the function. + // So, add in the + + if (sawOpenCurlyBrace) { + inFunctionDeclaration = false; + scriptWasAlreadyFixed = true; + StringBuilder alteredLine = new StringBuilder(); + alteredLine.append("\tCP=\"\""); + alteredLine.append(IOUtilities.NEW_LINE); + alteredLine.append(line); + return alteredLine.toString(); + } + } + return line; + } + +} Deleted: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtils.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtils.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtils.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -1,56 +0,0 @@ -package net.sourceforge.squirrel_sql.client.update.gui.installer; - -/* - * Copyright (C) 2010 Rob Manning - * man...@us... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.List; - -/** - * Interface for file utility methods. - */ -public interface FileUtils -{ - - /** - * Reads the file specified by filename and builds a list of lines, applying the line fixers specified. - * - * @param filename - * the name of the file to read lines from. - * @param lineFixers - * a list of fixers to apply to each line. This can be null if no line manipulation is required. - * @return a list of lines - * @throws IOException - * if an I/O error occurs. - */ - List<String> getLinesFromFile(String filename, List<ScriptLineFixer> lineFixers) - throws IOException; - - /** - * Writes the specified list of line to the specified filename. This will overrite the current contents - * of the file. - * - * @param filename the file to overwrite - * @param lines the lines to write to the file. - * @throws FileNotFoundException - */ - void writeLinesToFile(String filename, List<String> lines) throws FileNotFoundException; - -} \ No newline at end of file Deleted: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtilsImpl.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtilsImpl.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/FileUtilsImpl.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -1,75 +0,0 @@ -package net.sourceforge.squirrel_sql.client.update.gui.installer; - -/* - * Copyright (C) 2010 Rob Manning - * man...@us... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; - -public class FileUtilsImpl implements FileUtils -{ - - public static String newline = System.getProperty("line.separator"); - - /** - * @see net.sourceforge.squirrel_sql.client.update.gui.installer.FileUtils# - * getLinesFromFile(java.lang.String, java.util.List) - */ - public List<String> getLinesFromFile(String filename, List<ScriptLineFixer> lineFixers) throws IOException - { - ArrayList<String> lines = new ArrayList<String>(); - - BufferedReader reader = new BufferedReader(new FileReader(filename)); - String line = null; - - while ((line = reader.readLine()) != null) - { - if (lineFixers != null) { - for (ScriptLineFixer fixer : lineFixers) - { - line = fixer.fixLine(line); - } - } - lines.add(line); - } - reader.close(); - return lines; - } - - /** - * @see net.sourceforge.squirrel_sql.client.update.gui.installer.FileUtils# - * writeLinesToFile(java.lang.String, java.util.List) - */ - public void writeLinesToFile(String filename, List<String> lines) throws FileNotFoundException - { - PrintWriter out = new PrintWriter(new File(filename)); - for (String outline : lines) - { - out.write(outline); - out.write(newline); - } - out.close(); - } -} Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelper.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelper.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelper.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -46,5 +46,11 @@ * @throws IOException if an I/O error occurs */ public void updateLaunchScript() throws IOException; + + /** + * Copies the splash image from + * @throws IOException + */ + public void copySplashImage() throws IOException; } \ No newline at end of file Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactory.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactory.java (rev 0) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactory.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -0,0 +1,27 @@ +package net.sourceforge.squirrel_sql.client.update.gui.installer; + +/* + * Copyright (C) 2010 Rob Manning + * man...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +public interface PreLaunchHelperFactory +{ + + public abstract PreLaunchHelper createPreLaunchHelper(); + +} \ No newline at end of file Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactoryImpl.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactoryImpl.java (rev 0) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperFactoryImpl.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -0,0 +1,49 @@ +package net.sourceforge.squirrel_sql.client.update.gui.installer; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/* + * Copyright (C) 2010 Rob Manning + * man...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +public class PreLaunchHelperFactoryImpl implements PreLaunchHelperFactory +{ + + /** + * @see net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelperFactory#createPreLaunchHelper() + */ + public PreLaunchHelper createPreLaunchHelper() { + String[] appCtx = new String[] { + "classpath:net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml", + "classpath:net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml", + "classpath:net/sourceforge/squirrel_sql/client/update/gui/installer/event/net.sourceforge.squirrel_sql.client.update.gui.installer.event.applicationContext.xml", + "classpath:net/sourceforge/squirrel_sql/client/update/gui/installer/util/net.sourceforge.squirrel_sql.client.update.gui.installer.util.applicationContext.xml", + "classpath:net/sourceforge/squirrel_sql/client/update/util/net.sourceforge.squirrel_sql.client.update.util.applicationContext.xml" + }; + +// System.out.println("Loading beans from the following application context files: "); +// for (String location : appCtx) { +// System.out.println("appCtx: "+location); +// } + + ApplicationContext ctx = new ClassPathXmlApplicationContext(appCtx); + return (PreLaunchHelper)ctx.getBean(PreLaunchHelper.class.getName()); + } + +} Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImpl.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImpl.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImpl.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -24,20 +24,22 @@ import javax.swing.JOptionPane; -import org.springframework.beans.factory.annotation.Required; - import net.sourceforge.squirrel_sql.client.update.UpdateUtil; import net.sourceforge.squirrel_sql.client.update.gui.ArtifactStatus; import net.sourceforge.squirrel_sql.client.update.gui.installer.event.InstallStatusListener; import net.sourceforge.squirrel_sql.client.update.gui.installer.event.InstallStatusListenerImpl; import net.sourceforge.squirrel_sql.client.update.xmlbeans.ChangeListXmlBean; import net.sourceforge.squirrel_sql.fw.util.FileWrapper; +import net.sourceforge.squirrel_sql.fw.util.IOUtilities; +import net.sourceforge.squirrel_sql.fw.util.ScriptLineFixer; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; import net.sourceforge.squirrel_sql.fw.util.Utilities; import net.sourceforge.squirrel_sql.fw.util.log.ILogger; import net.sourceforge.squirrel_sql.fw.util.log.LoggerController; +import org.springframework.beans.factory.annotation.Required; + /** * This is a bean that the prelaunch app uses. The pre-launch app main class (PreLaunchUpdateApplication) * loads the spring context, and therefore can't managed by spring. So, it is very small and most of it's @@ -108,12 +110,16 @@ } /* Spring-injected */ - FileUtils fileUtils = null; + private IOUtilities ioutils = null; + /** + * @param ioutils the ioutils to set + */ @Required - public void setFileUtils(FileUtils fileUtils) { - Utilities.checkNull("setFileUtils", "fileUtils", fileUtils); - this.fileUtils = fileUtils; + public void setIoutils(IOUtilities ioutils) + { + Utilities.checkNull("setIoutils", "ioutils", ioutils); + this.ioutils = ioutils; } /* ----------------------------------- Public API ------------------------------------------------------*/ @@ -153,6 +159,7 @@ /** * @see net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelper#installUpdates(boolean) */ + @Override public void installUpdates(boolean prompt) { FileWrapper changeListFile = updateUtil.getChangeListFile(); @@ -182,6 +189,7 @@ * * @throws IOException if an I/O error occurs */ + @Override public void updateLaunchScript() throws IOException { // 1. determine which script to fix. @@ -198,15 +206,26 @@ logInfo("Applying updates to launch script: "+scriptFilename); // 2. Get the lines from the file, applying the line fixers - List<String> lines = fileUtils.getLinesFromFile(scriptFilename, scriptLineFixers); + List<String> lines = ioutils.getLinesFromFile(scriptFilename, scriptLineFixers); // 3. Write the fixed lines back out to the file. - fileUtils.writeLinesToFile(scriptFilename, lines); + ioutils.writeLinesToFile(scriptFilename, lines); } + @Override + public void copySplashImage() throws IOException + { + String jarFilename = "update/downloads/core/squirrel-sql.jar"; + String resourceName = "splash.jpg"; + String destinationFile = "icons/splash.jpg"; + + ioutils.copyResourceFromJarFile(jarFilename, resourceName, destinationFile); + } + /** * @see net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelper#restoreFromBackup() */ + @Override public void restoreFromBackup() { if (showConfirmDialog(RESTORE_FROM_BACKUP_MESSAGE, RESTORE_FROM_BACKUP_TITLE)) @@ -388,4 +407,5 @@ return scriptLocation; } + } Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchUpdateApplication.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchUpdateApplication.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchUpdateApplication.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -30,8 +30,6 @@ import org.apache.log4j.Layout; import org.apache.log4j.PatternLayout; import org.apache.log4j.PropertyConfigurator; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; /** * This is a small application that will be launched each time SQuirreL is started to quickly check to see if @@ -45,7 +43,7 @@ public static final String PROMPT_MODE = "prompt"; - public static final String RESTORE_MODE = "restore"; + public static final String RESTORE_MODE = "restore"; /** * Entry point of the @@ -57,10 +55,11 @@ initializeLogger(); boolean prompt = getMode(PROMPT_MODE); boolean restore = getMode(RESTORE_MODE); - setupSpringContext(); + setupHelper(); if (!restore) { helper.installUpdates(prompt); helper.updateLaunchScript(); + helper.copySplashImage(); } else { helper.restoreFromBackup(); } @@ -68,13 +67,10 @@ // Helper methods - private static void setupSpringContext() + private static void setupHelper() { - String[] appCtx = new String[] { - "classpath:net/sourceforge/squirrel_sql/**/*applicationContext.xml" - }; - ApplicationContext ctx = new ClassPathXmlApplicationContext(appCtx); - helper = (PreLaunchHelper)ctx.getBean(PreLaunchHelper.class.getName()); + PreLaunchHelperFactory preLaunchHelperFactory = new PreLaunchHelperFactoryImpl(); + helper = preLaunchHelperFactory.createPreLaunchHelper(); } private static boolean getMode(String mode) Deleted: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ScriptLineFixer.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ScriptLineFixer.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ScriptLineFixer.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -1,36 +0,0 @@ -package net.sourceforge.squirrel_sql.client.update.gui.installer; - -/* - * Copyright (C) 2010 Rob Manning - * man...@us... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/** - * Interface for line fixer implementations. - */ -public interface ScriptLineFixer -{ - - /** - * Fixes the line specified, returning the "fixed" version - * - * @param line - * the line that needs to be fixed - * @return the fixed line - */ - String fixLine(String line); -} Deleted: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -1,69 +0,0 @@ -package net.sourceforge.squirrel_sql.client.update.gui.installer; - -/* - * Copyright (C) 2010 Rob Manning - * man...@us... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -/** - * A line fixer implementation that adds the splash screen icon to the line that launches the SQuirreL - * application in the launcher scripts. - */ -public class SplashScreenFixer implements ScriptLineFixer { - - /** The main class. Assumption is that this line is where the splash setting needs to be added */ - public static final String CLIENT_MAIN_CLASS = "net.sourceforge.squirrel_sql.client.Main"; - - /** The splash setting */ - public static final String SPLASH_ICON_ARGUMENT = "-splash:icons/splash.jpg"; - - /** A regex pattern version of the main class */ - private static final String MAIN_CLASS_PATTERN = "net\\.sourceforge\\.squirrel_sql\\.client\\.Main"; - - /** The platform-dependent newline string */ - public static String newline = System.getProperty("line.separator"); - - /** - * @see net.sourceforge.squirrel_sql.client.update.gui.installer.ScriptLineFixer#fixLine(java.lang.String) - */ - @Override - public String fixLine(String line) { - String result = line; - if (line.contains(CLIENT_MAIN_CLASS)) { - if (!line.contains(SPLASH_ICON_ARGUMENT)) { - String[] parts = line.split(MAIN_CLASS_PATTERN); - if (parts.length == 2) { - StringBuilder newline = new StringBuilder(); - newline.append(parts[0]); - newline.append(" "); - newline.append(SPLASH_ICON_ARGUMENT); - newline.append(" "); - newline.append(CLIENT_MAIN_CLASS); - newline.append(" "); - newline.append(parts[1]); - result = newline.toString(); - } else { - System.err.println("Uh-oh, expected parts to be 2"); - } - } - } - return result; - } - - -} Copied: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java (from rev 5913, trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java) =================================================================== --- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java (rev 0) +++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/SplashScreenFixer.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -0,0 +1,72 @@ +package net.sourceforge.squirrel_sql.client.update.gui.installer; + +import net.sourceforge.squirrel_sql.fw.util.ScriptLineFixer; + + +/* + * Copyright (C) 2010 Rob Manning + * man...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +/** + * A line fixer implementation that adds the splash screen icon to the line that launches the SQuirreL + * application in the launcher scripts. + */ +public class SplashScreenFixer implements ScriptLineFixer { + + /** The main class. Assumption is that this line is where the splash setting needs to be added */ + public static final String CLIENT_MAIN_CLASS = "net.sourceforge.squirrel_sql.client.Main"; + + /** The splash setting */ + public static final String SPLASH_ICON_ARGUMENT = "-splash:icons/splash.jpg"; + + /** A regex pattern version of the main class */ + private static final String MAIN_CLASS_PATTERN = "net\\.sourceforge\\.squirrel_sql\\.client\\.Main"; + + /** The platform-dependent newline string */ + public static String newline = System.getProperty("line.separator"); + + /** + * @see net.sourceforge.squirrel_sql.fw.util.ScriptLineFixer#fixLine(java.lang.String) + */ + @Override + public String fixLine(String line) { + String result = line; + if (line.contains(CLIENT_MAIN_CLASS)) { + if (!line.contains(SPLASH_ICON_ARGUMENT)) { + String[] parts = line.split(MAIN_CLASS_PATTERN); + if (parts.length == 2) { + StringBuilder newline = new StringBuilder(); + newline.append(parts[0]); + newline.append(" "); + newline.append(SPLASH_ICON_ARGUMENT); + newline.append(" "); + newline.append(CLIENT_MAIN_CLASS); + newline.append(" "); + newline.append(parts[1]); + result = newline.toString(); + } else { + System.err.println("Uh-oh, expected parts to be 2"); + } + } + } + return result; + } + + +} Modified: trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml =================================================================== --- trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/main/resources/net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml 2010-10-12 11:38:26 UTC (rev 5916) @@ -14,8 +14,8 @@ class="net.sourceforge.squirrel_sql.client.update.gui.installer.SplashScreenFixer"> </bean> - <bean id="net.sourceforge.squirrel_sql.client.update.gui.installer.FileUtils" - class="net.sourceforge.squirrel_sql.client.update.gui.installer.FileUtilsImpl"> + <bean id="net.sourceforge.squirrel_sql.client.update.gui.installer.ClasspathFunctionFixer" + class="net.sourceforge.squirrel_sql.client.update.gui.installer.ClasspathFunctionFixer"> </bean> <bean id="net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelper" @@ -26,10 +26,11 @@ <property name="scriptLineFixers"> <list> <ref bean="net.sourceforge.squirrel_sql.client.update.gui.installer.SplashScreenFixer"/> + <ref bean="net.sourceforge.squirrel_sql.client.update.gui.installer.ClasspathFunctionFixer"/> </list> </property> - <property name="fileUtils" - ref="net.sourceforge.squirrel_sql.client.update.gui.installer.FileUtils" /> + <property name="ioutils" + ref="net.sourceforge.squirrel_sql.fw.util.IOUtilities" /> </bean> @@ -48,4 +49,5 @@ <property name="updateUtil" ref="net.sourceforge.squirrel_sql.client.update.UpdateUtil"/> </bean> + </beans> \ No newline at end of file Modified: trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ArtifactInstallerImplIntegrationTest.java =================================================================== --- trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ArtifactInstallerImplIntegrationTest.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ArtifactInstallerImplIntegrationTest.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -31,6 +31,7 @@ @RunWith(SpringJUnit4ClassRunner.class) @TestExecutionListeners({}) @ContextConfiguration (locations={ + "/net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml", "/net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml", "/net/sourceforge/squirrel_sql/client/update/gui/installer/event/net.sourceforge.squirrel_sql.client.update.gui.installer.event.applicationContext.xml", "/net/sourceforge/squirrel_sql/client/update/gui/installer/util/net.sourceforge.squirrel_sql.client.update.gui.installer.util.applicationContext.xml", Modified: trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImplIntegrationTest.java =================================================================== --- trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImplIntegrationTest.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/update/gui/installer/PreLaunchHelperImplIntegrationTest.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -27,9 +27,7 @@ import net.sourceforge.squirrel_sql.client.ApplicationArguments; import net.sourceforge.squirrel_sql.fw.util.FileWrapper; import net.sourceforge.squirrel_sql.fw.util.FileWrapperFactory; -import net.sourceforge.squirrel_sql.fw.util.FileWrapperFactoryImpl; import net.sourceforge.squirrel_sql.fw.util.IOUtilities; -import net.sourceforge.squirrel_sql.fw.util.IOUtilitiesImpl; import org.junit.Assert; import org.junit.Test; @@ -43,6 +41,7 @@ @RunWith(SpringJUnit4ClassRunner.class) @TestExecutionListeners( {}) @ContextConfiguration(locations = { + "/net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml", "/net/sourceforge/squirrel_sql/client/update/gui/installer/net.sourceforge.squirrel_sql.client.update.gui.installer.applicationContext.xml", "/net/sourceforge/squirrel_sql/client/update/gui/installer/event/net.sourceforge.squirrel_sql.client.update.gui.installer.event.applicationContext.xml", "/net/sourceforge/squirrel_sql/client/update/gui/installer/util/net.sourceforge.squirrel_sql.client.update.gui.installer.util.applicationContext.xml", @@ -54,33 +53,19 @@ { ApplicationArguments.initialize(new String[] { "-home", "./target" }); } - - @Autowired - private FileUtils fileUtils; - + public static final String beanIdToTest = "net.sourceforge.squirrel_sql.client.update.gui.installer.PreLaunchHelper"; private static final String SOURCE_SCRIPT_FILE_TO_TEST = "src/test/resources/squirrel-sql.sh"; private static final String TARGET_SCRIPT_FILE_TO_TEST = "target/squirrel-sql-copy.sh"; - - /** TODO: Spring-inject when this class is a Spring bean */ - private IOUtilities _iou = new IOUtilitiesImpl(); - - public void setIOUtilities(IOUtilities iou) - { - _iou = iou; - } - /** TODO: Spring-inject when this class is a Spring bean */ - private FileWrapperFactory _fileWrapperFactory = new FileWrapperFactoryImpl(); + @Autowired + private IOUtilities ioutils; - public void setFileWrapperFactory(FileWrapperFactory factory) - { - _fileWrapperFactory = factory; - } - + @Autowired + private FileWrapperFactory _fileWrapperFactory; /** * This test confirms that the launch script can be updated to include the new Splash screen icon @@ -94,7 +79,7 @@ FileWrapper sourceScriptFile = _fileWrapperFactory.create(SOURCE_SCRIPT_FILE_TO_TEST); FileWrapper targetScriptFile = _fileWrapperFactory.create(TARGET_SCRIPT_FILE_TO_TEST); - _iou.copyFile(sourceScriptFile, targetScriptFile); + ioutils.copyFile(sourceScriptFile, targetScriptFile); // Confirm that the script doesn't contain the splash screen icon setting. checkScriptFile(false); @@ -109,7 +94,7 @@ private void checkScriptFile(boolean containsSplashIconArgument) throws IOException { - List<String> linesFromScriptFile = fileUtils.getLinesFromFile(TARGET_SCRIPT_FILE_TO_TEST, null); + List<String> linesFromScriptFile = ioutils.getLinesFromFile(TARGET_SCRIPT_FILE_TO_TEST, null); boolean foundMainClassLine = false; for (String line : linesFromScriptFile) { Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilities.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilities.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilities.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -19,6 +19,7 @@ package net.sourceforge.squirrel_sql.fw.util; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -26,10 +27,14 @@ import java.io.Writer; import java.net.MalformedURLException; import java.net.URL; +import java.util.List; +import java.util.zip.ZipException; public interface IOUtilities { + public static String NEW_LINE = System.getProperty("line.separator"); + String HTTP_PROTOCOL_PREFIX = "http"; void closeInputStream(InputStream is); @@ -105,16 +110,58 @@ /** * Downloads a file using HTTP. * - * @param url the URL of the file to be retrieved - * @param destFile the file to download the URL file into - * @param proxySettings the ProxySettings to use + * @param url + * the URL of the file to be retrieved + * @param destFile + * the file to download the URL file into + * @param proxySettings + * the ProxySettings to use * @return the number of bytes that were read and written to the file. * @throws Exception */ - public int downloadHttpFile(final URL url, FileWrapper destFile, IProxySettings proxySettings) - throws IOException; + int downloadHttpFile(final URL url, FileWrapper destFile, IProxySettings proxySettings) throws IOException; - public URL constructHttpUrl(final String host, final int port, final String fileToGet) + URL constructHttpUrl(final String host, final int port, final String fileToGet) throws MalformedURLException; + /** + * Reads the file specified by filename and builds a list of lines, applying the line fixers specified. + * + * @param filename + * the name of the file to read lines from. + * @param lineFixers + * a list of fixers to apply to each line. This can be null if no line manipulation is required. + * @return a list of lines + * @throws IOException + * if an I/O error occurs. + */ + List<String> getLinesFromFile(String filename, List<ScriptLineFixer> lineFixers) throws IOException; + + /** + * Writes the specified list of line to the specified filename. This will overrite the current contents of + * the file. + * + * @param filename + * the file to overwrite + * @param lines + * the lines to write to the file. + * @throws FileNotFoundException + */ + void writeLinesToFile(String filename, List<String> lines) throws FileNotFoundException; + + /** + * Copies the resource specified from the jarfile specified to the specified destination directory. + * + * @param jarFilename + * the jarfile to look in. + * @param resourceName + * the resource to pull out. + * @param destinationDir + * the directory to write the resource to. + * @throws IOException + * @throws ZipException + */ + void copyResourceFromJarFile(String jarFilename, String resourceName, String destinationDir) + throws ZipException, IOException; + } \ No newline at end of file Modified: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilitiesImpl.java =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilitiesImpl.java 2010-10-12 11:29:33 UTC (rev 5915) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/IOUtilitiesImpl.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -20,18 +20,27 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; +import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.PrintWriter; import java.io.Reader; import java.io.Writer; import java.net.MalformedURLException; import java.net.URL; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; import java.util.zip.CRC32; +import java.util.zip.ZipEntry; +import java.util.zip.ZipException; +import java.util.zip.ZipFile; import org.apache.commons.httpclient.Credentials; import org.apache.commons.httpclient.HttpClient; @@ -48,10 +57,23 @@ /** The size of the byte array which is used to fetch data from disk to do various I/O operations */ public static final int DISK_DATA_BUFFER_SIZE = 8192; + /** Logger for this class. */ private final ILogger s_log = LoggerController.createLogger(IOUtilitiesImpl.class); + /* Spring-Injected */ + + private FileWrapperFactory fileWrapperFactory; /** + * @param fileWrapperFactory the fileWrapperFactory to set + */ + public void setFileWrapperFactory(FileWrapperFactory fileWrapperFactory) + { + this.fileWrapperFactory = fileWrapperFactory; + } + + + /** * @see net.sourceforge.squirrel_sql.fw.util.IOUtilities#closeInputStream(java.io.InputStream) */ public void closeInputStream(InputStream is) @@ -257,7 +279,8 @@ * @see net.sourceforge.squirrel_sql.fw.util.IOUtilities# downloadHttpFile(java.lang.String, int, * java.lang.String, net.sourceforge.squirrel_sql.fw.util.FileWrapper) */ - public int downloadHttpFile(URL url, FileWrapper destFile, IProxySettings proxySettings) throws IOException + public int downloadHttpFile(URL url, FileWrapper destFile, IProxySettings proxySettings) + throws IOException { BufferedInputStream is = null; HttpMethod method = null; @@ -281,11 +304,8 @@ s_log.debug("downloadHttpFile: response code was: " + resultCode); } - if (resultCode != 200) - { - throw new FileNotFoundException( - "Failed to download file from url (" + url + "): HTTP Response Code=" + resultCode); - } + if (resultCode != 200) { throw new FileNotFoundException("Failed to download file from url (" + url + + "): HTTP Response Code=" + resultCode); } InputStream mis = method.getResponseBodyAsStream(); is = new BufferedInputStream(mis); @@ -312,22 +332,24 @@ return result; } - /** - * Setup proxy configuration specified in proxySettings. This setup is skipped if: - * 1) proxySettings is null. - * 2) proxySettings.getHttpUseProxy() is false (HttpClient doesn't support SOCKS proxy) - * 3) The url's host component is in the "non-proxy" host list - * - * @param proxySettings the ProxySettings to use - * @param client the instance of HttpClient to configure - * @param url the URL of the file to be retrieved - */ + /** + * Setup proxy configuration specified in proxySettings. This setup is skipped if: 1) proxySettings is + * null. 2) proxySettings.getHttpUseProxy() is false (HttpClient doesn't support SOCKS proxy) 3) The url's + * host component is in the "non-proxy" host list + * + * @param proxySettings + * the ProxySettings to use + * @param client + * the instance of HttpClient to configure + * @param url + * the URL of the file to be retrieved + */ private void setupProxy(IProxySettings proxySettings, HttpClient client, URL url) { if (proxySettings == null) { return; } if (!proxySettings.getHttpUseProxy()) { return; } - if (proxySettings.getHttpNonProxyHosts() != null - && proxySettings.getHttpNonProxyHosts().contains(url.getHost())) { return; } + if (proxySettings.getHttpNonProxyHosts() != null + && proxySettings.getHttpNonProxyHosts().contains(url.getHost())) { return; } String proxyHost = proxySettings.getHttpProxyServer(); int proxyPort = Integer.parseInt(proxySettings.getHttpProxyPort()); @@ -342,4 +364,77 @@ } } + /** + * @see net.sourceforge.squirrel_sql.fw.util.IOUtilities#getLinesFromFile(java.lang.String, java.util.List) + */ + @Override + public List<String> getLinesFromFile(String filename, List<ScriptLineFixer> lineFixers) throws IOException + { + ArrayList<String> lines = new ArrayList<String>(); + + BufferedReader reader = new BufferedReader(new FileReader(filename)); + String line = null; + + while ((line = reader.readLine()) != null) + { + if (lineFixers != null) + { + for (ScriptLineFixer fixer : lineFixers) + { + line = fixer.fixLine(line); + } + } + lines.add(line); + } + reader.close(); + return lines; + } + + /** + * @see net.sourceforge.squirrel_sql.fw.util.IOUtilities#writeLinesToFile(java.lang.String, java.util.List) + */ + @Override + public void writeLinesToFile(String filename, List<String> lines) throws FileNotFoundException + { + PrintWriter out = new PrintWriter(new File(filename)); + for (String outline : lines) + { + out.write(outline); + out.write(NEW_LINE); + } + out.close(); + } + + /** + * @see net.sourceforge.squirrel_sql.fw.util.IOUtilities# copyResourceFromJarFile(java.lang.String, + * java.lang.String, java.lang.String) + */ + @Override + public void copyResourceFromJarFile(String jarFilename, String resourceName, String destinationFile) + throws ZipException, IOException + { + ZipFile appJar = new ZipFile(new File(jarFilename)); + Enumeration<? extends ZipEntry> entries = appJar.entries(); + while (entries.hasMoreElements()) + { + ZipEntry entry = entries.nextElement(); + String entryName = entry.getName(); + if (entryName.endsWith(resourceName)) + { + InputStream is = null; + try { + FileWrapper destinationFileWrapper = fileWrapperFactory.create(destinationFile); + is = appJar.getInputStream(entry); + copyBytesToFile(is, destinationFileWrapper); + } finally { + closeInputStream(is); + } + break; + } + } + + } + + + } Copied: trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/ScriptLineFixer.java (from rev 5913, trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/update/gui/installer/ScriptLineFixer.java) =================================================================== --- trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/ScriptLineFixer.java (rev 0) +++ trunk/sql12/fw/src/main/java/net/sourceforge/squirrel_sql/fw/util/ScriptLineFixer.java 2010-10-12 11:38:26 UTC (rev 5916) @@ -0,0 +1,36 @@ +package net.sourceforge.squirrel_sql.fw.util; + +/* + * Copyright (C) 2010 Rob Manning + * man...@us... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/** + * Interface for line fixer implementations. + */ +public interface ScriptLineFixer +{ + + /** + * Fixes the line specified, returning the "fixed" version + * + * @param line + * the line that needs to be fixed + * @return the fixed line + */ + String fixLine(String line); +} Added: trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml =================================================================== --- trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml (rev 0) +++ trunk/sql12/fw/src/main/resources/net/sourceforge/squirrel_sql/fw/util/net.sourceforge.squirrel_sql.fw.util.applicationContext.xml 2010-10-12 11:38:26 UTC (rev 5916) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> + + + <bean id="net.sourceforge.squirrel_sql.fw.util.FileWrapperFactory" + class="net.sourceforge.squirrel_sql.fw.util.FileWrapperFactoryImpl"/> + + <bean id="net.sourceforge.squirrel_sql.fw.util.IOUtilities" + class="net.sourceforge.squirrel_sql.fw.util.IOUtilitiesImpl"> + <property name="fileWrapperFactory" ref="net.sourceforge.squirrel_sql.fw.util.FileWrapperFactory" /> + </bean> + +</beans> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |