diff options
author | Kurt Zenker <kz@openoffice.org> | 2006-07-06 13:15:42 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2006-07-06 13:15:42 +0000 |
commit | d34605dc1f9aacd58ffec108f65f4a567ab45239 (patch) | |
tree | c9e248a58848e5eae14b5601f2e337e1a2dd3439 /wizards/com/sun | |
parent | ac92380af786392004e679284a376aafa3dbad94 (diff) |
INTEGRATION: CWS dbwizardpp4 (1.8.28); FILE MERGED
2006/07/03 10:35:16 bc 1.8.28.2: #i66894#Grouping now again possible in QueryWizard
2006/06/22 08:20:28 bc 1.8.28.1: #i45673# Fieldcolumns now differentiate between Fieldname and DisplayfieldName
Diffstat (limited to 'wizards/com/sun')
-rw-r--r-- | wizards/com/sun/star/wizards/db/QueryMetaData.java | 168 |
1 files changed, 77 insertions, 91 deletions
diff --git a/wizards/com/sun/star/wizards/db/QueryMetaData.java b/wizards/com/sun/star/wizards/db/QueryMetaData.java index 8c89c57e22bc..5637bb12bc34 100644 --- a/wizards/com/sun/star/wizards/db/QueryMetaData.java +++ b/wizards/com/sun/star/wizards/db/QueryMetaData.java @@ -4,9 +4,9 @@ * * $RCSfile: QueryMetaData.java,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: vg $ $Date: 2006-04-07 12:36:15 $ + * last change: $Author: kz $ $Date: 2006-07-06 14:15:42 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -43,13 +43,11 @@ import com.sun.star.wizards.common.*; public class QueryMetaData extends CommandMetaData { - public Vector QueryFields; FieldColumn CurFieldColumn; public String Command; Vector CommandNames; public PropertyValue[][] FilterConditions = new PropertyValue[][] {}; public PropertyValue[][] GroupByFilterConditions = new PropertyValue[][] {}; - public String[] FieldTitles = new String[] {}; public String[] UniqueAggregateFieldNames = new String[]{}; public int Type = QueryType.SODETAILQUERY; @@ -61,13 +59,10 @@ public class QueryMetaData extends CommandMetaData { public QueryMetaData(XMultiServiceFactory xMSF, Locale CharLocale, NumberFormatter oNumberFormatter) { super(xMSF, CharLocale, oNumberFormatter); - QueryFields = new Vector(0); } public QueryMetaData(XMultiServiceFactory _xMSF) { super(_xMSF); - QueryFields = new Vector(0); - // FieldColumn(CommandMetaData oCommandMetaData, String FieldName, boolean bgetDefaultValue){ } public void setFilterConditions(PropertyValue[][] _FilterConditions) { @@ -86,57 +81,87 @@ public class QueryMetaData extends CommandMetaData { return this.GroupByFilterConditions; } - public Vector getQueryFields() { - return QueryFields; - } - void removeQueryField() { +// public void addFieldColumn(String _FieldName, String _sCommandName){ +// FieldColumn oFieldColumn = getFieldColumn(_FieldName, _sCommandName); +// if (oFieldColumn == null){ +// FieldColumn[] LocFieldColumns = new FieldColumn[FieldColumns.length + 1]; +// System.arraycopy(FieldColumns, 0, LocFieldColumns, 0, FieldColumns.length); +// LocFieldColumns[FieldColumns.length] = new FieldColumn(this, _FieldName, _sCommandName); +// FieldColumns = LocFieldColumns; +// } +// } + + public void addSeveralFieldColumns(String[] _FieldNames, String _sCommandName){ + Vector oToBeAddedFieldColumns = new Vector(); + for (int i = 0; i < _FieldNames.length; i++){ + FieldColumn oFieldColumn = getFieldColumn(_FieldNames[i], _sCommandName); + if (oFieldColumn == null){ + oToBeAddedFieldColumns.add( new FieldColumn(this, _FieldNames[i], _sCommandName, false)); + } + } + if (oToBeAddedFieldColumns.size() > 0){ + int nOldFieldCount = FieldColumns.length; + FieldColumn[] LocFieldColumns = new FieldColumn[nOldFieldCount + oToBeAddedFieldColumns.size()]; + System.arraycopy(FieldColumns, 0, LocFieldColumns, 0, nOldFieldCount); + for (int i = 0; i < oToBeAddedFieldColumns.size(); i++){ + LocFieldColumns[nOldFieldCount + i] = (FieldColumn) oToBeAddedFieldColumns.elementAt(i); + } + FieldColumns = LocFieldColumns; + } } - public void setFieldNames(String[] _FieldNames, XNameAccess _xColumns) { - int FieldCount = _FieldNames.length; - FieldNames = new String[FieldCount]; - // FieldTitles = new String[FieldCount]; - QueryFields.removeAllElements(); - for (int i = 0; i < FieldCount; i++) { - CurFieldColumn = new FieldColumn(this,_xColumns, _FieldNames[i] ); - QueryFields.add(QueryFields.size(), CurFieldColumn); - FieldNames[i] = _FieldNames[i]; + public void reorderFieldColumns(String[] _sDisplayFieldNames){ + Vector numericfieldsvector = new java.util.Vector(); + FieldColumn[] LocFieldColumns = new FieldColumn[FieldColumns.length]; + for (int i = 0; i < _sDisplayFieldNames.length; i++){ + FieldColumn LocFieldColumn = this.getFieldColumnByDisplayName(_sDisplayFieldNames[i]); + LocFieldColumns[i] = LocFieldColumn; } + System.arraycopy(LocFieldColumns, 0, FieldColumns, 0, LocFieldColumns.length); } - public void setFieldNames(String[] _FieldNames){ //, String _CommandName) { - int FieldCount = _FieldNames.length; - FieldNames = new String[FieldCount]; - // FieldTitles = new String[FieldCount]; - QueryFields.removeAllElements(); - for (int i = 0; i < FieldCount; i++) { - CurFieldColumn = new FieldColumn(this, _FieldNames[i]); //, _CommandName); - QueryFields.add(QueryFields.size(), CurFieldColumn); - FieldNames[i] = _FieldNames[i]; - if (FieldTitleSet != null){ - if (FieldTitleSet.containsKey(FieldNames[i])){ - CurFieldColumn.AliasName = (String) FieldTitleSet.get(FieldNames[i]); - if (CurFieldColumn.AliasName == null){ - CurFieldColumn.AliasName = _FieldNames[i]; - FieldTitleSet.put(FieldNames[i], _FieldNames[i]); + public void removeSeveralFieldColumnsByDisplayFieldName(String[] _DisplayFieldNames){ + Vector oRemainingFieldColumns = new Vector(); + int a = 0; + for (int n = 0; n < FieldColumns.length; n++){ + String sDisplayFieldName = FieldColumns[n].DisplayFieldName; + if (!(JavaTools.FieldInList(_DisplayFieldNames, sDisplayFieldName) > -1)){ + oRemainingFieldColumns.add(FieldColumns[n]); + } + } + FieldColumns = new FieldColumn[oRemainingFieldColumns.size()]; + oRemainingFieldColumns.toArray(FieldColumns); } + + public void removeFieldColumn(String _sFieldName, String _sCommandName){ + FieldColumn oFieldColumn = getFieldColumn(_sFieldName, _sCommandName); + int a = 0; + if (oFieldColumn != null){ + FieldColumn[] LocFieldColumns = new FieldColumn[FieldColumns.length -1]; + for (int i = 0; i < FieldColumns.length;i++){ + if (!FieldColumns[i].FieldName.equals(_sFieldName)) + if (!FieldColumns[i].CommandName.equals(_sCommandName)){ + LocFieldColumns[a] = FieldColumns[i]; + a++; } } + FieldColumns = LocFieldColumns; } } + public String[] getIncludedCommandNames() { FieldColumn CurQueryField; CommandNames = new Vector(1); String CurCommandName; int SearchIndex; - for (int i = 0; i < QueryFields.size(); i++) { - CurQueryField = (FieldColumn) QueryFields.elementAt(i); + for (int i = 0; i < FieldColumns.length; i++) { + CurQueryField = FieldColumns[i]; CurCommandName = CurQueryField.getCommandName(); if (!CommandNames.contains(CurCommandName)) CommandNames.addElement(CurCommandName); @@ -166,46 +191,33 @@ public class QueryMetaData extends CommandMetaData { return sIncludedCommandNames; } - public String[] getAllFieldNames() { - return AllFieldNames; + public String[] getFieldNamesOfCommand(String _sCommandName){ + CommandObject oTable = getTableByName(_sCommandName); + return oTable.xColumns.getElementNames(); + } - public void setAllIncludedFieldNames(boolean _bAppendMode) { + public void initializeFieldTitleSet(boolean _bAppendMode) { try { this.getIncludedCommandNames(); if (FieldTitleSet == null) FieldTitleSet = new HashMap(); for (int i = 0; i < CommandNames.size(); i++) { - CommandObject otable = getTableByName((String) CommandNames.elementAt(i)); - String[] LocFieldNames = otable.xColumns.getElementNames(); + CommandObject oTable = getTableByName((String) CommandNames.elementAt(i)); + String sTableName = oTable.Name; + String[] LocFieldNames = oTable.xColumns.getElementNames(); for (int a = 0; a < LocFieldNames.length; a++) { - String CurFieldDisplayString = ""; - if (_bAppendMode) - CurFieldDisplayString = ((String) CommandNames.elementAt(i)) + "." + LocFieldNames[a]; - else - CurFieldDisplayString = LocFieldNames[a]; - if (!FieldTitleSet.containsKey(CurFieldDisplayString)) - FieldTitleSet.put(CurFieldDisplayString, null); + String sDisplayFieldName = FieldColumn.composeDisplayFieldName(LocFieldNames[a], sTableName); + if (!FieldTitleSet.containsKey(sDisplayFieldName)) + FieldTitleSet.put(sDisplayFieldName, LocFieldNames[a]); } } - FieldTitleSet.keySet().toArray(this.AllFieldNames); } catch (Exception exception) { exception.printStackTrace(System.out); } } - public FieldColumn getFieldColumnByDisplayName(String _DisplayFieldName) { - FieldColumn CurFieldColumn; - for (int i = 0; i < QueryFields.size(); i++) { - CurFieldColumn = (FieldColumn) QueryFields.elementAt(i); - if (CurFieldColumn.DisplayFieldName.equals(_DisplayFieldName)) - return CurFieldColumn; - } - return null; - } - - public String[] getUniqueAggregateFieldNames(){ Vector UniqueAggregateFieldVector = new Vector(0); for (int i = 0; i < AggregateFieldNames.length; i++) { @@ -219,46 +231,20 @@ public class QueryMetaData extends CommandMetaData { public boolean hasNumericalFields() { - FieldColumn CurQueryField = null; - for (int i = 0; i < QueryFields.size(); i++) { - CurQueryField = (FieldColumn) QueryFields.elementAt(i); - if (CurQueryField.bIsNumberFormat) + for (int i = 0; i < FieldColumns.length; i++) { + if (FieldColumns[i].bIsNumberFormat) return true; } return false; } - public void setfieldtitles() { - FieldTitles = new String[FieldNames.length]; - for (int i = 0; i < FieldNames.length; i++) { - if (this.FieldTitleSet.containsKey(FieldNames[i])) { - String curvalue = (String) this.FieldTitleSet.get(FieldNames[i]); - if ((curvalue == null) || (curvalue.equals(FieldNames[i]))) - curvalue = FieldNames[i]; - else { - CurFieldColumn = getFieldColumnByDisplayName(FieldNames[i]); - CurFieldColumn.AliasName = (String) curvalue; - } - FieldTitles[i] = curvalue; - } - } - } - public int getAggregateIndex(String _FieldName){ + public int getAggregateIndex(String _DisplayFieldName){ int iAggregate = -1; if (Type == QueryType.SOSUMMARYQUERY) - iAggregate = JavaTools.FieldInTable(AggregateFieldNames, _FieldName); + iAggregate = JavaTools.FieldInTable(AggregateFieldNames, _DisplayFieldName); return iAggregate; } - - public String getFieldName(String _FieldTitle) { - int NameIndex = JavaTools.FieldInList(this.FieldTitles, _FieldTitle); - if (NameIndex > -1) - return FieldNames[NameIndex]; - else - return null; - } - } |