From 2d9cc1ed67901e4a95db1795ba43d1635f7820d1 Mon Sep 17 00:00:00 2001 From: "Frank Schoenheit [fs]" Date: Wed, 24 Nov 2010 11:42:56 +0100 Subject: dba34b: #i109534# don't let the query wizard display queries to select from, if the database does not support queries in queries --- wizards/com/sun/star/wizards/db/DBMetaData.java | 22 ++++++++++++++++------ wizards/com/sun/star/wizards/query/Finalizer.java | 12 ++++++------ .../com/sun/star/wizards/query/QuerySummary.java | 11 ++++++----- .../com/sun/star/wizards/query/QueryWizard.java | 4 +++- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/wizards/com/sun/star/wizards/db/DBMetaData.java b/wizards/com/sun/star/wizards/db/DBMetaData.java index 323ded34385a..cb4568c7cc7f 100644 --- a/wizards/com/sun/star/wizards/db/DBMetaData.java +++ b/wizards/com/sun/star/wizards/db/DBMetaData.java @@ -102,7 +102,7 @@ public class DBMetaData public int[] CommandTypes; public String DataSourceName; public com.sun.star.sdbc.XConnection DBConnection; - public com.sun.star.sdb.tools.XConnectionTools ConnectionTools; + private com.sun.star.sdb.tools.XConnectionTools m_connectionTools; public com.sun.star.lang.XMultiServiceFactory xMSF; public XComponent xConnectionComponent; @@ -677,7 +677,7 @@ public class DBMetaData try { this.DBConnection = _DBConnection; - this.ConnectionTools = UnoRuntime.queryInterface( XConnectionTools.class, this.DBConnection ); + this.m_connectionTools = UnoRuntime.queryInterface( XConnectionTools.class, this.DBConnection ); getDataSourceObjects(); return true; } @@ -740,7 +740,7 @@ public class DBMetaData else { xConnectionComponent = UnoRuntime.queryInterface( XComponent.class, DBConnection ); - ConnectionTools = UnoRuntime.queryInterface( XConnectionTools.class, DBConnection ); + m_connectionTools = UnoRuntime.queryInterface( XConnectionTools.class, DBConnection ); getDataSourceObjects(); } return bgetConnection; @@ -825,6 +825,16 @@ public class DBMetaData return false; } + public boolean supportsQueriesInFrom() + { + return m_connectionTools.getDataSourceMetaData().supportsQueriesInFrom(); + } + + public String suggestName( final int i_objectType, final String i_baseName ) throws IllegalArgumentException + { + return m_connectionTools.getObjectNames().suggestName( i_objectType, i_baseName ); + } + /** * inserts a Query to a datasource; There is no validation if the queryname is already existing in the datasource * @param oQuery @@ -844,7 +854,7 @@ public class DBMetaData xPSet.setPropertyValue("Command", s); XNameContainer xNameCont = UnoRuntime.queryInterface( XNameContainer.class, xQueryDefs ); - ConnectionTools.getObjectNames().checkNameForCreate(com.sun.star.sdb.CommandType.QUERY, _QueryName); + m_connectionTools.getObjectNames().checkNameForCreate(com.sun.star.sdb.CommandType.QUERY, _QueryName); xNameCont.insertByName(_QueryName, oQuery); return true; } @@ -1080,7 +1090,7 @@ public class DBMetaData } catch (com.sun.star.uno.Exception ex) { - ex.printStackTrace(); + Logger.getLogger( getClass().getName() ).log( Level.SEVERE, "error calling the error dialog", ex ); } } @@ -1095,7 +1105,7 @@ public class DBMetaData xDataSourcePropertySet = null; xWindowPeer = null; DBConnection = null; - ConnectionTools = null; + m_connectionTools = null; xMSF = null; xConnectionComponent = null; CommandObjects = null; diff --git a/wizards/com/sun/star/wizards/query/Finalizer.java b/wizards/com/sun/star/wizards/query/Finalizer.java index f60422503be3..076b4145df0b 100644 --- a/wizards/com/sun/star/wizards/query/Finalizer.java +++ b/wizards/com/sun/star/wizards/query/Finalizer.java @@ -26,15 +26,15 @@ ************************************************************************/ package com.sun.star.wizards.query; -import com.sun.star.wizards.common.*; import com.sun.star.awt.XRadioButton; import com.sun.star.awt.XTextComponent; -import com.sun.star.wizards.db.*; import com.sun.star.lang.IllegalArgumentException; -import com.sun.star.lang.XComponent; import com.sun.star.sdb.CommandType; -import com.sun.star.uno.*; -import com.sun.star.wizards.ui.*; +import com.sun.star.uno.AnyConverter; +import com.sun.star.wizards.common.HelpIds; +import com.sun.star.wizards.common.Helper; +import com.sun.star.wizards.ui.UIConsts; +import com.sun.star.wizards.ui.UnoDialog; import java.util.logging.Level; import java.util.logging.Logger; @@ -145,7 +145,7 @@ public class Finalizer { String[] sCommandNames = CurDBMetaData.getIncludedCommandNames(); sCurQueryName = resQuery + "_" + sCommandNames[0]; - sCurQueryName = CurDBMetaData.ConnectionTools.getObjectNames().suggestName(CommandType.QUERY, sCurQueryName); + sCurQueryName = CurDBMetaData.suggestName( CommandType.QUERY, sCurQueryName ); Helper.setUnoPropertyValue(UnoDialog.getModel(m_aTxtTitle), "Text", sCurQueryName); } } diff --git a/wizards/com/sun/star/wizards/query/QuerySummary.java b/wizards/com/sun/star/wizards/query/QuerySummary.java index f570970e0fe8..f246ef327db8 100644 --- a/wizards/com/sun/star/wizards/query/QuerySummary.java +++ b/wizards/com/sun/star/wizards/query/QuerySummary.java @@ -26,12 +26,13 @@ ************************************************************************/ package com.sun.star.wizards.query; +import com.sun.star.beans.PropertyValue; import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.wizards.common.*; -//import com.sun.star.wizards.ui.FilterComponent; -import com.sun.star.wizards.ui.*; -import com.sun.star.wizards.db.*; -import com.sun.star.beans.*; +import com.sun.star.wizards.common.JavaTools; +import com.sun.star.wizards.common.Resource; +import com.sun.star.wizards.db.FieldColumn; +import com.sun.star.wizards.db.QueryMetaData; +import com.sun.star.wizards.ui.FilterComponent; public class QuerySummary extends QueryMetaData { diff --git a/wizards/com/sun/star/wizards/query/QueryWizard.java b/wizards/com/sun/star/wizards/query/QueryWizard.java index a0970534d657..950c5d54cecd 100644 --- a/wizards/com/sun/star/wizards/query/QueryWizard.java +++ b/wizards/com/sun/star/wizards/query/QueryWizard.java @@ -308,7 +308,9 @@ public class QueryWizard extends DatabaseObjectWizard { try { - m_DBCommandFieldSelectio = new CommandFieldSelection(this, m_DBMetaData, 120, reslblFields, reslblSelFields, reslblTables, true, 40850); + m_DBCommandFieldSelectio = new CommandFieldSelection( + this, m_DBMetaData, 120, reslblFields, reslblSelFields, reslblTables, + m_DBMetaData.supportsQueriesInFrom(), 40850); m_DBCommandFieldSelectio.setAppendMode(true); m_DBCommandFieldSelectio.addFieldSelectionListener(new FieldSelectionListener()); m_sortingComponent = new SortingComponent(this, SOSORTING_PAGE, 95, 27, 210, 40865); -- cgit v1.2.3