Revision: 6281
http://squirrel-sql.svn.sourceforge.net/squirrel-sql/?rev=6281&view=rev
Author: wis775
Date: 2011-06-01 18:36:38 +0000 (Wed, 01 Jun 2011)
Log Message:
-----------
Source Tabs: Syntax highlighting is used for displaying the source of database objects, if the syntax plugin is installed.
Modified Paths:
--------------
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourcePanel.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourceTab.java
trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/FormattedSourceTab.java
trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractSourceTabTest.java
trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractTabTest.java
trunk/sql12/doc/src/main/resources/changes.txt
trunk/sql12/plugins/informix/src/main/java/net/sourceforge/squirrel_sql/plugins/informix/tab/InformixSourceTab.java
trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/ConstraintSourceTab.java
trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/IndexSourceTab.java
trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/OracleSourceTab.java
trunk/sql12/plugins/postgres/src/main/java/net/sourceforge/squirrel_sql/plugins/postgres/tab/PostgresSourceTab.java
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourcePanel.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourcePanel.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourcePanel.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -1,17 +1,82 @@
package net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs;
+import java.awt.BorderLayout;
import java.awt.LayoutManager;
import java.sql.PreparedStatement;
+import java.util.HashMap;
import javax.swing.JPanel;
+import javax.swing.JTextArea;
+import javax.swing.text.JTextComponent;
+import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanel;
+import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanelFactory;
import net.sourceforge.squirrel_sql.client.session.ISession;
+import net.sourceforge.squirrel_sql.client.session.SQLEntryPanelUtil;
+import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessorFactory;
abstract public class BaseSourcePanel extends JPanel {
- public BaseSourcePanel(LayoutManager manager) {
- super(manager);
+ private JTextComponent textArea;
+ private ISession session;
+
+ public BaseSourcePanel(ISession session) {
+ super(new BorderLayout());
+ setSession(session);
+ createUserInterface();
}
+ /**
+ * Create the user interface.
+ * The created {@link JTextComponent} depends on the {@link ISQLEntryPanelFactory}.
+ * This enables support for Syntax-Highlighting, if the syntax plugin is loaded.
+ */
+ protected void createUserInterface()
+ {
+
+ HashMap<String, Object> props = new HashMap<String, Object>();
+ props.put(IParserEventsProcessorFactory.class.getName(), null);
+
+ ISQLEntryPanel sqlPanel = getSession().getApplication().getSQLEntryPanelFactory().createSQLEntryPanel(getSession(), props );
+ JTextComponent textComponent = sqlPanel.getTextComponent();
+ textComponent.setEditable(false);
+ setTextArea(textComponent);
+ add(getTextArea(), BorderLayout.CENTER);
+ }
+
public abstract void load(ISession session, PreparedStatement stmt);
+
+ /**
+ * @return the textArea
+ */
+ public JTextComponent getTextArea() {
+ return textArea;
+ }
+
+ /**
+ * @param textArea the textArea to set
+ */
+ private void setTextArea(JTextComponent textArea) {
+ if(textArea == null){
+ throw new IllegalArgumentException("textArea == null");
+ }
+ this.textArea = textArea;
+ }
+
+ /**
+ * @return the session
+ */
+ public ISession getSession() {
+ return session;
+ }
+
+ /**
+ * @param session the session to set
+ */
+ private void setSession(ISession session) {
+ if(session == null){
+ throw new IllegalArgumentException("session == null");
+ }
+ this.session = session;
+ }
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourceTab.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/BaseSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -18,14 +18,12 @@
* 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.BorderLayout;
import java.awt.Component;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.fw.sql.SQLUtilities;
@@ -98,11 +96,13 @@
public Component getComponent()
{
+
+
if (_scroller == null)
{
if (_comp == null)
{
- _comp = new DefaultSourcePanel();
+ _comp = createSourcePanel();
}
_scroller = new JScrollPane(_comp);
LineNumber lineNumber = new LineNumber(_comp);
@@ -117,6 +117,7 @@
* subclass of BaseSourcePanel.
*
* @param panel
+ * @deprecated Use {@link #createSourcePanel()} as callback method.
*/
public void setSourcePanel(BaseSourcePanel panel)
{
@@ -130,6 +131,11 @@
{
throw new IllegalStateException("Null ISession");
}
+
+ if(_comp == null){
+ _comp = createSourcePanel();
+ }
+
try
{
PreparedStatement pstmt = createStatement();
@@ -148,6 +154,21 @@
}
/**
+ * Create a instance of {@link BaseSourcePanel}.
+ * Per default, a {@link DefaultSourcePanel} is used.
+ * Subclasses can use this to override the default behavior provided by the DefaultSourcePanel, with a
+ * subclass of BaseSourcePanel.
+ * @return The source panel to use.
+ */
+ protected BaseSourcePanel createSourcePanel() {
+ /*
+ * This callback method replaces the previous use of setSourcePanel, because since we use syntax highlightning, we need a session.
+ * So we need a callback for "lazy" initialization of the source pane.
+ */
+ return new DefaultSourcePanel(getSession());
+ }
+
+ /**
* Sub-classes should override this method to return a PreparedStatement which will yield the source code
* of the object returned by getDatabaseObjectInfo.
*
@@ -161,16 +182,16 @@
{
private static final long serialVersionUID = 1L;
- private JTextArea _ta;
+
- DefaultSourcePanel() {
- super(new BorderLayout());
- createUserInterface();
+ DefaultSourcePanel(ISession session) {
+ super(session);
}
+
public void load(ISession session, PreparedStatement stmt)
{
- _ta.setText("");
+ getTextArea().setText("");
ResultSet rs = null;
try
{
@@ -180,8 +201,8 @@
{
buf.append(rs.getString(1));
}
- _ta.setText(buf.toString());
- _ta.setCaretPosition(0);
+ getTextArea().setText(buf.toString());
+ getTextArea().setCaretPosition(0);
} catch (SQLException ex)
{
session.showErrorMessage(ex);
@@ -192,11 +213,5 @@
}
- private void createUserInterface()
- {
- _ta = new JTextArea();
- _ta.setEditable(false);
- add(_ta, BorderLayout.CENTER);
- }
}
}
Modified: trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/FormattedSourceTab.java
===================================================================
--- trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/FormattedSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/app/src/main/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/FormattedSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -18,13 +18,10 @@
* 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.BorderLayout;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import javax.swing.JTextArea;
-
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.fw.codereformat.CodeReformator;
import net.sourceforge.squirrel_sql.fw.codereformat.CommentSpec;
@@ -79,7 +76,6 @@
public FormattedSourceTab(String hint)
{
super(hint);
- super.setSourcePanel(new FormattedSourcePanel());
}
/**
@@ -142,23 +138,14 @@
{
private static final long serialVersionUID = 1L;
- private JTextArea _ta;
-
- FormattedSourcePanel()
- {
- super(new BorderLayout());
- _ta = new JTextArea();
- _ta.setEditable(false);
- add(_ta, BorderLayout.CENTER);
+ FormattedSourcePanel(ISession session){
+ super(session);
}
public void load(ISession session, PreparedStatement stmt)
{
- _ta.setText("");
+ getTextArea().setText("");
- // always wrap on word boundaries
- _ta.setWrapStyleWord(true);
-
ResultSet rs = null;
try
{
@@ -193,7 +180,7 @@
{
s_log.debug("Object source code before formatting: " + processedResult);
}
- _ta.setText(format(processedResult));
+ getTextArea().setText(format(processedResult));
}
else
{
@@ -201,11 +188,9 @@
{
buf.append(i18n.NO_SOURCE_AVAILABLE);
}
- _ta.setText(processedResult);
+ getTextArea().setText(processedResult);
}
- _ta.setCaretPosition(0);
- _ta.setTabSize(4);
-
+ getTextArea().setCaretPosition(0);
}
catch (Exception ex)
{
@@ -316,4 +301,12 @@
final IDatabaseObjectInfo doi = getDatabaseObjectInfo();
return new String[] { doi.getSchemaName(), doi.getSimpleName() };
}
-}
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab#createSourcePanel()
+ */
+ @Override
+ protected BaseSourcePanel createSourcePanel() {
+ return new FormattedSourcePanel(getSession());
+ }
+}
\ No newline at end of file
Modified: trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractSourceTabTest.java
===================================================================
--- trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractSourceTabTest.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractSourceTabTest.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -24,7 +24,12 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.util.HashMap;
+import javax.swing.JTextArea;
+
+import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessor;
+import net.sourceforge.squirrel_sql.client.session.parser.IParserEventsProcessorFactory;
import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo;
import net.sourceforge.squirrel_sql.fw.sql.ISQLDatabaseMetaData;
@@ -75,7 +80,13 @@
expect(mockApplication.getSessionManager()).andStubReturn(mockSessionManager);
expect(mockSessionManager.getSession(mockSessionId)).andStubReturn(mockSession);
+ expect(mockApplication.getSQLEntryPanelFactory()).andReturn(mockSQLPanelFactory);
+ HashMap<String, Object> props = new HashMap<String, Object>();
+ props.put(IParserEventsProcessorFactory.class.getName(), null);
+ expect(mockSQLPanelFactory.createSQLEntryPanel(mockSession, props)).andStubReturn(mockSQLEntryPanel);
+ expect(mockSQLEntryPanel.getTextComponent()).andStubReturn(new JTextArea());
+
expect(mockSQLConnection.prepareStatement(isA(String.class))).andStubReturn(mockPreparedStatement);
mockPreparedStatement.setString(EasyMock.anyInt(), isA(String.class));
expectLastCall().anyTimes();
@@ -85,8 +96,8 @@
mockPreparedStatement.close();
mockHelper.replayAll();
+ classUnderTest.setSession(mockSession);
classUnderTest.getComponent();
- classUnderTest.setSession(mockSession);
classUnderTest.setDatabaseObjectInfo(mockDatabaseObjectInfo);
classUnderTest.select();
mockHelper.verifyAll();
Modified: trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractTabTest.java
===================================================================
--- trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractTabTest.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/app/src/test/java/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/AbstractTabTest.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -22,6 +22,8 @@
import net.sourceforge.squirrel_sql.BaseSQuirreLJUnit4TestCase;
import net.sourceforge.squirrel_sql.client.IApplication;
+import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanel;
+import net.sourceforge.squirrel_sql.client.session.ISQLEntryPanelFactory;
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.client.session.SessionManager;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
@@ -42,6 +44,10 @@
protected ISQLConnection mockSQLConnection = mockHelper.createMock("mockSQLConnection", ISQLConnection.class);
protected IApplication mockApplication = mockHelper.createMock("mockApplication", IApplication.class);
+
+ protected ISQLEntryPanelFactory mockSQLPanelFactory = mockHelper.createMock("mockSQLPanelFactory", ISQLEntryPanelFactory.class);
+
+ protected ISQLEntryPanel mockSQLEntryPanel = mockHelper.createMock("mockSQLEntryPanel", ISQLEntryPanel.class);
protected IIdentifier mockSessionId = mockHelper.createMock(IIdentifier.class);
Modified: trunk/sql12/doc/src/main/resources/changes.txt
===================================================================
--- trunk/sql12/doc/src/main/resources/changes.txt 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/doc/src/main/resources/changes.txt 2011-06-01 18:36:38 UTC (rev 6281)
@@ -7,6 +7,9 @@
Enhancements:
+Source Tabs:
+ Syntax highlighting is used for displaying the source of database objects, if the syntax plugin is installed.
+
Query Builder / New features in Graph plugin:
The Query Builder is part of the Graph plugin. That means besides the former default and Zoom/Print modes
Query Builder is a new mode of the Graph Plugin. Any existing Graph can be switched to the new mode.
Modified: trunk/sql12/plugins/informix/src/main/java/net/sourceforge/squirrel_sql/plugins/informix/tab/InformixSourceTab.java
===================================================================
--- trunk/sql12/plugins/informix/src/main/java/net/sourceforge/squirrel_sql/plugins/informix/tab/InformixSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/plugins/informix/src/main/java/net/sourceforge/squirrel_sql/plugins/informix/tab/InformixSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -18,13 +18,10 @@
* 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.BorderLayout;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import javax.swing.JTextArea;
-
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourcePanel;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab;
@@ -65,25 +62,19 @@
public InformixSourceTab(String hint) {
super(hint);
- super.setSourcePanel(new InformixSourcePanel());
}
private final class InformixSourcePanel extends BaseSourcePanel
{
private static final long serialVersionUID = 1L;
- private JTextArea _ta;
-
- InformixSourcePanel() {
- super(new BorderLayout());
- createUserInterface();
+ InformixSourcePanel(ISession session) {
+ super(session);
}
public void load(ISession session, PreparedStatement stmt)
{
- _ta.setText("");
- _ta.setWrapStyleWord(true);
-
+ getTextArea().setText("");
ResultSet rs = null;
try
{
@@ -128,22 +119,22 @@
{
s_log.debug("View source before formatting: " + trimmedSource);
}
- _ta.setText(formatter.reformat(trimmedSource));
+ getTextArea().setText(formatter.reformat(trimmedSource));
} else if (sourceType == TRIGGER_TYPE)
{
if (s_log.isDebugEnabled())
{
s_log.debug("Trigger source before formatting: " + trimmedSource);
}
- _ta.setText(formatter.reformat(trimmedSource));
+ getTextArea().setText(formatter.reformat(trimmedSource));
} else
{
// Skip formatting for Stored Procedures - They can have
// comments embedded in them, and I'm presently not sure
// how the formatter handles this.
- _ta.setText(trimmedSource);
+ getTextArea().setText(trimmedSource);
}
- _ta.setCaretPosition(0);
+ getTextArea().setCaretPosition(0);
} catch (SQLException ex)
{
session.showErrorMessage(ex);
@@ -153,13 +144,13 @@
}
}
-
- private void createUserInterface()
- {
- _ta = new JTextArea();
- _ta.setEditable(false);
- add(_ta, BorderLayout.CENTER);
- }
}
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab#createSourcePanel()
+ */
+ @Override
+ protected BaseSourcePanel createSourcePanel() {
+ return new InformixSourcePanel(getSession());
+ }
}
Modified: trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/ConstraintSourceTab.java
===================================================================
--- trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/ConstraintSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/ConstraintSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -17,13 +17,10 @@
*/
package net.sourceforge.squirrel_sql.plugins.oracle.tab;
-import java.awt.BorderLayout;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
-import javax.swing.JTextArea;
-
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourcePanel;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab;
@@ -65,7 +62,7 @@
public ConstraintSourceTab() {
// i18n[oracle.showConstraintSource=Show constraint source]
super(s_stringMgr.getString("oracle.showConstraintSource"));
- super.setSourcePanel(new ConstraintSourcePanel());
+
}
@Override
@@ -86,18 +83,12 @@
private final class ConstraintSourcePanel extends BaseSourcePanel {
private static final long serialVersionUID = 1L;
- private JTextArea textArea;
- ConstraintSourcePanel() {
- super(new BorderLayout());
- textArea = new JTextArea();
- textArea.setEditable(false);
- add(textArea, BorderLayout.CENTER);
+ ConstraintSourcePanel(ISession session) {
+ super(session);
}
public void load(ISession session, PreparedStatement stmt) {
- // always wrap on word boundaries
- textArea.setWrapStyleWord(true);
ConstraintSourceBuilder csb = new ConstraintSourceBuilder(session);
ResultSet rs = null;
@@ -120,9 +111,9 @@
csb.buildConstraintSource(ci);
if (csb.getConstraintSource() != null) {
- textArea.setText(csb.getConstraintSource());
+ getTextArea().setText(csb.getConstraintSource());
} else {
- textArea.setText("Source NOT available");
+ getTextArea().setText("Source NOT available");
}
}
} catch (Exception ex) {
@@ -136,4 +127,12 @@
}
}
}
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab#createSourcePanel()
+ */
+ @Override
+ protected BaseSourcePanel createSourcePanel() {
+ return new ConstraintSourcePanel(getSession());
+ }
}
Modified: trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/IndexSourceTab.java
===================================================================
--- trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/IndexSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/IndexSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -18,13 +18,8 @@
*/
package net.sourceforge.squirrel_sql.plugins.oracle.tab;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-import net.sourceforge.squirrel_sql.client.session.ISession;
-import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab;
+import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.FormattedSourceTab;
import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo;
-import net.sourceforge.squirrel_sql.fw.sql.ISQLConnection;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;
@@ -34,7 +29,7 @@
* @author Stefan Willinger
*
*/
-public class IndexSourceTab extends BaseSourceTab {
+public class IndexSourceTab extends FormattedSourceTab {
private static final StringManager s_stringMgr =
StringManagerFactory.getStringManager(IndexSourceTab.class);
@@ -49,15 +44,22 @@
super(s_stringMgr.getString("oracle.showIndexSource"));
}
- protected PreparedStatement createStatement() throws SQLException
- {
- final ISession session = getSession();
- final IDatabaseObjectInfo doi = getDatabaseObjectInfo();
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.FormattedSourceTab#getSqlStatement()
+ */
+ @Override
+ protected String getSqlStatement() {
+ return SQL;
+ }
- ISQLConnection conn = session.getSQLConnection();
- PreparedStatement pstmt = conn.prepareStatement(SQL);
- pstmt.setString(1, doi.getSimpleName());
- pstmt.setString(2, doi.getSchemaName());
- return pstmt;
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.FormattedSourceTab#getBindValues()
+ */
+ @Override
+ protected String[] getBindValues() {
+ IDatabaseObjectInfo doi = getDatabaseObjectInfo();
+ return new String[]{doi.getSimpleName(), doi.getSchemaName()};
}
+
+
}
Modified: trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/OracleSourceTab.java
===================================================================
--- trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/OracleSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/plugins/oracle/src/main/java/net/sourceforge/squirrel_sql/plugins/oracle/tab/OracleSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -17,15 +17,12 @@
* 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.BorderLayout;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
-import javax.swing.JTextArea;
-
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourcePanel;
import net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab;
@@ -72,25 +69,18 @@
public OracleSourceTab(String hint)
{
super(hint);
- super.setSourcePanel(new OracleSourcePanel());
}
private final class OracleSourcePanel extends BaseSourcePanel
{
private static final long serialVersionUID = 7855991042669454322L;
- private JTextArea _ta;
-
- OracleSourcePanel()
- {
- super(new BorderLayout());
- createUserInterface();
+ OracleSourcePanel(ISession session){
+ super(session);
}
public void load(ISession session, PreparedStatement stmt)
{
- _ta.setText("");
- _ta.setWrapStyleWord(true);
ResultSet rs = null;
try
{
@@ -133,8 +123,8 @@
}
source = formatter.reformat(buf.toString());
}
- _ta.setText(source);
- _ta.setCaretPosition(0);
+ getTextArea().setText(source);
+ getTextArea().setCaretPosition(0);
}
catch (SQLException ex)
{
@@ -146,12 +136,14 @@
}
- private void createUserInterface()
- {
- _ta = new JTextArea();
- _ta.setEditable(false);
- add(_ta, BorderLayout.CENTER);
- }
+
}
-
+
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab#createSourcePanel()
+ */
+ @Override
+ protected BaseSourcePanel createSourcePanel() {
+ return new OracleSourcePanel(getSession());
+ }
}
Modified: trunk/sql12/plugins/postgres/src/main/java/net/sourceforge/squirrel_sql/plugins/postgres/tab/PostgresSourceTab.java
===================================================================
--- trunk/sql12/plugins/postgres/src/main/java/net/sourceforge/squirrel_sql/plugins/postgres/tab/PostgresSourceTab.java 2011-06-01 18:03:44 UTC (rev 6280)
+++ trunk/sql12/plugins/postgres/src/main/java/net/sourceforge/squirrel_sql/plugins/postgres/tab/PostgresSourceTab.java 2011-06-01 18:36:38 UTC (rev 6281)
@@ -18,7 +18,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.BorderLayout;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -60,24 +59,19 @@
public PostgresSourceTab(String hint) {
super(hint);
- super.setSourcePanel(new PostgresSourcePanel());
}
private final class PostgresSourcePanel extends BaseSourcePanel
{
private static final long serialVersionUID = 1L;
- private JTextArea _ta;
-
- PostgresSourcePanel() {
- super(new BorderLayout());
- createUserInterface();
+ PostgresSourcePanel(ISession session) {
+ super(session);
}
public void load(ISession session, PreparedStatement stmt)
{
- _ta.setText("");
- _ta.setWrapStyleWord(true);
+ getTextArea().setText("");
ResultSet rs = null;
try
{
@@ -109,12 +103,12 @@
{
s_log.debug("View source before formatting: " + buf.toString());
}
- _ta.setText(formatter.reformat(buf.toString()));
+ getTextArea().setText(formatter.reformat(buf.toString()));
} else
{
- _ta.setText(buf.toString());
+ getTextArea().setText(buf.toString());
}
- _ta.setCaretPosition(0);
+ getTextArea().setCaretPosition(0);
} catch (SQLException ex)
{
session.showErrorMessage(ex);
@@ -125,12 +119,12 @@
}
- private void createUserInterface()
- {
- _ta = new JTextArea();
- _ta.setEditable(false);
- add(_ta, BorderLayout.CENTER);
- }
}
-
+ /**
+ * @see net.sourceforge.squirrel_sql.client.session.mainpanel.objecttree.tabs.BaseSourceTab#createSourcePanel()
+ */
+ @Override
+ protected BaseSourcePanel createSourcePanel() {
+ return new PostgresSourcePanel(getSession());
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|