Revision: 6565
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6565&view=rev
Author: gerdwagner
Date: 2012-01-31 23:02:47 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
Hibernate Plugin:
- Redesign of HQL result display. Focus is now on displaying result objects instead of Hibernate generated SQL.
- User can choose if he wants to use the Session's JDBC connection or the one configured with Hibernate.
Modified Paths:
--------------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ISession.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/Session.java
trunk/sql12/doc/src/main/resources/changes.txt
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/HibernateConnection.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.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/HibernateTabPanel.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/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/ReflectionCaller.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/SquirrelHibernateServerException.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HqlQueryErrorUtil.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/ObjectResultTab.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/QueryListCreator.java
trunk/sql12/plugins/hibernate/src/main/resources/doc/readme.html
trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.properties
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/viewobjects/I18NStrings.properties
Added Paths:
-----------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/JdbcConnectionData.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HqlResultPanel.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HqlResultPanelManager.java
trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HibernateSQLUtil.java
trunk/sql12/plugins/hibernate/src/main/resources/doc/session.png
trunk/sql12/plugins/hibernate/src/main/resources/net/sourceforge/squirrel_sql/plugins/hibernate/images/sqlcopy.png
Removed Paths:
-------------
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/SQLPanelManager.java
trunk/sql12/plugins/hibernate/src/main/resources/doc/session.jpg
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ISession.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ISession.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/ISession.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -394,4 +394,7 @@
boolean isSessionWidgetActive();
IMainPanelTab getSelectedMainTab();
+
+ JdbcConnectionData getJdbcData();
+
}
Added: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/JdbcConnectionData.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/JdbcConnectionData.java (rev 0)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/JdbcConnectionData.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -0,0 +1,37 @@
+package net.sourceforge.squirrel_sql.client.session;
+
+public class JdbcConnectionData
+{
+ private String _driverClassName;
+ private String _url;
+ private String _user;
+ private String _password;
+
+ public JdbcConnectionData(String driverClassName, String url, String user, String password)
+ {
+ _driverClassName = driverClassName;
+ _url = url;
+ _user = user;
+ _password = password;
+ }
+
+ public String getDriverClassName()
+ {
+ return _driverClassName;
+ }
+
+ public String getUrl()
+ {
+ return _url;
+ }
+
+ public String getUser()
+ {
+ return _user;
+ }
+
+ public String getPassword()
+ {
+ return _password;
+ }
+}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/Session.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/Session.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/Session.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -59,15 +59,7 @@
import net.sourceforge.squirrel_sql.client.session.schemainfo.SchemaInfo;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
import net.sourceforge.squirrel_sql.fw.persist.ValidationException;
-import net.sourceforge.squirrel_sql.fw.sql.IQueryTokenizer;
-import net.sourceforge.squirrel_sql.fw.sql.ISQLConnection;
-import net.sourceforge.squirrel_sql.fw.sql.ISQLDatabaseMetaData;
-import net.sourceforge.squirrel_sql.fw.sql.ISQLDriver;
-import net.sourceforge.squirrel_sql.fw.sql.QueryTokenizer;
-import net.sourceforge.squirrel_sql.fw.sql.SQLConnection;
-import net.sourceforge.squirrel_sql.fw.sql.SQLConnectionState;
-import net.sourceforge.squirrel_sql.fw.sql.SQLDatabaseMetaData;
-import net.sourceforge.squirrel_sql.fw.sql.TokenizerSessPropsInteractions;
+import net.sourceforge.squirrel_sql.fw.sql.*;
import net.sourceforge.squirrel_sql.fw.util.BaseException;
import net.sourceforge.squirrel_sql.fw.util.DefaultExceptionFormatter;
import net.sourceforge.squirrel_sql.fw.util.ExceptionFormatter;
@@ -534,6 +526,16 @@
}
}
+ @Override
+ public JdbcConnectionData getJdbcData()
+ {
+ IIdentifier driverID = _alias.getDriverIdentifier();
+ ISQLDriver sqlDriver = _app.getDataCache().getDriver(driverID);
+
+ return new JdbcConnectionData(sqlDriver.getDriverClassName(), _alias.getUrl(), _user, _password);
+ }
+
+
/**
* Reconnect to the database.
*/
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2012-01-31 23:02:47 UTC (rev 6565)
@@ -4,12 +4,18 @@
${squirrelsql.changelog.header}
+Not yet released, available in our Subversion repository and in future snapshots and releases.
+===============================================================================================
+
Enhancements:
+Hibernate Plugin:
+ - Redesign of HQL result display. Focus is now on displaying result objects instead of Hibernate generated SQL.
+ - User can choose if he wants to use the Session's JDBC connection or the one configured with Hibernate.
Syntax Plugin:
- Duplicate line (ctrl+d) now duplicates the line at cursor if no text is selected
- and duplicates the selection if a selection exists.
+ Duplicate line (ctrl+d) now duplicates the line at cursor if no text is selected
+ and duplicates the selection if a selection exists.
Hibernate Plugin:
On Windows the class path's files defined in the Hibernate configuration would remain locked even
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 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HQLPanelController.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -1,26 +1,20 @@
package net.sourceforge.squirrel_sql.plugins.hibernate;
import net.sourceforge.squirrel_sql.client.session.ISession;
-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;
import net.sourceforge.squirrel_sql.fw.sql.IQueryTokenizer;
import net.sourceforge.squirrel_sql.fw.sql.QueryTokenizer;
-import net.sourceforge.squirrel_sql.plugins.hibernate.util.HqlQueryErrorUtil;
+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.KeyEvent;
-import java.util.ArrayList;
public class HQLPanelController
{
private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(HQLPanelController.class);
- private static ILogger s_log = LoggerController.createLogger(HQLPanelController.class);
-
private IHibernateTabController _hibernateTabController;
private ISession _sess;
private HibernatePluginResources _resource;
@@ -91,47 +85,11 @@
while (qt.hasQuery())
{
String hqlQuery = qt.nextQuery();
- doSQL(hqlQuery);
-
- if (_hibernateTabController.isDisplayObjects())
- {
- doObjects(hqlQuery);
- }
+ _hibernateTabController.displayObjects(_con, hqlQuery);
}
}
- private boolean doSQL(String hqlQuery)
- {
- ArrayList<String> sqls;
-
- long begin = System.currentTimeMillis();
- long duration;
- try
- {
- sqls = _con.generateSQL(hqlQuery);
- duration = System.currentTimeMillis() - begin;
-
- _hibernateTabController.displaySqls(sqls);
-
- // i18n[HQLPanelController.hqlToSqlSuccess=Generated {0} SQL(s) in {1} milliseconds.]
- _sess.getApplication().getMessageHandler().showMessage(s_stringMgr.getString("SQLPanelController.hqlToSqlSuccess", sqls.size(), duration));
- return true;
- }
- catch (Throwable e)
- {
- HqlQueryErrorUtil.handleHqlQueryError(e, _sess, true);
- return false;
- }
- }
-
- private void doObjects(String hqlQuery)
- {
- _hibernateTabController.displayObjects(_con, hqlQuery);
- }
-
-
-
public void setConnection(HibernateConnection con)
{
_con = con;
Modified: 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 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateConnection.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -1,5 +1,6 @@
package net.sourceforge.squirrel_sql.plugins.hibernate;
+import net.sourceforge.squirrel_sql.client.session.JdbcConnectionData;
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;
@@ -163,30 +164,42 @@
}
}
- public HqlQueryResult createQueryList(String hqlQuery, int sqlNbrRowsToShow)
+ public HqlQueryResult createQueryList(String hqlQuery, int sqlNbrRowsToShow, JdbcConnectionData jdbcData)
{
+ if (_process)
+ {
+ SecurityManager old = System.getSecurityManager();
+
+ try
+ {
+ System.setSecurityManager(_rmiSecurityManager);
+ return callCreateQueryList(hqlQuery, sqlNbrRowsToShow, jdbcData);
+ }
+ finally
+ {
+ System.setSecurityManager(old);
+ }
+ }
+ else
+ {
+ return callCreateQueryList(hqlQuery, sqlNbrRowsToShow, jdbcData);
+ }
+ }
+
+ private HqlQueryResult callCreateQueryList(String hqlQuery, int sqlNbrRowsToShow, JdbcConnectionData jdbcData)
+ {
try
{
- if (_process)
+ if (null == jdbcData)
{
- SecurityManager old =System.getSecurityManager();
-
- try
- {
- System.setSecurityManager(_rmiSecurityManager);
- return _hibernateServerConnection.createQueryList(hqlQuery, sqlNbrRowsToShow);
- }
- finally
- {
- System.setSecurityManager(old);
- }
+ return _hibernateServerConnection.createQueryList(hqlQuery, sqlNbrRowsToShow);
}
else
{
- return _hibernateServerConnection.createQueryList(hqlQuery, sqlNbrRowsToShow);
+ return _hibernateServerConnection.createQueryList(hqlQuery, sqlNbrRowsToShow, jdbcData.getDriverClassName(), jdbcData.getUrl(), jdbcData.getUser(), jdbcData.getPassword());
}
}
- catch (Exception e)
+ catch (RemoteException e)
{
throw new RuntimeException(e);
}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernatePluginResources.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -24,6 +24,7 @@
String JAR_IMAGE = "jar";
String JAR_DIRECTORY_IMAGE = "jardirectory";
- }
+ String SQL_COPY_IMAGE = "sqlcopy";
+ }
}
Deleted: 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 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateSQLPanel.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -1,105 +0,0 @@
-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;
-
-import javax.swing.*;
-import java.awt.*;
-
-public class HibernateSQLPanel extends JPanel
-{
- private static final StringManager s_stringMgr =
- StringManagerFactory.getStringManager(HibernateSQLPanel.class);
-
- JCheckBox _chkAppendSql;
- JButton _btnFormatSql;
- JCheckBox _chkAlwaysFormatSql;
- JCheckBox _chkAlwaysExecuteSql;
- JCheckBox _chkAlwaysViewObjects;
- JCheckBox _chkLimitObjectCount;
- IntegerField _nbrLimitRows;
-
- JTabbedPane _tabResult_code;
-
-
- public HibernateSQLPanel(JComponent textComp, SQLResultExecuterPanel resultExecuterPanel, JTabbedPane tabbedPane)
- {
-
- setLayout(new BorderLayout());
- _tabResult_code = new JTabbedPane();//UIFactory.getInstance().createTabbedPane();
-
- // i18n[HibernateSQLPanel.code=SQL code]
- _tabResult_code.addTab(s_stringMgr.getString("HibernateSQLPanel.code"), textComp);
-
- // i18n[HibernateSQLPanel.result=SQL result]
- _tabResult_code.addTab(s_stringMgr.getString("HibernateSQLPanel.result"), resultExecuterPanel);
-
- _tabResult_code.addTab(s_stringMgr.getString("HibernateSQLPanel.objects"), tabbedPane);
-
- add(_tabResult_code, BorderLayout.CENTER);
-
- add(createBottomPanel(), BorderLayout.SOUTH);
- }
-
- private JPanel createBottomPanel()
- {
- JPanel ret = new JPanel(new GridBagLayout());
-
- GridBagConstraints gbc;
-
- gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
- // i18n[HibernateSQLPanel.sql=SQL:]
- ret.add(new JLabel(s_stringMgr.getString("HibernateSQLPanel.sql")), gbc);
-
- gbc = new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
- // i18n[HibernateSQLPanel.appendSql=Append]
- _chkAppendSql = new JCheckBox(s_stringMgr.getString("HibernateSQLPanel.appendSql"));
- ret.add(_chkAppendSql, gbc);
-
-
- gbc = new GridBagConstraints(2,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
- // i18n[HibernateSQLPanel.format=Format]
- _btnFormatSql = new JButton(s_stringMgr.getString("HibernateSQLPanel.format"));
- ret.add(_btnFormatSql, gbc);
-
-
- gbc = new GridBagConstraints(3,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
- // i18n[HibernateSQLPanel.alwaysFormat=Always format]
- _chkAlwaysFormatSql = new JCheckBox(s_stringMgr.getString("HibernateSQLPanel.alwaysFormat"));
- ret.add(_chkAlwaysFormatSql, gbc);
-
-
- gbc = new GridBagConstraints(4,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
- // i18n[HibernateSQLPanel.Execute=Execute SQL]
- _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,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(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);
-
-
- return ret;
-
- }
-}
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 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabController.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -3,25 +3,25 @@
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.*;
+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 net.sourceforge.squirrel_sql.fw.xml.XMLBeanReader;
import net.sourceforge.squirrel_sql.fw.xml.XMLException;
-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.server.HibernateConfiguration;
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.ArrayList;
+import java.util.HashMap;
import java.util.prefs.Preferences;
public class HibernateTabController implements IMainPanelTab, IHibernateTabController, IHibernateConnectionProvider
@@ -42,7 +42,7 @@
private HibernatePluginResources _resource;
private HQLPanelController _hqlPanelController;
private ArrayList<ConnectionListener> _listeners = new ArrayList<ConnectionListener>();
- private SQLPanelManager _sqlPanelManager;
+ private HqlResultPanelManager _hqlResultPanelManager;
private MappedObjectPanelManager _mappedObjectsPanelManager;
public HibernateTabController(ISession session, HibernatePlugin plugin, HibernatePluginResources resource)
@@ -54,10 +54,10 @@
_plugin = plugin;
_hqlPanelController = new HQLPanelController(this, _session, resource);
- _sqlPanelManager = new SQLPanelManager(_session, resource);
+ _hqlResultPanelManager = new HqlResultPanelManager(_session, resource);
_mappedObjectsPanelManager = new MappedObjectPanelManager(this, _session, resource);
- _panel = new HibernateTabPanel(_mappedObjectsPanelManager.getComponent(), _hqlPanelController.getComponent(), _sqlPanelManager.getComponent(), _resource);
+ _panel = new HibernateTabPanel(_mappedObjectsPanelManager.getComponent(), _hqlPanelController.getComponent(), _hqlResultPanelManager.getComponent(), _resource);
_panel.btnConnected.setIcon(resource.getIcon(HibernatePluginResources.IKeys.DISCONNECTED_IMAGE));
@@ -316,23 +316,13 @@
_panel.addToToolbar(btn);
}
- @Override
- public void displaySqls(ArrayList<String> sqls)
- {
- _sqlPanelManager.displaySqls(sqls);
- }
@Override
public void displayObjects(HibernateConnection con, String hqlQuery)
{
- _sqlPanelManager.displayObjects(con, hqlQuery);
+ _hqlResultPanelManager.displayObjects(con, hqlQuery);
}
- @Override
- public boolean isDisplayObjects()
- {
- return _sqlPanelManager.isDisplayObjects();
- }
public IHibernateConnectionProvider getHibernateConnectionProvider()
{
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabPanel.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabPanel.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HibernateTabPanel.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -27,7 +27,7 @@
private HibernatePluginResources _resource;
- public HibernateTabPanel(JComponent mappedObjectComp, JComponent hqlTextComp, JComponent sqlTextComp, HibernatePluginResources resource)
+ public HibernateTabPanel(JComponent mappedObjectComp, JComponent hqlTextComp, JComponent hqlResultComp, HibernatePluginResources resource)
{
_resource = resource;
setLayout(new GridBagLayout());
@@ -38,7 +38,7 @@
_toolbar = createToolbar();
add(_toolbar, gbc);
- _splitHqlSql = new JSplitPane(JSplitPane.VERTICAL_SPLIT, hqlTextComp, sqlTextComp);
+ _splitHqlSql = new JSplitPane(JSplitPane.VERTICAL_SPLIT, hqlTextComp, hqlResultComp);
_tabObjectsHql = new JTabbedPane();
Copied: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HqlResultPanel.java (from rev 6557, 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/HqlResultPanel.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HqlResultPanel.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -0,0 +1,92 @@
+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 javax.swing.*;
+import java.awt.*;
+
+public class HqlResultPanel extends JPanel
+{
+ private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(HqlResultPanel.class);
+
+
+ JCheckBox chkLimitObjectCount;
+ IntegerField nbrLimitRows;
+ JComboBox cboUseConnectionOf;
+
+
+ public HqlResultPanel(JTabbedPane hqlResultTabbedPane, HibernatePluginResources resource)
+ {
+
+ setLayout(new BorderLayout());
+ add(hqlResultTabbedPane);
+
+ add(hqlResultTabbedPane, BorderLayout.CENTER);
+
+ add(createBottomPanel(resource), BorderLayout.SOUTH);
+ }
+
+ private JPanel createBottomPanel(HibernatePluginResources resource)
+ {
+ JPanel ret = new JPanel(new GridBagLayout());
+
+ GridBagConstraints gbc;
+
+ gbc = new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,0),0,0);
+ ret.add(new JLabel(s_stringMgr.getString("HibernateSQLPanel.UseConnectionOf")), gbc);
+
+ gbc = new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
+ cboUseConnectionOf = new JComboBox(UseConnectionOf.values());
+ ret.add(cboUseConnectionOf, gbc);
+
+ gbc = new GridBagConstraints(2,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,25,5,0),0,0);
+ chkLimitObjectCount = new JCheckBox(s_stringMgr.getString("HibernateSQLPanel.LimitRows_new"));
+ ret.add(chkLimitObjectCount, gbc);
+
+ gbc = new GridBagConstraints(3,0,1,1,0,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,3,5,5),0,0);
+ nbrLimitRows = new IntegerField();
+ ret.add(nbrLimitRows, gbc);
+ nbrLimitRows.setColumns(8);
+
+
+ gbc = new GridBagConstraints(4,0,1,1,1,0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,5,5,5),0,0);
+ ret.add(new JPanel(), gbc);
+
+ return ret;
+
+ }
+
+ public static enum UseConnectionOf
+ {
+ OF_SESSION(s_stringMgr.getString("HibernateSQLPanel.UseConnectionOf.Session")),
+ OF_HIBBERNAT_CONFIG(s_stringMgr.getString("HibernateSQLPanel.UseConnectionOf.HibernateConfig")),;
+ private String _text;
+
+ UseConnectionOf(String text)
+ {
+ _text = text;
+ }
+
+
+ @Override
+ public String toString()
+ {
+ return _text;
+ }
+
+ public static UseConnectionOf getByOrdinal(int ordinal)
+ {
+ for (UseConnectionOf val : values())
+ {
+ if(val.ordinal() == ordinal)
+ {
+ return val;
+ }
+ }
+
+ throw new IllegalArgumentException("Invalid ordinla " + ordinal);
+ }
+ }
+}
Copied: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HqlResultPanelManager.java (from rev 6557, 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/HqlResultPanelManager.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/HqlResultPanelManager.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -0,0 +1,132 @@
+package net.sourceforge.squirrel_sql.plugins.hibernate;
+
+import net.sourceforge.squirrel_sql.client.session.EntryPanelManager;
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.event.SessionAdapter;
+import net.sourceforge.squirrel_sql.client.session.event.SessionEvent;
+import net.sourceforge.squirrel_sql.plugins.hibernate.viewobjects.ObjectResultController;
+
+import javax.swing.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.prefs.Preferences;
+
+public class HqlResultPanelManager extends EntryPanelManager
+{
+ 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 static final String PREF_KEY_USE_CONNECTION_OF = "SquirrelSQL.hibernate.useConnectionOf";
+
+ private HqlResultPanel _hqlResultPanel;
+ private ObjectResultController _objectResultController;
+
+
+ public HqlResultPanelManager(final ISession session, HibernatePluginResources resource)
+ {
+ super(session);
+ init(null, null);
+
+ _objectResultController = new ObjectResultController(session, resource);
+ _hqlResultPanel = new HqlResultPanel(_objectResultController.getPanel(), resource);
+
+
+ session.getApplication().getSessionManager().addSessionListener(
+ new SessionAdapter()
+ {
+
+ public void sessionClosing(SessionEvent evt)
+ {
+ onSessionClosing();
+ session.getApplication().getSessionManager().removeSessionListener(this);
+ }
+ }
+ );
+
+ _hqlResultPanel.chkLimitObjectCount.setSelected(Preferences.userRoot().getBoolean(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT, false));
+ _hqlResultPanel.nbrLimitRows.setInt(Preferences.userRoot().getInt(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT_VAL, 100));
+ _hqlResultPanel.nbrLimitRows.setEnabled(_hqlResultPanel.chkLimitObjectCount.isSelected());
+
+
+ int ordinalToSelect = Preferences.userRoot().getInt(PREF_KEY_USE_CONNECTION_OF, HqlResultPanel.UseConnectionOf.OF_HIBBERNAT_CONFIG.ordinal());
+ _hqlResultPanel.cboUseConnectionOf.setSelectedItem(HqlResultPanel.UseConnectionOf.getByOrdinal(ordinalToSelect));
+
+
+ _hqlResultPanel.chkLimitObjectCount.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ onLimitRowsChanged();
+ }
+ });
+
+ _hqlResultPanel.cboUseConnectionOf.addItemListener(new ItemListener()
+ {
+ @Override
+ public void itemStateChanged(ItemEvent e)
+ {
+ onUseConnectionOfChanged(e);
+ }
+ });
+ }
+
+ private void onUseConnectionOfChanged(ItemEvent e)
+ {
+ if(ItemEvent.DESELECTED == e.getStateChange())
+ {
+ return;
+ }
+
+ HqlResultPanel.UseConnectionOf seleted = (HqlResultPanel.UseConnectionOf) _hqlResultPanel.cboUseConnectionOf.getSelectedItem();
+ Preferences.userRoot().putInt(PREF_KEY_USE_CONNECTION_OF, seleted.ordinal());
+ }
+
+ private void onLimitRowsChanged()
+ {
+ if(_hqlResultPanel.chkLimitObjectCount.isSelected())
+ {
+ LimitObjectCountDialog locc = new LimitObjectCountDialog(getSession().getApplication().getMainFrame());
+ _hqlResultPanel.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);
+ }
+
+ _hqlResultPanel.nbrLimitRows.setEnabled(_hqlResultPanel.chkLimitObjectCount.isSelected());
+ }
+
+
+ private void onSessionClosing()
+ {
+ // Omitted intentionally
+ //Preferences.userRoot().putBoolean(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT, _hibernateSQLPanel.chkLimitObjectCount.isSelected());
+
+ Preferences.userRoot().putInt(PREF_KEY_VIEW_LIMIT_OBJECT_COUNT_VAL, _hqlResultPanel.nbrLimitRows.getInt());
+ }
+
+
+ public JComponent getComponent()
+ {
+ return _hqlResultPanel;
+ }
+
+ public void displayObjects(HibernateConnection con, String hqlQuery)
+ {
+ boolean limitObjectCount = _hqlResultPanel.chkLimitObjectCount.isSelected();
+ int limitObjectCountVal = _hqlResultPanel.nbrLimitRows.getInt();
+
+ boolean useSessionConnection =
+ _hqlResultPanel.cboUseConnectionOf.getSelectedItem() == HqlResultPanel.UseConnectionOf.OF_SESSION;
+
+
+ _objectResultController.displayObjects(con, hqlQuery, limitObjectCount, limitObjectCountVal, useSessionConnection);
+ }
+}
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 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/IHibernateTabController.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -2,19 +2,12 @@
import javax.swing.*;
-import java.util.ArrayList;
public interface IHibernateTabController
{
-
void addToToolbar(AbstractAction action);
- void displaySqls(ArrayList<String> sqls);
-
void displayObjects(HibernateConnection con, String hqlQuery);
- boolean isDisplayObjects();
-
IHibernateConnectionProvider getHibernateConnectionProvider();
-
}
Deleted: 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 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/SQLPanelManager.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -1,259 +0,0 @@
-package net.sourceforge.squirrel_sql.plugins.hibernate;
-
-import net.sourceforge.squirrel_sql.client.session.EntryPanelManager;
-import net.sourceforge.squirrel_sql.client.session.ISession;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.SQLResultExecuterPanel;
-import net.sourceforge.squirrel_sql.client.session.event.SessionAdapter;
-import net.sourceforge.squirrel_sql.client.session.event.SessionEvent;
-import net.sourceforge.squirrel_sql.fw.codereformat.CommentSpec;
-import net.sourceforge.squirrel_sql.fw.codereformat.CodeReformator;
-import net.sourceforge.squirrel_sql.plugins.hibernate.viewobjects.ObjectResultController;
-
-import javax.swing.*;
-import java.util.*;
-import java.util.prefs.Preferences;
-import java.awt.*;
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-
-public class SQLPanelManager extends EntryPanelManager
-{
- private static final String PREF_KEY_APPEND_SQL = "SquirrelSQL.hibernate.sqlAppendSql";
- 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;
- private ObjectResultController _objectResultController;
-
-
- public SQLPanelManager(final ISession session, HibernatePluginResources resource)
- {
- super(session);
- init(null, null);
-
- _resultExecuterPanel = new SQLResultExecuterPanel(session);
- _objectResultController = new ObjectResultController(session, resource);
- _hibernateSQLPanel = new HibernateSQLPanel(super.getComponent(), _resultExecuterPanel, _objectResultController.getPanel());
-
-
- session.getApplication().getSessionManager().addSessionListener(
- new SessionAdapter()
- {
-
- public void sessionClosing(SessionEvent evt)
- {
- onSessionClosing();
- session.getApplication().getSessionManager().removeSessionListener(this);
- }
- }
- );
-
- _hibernateSQLPanel._btnFormatSql.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- onFormatSql();
- }
- });
-
-
- _hibernateSQLPanel._chkAppendSql.setSelected(Preferences.userRoot().getBoolean(PREF_KEY_APPEND_SQL, false));
- _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())
- {
- getEntryPanel().setText(format(getEntryPanel().getText()));
- }
- }
-
- private void onSessionClosing()
- {
- Preferences.userRoot().putBoolean(PREF_KEY_APPEND_SQL, _hibernateSQLPanel._chkAppendSql.isSelected());
- 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());
- }
-
-
- public JComponent getComponent()
- {
- return _hibernateSQLPanel;
- }
-
- public void displaySqls(ArrayList<String> sqls)
- {
- String allSqls = createAllSqlsString(sqls);
-
-
- if (_hibernateSQLPanel._chkAlwaysExecuteSql.isSelected())
- {
- _hibernateSQLPanel._tabResult_code.setSelectedComponent(_resultExecuterPanel);
- displaySqlResult(allSqls);
- }
- else
- {
- _hibernateSQLPanel._tabResult_code.setSelectedComponent(super.getComponent());
- }
- displaySqlCode(allSqls);
- }
-
- public void displayObjects(HibernateConnection con, String hqlQuery)
- {
- if (_hibernateSQLPanel._chkAlwaysViewObjects.isSelected())
- {
- boolean limitObjectCount = _hibernateSQLPanel._chkLimitObjectCount.isSelected();
- int limitObjectCountVal = _hibernateSQLPanel._nbrLimitRows.getInt();
-
- _objectResultController.displayObjects(con, hqlQuery, limitObjectCount, limitObjectCountVal);
- _hibernateSQLPanel._tabResult_code.setSelectedComponent(_objectResultController.getPanel());
- }
- }
-
-
- private void displaySqlResult(String allSqls)
- {
- _resultExecuterPanel.executeSQL(allSqls);
- }
-
- private void displaySqlCode(String allSqls)
- {
-
- if (_hibernateSQLPanel._chkAlwaysFormatSql.isSelected())
- {
- allSqls = format(allSqls);
- }
-
-
- if (_hibernateSQLPanel._chkAppendSql.isSelected())
- {
- getEntryPanel().appendText(allSqls);
-
- scrollEntryPlanel(allSqls);
-
- }
- else
- {
- getEntryPanel().setText(allSqls, false);
- }
- }
-
- private String createAllSqlsString(ArrayList<String> sqls)
- {
- String allSqls = "";
-
- String sep = getSession().getQueryTokenizer().getSQLStatementSeparator();
-
- for (String sql : sqls)
- {
- allSqls += sql;
-
- if (1 < sep.length())
- {
- allSqls += "\n";
- }
- allSqls += (sep + "\n\n");
- }
- return allSqls;
- }
-
- private String format(String sqls)
- {
- CommentSpec[] commentSpecs =
- new CommentSpec[]
- {
- new CommentSpec("/*", "*/"),
- new CommentSpec("--", "\n")
- };
-
- String statementSep = getSession().getQueryTokenizer().getSQLStatementSeparator();
-
- CodeReformator cr = new CodeReformator(statementSep, commentSpecs);
-
- sqls = cr.reformat(sqls) + "\n";
- return sqls;
- }
-
-
- private void scrollEntryPlanel(String allSqls)
- {
- getEntryPanel().getTextComponent().setCaretPosition(getEntryPanel().getText().length() - allSqls.length());
- Point p = getEntryPanel().getTextComponent().getCaret().getMagicCaretPosition();
- if (p != null)
- {
- getEntryPanel().getTextComponent().scrollRectToVisible(new Rectangle(p.x, p.y, 1, 100));
- }
- }
-
-
- public boolean isDisplayObjects()
- {
- return _hibernateSQLPanel._chkAlwaysViewObjects.isSelected(); //To change body of created methods use File | Settings | File Templates.
- }
-}
Modified: 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/HibernateServerConnection.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateServerConnection.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -24,4 +24,6 @@
HqlQueryResult createQueryList(String hqlQuery, int sqlNbrRowsToShow)
throws RemoteException;
+ HqlQueryResult createQueryList(String hqlQuery, int sqlNbrRowsToShow, String driverClassName, String url, String user, String password)
+ throws RemoteException;
}
Modified: 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/HibernateServerConnectionImpl.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/HibernateServerConnectionImpl.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -5,6 +5,7 @@
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
+import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.*;
@@ -14,13 +15,14 @@
private ClassLoader _cl;
private boolean _server;
-// private ArrayList<MappedClassInfoData> _mappedClassInfoData;
-// private HashSet<String> _mappedClassNames;
-
private HashMap<String, MappedClassInfoData> _infoDataByClassName;
- private ReflectionCaller m_rcHibernateSession;
+ private ReflectionCaller _rcHibernateSession;
+ private String _driverClassName;
+ private String _url;
+ private String _user;
+ private String _password;
HibernateServerConnectionImpl(Object sessionFactoryImpl, ClassLoader cl, boolean isServer) throws RemoteException
@@ -193,6 +195,39 @@
@Override
public HqlQueryResult createQueryList(String hqlQuery, int sqlNbrRowsToShow)
{
+ if (null != _driverClassName)
+ {
+ _driverClassName = null;
+ _url = null;
+ _user = null;
+ _password = null;
+ _rcHibernateSession = null;
+ }
+
+ return _createResultList(hqlQuery, sqlNbrRowsToShow);
+ }
+
+
+ @Override
+ public HqlQueryResult createQueryList(String hqlQuery, int sqlNbrRowsToShow, String driverClassName, String url, String user, String password) throws RemoteException
+ {
+ if(null == _driverClassName)
+ {
+ _driverClassName = driverClassName;
+ _url = url;
+ _user = user;
+ _password = password;
+
+ _rcHibernateSession = null;
+ }
+
+
+ return _createResultList(hqlQuery, sqlNbrRowsToShow);
+ }
+
+
+ private HqlQueryResult _createResultList(String hqlQuery, int sqlNbrRowsToShow)
+ {
HqlQueryResult ret = new HqlQueryResult();
List queryResList = null;
@@ -240,13 +275,13 @@
ret.putSessionAdminException("Exception occurced during call of Session.clear()", prepareTransport(t));
}
- if (null != queryResList)
- {
- ret.setQueryResultList(
- new ObjectSubstituteFactory(_cl).replaceObjectsWithSubstitutes(queryResList, _infoDataByClassName));
- }
+ if (null != queryResList)
+ {
+ ret.setQueryResultList(
+ new ObjectSubstituteFactory(_cl).replaceObjectsWithSubstitutes(queryResList, _infoDataByClassName));
+ }
- return ret;
+ return ret;
}
private Throwable prepareTransport(Throwable t)
@@ -265,20 +300,57 @@
pw.flush();
sw.flush();
- String messageIncludingOriginalStackTrace = "Exception occured on Hibernate Server Process: " + t.getMessage() + "\n" + sw.toString();
+ String messageIncludingOriginalStackTrace = "Exception occured on Hibernate Server Process: " + deepestThrowable.getMessage() + "\n";
- return new SquirrelHibernateServerException(messageIncludingOriginalStackTrace, deepestThrowable.getMessage(), deepestThrowable.getClass().getName());
+ String stackTraceString = sw.toString();
+ String deepestToString = deepestThrowable.toString();
+ if(("" + deepestThrowable.getMessage()).equals(deepestToString) || stackTraceString.startsWith(deepestToString))
+ {
+ messageIncludingOriginalStackTrace += stackTraceString;
+ }
+ else
+ {
+ messageIncludingOriginalStackTrace += ( deepestToString + "\n" + stackTraceString);
+ }
+
+
+ return new SquirrelHibernateServerException(messageIncludingOriginalStackTrace, deepestThrowable.getMessage(), deepestToString, deepestThrowable.getClass().getName());
}
private ReflectionCaller getRcHibernateSession()
{
- if(null == m_rcHibernateSession)
+ try
{
- m_rcHibernateSession = new ReflectionCaller(_sessionFactoryImpl).callMethod("openSession");
+ if(null == _rcHibernateSession)
+ {
+ if (null == _driverClassName)
+ {
+ _rcHibernateSession = new ReflectionCaller(_sessionFactoryImpl).callMethod("openSession");
+ }
+ else
+ {
+ ReflectionCaller driver = new ReflectionCaller().getClass(_driverClassName, _cl).newInstance();
+
+ Properties props = new Properties();
+ props.put("user", _user);
+ props.put("password", _password);
+
+ ReflectionCaller con = driver.callMethod("connect", _url, props);
+
+ RCParam rcParam = new RCParam();
+ rcParam.add(con.getCallee(), Connection.class);
+
+ _rcHibernateSession = new ReflectionCaller(_sessionFactoryImpl).callMethod("openSession", rcParam);
+ }
+ }
+
+ return _rcHibernateSession;
}
-
- return m_rcHibernateSession;
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
}
Modified: 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/ReflectionCaller.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/ReflectionCaller.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -48,6 +48,20 @@
}
+ public ReflectionCaller newInstance()
+ {
+ try
+ {
+ return new ReflectionCaller(getCalleeClass().newInstance());
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+
List<ReflectionCaller> callArrayMethod(String methodName)
{
try
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/SquirrelHibernateServerException.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/SquirrelHibernateServerException.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/server/SquirrelHibernateServerException.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -11,23 +11,29 @@
public class SquirrelHibernateServerException extends RuntimeException implements Serializable
{
private String _originalMessage;
+ private String _exceptionToString;
private String _originalExceptionClassName;
- public SquirrelHibernateServerException(String messageIncludingOriginalStackTrace, String originalMessage, String originalExceptionClassName)
+ public SquirrelHibernateServerException(String messageIncludingOriginalStackTrace, String originalMessage, String exceptionToString, String originalExceptionClassName)
{
super(messageIncludingOriginalStackTrace);
_originalMessage = originalMessage;
+ _exceptionToString = exceptionToString;
_originalExceptionClassName = originalExceptionClassName;
}
- @Override
- public String getMessage()
+ public String getOriginalExceptionClassName()
{
- return _originalMessage;
+ return _originalExceptionClassName;
}
- public String getOriginalExceptionClassName()
+ public String getExceptionToString()
{
- return _originalExceptionClassName;
+ return _exceptionToString;
}
+
+ public String getOriginalMessage()
+ {
+ return _originalMessage;
+ }
}
Added: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HibernateSQLUtil.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HibernateSQLUtil.java (rev 0)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HibernateSQLUtil.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -0,0 +1,46 @@
+package net.sourceforge.squirrel_sql.plugins.hibernate.util;
+
+import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.fw.codereformat.CodeReformator;
+import net.sourceforge.squirrel_sql.fw.codereformat.CommentSpec;
+
+import java.util.ArrayList;
+
+public class HibernateSQLUtil
+{
+ public static String createAllSqlsString(ArrayList<String> sqls, ISession session)
+ {
+ String allSqls = "";
+
+ String sep = session.getQueryTokenizer().getSQLStatementSeparator();
+
+ for (String sql : sqls)
+ {
+ allSqls += sql;
+
+ if (1 < sep.length())
+ {
+ allSqls += "\n";
+ }
+ allSqls += (sep + "\n\n");
+ }
+ return format(allSqls, session).trim();
+ }
+
+ private static String format(String sqls, ISession session)
+ {
+ CommentSpec[] commentSpecs =
+ new CommentSpec[]
+ {
+ new CommentSpec("/*", "*/"),
+ new CommentSpec("--", "\n")
+ };
+
+ String statementSep = session.getQueryTokenizer().getSQLStatementSeparator();
+
+ CodeReformator cr = new CodeReformator(statementSep, commentSpecs);
+
+ sqls = cr.reformat(sqls) + "\n";
+ return sqls;
+ }
+}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HqlQueryErrorUtil.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HqlQueryErrorUtil.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/util/HqlQueryErrorUtil.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -23,7 +23,15 @@
{
if (t instanceof SquirrelHibernateServerException)
{
- ret = t.getMessage();
+ SquirrelHibernateServerException serverException = (SquirrelHibernateServerException) t;
+
+ ret = serverException.getOriginalMessage();
+
+ if(false == serverException.getOriginalMessage().equals(serverException.getExceptionToString()))
+ {
+ ret += "\n" + serverException.getExceptionToString();
+ }
+
}
else
{
Modified: 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/ObjectResultController.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ObjectResultController.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -39,9 +39,8 @@
return _objectResultTabbedPane;
}
- public void displayObjects(HibernateConnection con, String hqlQuery, boolean limitObjectCount, int limitObjectCountVal)
+ public void displayObjects(HibernateConnection con, String hqlQuery, boolean limitObjectCount, int limitObjectCountVal, boolean useSessionConnection)
{
-
int maxNumResults = -1;
if (limitObjectCount)
{
@@ -69,7 +68,7 @@
WaitPanel waitPanel = new WaitPanel(hqlQuery, _resource, waitPanelListener);
_objectResultTabbedPane.addTab(waitPanel.getTitle(), waitPanel);
_objectResultTabbedPane.setSelectedComponent(waitPanel);
- new QueryListCreator(queryListCreatorListener, hqlQuery, maxNumResults, con, _session, waitPanel).execute();
+ new QueryListCreator(queryListCreatorListener, hqlQuery, maxNumResults, useSessionConnection, con, _session, waitPanel).execute();
}
Modified: trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ObjectResultTab.java
===================================================================
--- trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ObjectResultTab.java 2012-01-30 20:16:49 UTC (rev 6564)
+++ trunk/sql12/plugins/hibernate/src/main/java/net/sourceforge/squirrel_sql/plugins/hibernate/viewobjects/ObjectResultTab.java 2012-01-31 23:02:47 UTC (rev 6565)
@@ -1,5 +1,7 @@
package net.sourceforge.squirrel_sql.plugins.hibernate.viewobjects;
+import net.sourceforge.squirrel_sql.fw.util.StringManager;
+import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
import net.sourceforge.squirrel_sql.plugins.hibernate.HibernatePluginResources;
import javax.swing.*;
@@ -9,10 +11,15 @@
public class ObjectResultTab extends JPanel
{
+ private static final StringManager s_stringMgr =
+ StringManagerFactory.getStringManager(ObjectResultTab.class);
+
+
JLabel lblHqlQuery;
JButton btnClose;
JTree treeTypes;
JPanel pnlResults;
+ JButton btnCopySql;
public ObjectResultTab(HibernatePluginResources resource)
{
@@ -52,13 +59,24 @@
lblHqlQuery = new JLabel();
ret.add(lblHqlQuery, BorderLayout.CENTER);
+ ret.add(createButtonPanel(resource), BorderLayout.EAST);
+
+ return ret;
+ }
+
+ private JPanel createButtonPanel(HibernatePluginResources resource)
+ {
+ JPanel ret = new JPanel(new GridLayout(1,2,3,2));
+
+ btnCopySql = new JButton(resource.getIcon(HibernatePluginResources.IKeys.SQL_COPY_IMAGE));
+ btnCopySql.setToolTipText(s_stringMgr.getString("ObjectResultTab.CopySqlToClip"));
+ btnCopySql.setBorder(BorderFactory.createRaisedBevelBorder());
+ ret.add(btnCopySql);
+
btnClose = new JButton(resource.getIcon(HibernatePluginResources...
[truncated message content] |