| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| package com.sun.star.wizards.report; |
| |
| import com.sun.star.beans.PropertyValue; |
| import com.sun.star.lang.XComponent; |
| import com.sun.star.lang.XMultiServiceFactory; |
| import com.sun.star.sdb.application.XDatabaseDocumentUI; |
| import com.sun.star.wizards.common.Resource; |
| import java.util.ArrayList; |
| import java.util.Vector; |
| |
| /** |
| * New Interface which gives us the possibility to switch on the fly between the old |
| * Wizard and the new Sun Report Builder Wizard, which use the same UI. |
| * |
| * @author ll93751 |
| */ |
| public interface IReportDocument |
| { |
| // ------------------------------------------------------------------------- |
| // initialisation |
| // ------------------------------------------------------------------------- |
| public void initialize( |
| final XDatabaseDocumentUI i_documentUI, |
| final Resource i_resource |
| ); |
| |
| // ------------------------------------------------------------------------- |
| // Access Helper |
| // ------------------------------------------------------------------------- |
| /** |
| * Gives access to the DB Values |
| * @return |
| */ |
| public com.sun.star.wizards.db.RecordParser getRecordParser(); |
| |
| /** |
| * Give access to the parent document |
| * It is a document in the old Wizard |
| * It is a Report Builder in the new Wizard |
| * @return |
| */ |
| public com.sun.star.awt.XWindowPeer getWizardParent(); |
| |
| /** |
| * |
| * @return the Frame of the document Window or Report Builder Window |
| */ |
| public com.sun.star.frame.XFrame getFrame(); |
| |
| public XComponent getComponent(); |
| |
| // ------------------------------------------------------------------------- |
| // First step: After entering the table name, select fields |
| // ------------------------------------------------------------------------- |
| /** |
| * Is called after first step, set Tablename and the fields, which should occur in the Report. |
| * @param _aType |
| * @param TableName |
| * @param FieldNames |
| */ |
| public void initializeFieldColumns(final int _aType, final String TableName, final String[] FieldNames); |
| |
| /** |
| * Empties the report document |
| */ |
| public void clearDocument(); |
| |
| /** |
| * Empties the report document, if we called back, don't remove Grouping/Sorting |
| */ |
| public void removeTextTableAndTextSection(); |
| |
| // ------------------------------------------------------------------------- |
| // Second step: Label field titles |
| // ------------------------------------------------------------------------- |
| /** |
| * Set new names for the titles |
| * @param sFieldTitles |
| */ |
| public void setFieldTitles(final String[] sFieldTitles); |
| |
| /** |
| * Change a the name of the 'title' of one field. |
| * It is possible to give all element names new names which are used as |
| * element title of a given element name. |
| * This is only used as a preview |
| * @param FieldName |
| * @param TitleName |
| */ |
| public void liveupdate_changeUserFieldContent(final String FieldName, final String TitleName); |
| // ------------------------------------------------------------------------- |
| // Third step: Grouping |
| // ------------------------------------------------------------------------- |
| /* Grouping Page */ |
| // Document should not hold the grouping information! |
| /** |
| * Called by press ('greater then') add a group to the group list |
| * @param GroupNames |
| * @param CurGroupTitle |
| * @param GroupFieldVector |
| * @param ReportPath |
| * @param iSelCount |
| * @return |
| */ |
| public boolean liveupdate_addGroupNametoDocument(String[] GroupNames, String CurGroupTitle, Vector GroupFieldVector, ArrayList ReportPath, int iSelCount); |
| |
| public void refreshGroupFields(String[] _sNewNames); |
| // public boolean isGroupField(String _FieldName); |
| /** |
| * Called by press ('less then') Removes an already set Groupname out of the list |
| * @param NewSelGroupNames |
| * @param CurGroupTitle |
| * @param GroupFieldVector |
| */ |
| public void liveupdate_removeGroupName(String[] NewSelGroupNames, String CurGroupTitle, java.util.Vector GroupFieldVector); |
| |
| /** |
| * set the list how to group |
| * @param aGroupList |
| */ |
| public void setGrouping(String[] aGroupList); |
| // ------------------------------------------------------------------------- |
| // Fourth step: Sorting |
| // ------------------------------------------------------------------------- |
| /** |
| * Set the list how to sort |
| * @param aSort |
| */ |
| public void setSorting(String[][] aSort); |
| // ------------------------------------------------------------------------- |
| // Fivth step: Templates / Layout |
| // ------------------------------------------------------------------------- |
| /* Template Page */ |
| public void setPageOrientation(int nOrientation) throws com.sun.star.lang.IllegalArgumentException; |
| |
| public int getDefaultPageOrientation(); |
| |
| public ArrayList getReportPath(); |
| |
| public String getLayoutPath(); |
| |
| public String getContentPath(); |
| |
| /** |
| * Called if a new Layout is selected |
| * @param LayoutTemplatePath |
| */ |
| public void liveupdate_changeLayoutTemplate(String LayoutTemplatePath/*, String BitmapPath*/); |
| |
| /** |
| * Called if a new Template is selected |
| * @param ContentTemplatePath |
| */ |
| public void liveupdate_changeContentTemplate(String ContentTemplatePath); |
| |
| // public String[] getLayoutTemplates(); |
| // public String[] getContentTemplates(); |
| public void layout_selectFirstPage(); |
| |
| public void layout_setupRecordSection(String TemplateName); |
| // ------------------------------------------------------------------------- |
| // finishing |
| // ------------------------------------------------------------------------- |
| // preview (update titlenames) |
| // addTextListener |
| /** |
| * Set the Title into the document from the 'Create Report Page' |
| * BUG: The Title is empty after create Report. |
| * @param _sTitleName |
| */ |
| public void liveupdate_updateReportTitle(String _sTitleName); |
| |
| /** |
| * Store the document by the given name |
| * @param Name |
| * @param OpenMode |
| */ |
| public void store(String Name, int OpenMode) throws com.sun.star.uno.Exception; |
| |
| /** |
| * The current report is added to the DB View under the given name |
| * |
| * TODO: add Name to this functionality |
| */ |
| public void addReportToDBView(); |
| |
| public void importReportData(ReportWizard aWizard); |
| |
| /** |
| * Create the final Report document |
| * @param Name |
| * @param _bAsTemplate |
| * @param _bOpenInDesign |
| * @return |
| */ |
| public void createAndOpenReportDocument( |
| final String Name, |
| final boolean _bAsTemplate, |
| final boolean _bOpenInDesign |
| ); |
| |
| public void dispose(); |
| // ------------------------------------------------------------------------- |
| // Garbage dump |
| // ------------------------------------------------------------------------- |
| /* DataImport */ |
| // ??? |
| // public void addTextSectionCopies(); |
| // ??? |
| public boolean reconnectToDatabase(XMultiServiceFactory xMSF, PropertyValue[] Properties); |
| // ??? |
| public void insertDatabaseDatatoReportDocument(XMultiServiceFactory xMSF); |
| // ??? |
| // public com.sun.star.lang.XMultiServiceFactory getDocumentServiceFactory(); |
| /** |
| * set a internal variable to stop a maybe longer DB access. |
| */ |
| public void StopProcess(); // cancel |
| |
| /** |
| * Returns a string list of layouts. |
| * @return |
| */ |
| public String[][] getDataLayout(); |
| |
| /** |
| * Returns a string list of header layouts |
| * @return |
| */ |
| public String[][] getHeaderLayout(); |
| |
| public void setCommandType(int CommandType); |
| |
| public void setCommand(String Command); |
| |
| /** |
| * check internal invariants |
| * @throws a |
| */ |
| public void checkInvariants() throws java.lang.Exception; |
| } |