1*a1b4a26bSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*a1b4a26bSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*a1b4a26bSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*a1b4a26bSAndrew Rist * distributed with this work for additional information 6*a1b4a26bSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*a1b4a26bSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*a1b4a26bSAndrew Rist * "License"); you may not use this file except in compliance 9*a1b4a26bSAndrew Rist * with the License. You may obtain a copy of the License at 10*a1b4a26bSAndrew Rist * 11*a1b4a26bSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*a1b4a26bSAndrew Rist * 13*a1b4a26bSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*a1b4a26bSAndrew Rist * software distributed under the License is distributed on an 15*a1b4a26bSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*a1b4a26bSAndrew Rist * KIND, either express or implied. See the License for the 17*a1b4a26bSAndrew Rist * specific language governing permissions and limitations 18*a1b4a26bSAndrew Rist * under the License. 19*a1b4a26bSAndrew Rist * 20*a1b4a26bSAndrew Rist *************************************************************/ 21*a1b4a26bSAndrew Rist 22*a1b4a26bSAndrew Rist 23cdf0e10cSrcweir package com.sun.star.wizards.report; 24cdf0e10cSrcweir 25cdf0e10cSrcweir // import java.util.Vector; 26cdf0e10cSrcweir import com.sun.star.awt.TextEvent; 27cdf0e10cSrcweir import com.sun.star.awt.VclWindowPeerAttribute; 28cdf0e10cSrcweir import com.sun.star.awt.XTextListener; 29cdf0e10cSrcweir import com.sun.star.beans.PropertyValue; 30cdf0e10cSrcweir 31cdf0e10cSrcweir import com.sun.star.container.XContentEnumerationAccess; 32cdf0e10cSrcweir import com.sun.star.deployment.XPackageInformationProvider; 33cdf0e10cSrcweir import com.sun.star.lang.EventObject; 34cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory; 35cdf0e10cSrcweir import com.sun.star.logging.XLogger; 36cdf0e10cSrcweir import com.sun.star.logging.XLoggerPool; 37cdf0e10cSrcweir import com.sun.star.sdb.CommandType; 38cdf0e10cSrcweir 39cdf0e10cSrcweir import com.sun.star.uno.AnyConverter; 40cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 41cdf0e10cSrcweir import com.sun.star.uno.XComponentContext; 42cdf0e10cSrcweir 43cdf0e10cSrcweir import com.sun.star.logging.LogLevel; 44cdf0e10cSrcweir import com.sun.star.wizards.common.Helper; 45cdf0e10cSrcweir import com.sun.star.wizards.common.JavaTools; 46cdf0e10cSrcweir import com.sun.star.wizards.common.Resource; 47cdf0e10cSrcweir import com.sun.star.wizards.common.SystemDialog; 48cdf0e10cSrcweir import com.sun.star.wizards.common.PropertyNames; 49cdf0e10cSrcweir import com.sun.star.wizards.db.DBMetaData; 50cdf0e10cSrcweir import com.sun.star.wizards.db.DatabaseObjectWizard; 51cdf0e10cSrcweir import com.sun.star.wizards.db.RecordParser; 52cdf0e10cSrcweir import com.sun.star.wizards.db.SQLQueryComposer; 53cdf0e10cSrcweir import com.sun.star.wizards.ui.CommandFieldSelection; 54cdf0e10cSrcweir import com.sun.star.wizards.ui.FieldSelection; 55cdf0e10cSrcweir import com.sun.star.wizards.ui.SortingComponent; 56cdf0e10cSrcweir import com.sun.star.wizards.ui.TitlesComponent; 57cdf0e10cSrcweir import com.sun.star.wizards.ui.UIConsts; 58cdf0e10cSrcweir import com.sun.star.wizards.ui.UnoDialog; 59cdf0e10cSrcweir import com.sun.star.wizards.ui.XCompletion; 60cdf0e10cSrcweir import java.lang.reflect.Method; 61cdf0e10cSrcweir import java.net.URI; 62cdf0e10cSrcweir import java.net.URL; 63cdf0e10cSrcweir import java.net.URLClassLoader; 64cdf0e10cSrcweir import java.util.Map; 65cdf0e10cSrcweir 66cdf0e10cSrcweir public class ReportWizard extends DatabaseObjectWizard implements XTextListener, XCompletion 67cdf0e10cSrcweir { 68cdf0e10cSrcweir 69cdf0e10cSrcweir protected FieldSelection CurGroupFieldSelection; 70cdf0e10cSrcweir private SortingComponent CurSortingComponent; 71cdf0e10cSrcweir private TitlesComponent CurTitlesComponent; 72cdf0e10cSrcweir private CommandFieldSelection CurDBCommandFieldSelection; 73cdf0e10cSrcweir private GroupFieldHandler CurGroupFieldHandler; 74cdf0e10cSrcweir private ReportLayouter CurReportLayouter; 75cdf0e10cSrcweir private ReportFinalizer CurReportFinalizer; 76cdf0e10cSrcweir private int nReportMode = ReportFinalizer.SOCREATEDOCUMENT; 77cdf0e10cSrcweir private String m_sReportName = PropertyNames.EMPTY_STRING; 78cdf0e10cSrcweir protected static final String SOREPORTFORMNAME = "ReportSource"; 79cdf0e10cSrcweir private static final int SOMAINPAGE = 1; 80cdf0e10cSrcweir private static final int SOTITLEPAGE = 2; 81cdf0e10cSrcweir protected static final int SOGROUPPAGE = 3; 82cdf0e10cSrcweir private static final int SOSORTPAGE = 4; 83cdf0e10cSrcweir protected static final int SOTEMPLATEPAGE = 5; 84cdf0e10cSrcweir protected static final int SOSTOREPAGE = 6; 85cdf0e10cSrcweir private IReportDocument m_reportDocument; 86cdf0e10cSrcweir private static String sMsgWizardName; 87cdf0e10cSrcweir private static String slblFields; 88cdf0e10cSrcweir private static String slblSelFields; 89cdf0e10cSrcweir private static String sShowBinaryFields; 90cdf0e10cSrcweir private String[] WizardHeaderText = new String[6]; 91cdf0e10cSrcweir private static String slblColumnTitles; 92cdf0e10cSrcweir private static String slblColumnNames; 93cdf0e10cSrcweir private static String slblTables; 94cdf0e10cSrcweir protected static boolean bCloseDocument; 95cdf0e10cSrcweir private boolean bHasEscapeProcessing = true; 96cdf0e10cSrcweir ReportWizard(XMultiServiceFactory i_serviceFactory, final PropertyValue[] i_wizardContext)97cdf0e10cSrcweir public ReportWizard(XMultiServiceFactory i_serviceFactory, final PropertyValue[] i_wizardContext) 98cdf0e10cSrcweir { 99cdf0e10cSrcweir super(i_serviceFactory, 34320, i_wizardContext); 100cdf0e10cSrcweir super.addResourceHandler("Report Wizard", "dbw"); 101cdf0e10cSrcweir if (getReportResources(false)) 102cdf0e10cSrcweir { 103cdf0e10cSrcweir Helper.setUnoPropertyValues(xDialogModel, 104cdf0e10cSrcweir new String[] 105cdf0e10cSrcweir { 106cdf0e10cSrcweir PropertyNames.PROPERTY_HEIGHT, 107cdf0e10cSrcweir PropertyNames.PROPERTY_MOVEABLE, 108cdf0e10cSrcweir PropertyNames.PROPERTY_NAME, 109cdf0e10cSrcweir PropertyNames.PROPERTY_POSITION_X, 110cdf0e10cSrcweir PropertyNames.PROPERTY_POSITION_Y, 111cdf0e10cSrcweir PropertyNames.PROPERTY_STEP, 112cdf0e10cSrcweir PropertyNames.PROPERTY_TABINDEX, 113cdf0e10cSrcweir PropertyNames.PROPERTY_TITLE, 114cdf0e10cSrcweir PropertyNames.PROPERTY_WIDTH 115cdf0e10cSrcweir }, 116cdf0e10cSrcweir new Object[] 117cdf0e10cSrcweir { 118cdf0e10cSrcweir Integer.valueOf(210), 119cdf0e10cSrcweir Boolean.TRUE, 120cdf0e10cSrcweir "DialogReport", 121cdf0e10cSrcweir 102, 122cdf0e10cSrcweir 41, 123cdf0e10cSrcweir 1, 124cdf0e10cSrcweir new Short((short) 0), 125cdf0e10cSrcweir sMsgWizardName, 126cdf0e10cSrcweir 310 127cdf0e10cSrcweir }); 128cdf0e10cSrcweir drawNaviBar(); 129cdf0e10cSrcweir setRightPaneHeaders(this.WizardHeaderText); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir } 132cdf0e10cSrcweir enterStep(int nOldStep, int nNewStep)133cdf0e10cSrcweir protected void enterStep(int nOldStep, int nNewStep) 134cdf0e10cSrcweir { 135cdf0e10cSrcweir if ((nOldStep >= SOTEMPLATEPAGE) && (nNewStep < SOTEMPLATEPAGE)) 136cdf0e10cSrcweir { 137cdf0e10cSrcweir // CurReportDocument.getDoc().oTextSectionHandler.removeTextSectionbyName("RecordSection"); 138cdf0e10cSrcweir // CurReportDocument.getDoc().oTextTableHandler.removeTextTablebyName("Tbl_RecordSection"); 139cdf0e10cSrcweir m_reportDocument.removeTextTableAndTextSection(); 140cdf0e10cSrcweir } 141cdf0e10cSrcweir switch (nNewStep) 142cdf0e10cSrcweir { 143cdf0e10cSrcweir case SOMAINPAGE: 144cdf0e10cSrcweir CurDBCommandFieldSelection.setModified(false); 145cdf0e10cSrcweir break; 146cdf0e10cSrcweir 147cdf0e10cSrcweir case SOTITLEPAGE: 148cdf0e10cSrcweir String[] aFieldNames = m_reportDocument.getRecordParser().getFieldNames(); 149cdf0e10cSrcweir Map aFieldTitleSet = m_reportDocument.getRecordParser().getFieldTitleSet(); 150cdf0e10cSrcweir CurTitlesComponent.initialize(aFieldNames, aFieldTitleSet); 151cdf0e10cSrcweir break; 152cdf0e10cSrcweir 153cdf0e10cSrcweir case SOGROUPPAGE: 154cdf0e10cSrcweir CurGroupFieldHandler.initialize(); 155cdf0e10cSrcweir break; 156cdf0e10cSrcweir 157cdf0e10cSrcweir case SOSORTPAGE: 158cdf0e10cSrcweir String[] aFieldNames2 = m_reportDocument.getRecordParser().getFieldNames(); 159cdf0e10cSrcweir String[][] aSortFieldNames = m_reportDocument.getRecordParser().getSortFieldNames(); 160cdf0e10cSrcweir CurSortingComponent.initialize(aFieldNames2, aSortFieldNames); 161cdf0e10cSrcweir int nLength = m_reportDocument.getRecordParser().GroupFieldNames.length; 162cdf0e10cSrcweir CurSortingComponent.setReadOnlyUntil(nLength, false); 163cdf0e10cSrcweir break; 164cdf0e10cSrcweir 165cdf0e10cSrcweir case SOTEMPLATEPAGE: 166cdf0e10cSrcweir break; 167cdf0e10cSrcweir 168cdf0e10cSrcweir case SOSTOREPAGE: 169cdf0e10cSrcweir //TODO initialize with suitable PathName 170cdf0e10cSrcweir CurReportFinalizer.initialize(m_reportDocument.getRecordParser()); 171cdf0e10cSrcweir break; 172cdf0e10cSrcweir 173cdf0e10cSrcweir default: 174cdf0e10cSrcweir break; 175cdf0e10cSrcweir } 176cdf0e10cSrcweir } 177cdf0e10cSrcweir leaveStep(int nOldStep, int nNewStep)178cdf0e10cSrcweir protected void leaveStep(int nOldStep, int nNewStep) 179cdf0e10cSrcweir { 180cdf0e10cSrcweir 181cdf0e10cSrcweir switch (nOldStep) 182cdf0e10cSrcweir { 183cdf0e10cSrcweir case SOMAINPAGE: 184cdf0e10cSrcweir String[] aSelectedFieldNames = CurDBCommandFieldSelection.getSelectedFieldNames(); 185cdf0e10cSrcweir String aTableName = CurDBCommandFieldSelection.getSelectedCommandName(); 186cdf0e10cSrcweir int nType = CurDBCommandFieldSelection.getSelectedCommandType(); 187cdf0e10cSrcweir m_reportDocument.initializeFieldColumns(nType, aTableName, aSelectedFieldNames); 188cdf0e10cSrcweir if (CurDBCommandFieldSelection.isModified()) 189cdf0e10cSrcweir { 190cdf0e10cSrcweir // cleanup document 191cdf0e10cSrcweir m_reportDocument.clearDocument(); 192cdf0e10cSrcweir m_reportDocument.getRecordParser().setGroupFieldNames(new String[] 193cdf0e10cSrcweir { 194cdf0e10cSrcweir }); 195cdf0e10cSrcweir CurGroupFieldHandler.removeGroupFieldNames(); 196cdf0e10cSrcweir } 197cdf0e10cSrcweir break; 198cdf0e10cSrcweir 199cdf0e10cSrcweir case SOTITLEPAGE: 200cdf0e10cSrcweir String[] sFieldTitles = CurTitlesComponent.getFieldTitles(); 201cdf0e10cSrcweir // set new field name titles 202cdf0e10cSrcweir // CurReportDocument.getRecordParser().setFieldTitles(sFieldTitles); 203cdf0e10cSrcweir m_reportDocument.setFieldTitles(sFieldTitles); 204cdf0e10cSrcweir break; 205cdf0e10cSrcweir 206cdf0e10cSrcweir case SOGROUPPAGE: 207cdf0e10cSrcweir // TODO: DESIGN!!! a getter should return a value!!! 208cdf0e10cSrcweir CurGroupFieldHandler.getGroupFieldNames(m_reportDocument.getRecordParser()); 209cdf0e10cSrcweir String[] aGroupFieldNames = m_reportDocument.getRecordParser().GroupFieldNames; 210cdf0e10cSrcweir // CurReportDocument.getRecordParser().prependSortFieldNames(aGroupFieldNames); 211cdf0e10cSrcweir m_reportDocument.setGrouping(aGroupFieldNames); 212cdf0e10cSrcweir break; 213cdf0e10cSrcweir 214cdf0e10cSrcweir case SOSORTPAGE: 215cdf0e10cSrcweir String[][] aSortFieldNames = CurSortingComponent.getSortFieldNames(); 216cdf0e10cSrcweir // CurReportDocument.getRecordParser().SortFieldNames = aSortFieldNames; 217cdf0e10cSrcweir m_reportDocument.setSorting(aSortFieldNames); 218cdf0e10cSrcweir // TODO: why do we make a switch here 219cdf0e10cSrcweir super.enablefromStep(SOTEMPLATEPAGE, true); 220cdf0e10cSrcweir break; 221cdf0e10cSrcweir 222cdf0e10cSrcweir case SOTEMPLATEPAGE: 223cdf0e10cSrcweir break; 224cdf0e10cSrcweir 225cdf0e10cSrcweir case SOSTOREPAGE: 226cdf0e10cSrcweir break; 227cdf0e10cSrcweir 228cdf0e10cSrcweir default: 229cdf0e10cSrcweir break; 230cdf0e10cSrcweir } 231cdf0e10cSrcweir 232cdf0e10cSrcweir if ((nOldStep < SOTEMPLATEPAGE) && (super.getNewStep() >= SOTEMPLATEPAGE)) 233cdf0e10cSrcweir { 234cdf0e10cSrcweir // this is called before SOTEMPLATEPAGE, after SOGROUPPAGE 235cdf0e10cSrcweir m_reportDocument.getRecordParser().createRecordFieldNames(); 236cdf0e10cSrcweir CurReportLayouter.initialize(m_reportDocument.getContentPath()); 237cdf0e10cSrcweir } 238cdf0e10cSrcweir } 239cdf0e10cSrcweir dialogFinish()240cdf0e10cSrcweir private void dialogFinish() 241cdf0e10cSrcweir { 242cdf0e10cSrcweir this.xComponent.dispose(); 243cdf0e10cSrcweir if (bCloseDocument) 244cdf0e10cSrcweir { 245cdf0e10cSrcweir m_reportDocument.dispose(); 246cdf0e10cSrcweir return; 247cdf0e10cSrcweir } 248cdf0e10cSrcweir 249cdf0e10cSrcweir if ((nReportMode == ReportFinalizer.SOCREATETEMPLATE) 250cdf0e10cSrcweir || (nReportMode == ReportFinalizer.SOUSETEMPLATE)) 251cdf0e10cSrcweir { 252cdf0e10cSrcweir m_reportDocument.addReportToDBView(); 253cdf0e10cSrcweir boolean bOpenInDesign = (nReportMode == ReportFinalizer.SOCREATETEMPLATE); 254cdf0e10cSrcweir m_reportDocument.createAndOpenReportDocument(m_sReportName, true, bOpenInDesign); 255cdf0e10cSrcweir } 256cdf0e10cSrcweir else 257cdf0e10cSrcweir { 258cdf0e10cSrcweir m_reportDocument.importReportData(this); 259cdf0e10cSrcweir m_reportDocument.createAndOpenReportDocument(m_sReportName, false, false); 260cdf0e10cSrcweir } 261cdf0e10cSrcweir } 262cdf0e10cSrcweir executeQuery()263cdf0e10cSrcweir private boolean executeQuery() 264cdf0e10cSrcweir { 265cdf0e10cSrcweir boolean bQueryCreated = false; 266cdf0e10cSrcweir final RecordParser recordParser = m_reportDocument.getRecordParser(); 267cdf0e10cSrcweir final SQLQueryComposer sqlQueryComposer = recordParser.getSQLQueryComposer(); 268cdf0e10cSrcweir if (this.CurDBCommandFieldSelection.getSelectedCommandType() == CommandType.TABLE) 269cdf0e10cSrcweir { 270cdf0e10cSrcweir if (m_reportDocument instanceof ReportTextImplementation) 271cdf0e10cSrcweir { 272cdf0e10cSrcweir bQueryCreated = sqlQueryComposer.setQueryCommand(this.xWindow, false, false); 273cdf0e10cSrcweir m_reportDocument.setCommandType(CommandType.COMMAND); 274cdf0e10cSrcweir String sQuery = sqlQueryComposer.getQuery(); 275cdf0e10cSrcweir m_reportDocument.setCommand(sQuery); 276cdf0e10cSrcweir } 277cdf0e10cSrcweir else 278cdf0e10cSrcweir { 279cdf0e10cSrcweir bQueryCreated = true; 280cdf0e10cSrcweir } 281cdf0e10cSrcweir } 282cdf0e10cSrcweir else 283cdf0e10cSrcweir { 284cdf0e10cSrcweir try 285cdf0e10cSrcweir { 286cdf0e10cSrcweir String sQueryName = CurDBCommandFieldSelection.getSelectedCommandName(); 287cdf0e10cSrcweir DBMetaData.CommandObject oCommand = recordParser.getQueryByName(sQueryName); 288cdf0e10cSrcweir bHasEscapeProcessing = recordParser.hasEscapeProcessing(oCommand.getPropertySet()); 289cdf0e10cSrcweir String sCommand = (String) oCommand.getPropertySet().getPropertyValue(PropertyNames.COMMAND); 290cdf0e10cSrcweir if (bHasEscapeProcessing) 291cdf0e10cSrcweir { 292cdf0e10cSrcweir // String sCommand = (String) oCommand.xPropertySet.getPropertyValue(PropertyNames.COMMAND); 293cdf0e10cSrcweir bQueryCreated = (!sCommand.equals(PropertyNames.EMPTY_STRING)); 294cdf0e10cSrcweir if (m_reportDocument instanceof ReportTextImplementation) 295cdf0e10cSrcweir { 296cdf0e10cSrcweir sqlQueryComposer.m_xQueryAnalyzer.setQuery(sCommand); 297cdf0e10cSrcweir sqlQueryComposer.prependSortingCriteria(); 298cdf0e10cSrcweir m_reportDocument.setCommandType(CommandType.COMMAND); 299cdf0e10cSrcweir m_reportDocument.setCommand(sqlQueryComposer.getQuery()); 300cdf0e10cSrcweir } 301cdf0e10cSrcweir } 302cdf0e10cSrcweir else 303cdf0e10cSrcweir { 304cdf0e10cSrcweir m_reportDocument.setCommandType(CommandType.COMMAND); 305cdf0e10cSrcweir m_reportDocument.setCommand(sCommand); 306cdf0e10cSrcweir } 307cdf0e10cSrcweir bQueryCreated = true; 308cdf0e10cSrcweir } 309cdf0e10cSrcweir catch (Exception e) 310cdf0e10cSrcweir { 311cdf0e10cSrcweir e.printStackTrace(System.out); 312cdf0e10cSrcweir } 313cdf0e10cSrcweir } 314cdf0e10cSrcweir if (!bQueryCreated) 315cdf0e10cSrcweir { 316cdf0e10cSrcweir super.vetoableChange(null); 317cdf0e10cSrcweir } 318cdf0e10cSrcweir return bQueryCreated; 319cdf0e10cSrcweir } 320cdf0e10cSrcweir buildSteps()321cdf0e10cSrcweir public void buildSteps() 322cdf0e10cSrcweir { 323cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(30); 324cdf0e10cSrcweir CurDBCommandFieldSelection = new CommandFieldSelection(this, m_reportDocument.getRecordParser(), 100, slblFields, slblSelFields, slblTables, true, 34330); 325cdf0e10cSrcweir CurDBCommandFieldSelection.addFieldSelectionListener(new FieldSelectionListener()); 326cdf0e10cSrcweir if (!isReportBuilderInstalled()) 327cdf0e10cSrcweir { 328cdf0e10cSrcweir insertLabel("lblBinaryFields", 329cdf0e10cSrcweir new String[] 330cdf0e10cSrcweir { 331cdf0e10cSrcweir PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_WIDTH 332cdf0e10cSrcweir }, 333cdf0e10cSrcweir new Object[] 334cdf0e10cSrcweir { 335cdf0e10cSrcweir 16, sShowBinaryFields, 95, 162, 1, 210 336cdf0e10cSrcweir }); 337cdf0e10cSrcweir } 338cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(40); 339cdf0e10cSrcweir CurTitlesComponent = new TitlesComponent(this, SOTITLEPAGE, 97, 37, 210, 7, slblColumnNames, slblColumnTitles, 34381); 340cdf0e10cSrcweir CurTitlesComponent.addTextListener(this); 341cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(50); 342cdf0e10cSrcweir CurGroupFieldHandler = new GroupFieldHandler(m_reportDocument, this); 343cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(60); 344cdf0e10cSrcweir CurSortingComponent = new SortingComponent(this, SOSORTPAGE, 95, 30, 210, 34346); 345cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(70); 346cdf0e10cSrcweir CurReportLayouter = new ReportLayouter(xMSF, m_reportDocument, this); 347cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(80); 348cdf0e10cSrcweir CurReportFinalizer = new ReportFinalizer(xMSF, m_reportDocument, this); 349cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.setValue(100); 350cdf0e10cSrcweir bCloseDocument = true; 351cdf0e10cSrcweir // CurReportDocument.getDoc().xProgressBar.end(); 352cdf0e10cSrcweir enableNavigationButtons(false, false, false); 353cdf0e10cSrcweir } 354cdf0e10cSrcweir finishWizard()355cdf0e10cSrcweir public boolean finishWizard() 356cdf0e10cSrcweir { 357cdf0e10cSrcweir final int ncurStep = getCurrentStep(); 358cdf0e10cSrcweir if ((switchToStep(ncurStep, SOSTOREPAGE)) || (ncurStep == SOSTOREPAGE)) 359cdf0e10cSrcweir { 360cdf0e10cSrcweir if (this.executeQuery()) 361cdf0e10cSrcweir { 362cdf0e10cSrcweir if (CurReportFinalizer.finish()) 363cdf0e10cSrcweir { 364cdf0e10cSrcweir nReportMode = CurReportFinalizer.getReportOpenMode(); 365cdf0e10cSrcweir m_sReportName = CurReportFinalizer.getStoreName(); 366cdf0e10cSrcweir xDialog.endExecute(); 367cdf0e10cSrcweir return true; 368cdf0e10cSrcweir } 369cdf0e10cSrcweir } 370cdf0e10cSrcweir } 371cdf0e10cSrcweir return false; 372cdf0e10cSrcweir } 373cdf0e10cSrcweir cancelWizard()374cdf0e10cSrcweir public void cancelWizard() 375cdf0e10cSrcweir { 376cdf0e10cSrcweir xDialog.endExecute(); 377cdf0e10cSrcweir } 378cdf0e10cSrcweir insertQueryRelatedSteps()379cdf0e10cSrcweir public void insertQueryRelatedSteps() 380cdf0e10cSrcweir { 381cdf0e10cSrcweir setRMItemLabels(m_oResource, UIConsts.RID_QUERY + 80); 382cdf0e10cSrcweir addRoadmap(); 383cdf0e10cSrcweir int i = 0; 384cdf0e10cSrcweir i = insertRoadmapItem(0, true, m_oResource.getResText(UIConsts.RID_QUERY + 80), SOMAINPAGE); 385cdf0e10cSrcweir i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_REPORT + 68), SOTITLEPAGE); 386cdf0e10cSrcweir i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_REPORT + 11), SOGROUPPAGE); 387cdf0e10cSrcweir i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_REPORT + 12), SOSORTPAGE); // Orderby is always supported 388cdf0e10cSrcweir i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_REPORT + 13), SOTEMPLATEPAGE); 389cdf0e10cSrcweir i = insertRoadmapItem(i, false, m_oResource.getResText(UIConsts.RID_REPORT + 14), SOSTOREPAGE); 390cdf0e10cSrcweir setRoadmapInteractive(true); 391cdf0e10cSrcweir setRoadmapComplete(true); 392cdf0e10cSrcweir setCurrentRoadmapItemID((short) 1); 393cdf0e10cSrcweir } 394cdf0e10cSrcweir isReportBuilderInstalled()395cdf0e10cSrcweir private boolean isReportBuilderInstalled() 396cdf0e10cSrcweir { 397cdf0e10cSrcweir //! Check if the new Report Builder Extension is available 398cdf0e10cSrcweir XContentEnumerationAccess a = com.sun.star.uno.UnoRuntime.queryInterface(XContentEnumerationAccess.class, xMSF); 399cdf0e10cSrcweir com.sun.star.container.XEnumeration e = a.createContentEnumeration("com.sun.star.report.pentaho.SOReportJobFactory"); 400cdf0e10cSrcweir if (e == null) 401cdf0e10cSrcweir { 402cdf0e10cSrcweir return false; 403cdf0e10cSrcweir } 404cdf0e10cSrcweir return e.hasMoreElements(); 405cdf0e10cSrcweir } 406cdf0e10cSrcweir 407cdf0e10cSrcweir /** 408cdf0e10cSrcweir * Return the path to the "com.sun.reportdesigner" extension 409cdf0e10cSrcweir * @param _xMSF 410cdf0e10cSrcweir * @return 411cdf0e10cSrcweir */ getPathToExtension(XMultiServiceFactory _xMSF)412cdf0e10cSrcweir public static String getPathToExtension(XMultiServiceFactory _xMSF) 413cdf0e10cSrcweir { 414cdf0e10cSrcweir // Get the path to the extension and try to add the path to the class loader 415cdf0e10cSrcweir final XComponentContext xComponentContext = Helper.getComponentContext(_xMSF); 416cdf0e10cSrcweir final Object aSingleton = xComponentContext.getValueByName("/singletons/com.sun.star.deployment.PackageInformationProvider"); 417cdf0e10cSrcweir XPackageInformationProvider xProvider = UnoRuntime.queryInterface(XPackageInformationProvider.class, aSingleton); 418cdf0e10cSrcweir return xProvider.getPackageLocation("com.sun.reportdesigner"); 419cdf0e10cSrcweir } 420cdf0e10cSrcweir private static XLogger m_xLogger; 421cdf0e10cSrcweir initializeLogger(XMultiServiceFactory _xMSF)422cdf0e10cSrcweir private static void initializeLogger(XMultiServiceFactory _xMSF) 423cdf0e10cSrcweir { 424cdf0e10cSrcweir XComponentContext xContext = Helper.getComponentContext(_xMSF); 425cdf0e10cSrcweir 426cdf0e10cSrcweir final Object aLoggerPool = xContext.getValueByName("/singletons/com.sun.star.logging.LoggerPool"); 427cdf0e10cSrcweir if (aLoggerPool == null) 428cdf0e10cSrcweir { 429cdf0e10cSrcweir System.out.println("Can't get singleton from logging"); 430cdf0e10cSrcweir } 431cdf0e10cSrcweir final XLoggerPool xLoggerPool = UnoRuntime.queryInterface(XLoggerPool.class, aLoggerPool); 432cdf0e10cSrcweir m_xLogger = xLoggerPool.getNamedLogger("com.sun.star.wizards.ReportBuilder"); 433cdf0e10cSrcweir } 434cdf0e10cSrcweir getLogger()435cdf0e10cSrcweir public static XLogger getLogger() 436cdf0e10cSrcweir { 437cdf0e10cSrcweir return m_xLogger; 438cdf0e10cSrcweir } 439cdf0e10cSrcweir startReportWizard()440cdf0e10cSrcweir public void startReportWizard() 441cdf0e10cSrcweir { 442cdf0e10cSrcweir initializeLogger(xMSF); 443cdf0e10cSrcweir getLogger().log(LogLevel.SEVERE, "Start Report Wizard"); 444cdf0e10cSrcweir 445cdf0e10cSrcweir if (isReportBuilderInstalled()) 446cdf0e10cSrcweir { 447cdf0e10cSrcweir // Get the path to the extension and try to add the path to the class loader 448cdf0e10cSrcweir String sLocation = getPathToExtension(xMSF); 449cdf0e10cSrcweir // TODO: Umlaut in filename! 450cdf0e10cSrcweir if (sLocation.length() > 0) 451cdf0e10cSrcweir { 452cdf0e10cSrcweir try 453cdf0e10cSrcweir { 454cdf0e10cSrcweir URI aLocationURI = URI.create(sLocation + "/" + "reportbuilderwizard.jar"); 455cdf0e10cSrcweir 456cdf0e10cSrcweir URL[] aURLs = new URL[1]; 457cdf0e10cSrcweir aURLs[0] = aLocationURI.toURL(); 458cdf0e10cSrcweir URLClassLoader aClassLoader = new URLClassLoader(aURLs, this.getClass().getClassLoader()); 459cdf0e10cSrcweir Class a = aClassLoader.loadClass("com.sun.star.wizards.reportbuilder.ReportBuilderImplementation"); 460cdf0e10cSrcweir Method aMethod = a.getMethod("create", new Class[] 461cdf0e10cSrcweir { 462cdf0e10cSrcweir XMultiServiceFactory.class 463cdf0e10cSrcweir }); 464cdf0e10cSrcweir m_reportDocument = (IReportDocument) aMethod.invoke(a, xMSF 465cdf0e10cSrcweir ); 466cdf0e10cSrcweir } 467cdf0e10cSrcweir catch (Exception e) 468cdf0e10cSrcweir { 469cdf0e10cSrcweir // Maybe problems in URI create() if a wrong char is used like '[' ']', ... 470cdf0e10cSrcweir System.out.println("There could be a problem with the path '" + sLocation + "'"); 471cdf0e10cSrcweir } 472cdf0e10cSrcweir } 473cdf0e10cSrcweir } 474cdf0e10cSrcweir 475cdf0e10cSrcweir try 476cdf0e10cSrcweir { 477cdf0e10cSrcweir if (m_reportDocument == null) 478cdf0e10cSrcweir { 479cdf0e10cSrcweir // Fallback, if there is no reportbuilder wizard implementation, we use the old wizard 480cdf0e10cSrcweir m_reportDocument = new ReportTextImplementation(xMSF); 481cdf0e10cSrcweir } 482cdf0e10cSrcweir 483cdf0e10cSrcweir m_reportDocument.initialize(m_docUI, m_oResource); 484cdf0e10cSrcweir 485cdf0e10cSrcweir if (m_reportDocument.getRecordParser().getConnection(m_wizardContext)) 486cdf0e10cSrcweir { 487cdf0e10cSrcweir buildSteps(); 488cdf0e10cSrcweir 489cdf0e10cSrcweir m_reportDocument.checkInvariants(); 490cdf0e10cSrcweir 491cdf0e10cSrcweir this.CurDBCommandFieldSelection.preselectCommand(m_wizardContext, false); 492cdf0e10cSrcweir 493cdf0e10cSrcweir createWindowPeer(m_reportDocument.getWizardParent()); 494cdf0e10cSrcweir 495cdf0e10cSrcweir m_reportDocument.getRecordParser().setWindowPeer(this.xControl.getPeer()); 496cdf0e10cSrcweir insertQueryRelatedSteps(); 497cdf0e10cSrcweir short RetValue = executeDialog(m_reportDocument.getFrame().getComponentWindow().getPosSize()); 498cdf0e10cSrcweir if (RetValue == 0) 499cdf0e10cSrcweir { 500cdf0e10cSrcweir dialogFinish(); 501cdf0e10cSrcweir } 502cdf0e10cSrcweir } 503cdf0e10cSrcweir m_reportDocument.getRecordParser().dispose(); 504cdf0e10cSrcweir } 505cdf0e10cSrcweir catch (java.io.IOException e) 506cdf0e10cSrcweir { 507cdf0e10cSrcweir String sMessage = e.getMessage(); 508cdf0e10cSrcweir if (sMessage.equals("default.otr")) 509cdf0e10cSrcweir { 510cdf0e10cSrcweir sMessage = m_oResource.getResText(UIConsts.RID_REPORT + 92); 511cdf0e10cSrcweir } 512cdf0e10cSrcweir else 513cdf0e10cSrcweir { 514cdf0e10cSrcweir } 515cdf0e10cSrcweir // show a dialog with the error message 516cdf0e10cSrcweir SystemDialog.showMessageBox(xMSF, "ErrorBox", VclWindowPeerAttribute.OK, sMessage); 517cdf0e10cSrcweir } 518cdf0e10cSrcweir catch (java.lang.Exception jexception) 519cdf0e10cSrcweir { 520cdf0e10cSrcweir jexception.printStackTrace(System.out); 521cdf0e10cSrcweir } 522cdf0e10cSrcweir } 523cdf0e10cSrcweir importReportData(final XMultiServiceFactory xMSF, final Dataimport CurDataimport)524cdf0e10cSrcweir public void importReportData(final XMultiServiceFactory xMSF, final Dataimport CurDataimport) 525cdf0e10cSrcweir { 526cdf0e10cSrcweir boolean bDocisStored = false; 527cdf0e10cSrcweir try 528cdf0e10cSrcweir { 529cdf0e10cSrcweir boolean bexecute = false; 530cdf0e10cSrcweir if (!bHasEscapeProcessing) 531cdf0e10cSrcweir { 532cdf0e10cSrcweir bexecute = m_reportDocument.getRecordParser().executeCommand(com.sun.star.sdb.CommandType.QUERY); // sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot)) 533cdf0e10cSrcweir } 534cdf0e10cSrcweir else 535cdf0e10cSrcweir { 536cdf0e10cSrcweir bexecute = m_reportDocument.getRecordParser().executeCommand(com.sun.star.sdb.CommandType.COMMAND); // sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot)) 537cdf0e10cSrcweir } 538cdf0e10cSrcweir if (bexecute) 539cdf0e10cSrcweir { 540cdf0e10cSrcweir bexecute = m_reportDocument.getRecordParser().getFields(m_reportDocument.getRecordParser().getFieldNames(), false); 541cdf0e10cSrcweir } 542cdf0e10cSrcweir if (bexecute) 543cdf0e10cSrcweir { 544cdf0e10cSrcweir // CurDataimport.insertDatabaseDatatoReportDocument(xMSF); 545cdf0e10cSrcweir m_reportDocument.insertDatabaseDatatoReportDocument(xMSF); 546cdf0e10cSrcweir } 547cdf0e10cSrcweir 548cdf0e10cSrcweir if (CurReportFinalizer.getReportOpenMode() == ReportFinalizer.SOCREATEDOCUMENT) 549cdf0e10cSrcweir { 550cdf0e10cSrcweir bDocisStored = m_reportDocument.getRecordParser().storeDatabaseDocumentToTempPath(m_reportDocument.getComponent(), CurReportFinalizer.getStoreName()); 551cdf0e10cSrcweir } 552cdf0e10cSrcweir } 553cdf0e10cSrcweir catch (com.sun.star.wizards.common.InvalidQueryException queryexception) 554cdf0e10cSrcweir { 555cdf0e10cSrcweir } 556cdf0e10cSrcweir CurDataimport.xComponent.dispose(); 557cdf0e10cSrcweir if (bDocisStored) 558cdf0e10cSrcweir { 559cdf0e10cSrcweir m_reportDocument.getRecordParser().addReportDocument(m_reportDocument.getComponent(), false); 560cdf0e10cSrcweir } 561cdf0e10cSrcweir 562cdf0e10cSrcweir m_reportDocument.getRecordParser().dispose(); 563cdf0e10cSrcweir } 564cdf0e10cSrcweir getReportResources(boolean bgetProgressResourcesOnly)565cdf0e10cSrcweir public boolean getReportResources(boolean bgetProgressResourcesOnly) 566cdf0e10cSrcweir { 567cdf0e10cSrcweir sMsgWizardName = super.m_oResource.getResText(UIConsts.RID_REPORT); 568cdf0e10cSrcweir if (!bgetProgressResourcesOnly) 569cdf0e10cSrcweir { 570cdf0e10cSrcweir sShowBinaryFields = m_oResource.getResText(UIConsts.RID_REPORT + 60); 571cdf0e10cSrcweir slblTables = m_oResource.getResText(UIConsts.RID_FORM + 6); 572cdf0e10cSrcweir slblFields = m_oResource.getResText(UIConsts.RID_FORM + 12); 573cdf0e10cSrcweir slblSelFields = m_oResource.getResText(UIConsts.RID_REPORT + 9); 574cdf0e10cSrcweir WizardHeaderText[0] = m_oResource.getResText(UIConsts.RID_REPORT + 28); 575cdf0e10cSrcweir WizardHeaderText[1] = m_oResource.getResText(UIConsts.RID_REPORT + 69); 576cdf0e10cSrcweir WizardHeaderText[2] = m_oResource.getResText(UIConsts.RID_REPORT + 29); 577cdf0e10cSrcweir WizardHeaderText[3] = m_oResource.getResText(UIConsts.RID_REPORT + 30); 578cdf0e10cSrcweir WizardHeaderText[4] = m_oResource.getResText(UIConsts.RID_REPORT + 31); 579cdf0e10cSrcweir WizardHeaderText[5] = m_oResource.getResText(UIConsts.RID_REPORT + 32); 580cdf0e10cSrcweir } 581cdf0e10cSrcweir slblColumnTitles = m_oResource.getResText(UIConsts.RID_REPORT + 70); 582cdf0e10cSrcweir slblColumnNames = m_oResource.getResText(UIConsts.RID_REPORT + 71); 583cdf0e10cSrcweir return true; 584cdf0e10cSrcweir } 585cdf0e10cSrcweir getBlindTextNote(Object _aDocument, Resource _oResource)586cdf0e10cSrcweir public static String getBlindTextNote(Object _aDocument, Resource _oResource) 587cdf0e10cSrcweir { 588cdf0e10cSrcweir String sBlindTextNote = PropertyNames.EMPTY_STRING; 589cdf0e10cSrcweir if (_aDocument instanceof ReportTextImplementation) 590cdf0e10cSrcweir { 591cdf0e10cSrcweir sBlindTextNote = _oResource.getResText(UIConsts.RID_REPORT + 75); 592cdf0e10cSrcweir sBlindTextNote = JavaTools.replaceSubString(sBlindTextNote, String.valueOf((char) 13), "<BR>"); 593cdf0e10cSrcweir } 594cdf0e10cSrcweir return sBlindTextNote; 595cdf0e10cSrcweir } 596cdf0e10cSrcweir enableRoadmapItems(boolean _bEnabled)597cdf0e10cSrcweir public void enableRoadmapItems(boolean _bEnabled) 598cdf0e10cSrcweir { 599cdf0e10cSrcweir try 600cdf0e10cSrcweir { 601cdf0e10cSrcweir Object oRoadmapItem = null; 602cdf0e10cSrcweir int CurStep = AnyConverter.toInt(Helper.getUnoPropertyValue(xDialogModel, PropertyNames.PROPERTY_STEP)); 603cdf0e10cSrcweir boolean bEnabled = false; 604cdf0e10cSrcweir int CurItemID; 605cdf0e10cSrcweir for (int i = 0; i < getRMItemCount(); i++) 606cdf0e10cSrcweir { 607cdf0e10cSrcweir oRoadmapItem = this.xIndexContRoadmap.getByIndex(i); 608cdf0e10cSrcweir CurItemID = AnyConverter.toInt(Helper.getUnoPropertyValue(oRoadmapItem, "ID")); 609cdf0e10cSrcweir if (CurItemID > CurStep) 610cdf0e10cSrcweir { 611cdf0e10cSrcweir bEnabled = _bEnabled; 612cdf0e10cSrcweir } 613cdf0e10cSrcweir else 614cdf0e10cSrcweir { 615cdf0e10cSrcweir bEnabled = true; 616cdf0e10cSrcweir } 617cdf0e10cSrcweir 618cdf0e10cSrcweir Helper.setUnoPropertyValue(oRoadmapItem, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bEnabled)); 619cdf0e10cSrcweir } 620cdf0e10cSrcweir } 621cdf0e10cSrcweir catch (com.sun.star.uno.Exception exception) 622cdf0e10cSrcweir { 623cdf0e10cSrcweir exception.printStackTrace(System.out); 624cdf0e10cSrcweir } 625cdf0e10cSrcweir } 626cdf0e10cSrcweir enableWizardSteps(String[] NewItems)627cdf0e10cSrcweir private void enableWizardSteps(String[] NewItems) 628cdf0e10cSrcweir { 629cdf0e10cSrcweir boolean bEnabled = NewItems.length > 0; 630cdf0e10cSrcweir setControlProperty("btnWizardNext", PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bEnabled)); 631cdf0e10cSrcweir setControlProperty("btnWizardFinish", PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bEnabled)); 632cdf0e10cSrcweir enableRoadmapItems(bEnabled); // Note: Performancewise this could be improved 633cdf0e10cSrcweir } 634cdf0e10cSrcweir textChanged(TextEvent xTextEvent)635cdf0e10cSrcweir public void textChanged(TextEvent xTextEvent) 636cdf0e10cSrcweir { 637cdf0e10cSrcweir try 638cdf0e10cSrcweir { 639cdf0e10cSrcweir Object oModel = UnoDialog.getModel(xTextEvent.Source); 640cdf0e10cSrcweir String sContent = (String) Helper.getUnoPropertyValue(oModel, "Text"); 641cdf0e10cSrcweir String fieldname = this.CurTitlesComponent.getFieldNameByTitleControl(oModel); 642cdf0e10cSrcweir // CurReportDocument.getDoc().oTextFieldHandler.changeUserFieldContent(fieldname, sfieldtitle); 643cdf0e10cSrcweir m_reportDocument.liveupdate_changeUserFieldContent(fieldname, sContent); 644cdf0e10cSrcweir } 645cdf0e10cSrcweir catch (Exception exception) 646cdf0e10cSrcweir { 647cdf0e10cSrcweir exception.printStackTrace(System.out); 648cdf0e10cSrcweir } 649cdf0e10cSrcweir } 650cdf0e10cSrcweir disposing(EventObject EventObject)651cdf0e10cSrcweir public void disposing(EventObject EventObject) 652cdf0e10cSrcweir { 653cdf0e10cSrcweir } 654cdf0e10cSrcweir setmodified(int _ndialogpage, Object ooldValue, Object onewValue)655cdf0e10cSrcweir public void setmodified(int _ndialogpage, Object ooldValue, Object onewValue) 656cdf0e10cSrcweir { 657cdf0e10cSrcweir switch (_ndialogpage) 658cdf0e10cSrcweir { 659cdf0e10cSrcweir case SOMAINPAGE: 660cdf0e10cSrcweir break; 661cdf0e10cSrcweir default: 662cdf0e10cSrcweir break; 663cdf0e10cSrcweir } 664cdf0e10cSrcweir } 665cdf0e10cSrcweir toggleSortingPage()666cdf0e10cSrcweir private void toggleSortingPage() 667cdf0e10cSrcweir { 668cdf0e10cSrcweir int nlCommandType = this.CurDBCommandFieldSelection.getSelectedCommandType(); 669cdf0e10cSrcweir boolean bdoenable = (nlCommandType == CommandType.TABLE); 670cdf0e10cSrcweir if (!bdoenable) 671cdf0e10cSrcweir { 672cdf0e10cSrcweir String sQueryName = CurDBCommandFieldSelection.getSelectedCommandName(); 673cdf0e10cSrcweir DBMetaData.CommandObject oCommand = m_reportDocument.getRecordParser().getQueryByName(sQueryName); 674cdf0e10cSrcweir bdoenable = m_reportDocument.getRecordParser().hasEscapeProcessing(oCommand.getPropertySet()); 675cdf0e10cSrcweir } 676cdf0e10cSrcweir super.setStepEnabled(SOSORTPAGE, bdoenable); 677cdf0e10cSrcweir 678cdf0e10cSrcweir // int nCommandType = this.CurDBCommandFieldSelection.getSelectedCommandType(); 679cdf0e10cSrcweir // super.setStepEnabled(SOSORTPAGE, (nCommandType == CommandType.TABLE)); 680cdf0e10cSrcweir } 681cdf0e10cSrcweir 682cdf0e10cSrcweir public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener 683cdf0e10cSrcweir { 684cdf0e10cSrcweir 685cdf0e10cSrcweir protected int m_nID; 686cdf0e10cSrcweir getID()687cdf0e10cSrcweir public int getID() 688cdf0e10cSrcweir { 689cdf0e10cSrcweir return m_nID; 690cdf0e10cSrcweir } 691cdf0e10cSrcweir setID(String sIncSuffix)692cdf0e10cSrcweir public void setID(String sIncSuffix) 693cdf0e10cSrcweir { 694cdf0e10cSrcweir m_nID = 1; 695cdf0e10cSrcweir if (sIncSuffix != null) 696cdf0e10cSrcweir { 697cdf0e10cSrcweir if ((!sIncSuffix.equals(PropertyNames.EMPTY_STRING)) && (!sIncSuffix.equals("_"))) 698cdf0e10cSrcweir { 699cdf0e10cSrcweir String sID = JavaTools.ArrayoutofString(sIncSuffix, "_")[1]; 700cdf0e10cSrcweir m_nID = Integer.parseInt(sID); 701cdf0e10cSrcweir } 702cdf0e10cSrcweir } 703cdf0e10cSrcweir } 704cdf0e10cSrcweir shiftFromLeftToRight(String[] SelItems, String[] NewItems)705cdf0e10cSrcweir public void shiftFromLeftToRight(String[] SelItems, String[] NewItems) 706cdf0e10cSrcweir { 707cdf0e10cSrcweir if (m_nID == 1) 708cdf0e10cSrcweir { 709cdf0e10cSrcweir CurDBCommandFieldSelection.setModified(true); 710cdf0e10cSrcweir enableWizardSteps(NewItems); 711cdf0e10cSrcweir toggleSortingPage(); 712cdf0e10cSrcweir } 713cdf0e10cSrcweir else 714cdf0e10cSrcweir { 715cdf0e10cSrcweir boolean bEnabled = (CurGroupFieldSelection.getSelectedFieldNames().length > 0); 716cdf0e10cSrcweir Helper.setUnoPropertyValue(getRoadmapItemByID(SOGROUPPAGE), PropertyNames.PROPERTY_ENABLED, bEnabled); 717cdf0e10cSrcweir } 718cdf0e10cSrcweir } 719cdf0e10cSrcweir shiftFromRightToLeft(String[] SelItems, String[] NewItems)720cdf0e10cSrcweir public void shiftFromRightToLeft(String[] SelItems, String[] NewItems) 721cdf0e10cSrcweir { 722cdf0e10cSrcweir // TODO When the ListFieldbox is refilled only fields of the current Command may be merged into the Listbox 723cdf0e10cSrcweir if (m_nID == 1) 724cdf0e10cSrcweir { 725cdf0e10cSrcweir enableWizardSteps(NewItems); 726cdf0e10cSrcweir CurDBCommandFieldSelection.setModified(true); 727cdf0e10cSrcweir } 728cdf0e10cSrcweir else 729cdf0e10cSrcweir { 730cdf0e10cSrcweir boolean bEnabled = (CurGroupFieldSelection.getSelectedFieldNames().length > 0); 731cdf0e10cSrcweir Helper.setUnoPropertyValue(getRoadmapItemByID(SOGROUPPAGE), PropertyNames.PROPERTY_ENABLED, bEnabled); 732cdf0e10cSrcweir } 733cdf0e10cSrcweir } 734cdf0e10cSrcweir moveItemDown(String item)735cdf0e10cSrcweir public void moveItemDown(String item) 736cdf0e10cSrcweir { 737cdf0e10cSrcweir } 738cdf0e10cSrcweir moveItemUp(String item)739cdf0e10cSrcweir public void moveItemUp(String item) 740cdf0e10cSrcweir { 741cdf0e10cSrcweir } 742cdf0e10cSrcweir } 743cdf0e10cSrcweir // public void tests() 744cdf0e10cSrcweir // { 745cdf0e10cSrcweir // 746cdf0e10cSrcweir // Calendar aCalendar = new GregorianCalendar(); 747cdf0e10cSrcweir // aCalendar.setTimeInMillis(1202382900000L); 748cdf0e10cSrcweir // String aCalStr = aCalendar.toString(); 749cdf0e10cSrcweir // 750cdf0e10cSrcweir // Date aDate = new Date(); 751cdf0e10cSrcweir // aDate.setSeconds(0); 752cdf0e10cSrcweir // aDate.setMinutes(15); 753cdf0e10cSrcweir // aDate.setHours(12); 754cdf0e10cSrcweir // // aDate.setMonth(2); 755cdf0e10cSrcweir // // aDate.setYear(2008); 756cdf0e10cSrcweir // // aDate.setDay(7); 757cdf0e10cSrcweir // long nTime = aDate.getTime(); 758cdf0e10cSrcweir // Long aLong = new Long(nTime); 759cdf0e10cSrcweir // String aStr = aLong.toString(); 760cdf0e10cSrcweir // 761cdf0e10cSrcweir // Date aNewDate = new Date(1202382900000L); 762cdf0e10cSrcweir //// aNewDate. 763cdf0e10cSrcweir // String aDateStr = aNewDate.toString(); 764cdf0e10cSrcweir //// Datetime aNewTime = new Time(1202382900); 765cdf0e10cSrcweir //// String aTimeStr = aNewTime.toString(); 766cdf0e10cSrcweir // 767cdf0e10cSrcweir // } 768cdf0e10cSrcweir } 769