summaryrefslogtreecommitdiff
path: root/wizards
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-02-05 12:21:39 +0100
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-02-05 12:21:39 +0100
commit871979d155e34a66d5bee248475f915aec1b386e (patch)
treee52c9984d8b704ff34644b320de6cc7ba699388f /wizards
parent269a73582e3703e82b128bc1c5a096097da4b2a9 (diff)
parentaa2b976851fb5461db19e3edac249efc13bba05b (diff)
autorecovery: merge
Diffstat (limited to 'wizards')
-rw-r--r--wizards/com/sun/star/wizards/db/DBMetaData.java70
-rw-r--r--wizards/com/sun/star/wizards/form/CallFormWizard.java30
-rw-r--r--wizards/com/sun/star/wizards/form/Finalizer.java9
-rw-r--r--wizards/com/sun/star/wizards/form/FormWizard.java84
-rw-r--r--wizards/com/sun/star/wizards/report/CallReportWizard.java63
-rw-r--r--wizards/com/sun/star/wizards/report/Dataimport.java8
-rw-r--r--wizards/com/sun/star/wizards/report/IReportDocument.java18
-rw-r--r--wizards/com/sun/star/wizards/report/ReportTextImplementation.java106
-rw-r--r--wizards/com/sun/star/wizards/report/ReportWizard.java478
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java380
10 files changed, 371 insertions, 875 deletions
diff --git a/wizards/com/sun/star/wizards/db/DBMetaData.java b/wizards/com/sun/star/wizards/db/DBMetaData.java
index 74981293a085..b09469b406bc 100644
--- a/wizards/com/sun/star/wizards/db/DBMetaData.java
+++ b/wizards/com/sun/star/wizards/db/DBMetaData.java
@@ -82,6 +82,7 @@ import com.sun.star.wizards.common.Configuration;
import com.sun.star.wizards.common.Desktop;
import com.sun.star.wizards.common.FileAccess;
import com.sun.star.wizards.common.JavaTools;
+import com.sun.star.wizards.common.NamedValueCollection;
import com.sun.star.wizards.common.NumberFormatter;
import com.sun.star.wizards.common.Properties;
import com.sun.star.wizards.common.Resource;
@@ -945,82 +946,33 @@ public class DBMetaData
* @param _xDocNameAccess
* @param _bcreateTemplate describes the type of the document: "form" or "report"
*/
- public void addDatabaseDocument(XComponent _xComponent, XHierarchicalNameAccess _xDocNameAccess, boolean _bcreateTemplate)
+ public void addDatabaseDocument(XComponent _xComponent, XHierarchicalNameAccess _xDocNameAccess, boolean i_createTemplate)
{
try
{
- PropertyValue[] aDocProperties;
XModel xDocumentModel = UnoRuntime.queryInterface( XModel.class, _xComponent );
- String sPath = xDocumentModel.getURL();
- String basename = FileAccess.getBasename(sPath, "/");
+ String documentURL = xDocumentModel.getURL();
+ String basename = FileAccess.getBasename(documentURL, "/");
XCloseable xCloseable = UnoRuntime.queryInterface( XCloseable.class, _xComponent );
xCloseable.close(false);
- if (_bcreateTemplate)
- {
- aDocProperties = new PropertyValue[5];
- }
- else
- {
- aDocProperties = new PropertyValue[4];
- }
- aDocProperties[0] = Properties.createProperty("Name", basename);
- aDocProperties[1] = Properties.createProperty("Parent", _xDocNameAccess);
- aDocProperties[2] = Properties.createProperty("URL", sPath);
- aDocProperties[3] = Properties.createProperty("DocumentTitle", basename);
- if (_bcreateTemplate)
- {
- aDocProperties[4] = Properties.createProperty("AsTemplate", new Boolean(_bcreateTemplate));
- }
+
+ NamedValueCollection creationArgs = new NamedValueCollection();
+ creationArgs.put( "Name", basename );
+ creationArgs.put( "URL", documentURL );
+ creationArgs.put( "AsTemplate", new Boolean( i_createTemplate ) );
XMultiServiceFactory xDocMSF = UnoRuntime.queryInterface( XMultiServiceFactory.class, _xDocNameAccess );
- Object oDBDocument = xDocMSF.createInstanceWithArguments("com.sun.star.sdb.DocumentDefinition", aDocProperties);
+ Object oDBDocument = xDocMSF.createInstanceWithArguments( "com.sun.star.sdb.DocumentDefinition", creationArgs.getPropertyValues() );
XHierarchicalNameContainer xHier = UnoRuntime.queryInterface( XHierarchicalNameContainer.class, _xDocNameAccess );
String sdocname = Desktop.getUniqueName(_xDocNameAccess, basename);
xHier.insertByHierarchicalName(sdocname, oDBDocument);
XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
XSimpleFileAccess xSimpleFileAccess = UnoRuntime.queryInterface( XSimpleFileAccess.class, xInterface );
- xSimpleFileAccess.kill(sPath);
- }
- catch (Exception e)
- {
- e.printStackTrace(System.out);
- }
- }
-
- public XComponent[] openDatabaseDocument(String _docname, boolean _bAsTemplate, boolean _bOpenInDesign, XHierarchicalNameAccess _xDocuments)
- {
- XComponent[] xRetComponent = new XComponent[2];
- try
- {
- XComponentLoader xComponentLoader = UnoRuntime.queryInterface( XComponentLoader.class, _xDocuments );
- PropertyValue[] aPropertyValues = new PropertyValue[4];
- aPropertyValues[0] = Properties.createProperty("OpenMode", _bOpenInDesign ? "openDesign" : "open");
- aPropertyValues[1] = Properties.createProperty("ActiveConnection", this.DBConnection);
- aPropertyValues[2] = Properties.createProperty("DocumentTitle", _docname);
- aPropertyValues[3] = Properties.createProperty("AsTemplate", new Boolean(_bAsTemplate));
- XHierarchicalNameContainer xHier = UnoRuntime.queryInterface( XHierarchicalNameContainer.class, _xDocuments );
- if (xHier.hasByHierarchicalName(_docname))
- {
- xRetComponent[0] = UnoRuntime.queryInterface( XComponent.class, xHier.getByHierarchicalName( _docname ) );
- xRetComponent[1] = xComponentLoader.loadComponentFromURL(_docname, "", 0, aPropertyValues);
- }
+ xSimpleFileAccess.kill(documentURL);
}
catch (Exception e)
{
e.printStackTrace(System.out);
}
- return xRetComponent;
- }
-
- public XComponent[] openFormDocument(String _sformname, boolean _bOpenInDesign)
- {
- XHierarchicalNameAccess xFormDocuments = getFormDocuments();
- return openDatabaseDocument(_sformname, false, _bOpenInDesign, xFormDocuments);
- }
-
- public XComponent[] openReportDocument(String _sreportname, boolean _bAsTemplate, boolean _bOpenInDesign)
- {
- XHierarchicalNameAccess xReportDocuments = getReportDocuments();
- return openDatabaseDocument(_sreportname, _bAsTemplate, _bOpenInDesign, xReportDocuments);
}
public void createTypeInspector() throws SQLException
diff --git a/wizards/com/sun/star/wizards/form/CallFormWizard.java b/wizards/com/sun/star/wizards/form/CallFormWizard.java
index 60b0b1705487..a7894ce281ca 100644
--- a/wizards/com/sun/star/wizards/form/CallFormWizard.java
+++ b/wizards/com/sun/star/wizards/form/CallFormWizard.java
@@ -30,9 +30,7 @@
package com.sun.star.wizards.form;
import com.sun.star.beans.PropertyValue;
-import com.sun.star.beans.PropertyAttribute;
import com.sun.star.uno.Type;
-import com.sun.star.lang.XComponent;
import com.sun.star.wizards.common.Properties;
/** This class capsulates the class, that implements the minimal component, a
@@ -85,10 +83,7 @@ public class CallFormWizard
*/
public static class FormWizardImplementation extends com.sun.star.lib.uno.helper.PropertySet implements com.sun.star.lang.XInitialization, com.sun.star.lang.XServiceInfo, com.sun.star.lang.XTypeProvider, com.sun.star.task.XJobExecutor
{
-
- PropertyValue[] databaseproperties;
- public XComponent Document = null;
- public XComponent DocumentDefinition = null;
+ private PropertyValue[] m_wizardContext;
/** The constructor of the inner class has a XMultiServiceFactory parameter.
* @param xmultiservicefactoryInitialization A special service factory
@@ -97,9 +92,7 @@ public class CallFormWizard
public FormWizardImplementation(com.sun.star.lang.XMultiServiceFactory xmultiservicefactoryInitialization)
{
super();
- xmultiservicefactory = xmultiservicefactoryInitialization;
- registerProperty("Document", (short) (PropertyAttribute.READONLY | PropertyAttribute.MAYBEVOID));
- registerProperty("DocumentDefinition", (short) (PropertyAttribute.READONLY | PropertyAttribute.MAYBEVOID));
+ m_serviceFactory = xmultiservicefactoryInitialization;
}
public void trigger(String sEvent)
@@ -108,19 +101,8 @@ public class CallFormWizard
{
if (sEvent.compareTo("start") == 0)
{
- FormWizard CurFormWizard = new FormWizard(xmultiservicefactory);
- XComponent[] obj = CurFormWizard.startFormWizard(xmultiservicefactory, databaseproperties);
- if (obj != null)
- {
- DocumentDefinition = obj[0];
- Document = obj[1];
- }
- }
- else if (sEvent.compareTo("end") == 0)
- {
- DocumentDefinition = null;
- Document = null;
- databaseproperties = null;
+ FormWizard CurFormWizard = new FormWizard( m_serviceFactory, m_wizardContext );
+ CurFormWizard.startFormWizard();
}
}
catch (Exception exception)
@@ -134,7 +116,7 @@ public class CallFormWizard
private static final String __serviceName = "com.sun.star.wizards.form.CallFormWizard";
/** The service manager, that gives access to all registered services.
*/
- private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
+ private com.sun.star.lang.XMultiServiceFactory m_serviceFactory;
/** This method is a member of the interface for initializing an object
* directly after its creation.
@@ -145,7 +127,7 @@ public class CallFormWizard
*/
public void initialize(Object[] object) throws com.sun.star.uno.Exception
{
- databaseproperties = Properties.convertToPropertyValueArray(object);
+ m_wizardContext = Properties.convertToPropertyValueArray(object);
}
/** This method returns an array of all supported service names.
diff --git a/wizards/com/sun/star/wizards/form/Finalizer.java b/wizards/com/sun/star/wizards/form/Finalizer.java
index 2b1ffc5786e2..2294586b813d 100644
--- a/wizards/com/sun/star/wizards/form/Finalizer.java
+++ b/wizards/com/sun/star/wizards/form/Finalizer.java
@@ -32,7 +32,6 @@ package com.sun.star.wizards.form;
import com.sun.star.awt.XRadioButton;
import com.sun.star.awt.XTextComponent;
import com.sun.star.wizards.common.Desktop;
-import com.sun.star.wizards.ui.UIConsts;
import com.sun.star.wizards.ui.*;
/**
@@ -45,7 +44,6 @@ public class Finalizer
{
WizardDialog CurUnoDialog;
- Desktop.OfficePathRetriever curofficepath;
short curtabindex;
XRadioButton optModifyForm;
XRadioButton optWorkWithForm;
@@ -88,7 +86,7 @@ public class Finalizer
{
UIConsts.INTEGERS[8], slblProceed, new Integer(97), new Integer(62), UIConsts.INTEGERS[8], new Short(curtabindex++), new Integer(185)
});
- XRadioButton optWorkWithForm = CurUnoDialog.insertRadioButton("optWorkWithForm", null,
+ CurUnoDialog.insertRadioButton("optWorkWithForm", null,
new String[]
{
"Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width"
@@ -130,10 +128,9 @@ public class Finalizer
return txtFormName.getText();
}
- public boolean getOpenMode()
+ public boolean getOpenForEditing()
{
- boolean bOpenMode = optModifyForm.getState() ? true : false;
- return bOpenMode;
+ return optModifyForm.getState() ? true : false;
}
public boolean finish()
diff --git a/wizards/com/sun/star/wizards/form/FormWizard.java b/wizards/com/sun/star/wizards/form/FormWizard.java
index 678e5d55f3b1..287a346986db 100644
--- a/wizards/com/sun/star/wizards/form/FormWizard.java
+++ b/wizards/com/sun/star/wizards/form/FormWizard.java
@@ -33,12 +33,18 @@ import com.sun.star.awt.XWindowPeer;
import com.sun.star.beans.PropertyValue;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.lang.XComponent;
-import com.sun.star.wizards.common.*;
+import com.sun.star.sdb.application.DatabaseObject;
+import com.sun.star.wizards.common.Helper;
+import com.sun.star.wizards.common.JavaTools;
+import com.sun.star.wizards.common.NoValidPathException;
+import com.sun.star.wizards.common.Properties;
+import com.sun.star.wizards.db.DatabaseObjectWizard;
import com.sun.star.wizards.db.RelationController;
import com.sun.star.wizards.document.OfficeDocument;
-import com.sun.star.wizards.ui.*;
+import com.sun.star.wizards.ui.CommandFieldSelection;
+import com.sun.star.wizards.ui.UIConsts;
-public class FormWizard extends WizardDialog
+public class FormWizard extends DatabaseObjectWizard
{
private CommandFieldSelection curDBCommandFieldSelection;
@@ -67,13 +73,13 @@ public class FormWizard extends WizardDialog
public static final int SOGRID = 3;
public static final int SOTOPJUSTIFIED = 4;
private String slblTables;
- private boolean bFormOpenMode;
- private boolean bcreateForm = false;
+ private boolean m_openForEditing;
+ private boolean m_success = false;
private String FormName;
- public FormWizard(XMultiServiceFactory xMSF)
+ public FormWizard( XMultiServiceFactory i_servicFactory, final PropertyValue[] i_wizardContext )
{
- super(xMSF, 34400);
+ super( i_servicFactory, 34400, i_wizardContext );
super.addResourceHandler("FormWizard", "dbw");
Helper.setUnoPropertyValues(xDialogModel,
new String[]
@@ -171,7 +177,6 @@ public class FormWizard extends WizardDialog
switch (nOldStep)
{
case SOMAIN_PAGE:
-// curFormDocument.oMainFormDBMetaData.setFieldNames(curDBCommandFieldSelection.getSelectedFieldNames());
{
final String sTableName = curDBCommandFieldSelection.getSelectedCommandName();
final String[] aFieldNames = curDBCommandFieldSelection.getSelectedFieldNames();
@@ -219,40 +224,6 @@ public class FormWizard extends WizardDialog
}
}
-/*
- public static void main(String args[])
- {
-
- String ConnectStr = "uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"; //localhost ;Lo-1.Germany.sun.com; 10.16.65.155
- PropertyValue[] curproperties = null;
- try
- {
- XMultiServiceFactory xLocMSF = com.sun.star.wizards.common.Desktop.connect(ConnectStr);
- FormWizard CurFormWizard = new FormWizard(xLocMSF);
- if (xLocMSF != null)
- {
- System.out.println("Connected to " + ConnectStr);
- curproperties = new PropertyValue[1];
-// curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyHSQL.odb");
- curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyHSQL.odb");
- curproperties[0] = Properties.createProperty("DataSourceName", "MyHSQLDatabase");
- // file:///C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/myjapanesehsqldatasourceMyDocAssign.odb");
- // MyDBase; Mydbwizard2DocAssign.odb; MyDBase.odb, Mydbwizard2DocAssign.odb ; Mydbwizard2DocAssign.odb; NewAccessDatabase, MyDocAssign baseLocation ); "DataSourceName", "db1");
- // /--/curproperties[0] = Properties.createProperty("DatabaseLocation", "file:///x:/bc/MyHSQL Database.odb"); //MyDBase; Mydbwizard2DocAssign.odb; MyDBase.odb, Mydbwizard2DocAssign.odb ; Mydbwizard2DocAssign.odb; NewAccessDatabase, baseLocation ); "DataSourceName", "db1");
- // curproperties[0] = Properties.createProperty("DataSourceName", "Bibliography");
- // curproperties[0] = Properties.createProperty("DataSourceName", "Bibliography");
- // Bibliography* CurTableWizard.startTableWizard(xLocMSF, curproperties);
-
- CurFormWizard.startFormWizard(xLocMSF, curproperties);
- }
- }
- catch (Exception exception)
- {
- exception.printStackTrace(System.out);
- }
- }
-*/
-
public void buildSteps() throws NoValidPathException
{
curDBCommandFieldSelection = new CommandFieldSelection(this, curFormDocument.oMainFormDBMetaData, 92, slblFields, slblSelFields, slblTables, true, 34411);
@@ -317,14 +288,14 @@ public class FormWizard extends WizardDialog
String sNewFormName = curFinalizer.getName();
if (!curFormDocument.oMainFormDBMetaData.hasFormDocumentByName(sNewFormName))
{
- bFormOpenMode = curFinalizer.getOpenMode();
+ m_openForEditing = curFinalizer.getOpenForEditing();
FormName = curFinalizer.getName();
if (curFormDocument.finalizeForms(CurDataEntrySetter, curFieldLinker, curFormConfiguration))
{
if (curFinalizer.finish())
{
- bcreateForm = true;
+ m_success = true;
xDialog.endExecute();
return true;
}
@@ -342,7 +313,7 @@ public class FormWizard extends WizardDialog
// @Override
public void cancelWizard()
{
- bcreateForm = false;
+ m_success = false;
xDialog.endExecute();
}
@@ -363,33 +334,29 @@ public class FormWizard extends WizardDialog
setCurrentRoadmapItemID((short) 1);
}
- public XComponent[] startFormWizard(XMultiServiceFactory _xMSF, PropertyValue[] CurPropertyValue)
+ public void startFormWizard()
{
- XComponent[] ret = null;
try
{
curFormDocument = new FormDocument(xMSF);
- if (curFormDocument.oMainFormDBMetaData.getConnection(CurPropertyValue))
+ if ( curFormDocument.oMainFormDBMetaData.getConnection( m_wizardContext ) )
{
curFormDocument.oSubFormDBMetaData.getConnection(new PropertyValue[]
{
Properties.createProperty("ActiveConnection", curFormDocument.oMainFormDBMetaData.DBConnection)
});
curFormDocument.xProgressBar.setValue(20);
- // SystemDialog.showMessageBox(xMSF, "FormName", 0, "slblFields");
buildSteps();
- // SystemDialog.showMessageBox(xMSF, "FormName", 0, "slblFields");
- this.curDBCommandFieldSelection.preselectCommand(CurPropertyValue, false);
+ this.curDBCommandFieldSelection.preselectCommand( m_wizardContext, false );
XWindowPeer xWindowPeer2 = createWindowPeer(curFormDocument.xWindowPeer);
- curFormDocument.oMainFormDBMetaData.setWindowPeer(xWindowPeer2 /* xControl.getPeer() */ );
- // setAutoMnemonic("lblDialogHeader", false);
+ curFormDocument.oMainFormDBMetaData.setWindowPeer( xWindowPeer2 );
insertFormRelatedSteps();
- short RetValue = executeDialog(curFormDocument.xFrame);
+ short dialogReturn = executeDialog(curFormDocument.xFrame);
xComponent.dispose();
- if (bcreateForm)
+ if ( ( dialogReturn == 0 ) && m_success )
{
- curFormDocument.oMainFormDBMetaData.addFormDocument(curFormDocument.xComponent);
- ret = curFormDocument.oMainFormDBMetaData.openFormDocument(FormName, bFormOpenMode);
+ curFormDocument.oMainFormDBMetaData.addFormDocument( curFormDocument.xComponent );
+ loadSubComponent( DatabaseObject.FORM, FormName, m_openForEditing );
}
}
}
@@ -397,11 +364,10 @@ public class FormWizard extends WizardDialog
{
jexception.printStackTrace(System.out);
}
- if ((!bcreateForm) && (curFormDocument != null))
+ if ((!m_success) && (curFormDocument != null))
{
OfficeDocument.close(curFormDocument.xComponent);
}
- return ret;
}
private boolean getFormResources()
diff --git a/wizards/com/sun/star/wizards/report/CallReportWizard.java b/wizards/com/sun/star/wizards/report/CallReportWizard.java
index 82c405747ad8..424e117c4d4f 100644
--- a/wizards/com/sun/star/wizards/report/CallReportWizard.java
+++ b/wizards/com/sun/star/wizards/report/CallReportWizard.java
@@ -30,14 +30,12 @@
package com.sun.star.wizards.report;
import com.sun.star.beans.PropertyValue;
-import com.sun.star.beans.PropertyAttribute;
import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.text.XTextDocument;
import com.sun.star.wizards.common.Properties;
-import com.sun.star.lang.XComponent;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.wizards.common.Desktop;
+import com.sun.star.sdb.application.XDatabaseDocumentUI;
+import com.sun.star.wizards.common.NamedValueCollection;
/** This class capsulates the class, that implements the minimal component, a
* factory for creating the service (<CODE>__getServiceFactory</CODE>) and a
@@ -50,7 +48,7 @@ public class CallReportWizard
static boolean bWizardstartedalready;
- public static void main(String args[])
+/* public static void main(String args[])
{
String ConnectStr = "uno:pipe,name=fs93730;urp;StarOffice.ServiceManager";
try
@@ -61,15 +59,15 @@ public class CallReportWizard
PropertyValue[] curproperties = new PropertyValue[1];
curproperties[0] = Properties.createProperty("DataSourceName", "countries");
- ReportWizard wizard = new ReportWizard(orb);
- wizard.startReportWizard(orb, curproperties);
+ ReportWizard wizard = new ReportWizard( orb, curproperties );
+ wizard.startReportWizard();
}
}
catch (java.lang.Exception jexception)
{
jexception.printStackTrace(System.out);
}
- }
+ }*/
/** Gives a factory for creating the service.
* This method is called by the <code>JavaLoader</code>
@@ -121,9 +119,7 @@ public class CallReportWizard
public static class ReportWizardImplementation extends com.sun.star.lib.uno.helper.PropertySet implements com.sun.star.lang.XInitialization, com.sun.star.lang.XServiceInfo, com.sun.star.lang.XTypeProvider, com.sun.star.task.XJobExecutor
{
- PropertyValue[] databaseproperties;
- public XComponent DocumentDefinition = null;
- public XComponent Document = null;
+ private PropertyValue[] m_wizardContext;
/** The constructor of the inner class has a XMultiServiceFactory parameter.
* @param xmultiservicefactoryInitialization A special service factory
@@ -133,59 +129,32 @@ public class CallReportWizard
{
super();
xmultiservicefactory = xmultiservicefactoryInitialization;
- registerProperty("Document", (short) (PropertyAttribute.READONLY | PropertyAttribute.MAYBEVOID));
- registerProperty("DocumentDefinition", (short) (PropertyAttribute.READONLY | PropertyAttribute.MAYBEVOID));
}
public void trigger(String sEvent)
{
try
{
- com.sun.star.frame.XComponentLoader xcomponentloader = (com.sun.star.frame.XComponentLoader) com.sun.star.uno.UnoRuntime.queryInterface(com.sun.star.frame.XComponentLoader.class, xmultiservicefactory.createInstance("com.sun.star.frame.Desktop"));
if (sEvent.compareTo("start") == 0)
{
if (bWizardstartedalready != true)
{
- ReportWizard CurReportWizard = new ReportWizard(xmultiservicefactory);
- XComponent[] obj = CurReportWizard.startReportWizard(xmultiservicefactory, databaseproperties);
- if (obj != null)
- {
- DocumentDefinition = obj[0];
- if (obj.length > 1)
- {
- Document = obj[1];
- }
- else
- {
- Document = null;
- }
- }
+ ReportWizard CurReportWizard = new ReportWizard( xmultiservicefactory, m_wizardContext );
+ CurReportWizard.startReportWizard();
}
bWizardstartedalready = false;
}
- else if (sEvent.compareTo("end") == 0)
- {
- DocumentDefinition = null;
- Document = null;
- databaseproperties = null;
- }
else if (sEvent.compareTo("fill") == 0)
{
Dataimport CurDataimport = new Dataimport(xmultiservicefactory);
- XTextDocument xTextDocument = null;
- if (databaseproperties != null)
+ if (m_wizardContext != null)
{
- for (int i = 0; i < databaseproperties.length; ++i)
- {
- if (databaseproperties[i].Name.equals("TextDocument"))
- {
- xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, databaseproperties[i].Value);
- }
-
- }
- if (xTextDocument != null)
+ NamedValueCollection context = new NamedValueCollection( m_wizardContext );
+ XTextDocument textDocument = context.queryOrDefault( "TextDocument", null, XTextDocument.class );
+ XDatabaseDocumentUI documentUI = context.queryOrDefault( "DocumentUI", null, XDatabaseDocumentUI.class );
+ if ( textDocument != null )
{
- CurDataimport.createReport(xmultiservicefactory, xTextDocument, databaseproperties);
+ CurDataimport.createReport(xmultiservicefactory, documentUI, textDocument, m_wizardContext);
}
}
}
@@ -212,7 +181,7 @@ public class CallReportWizard
*/
public void initialize(Object[] object) throws com.sun.star.uno.Exception
{
- this.databaseproperties = Properties.convertToPropertyValueArray(object);
+ this.m_wizardContext = Properties.convertToPropertyValueArray(object);
// xmultiservicefactory = (XMultiservicefactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, object[0]);
}
diff --git a/wizards/com/sun/star/wizards/report/Dataimport.java b/wizards/com/sun/star/wizards/report/Dataimport.java
index d0f6c4a0ceca..067e14d496a5 100644
--- a/wizards/com/sun/star/wizards/report/Dataimport.java
+++ b/wizards/com/sun/star/wizards/report/Dataimport.java
@@ -31,6 +31,7 @@ package com.sun.star.wizards.report;
import com.sun.star.beans.PropertyValue;
import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.application.XDatabaseDocumentUI;
import com.sun.star.text.XTextDocument;
import com.sun.star.wizards.ui.*;
@@ -214,11 +215,10 @@ public class Dataimport extends UnoDialog2 implements com.sun.star.awt.XActionLi
CurReportDocument.getRecordParser().dispose();
}
- public void createReport(final XMultiServiceFactory xMSF, XTextDocument _textDocument, PropertyValue[] properties)
+ public void createReport( XMultiServiceFactory xMSF, XDatabaseDocumentUI i_documentUI, XTextDocument _textDocument,
+ PropertyValue[] properties)
{
- // CurReportDocument = new ReportTextDocument(xMSF, _textDocument,m_oResource);
- CurReportDocument = ReportTextImplementation.create(xMSF, _textDocument, m_oResource);
-// CurProperties = properties;
+ CurReportDocument = ReportTextImplementation.create( xMSF, i_documentUI, _textDocument, m_oResource );
showProgressDisplay(xMSF, true);
importReportData(xMSF, this, CurReportDocument, properties);
}
diff --git a/wizards/com/sun/star/wizards/report/IReportDocument.java b/wizards/com/sun/star/wizards/report/IReportDocument.java
index e94f93bf9d2e..a5c6ae63add0 100644
--- a/wizards/com/sun/star/wizards/report/IReportDocument.java
+++ b/wizards/com/sun/star/wizards/report/IReportDocument.java
@@ -34,6 +34,8 @@ 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;
@@ -45,15 +47,15 @@ import java.util.Vector;
*/
public interface IReportDocument
{
- // public ReportTextDocument getDoc();
// -------------------------------------------------------------------------
// initialisation
// -------------------------------------------------------------------------
+ public void initialize(
+ final XDatabaseDocumentUI i_documentUI,
+ final Resource i_resource
+ );
// -------------------------------------------------------------------------
- // opening the dialog
- // -------------------------------------------------------------------------
- // -------------------------------------------------------------------------
// Access Helper
// -------------------------------------------------------------------------
/**
@@ -211,7 +213,7 @@ public interface IReportDocument
*
* TODO: add Name to this functionality
*/
- public void addReportToDBView(/* String Name */);
+ public void addReportToDBView();
public void importReportData(ReportWizard aWizard);
@@ -222,7 +224,11 @@ public interface IReportDocument
* @param _bOpenInDesign
* @return
*/
- public XComponent[] createFinalReportDocument(String Name, boolean _bAsTemplate, boolean _bOpenInDesign);
+ public void createAndOpenReportDocument(
+ final String Name,
+ final boolean _bAsTemplate,
+ final boolean _bOpenInDesign
+ );
public void dispose();
// -------------------------------------------------------------------------
diff --git a/wizards/com/sun/star/wizards/report/ReportTextImplementation.java b/wizards/com/sun/star/wizards/report/ReportTextImplementation.java
index 6e0091b52ef5..3415365b563b 100644
--- a/wizards/com/sun/star/wizards/report/ReportTextImplementation.java
+++ b/wizards/com/sun/star/wizards/report/ReportTextImplementation.java
@@ -34,13 +34,16 @@ package com.sun.star.wizards.report;
import com.sun.star.awt.VclWindowPeerAttribute;
import com.sun.star.awt.XWindowPeer;
import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.NoSuchElementException;
import com.sun.star.container.XNameAccess;
import com.sun.star.container.XNameContainer;
import com.sun.star.container.XNamed;
+import com.sun.star.frame.XController;
import com.sun.star.frame.XFrame;
-// import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.lang.XComponent;
import com.sun.star.sdb.CommandType;
+import com.sun.star.sdbc.SQLException;
import com.sun.star.table.XCellRange;
import com.sun.star.text.XTextContent;
import com.sun.star.text.XTextCursor;
@@ -56,6 +59,8 @@ import com.sun.star.wizards.common.JavaTools;
import com.sun.star.wizards.common.Resource;
import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.application.DatabaseObject;
+import com.sun.star.sdb.application.XDatabaseDocumentUI;
import com.sun.star.wizards.common.SystemDialog;
import com.sun.star.wizards.db.DBMetaData;
import com.sun.star.wizards.db.SQLQueryComposer;
@@ -63,6 +68,8 @@ import com.sun.star.wizards.document.OfficeDocument;
import com.sun.star.wizards.ui.UIConsts;
import java.util.ArrayList;
import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
*
@@ -71,11 +78,12 @@ import java.util.Vector;
public class ReportTextImplementation extends ReportImplementationHelper implements IReportDocument
{
- private ReportTextDocument m_aDoc;
- private Object m_aInitialDoc;
- private Resource m_aResource;
+ private ReportTextDocument m_aDoc;
+ private Object m_aInitialDoc;
+ private Resource m_resource;
+ private XDatabaseDocumentUI m_documentUI;
- public void setInitialDocument(Object _aDoc)
+ private void setInitialDocument(Object _aDoc)
{
m_aInitialDoc = _aDoc;
}
@@ -91,15 +99,15 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
{
if (m_aInitialDoc instanceof XTextDocument)
{
- m_aDoc = new ReportTextDocument(getMSF(), (XTextDocument) m_aInitialDoc, m_aResource, getRecordParser());
+ m_aDoc = new ReportTextDocument(getMSF(), (XTextDocument) m_aInitialDoc, m_resource, getRecordParser());
}
else if (m_aInitialDoc instanceof String)
{
- m_aDoc = new ReportTextDocument(getMSF(), (String) m_aInitialDoc, m_aResource, getRecordParser());
+ m_aDoc = new ReportTextDocument(getMSF(), (String) m_aInitialDoc, m_resource, getRecordParser());
}
else
{
- throw new RuntimeException("Unknown type for setInitialDoc() given.");
+ throw new RuntimeException("Unknown type for setInitialDocument() given.");
}
}
return m_aDoc;
@@ -107,40 +115,37 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
public void clearDocument()
{
- int dummy = 0;
- /*CurReportDocument.*/ getDoc().oTextSectionHandler.removeAllTextSections();
- /*CurReportDocument.*/ getDoc().oTextTableHandler.removeAllTextTables();
- /*CurReportDocument.*/ getDoc().DBColumnsVector = new Vector();
- //getRecordParser().setGroupFieldNames(new String[]{});
- // CurGroupFieldHandler.removeGroupFieldNames();
+ getDoc().oTextSectionHandler.removeAllTextSections();
+ getDoc().oTextTableHandler.removeAllTextTables();
+ getDoc().DBColumnsVector = new Vector();
}
- private ReportTextImplementation(XMultiServiceFactory _xMSF, Resource _oResource)
+ protected ReportTextImplementation( XMultiServiceFactory i_serviceFactory )
{
- super(_xMSF, ReportLayouter.SOOPTLANDSCAPE);
- m_aResource = _oResource;
+ super( i_serviceFactory, ReportLayouter.SOOPTLANDSCAPE );
}
- static IReportDocument create(XMultiServiceFactory _xMSF /*, String _sPreviewURL */, Resource _oResource)
+ public void initialize( final XDatabaseDocumentUI i_documentUI, final Resource i_resource )
{
- ReportTextImplementation a = new ReportTextImplementation(_xMSF, _oResource);
- String sPreviewURL = a.getLayoutPath(); // a.getReportPath() + "/stl-default.ott";
- a.setInitialDocument(sPreviewURL);
- a.initialResources();
- return a;
+ m_documentUI = i_documentUI;
+ m_resource = i_resource;
+
+ if ( m_aInitialDoc == null )
+ setInitialDocument( getLayoutPath() );
+
+ initialResources();
}
- static IReportDocument create(XMultiServiceFactory _xMSF, XTextDocument _aDoc, Resource _oResource)
+ static IReportDocument create( XMultiServiceFactory i_serviceFactory, XDatabaseDocumentUI i_documentUI, XTextDocument i_initialDocument, Resource i_resources )
{
- ReportTextImplementation a = new ReportTextImplementation(_xMSF, _oResource);
- a.setInitialDocument(_aDoc);
- a.initialResources();
+ ReportTextImplementation a = new ReportTextImplementation( i_serviceFactory );
+ a.setInitialDocument(i_initialDocument);
+ a.initialize( i_documentUI, i_resources );
return a;
}
public XWindowPeer getWizardParent()
{
- // throw new UnsupportedOperationException("Not supported yet.");
return getDoc().xWindowPeer;
}
static String sMsgQueryCreationImpossible;
@@ -153,11 +158,11 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
private void initialResources()
{
- sReportFormNotExisting = m_aResource.getResText(UIConsts.RID_REPORT + 64);
- sMsgQueryCreationImpossible = m_aResource.getResText(UIConsts.RID_REPORT + 65);
- sMsgHiddenControlMissing = m_aResource.getResText(UIConsts.RID_REPORT + 66);
- sMsgEndAutopilot = m_aResource.getResText(UIConsts.RID_DB_COMMON + 33);
- sMsgNoConnection = m_aResource.getResText(UIConsts.RID_DB_COMMON + 14);
+ sReportFormNotExisting = m_resource.getResText(UIConsts.RID_REPORT + 64);
+ sMsgQueryCreationImpossible = m_resource.getResText(UIConsts.RID_REPORT + 65);
+ sMsgHiddenControlMissing = m_resource.getResText(UIConsts.RID_REPORT + 66);
+ sMsgEndAutopilot = m_resource.getResText(UIConsts.RID_DB_COMMON + 33);
+ sMsgNoConnection = m_resource.getResText(UIConsts.RID_DB_COMMON + 14);
}
public void addTextSectionCopies()
@@ -185,8 +190,8 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
try
{
XInterface xTextSection = (XInterface) getDocumentServiceFactory().createInstance("com.sun.star.text.TextSection");
- XTextContent xTextSectionContent = (XTextContent) UnoRuntime.queryInterface(XTextContent.class, xTextSection);
- xNamedTextSection = (XNamed) UnoRuntime.queryInterface(XNamed.class, xTextSection);
+ XTextContent xTextSectionContent = UnoRuntime.queryInterface( XTextContent.class, xTextSection );
+ xNamedTextSection = UnoRuntime.queryInterface( XNamed.class, xTextSection );
xTextCursor.gotoEnd(false);
xTextCursor.getText().insertTextContent(xTextCursor, xTextSectionContent, true);
Helper.setUnoPropertyValue(xTextSection, "LinkRegion", sLinkRegion);
@@ -196,7 +201,7 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
if (bIsGroupTable == true)
{
XTextTable xTextTable = getDoc().oTextTableHandler.getlastTextTable();
- XCellRange xCellRange = (XCellRange) UnoRuntime.queryInterface(XCellRange.class, xTextTable);
+ XCellRange xCellRange = UnoRuntime.queryInterface( XCellRange.class, xTextTable );
CurDBColumn.modifyCellContent(xCellRange, CurGroupValue);
}
}
@@ -211,7 +216,7 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
private void renameTableofLastSection(String _snewname)
{
XTextTable xTextTable = getDoc().oTextTableHandler.getlastTextTable();
- XNamed xNamedTable = (XNamed) UnoRuntime.queryInterface(XNamed.class, xTextTable);
+ XNamed xNamedTable = UnoRuntime.queryInterface( XNamed.class, xTextTable );
xNamedTable.setName(_snewname);
}
@@ -231,7 +236,7 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
if (oDBForm != null)
{
String sMsg = sMsgHiddenControlMissing + (char) 13 + sMsgEndAutopilot;
- XNameAccess xNamedForm = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, oDBForm);
+ XNameAccess xNamedForm = UnoRuntime.queryInterface( XNameAccess.class, oDBForm );
getRecordParser().Command = getDoc().oFormHandler.getValueofHiddenControl(xNamedForm, "Command", sMsg);
String sCommandType = getDoc().oFormHandler.getValueofHiddenControl(xNamedForm, "CommandType", sMsg);
String sGroupFieldNames = getDoc().oFormHandler.getValueofHiddenControl(xNamedForm, "GroupFieldNames", sMsg);
@@ -346,7 +351,7 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
{
CurGroupTableName = ReportTextDocument.TBLGROUPSECTION + Integer.toString(ColIndex + 1);
oTable = getDoc().oTextTableHandler.xTextTablesSupplier.getTextTables().getByName(CurGroupTableName);
- xGroupBaseTables[ColIndex] = (XTextTable) UnoRuntime.queryInterface(XTextTable.class, oTable);
+ xGroupBaseTables[ColIndex] = UnoRuntime.queryInterface( XTextTable.class, oTable );
CurGroupValue = getRecordParser().getGroupColumnValue(ColIndex);
OldGroupFieldValues[ColIndex] = CurGroupValue;
CurDBColumn = (DBColumn) getDoc().DBColumnsVector.elementAt(ColIndex);
@@ -574,24 +579,23 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
public void liveupdate_updateReportTitle(String _sTitleName)
{
- int dummy = 0;
- // getDoc().updateReportTitle(_sTitleName);
}
-// public void finish()
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
public void addReportToDBView()
{
getRecordParser().addReportDocument(getComponent(), true);
}
- public XComponent[] createFinalReportDocument(String sReportName, boolean _bAsTemplate, boolean _bOpenInDesign)
+ public void createAndOpenReportDocument( String sReportName, boolean _bAsTemplate, boolean _bOpenInDesign )
{
- // create the real report document, filled with content
- XComponent[] ret = getRecordParser().openReportDocument(sReportName, _bAsTemplate, _bOpenInDesign);
- return ret;
+ try
+ {
+ m_documentUI.loadComponent( DatabaseObject.REPORT, sReportName, _bOpenInDesign );
+ }
+ catch ( Exception ex )
+ {
+ Logger.getLogger( ReportTextImplementation.class.getName() ).log( Level.SEVERE, null, ex );
+ }
}
public void initializeFieldColumns(final int _nType, final String TableName, final String[] FieldNames)
@@ -715,8 +719,7 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
public void importReportData(ReportWizard _aWizard)
{
Dataimport CurDataimport = new Dataimport(_aWizard.xMSF);
- CurDataimport.CurReportDocument = _aWizard.CurReportDocument;
- // CurDataimport.showProgressDisplay(xMSF, false);
+ CurDataimport.CurReportDocument = this;
_aWizard.importReportData(_aWizard.xMSF, CurDataimport);
}
@@ -728,7 +731,6 @@ public class ReportTextImplementation extends ReportImplementationHelper impleme
public void setCommand(String _sCommand)
{
getRecordParser().Command = _sCommand;
- // throw new UnsupportedOperationException("Not supported yet.");
}
public void checkInvariants() throws java.lang.Exception
diff --git a/wizards/com/sun/star/wizards/report/ReportWizard.java b/wizards/com/sun/star/wizards/report/ReportWizard.java
index a959c2dfd183..4c860134c724 100644
--- a/wizards/com/sun/star/wizards/report/ReportWizard.java
+++ b/wizards/com/sun/star/wizards/report/ReportWizard.java
@@ -32,24 +32,15 @@ package com.sun.star.wizards.report;
// import java.util.Vector;
-// import com.sun.star.wizards.reportbuilder.ReportBuilderImplementation;
-import com.sun.star.awt.Size;
import com.sun.star.awt.TextEvent;
import com.sun.star.awt.VclWindowPeerAttribute;
-import com.sun.star.awt.XControl;
-import com.sun.star.awt.XControlModel;
-import com.sun.star.awt.XFixedText;
-import com.sun.star.awt.XLayoutConstrains;
import com.sun.star.awt.XTextListener;
-import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
-// import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XContentEnumerationAccess;
import com.sun.star.deployment.XPackageInformationProvider;
import com.sun.star.lang.EventObject;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XServiceInfo;
import com.sun.star.logging.XLogger;
import com.sun.star.logging.XLoggerPool;
import com.sun.star.sdb.CommandType;
@@ -57,39 +48,40 @@ import com.sun.star.sdb.CommandType;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
-import com.sun.star.wizards.common.*;
-import com.sun.star.wizards.ui.*;
-import com.sun.star.wizards.db.*;
-import com.sun.star.lang.XComponent;
+import com.sun.star.logging.LogLevel;
+import com.sun.star.wizards.common.Helper;
+import com.sun.star.wizards.common.JavaTools;
+import com.sun.star.wizards.common.Resource;
+import com.sun.star.wizards.common.SystemDialog;
+import com.sun.star.wizards.db.DBMetaData;
+import com.sun.star.wizards.db.DatabaseObjectWizard;
+import com.sun.star.wizards.db.SQLQueryComposer;
+import com.sun.star.wizards.ui.CommandFieldSelection;
+import com.sun.star.wizards.ui.FieldSelection;
+import com.sun.star.wizards.ui.SortingComponent;
+import com.sun.star.wizards.ui.TitlesComponent;
+import com.sun.star.wizards.ui.UIConsts;
+import com.sun.star.wizards.ui.UnoDialog;
+import com.sun.star.wizards.ui.XCompletion;
import java.lang.reflect.Method;
import java.net.URI;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Map;
-public class ReportWizard extends WizardDialog implements XTextListener, XCompletion
+public class ReportWizard extends DatabaseObjectWizard implements XTextListener, XCompletion
{
- // XMultiServiceFactory xMSF;
- // QueryMetaData CurDBMetaData;
protected FieldSelection CurGroupFieldSelection;
private SortingComponent CurSortingComponent;
- // private UnoDialog CurUnoProgressDialog;
private TitlesComponent CurTitlesComponent;
private CommandFieldSelection CurDBCommandFieldSelection;
private GroupFieldHandler CurGroupFieldHandler;
private ReportLayouter CurReportLayouter;
private ReportFinalizer CurReportFinalizer;
- private PropertyValue[] DBGPROPERTYVALUE;
- // private String sCommandName = "";
- // private int nCommandType = -1;
private int nReportMode = ReportFinalizer.SOCREATEDOCUMENT;
private String m_sReportName = "";
protected static final String SOREPORTFORMNAME = "ReportSource";
- // private final int SOSELGROUPLST = 33;
- // private final int SOTXTCOLTITLE = 48;
- // private final int SOTITLESCROLLBAR = 49;
- // private static final int SONULLPAGE = 0;
private static final int SOMAINPAGE = 1;
private static final int SOTITLEPAGE = 2;
protected static final int SOGROUPPAGE = 3;
@@ -97,36 +89,21 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
protected static final int SOTEMPLATEPAGE = 5;
protected static final int SOSTOREPAGE = 6;
- // ReportTextDocument CurReportDocument;
- // ReportTextImplementation CurReportDocument;
- protected IReportDocument CurReportDocument;
+ private IReportDocument m_reportDocument;
private static String sMsgWizardName;
private static String slblFields;
private static String slblSelFields;
private static String sShowBinaryFields;
- // private static String sGroupings;
private String[] WizardHeaderText = new String[6];
- // private static String[] WizardTitle = new String[6];
- // private static String sWriterFilterName;
- private static String slstDatabasesDefaultText;
- private static String slstTablesDefaultText;
- private static String sMsgErrorOccured;
- private static String sMsgSavingImpossible;
- // private static String sMsgNoConnection;
- // Progress display relevant Strings
private static String slblColumnTitles;
private static String slblColumnNames;
- private static String sMsgNoConnectionforDataimport;
- private static String sMsgQueryCreationImpossible;
- private static String sMsgFilePathInvalid;
private static String slblTables;
-// public static String sBlindTextNote;
protected static boolean bCloseDocument;
private boolean bHasEscapeProcessing = true;
- public ReportWizard(XMultiServiceFactory xMSF)
+ public ReportWizard( XMultiServiceFactory i_serviceFactory, final PropertyValue[] i_wizardContext )
{
- super(xMSF, 34320);
+ super(i_serviceFactory, 34320, i_wizardContext );
super.addResourceHandler("Report Wizard", "dbw");
if (getReportResources(false) == true)
{
@@ -166,7 +143,7 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
{
// CurReportDocument.getDoc().oTextSectionHandler.removeTextSectionbyName("RecordSection");
// CurReportDocument.getDoc().oTextTableHandler.removeTextTablebyName("Tbl_RecordSection");
- CurReportDocument.removeTextTableAndTextSection();
+ m_reportDocument.removeTextTableAndTextSection();
}
switch (nNewStep)
{
@@ -175,8 +152,8 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
break;
case SOTITLEPAGE:
- String[] aFieldNames = CurReportDocument.getRecordParser().getFieldNames();
- Map aFieldTitleSet = CurReportDocument.getRecordParser().getFieldTitleSet();
+ String[] aFieldNames = m_reportDocument.getRecordParser().getFieldNames();
+ Map aFieldTitleSet = m_reportDocument.getRecordParser().getFieldTitleSet();
CurTitlesComponent.initialize(aFieldNames, aFieldTitleSet);
break;
@@ -185,10 +162,10 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
break;
case SOSORTPAGE:
- String[] aFieldNames2 = CurReportDocument.getRecordParser().getFieldNames();
- String[][] aSortFieldNames = CurReportDocument.getRecordParser().getSortFieldNames();
+ String[] aFieldNames2 = m_reportDocument.getRecordParser().getFieldNames();
+ String[][] aSortFieldNames = m_reportDocument.getRecordParser().getSortFieldNames();
CurSortingComponent.initialize(aFieldNames2, aSortFieldNames);
- int nLength = CurReportDocument.getRecordParser().GroupFieldNames.length;
+ int nLength = m_reportDocument.getRecordParser().GroupFieldNames.length;
CurSortingComponent.setReadOnlyUntil(nLength, false);
break;
@@ -197,7 +174,7 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
case SOSTOREPAGE:
//TODO initialize with suitable PathName
- CurReportFinalizer.initialize(CurReportDocument.getRecordParser());
+ CurReportFinalizer.initialize(m_reportDocument.getRecordParser());
break;
default:
@@ -213,23 +190,13 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
case SOMAINPAGE:
String[] aSelectedFieldNames = CurDBCommandFieldSelection.getSelectedFieldNames();
String aTableName = CurDBCommandFieldSelection.getSelectedCommandName();
- // set all selected field names, DB Table name
- // CurReportDocument.getRecordParser().initializeFieldColumns(aSelectedFieldNames, aTableName);
int nType = CurDBCommandFieldSelection.getSelectedCommandType();
- // nType = com.sun.star.sdb.CommandType.TABLE;
- CurReportDocument.initializeFieldColumns(nType, aTableName, aSelectedFieldNames);
- // CurReportDocument.initializeFieldColumns(aSelectedFieldNames, aSelectedCommandName);
- // CurReportDocument.getRecordParser().setAllIncludedFieldNames(false);
+ m_reportDocument.initializeFieldColumns(nType, aTableName, aSelectedFieldNames);
if (CurDBCommandFieldSelection.isModified())
{
// cleanup document
- CurReportDocument.clearDocument();
- // CurReportDocument.getDoc().oTextSectionHandler.removeAllTextSections();
- // CurReportDocument.getDoc().oTextTableHandler.removeAllTextTables();
- // CurReportDocument.getDoc().DBColumnsVector = new Vector();
- CurReportDocument.getRecordParser().setGroupFieldNames(new String[]
- {
- });
+ m_reportDocument.clearDocument();
+ m_reportDocument.getRecordParser().setGroupFieldNames(new String[]{});
CurGroupFieldHandler.removeGroupFieldNames();
}
break;
@@ -238,21 +205,21 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
String[] sFieldTitles = CurTitlesComponent.getFieldTitles();
// set new field name titles
// CurReportDocument.getRecordParser().setFieldTitles(sFieldTitles);
- CurReportDocument.setFieldTitles(sFieldTitles);
+ m_reportDocument.setFieldTitles(sFieldTitles);
break;
case SOGROUPPAGE:
// TODO: DESIGN!!! a getter should return a value!!!
- CurGroupFieldHandler.getGroupFieldNames(CurReportDocument.getRecordParser());
- String[] aGroupFieldNames = CurReportDocument.getRecordParser().GroupFieldNames;
+ CurGroupFieldHandler.getGroupFieldNames(m_reportDocument.getRecordParser());
+ String[] aGroupFieldNames = m_reportDocument.getRecordParser().GroupFieldNames;
// CurReportDocument.getRecordParser().prependSortFieldNames(aGroupFieldNames);
- CurReportDocument.setGrouping(aGroupFieldNames);
+ m_reportDocument.setGrouping(aGroupFieldNames);
break;
case SOSORTPAGE:
String[][] aSortFieldNames = CurSortingComponent.getSortFieldNames();
// CurReportDocument.getRecordParser().SortFieldNames = aSortFieldNames;
- CurReportDocument.setSorting(aSortFieldNames);
+ m_reportDocument.setSorting(aSortFieldNames);
// TODO: why do we make a switch here
super.enablefromStep(SOTEMPLATEPAGE, true);
break;
@@ -270,58 +237,33 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
if ((nOldStep < SOTEMPLATEPAGE) && (super.getNewStep() >= SOTEMPLATEPAGE))
{
// this is called before SOTEMPLATEPAGE, after SOGROUPPAGE
- CurReportDocument.getRecordParser().createRecordFieldNames();
- CurReportLayouter.initialize(CurReportDocument.getContentPath());
+ m_reportDocument.getRecordParser().createRecordFieldNames();
+ CurReportLayouter.initialize(m_reportDocument.getContentPath());
}
}
- private XComponent[] dialogFinish(short RetValue)
+ private void dialogFinish()
{
- XComponent[] ret = null;
- // Report Wizard Dialog is done.
- boolean bdisposeDialog = true;
- switch (RetValue)
- {
- case 0:
- // via Cancelbutton or via sourceCode with "endExecute"
- this.xComponent.dispose();
- if (bCloseDocument == true)
- {
- // OfficeDocument.dispose(xMSF, CurReportDocument.getDoc().xComponent);
- CurReportDocument.dispose();
- return ret;
- }
- if ((nReportMode == ReportFinalizer.SOCREATETEMPLATE) || (nReportMode == ReportFinalizer.SOUSETEMPLATE))
- {
- bdisposeDialog = false;
- // Add Report to the DB View
- // old: CurReportDocument.getRecordParser().addReportDocument(CurReportDocument.getComponent(), true);
- CurReportDocument.addReportToDBView();
- boolean bOpenInDesign = (nReportMode == ReportFinalizer.SOCREATETEMPLATE);
- // Create Report
- // old: ret = CurReportDocument.getRecordParser().openReportDocument(sReportName, true, bOpenInDesign);
- ret = CurReportDocument.createFinalReportDocument(m_sReportName, true, bOpenInDesign);
- }
- else
- {
- bdisposeDialog = false;
- CurReportDocument.importReportData(this);
- // Dataimport CurDataimport = new Dataimport(xMSF);
- // CurDataimport.CurReportDocument = CurReportDocument;
- // CurDataimport.showProgressDisplay(xMSF, false);
- // importReportData(xMSF, CurDataimport);
- // old: ret = CurReportDocument.getRecordParser().openReportDocument(sReportName, false, false);
- ret = CurReportDocument.createFinalReportDocument(m_sReportName, false, false);
- }
- return ret;
- case 1:
- if (bdisposeDialog == true)
- {
- // CurReportDocument.getDoc().unlockallControllers();
- }
- break;
+ this.xComponent.dispose();
+ if (bCloseDocument == true)
+ {
+ m_reportDocument.dispose();
+ return;
+ }
+
+ if ( ( nReportMode == ReportFinalizer.SOCREATETEMPLATE )
+ || ( nReportMode == ReportFinalizer.SOUSETEMPLATE )
+ )
+ {
+ m_reportDocument.addReportToDBView();
+ boolean bOpenInDesign = (nReportMode == ReportFinalizer.SOCREATETEMPLATE);
+ m_reportDocument.createAndOpenReportDocument( m_sReportName, true, bOpenInDesign);
+ }
+ else
+ {
+ m_reportDocument.importReportData(this);
+ m_reportDocument.createAndOpenReportDocument( m_sReportName, false, false );
}
- return null;
}
private boolean executeQuery()
@@ -329,35 +271,35 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
boolean bQueryCreated = false;
if (this.CurDBCommandFieldSelection.getSelectedCommandType() == CommandType.TABLE)
{
- bQueryCreated = CurReportDocument.getRecordParser().oSQLQueryComposer.setQueryCommand(this.xWindow, false, false);
+ bQueryCreated = m_reportDocument.getRecordParser().oSQLQueryComposer.setQueryCommand(this.xWindow, false, false);
- CurReportDocument.setCommandType(CommandType.COMMAND);
- String sQuery = CurReportDocument.getRecordParser().oSQLQueryComposer.getQuery();
- CurReportDocument.setCommand(sQuery);
+ m_reportDocument.setCommandType(CommandType.COMMAND);
+ String sQuery = m_reportDocument.getRecordParser().oSQLQueryComposer.getQuery();
+ m_reportDocument.setCommand(sQuery);
}
else
{
try
{
String sQueryName = CurDBCommandFieldSelection.getSelectedCommandName();
- DBMetaData.CommandObject oCommand = CurReportDocument.getRecordParser().getQueryByName(sQueryName);
- bHasEscapeProcessing = CurReportDocument.getRecordParser().hasEscapeProcessing(oCommand.getPropertySet());
+ DBMetaData.CommandObject oCommand = m_reportDocument.getRecordParser().getQueryByName(sQueryName);
+ bHasEscapeProcessing = m_reportDocument.getRecordParser().hasEscapeProcessing(oCommand.getPropertySet());
String sCommand = (String) oCommand.getPropertySet().getPropertyValue("Command");
if (bHasEscapeProcessing)
{
// String sCommand = (String) oCommand.xPropertySet.getPropertyValue("Command");
bQueryCreated = (!sCommand.equals(""));
- CurReportDocument.getRecordParser().oSQLQueryComposer.m_xQueryAnalyzer.setQuery(sCommand);
- CurReportDocument.getRecordParser().oSQLQueryComposer.prependSortingCriteria();
+ m_reportDocument.getRecordParser().oSQLQueryComposer.m_xQueryAnalyzer.setQuery(sCommand);
+ m_reportDocument.getRecordParser().oSQLQueryComposer.prependSortingCriteria();
// TODO: check with query
- CurReportDocument.setCommandType(CommandType.COMMAND);
- CurReportDocument.setCommand(CurReportDocument.getRecordParser().oSQLQueryComposer.getQuery());
+ m_reportDocument.setCommandType(CommandType.COMMAND);
+ m_reportDocument.setCommand(m_reportDocument.getRecordParser().oSQLQueryComposer.getQuery());
bQueryCreated = true;
}
else
{
- CurReportDocument.setCommandType(CommandType.COMMAND);
- CurReportDocument.setCommand(sCommand);
+ m_reportDocument.setCommandType(CommandType.COMMAND);
+ m_reportDocument.setCommand(sCommand);
bQueryCreated = true;
}
}
@@ -372,124 +314,10 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
}
return bQueryCreated;
}
-/*
- public static void main(String args[])
- {
- String ConnectStr = "uno:socket,host=localhost,port=8107;urp;StarOffice.NamingService"; //localhost ;Lo-1.Germany.sun.com; 10.16.65.155
- try
- {
- XMultiServiceFactory xLocMSF = com.sun.star.wizards.common.Desktop.connect(ConnectStr);
-
- tests(xLocMSF);
-
- ReportWizard CurReportWizard = new ReportWizard(xLocMSF);
- if (xLocMSF != null)
- {
- System.out.println("Connected to " + ConnectStr);
- PropertyValue[] curproperties = new PropertyValue[1];
- // curproperties[0] = Properties.createProperty(
- // "DatabaseLocation",
- // "file:///localhome/bc93774/NewDatabase2" +
- // "C:/Documents and Settings/ll93751/My Documents/RptWizard01_DB.odb");
- // "file://C:/Documents%20and%20Settings/ll93751/My%20Documents/RptWizard01_DB.odb");
-// "C:/Documents and Settings/bc93774.EHAM02-DEV/My Documents/MyHSQL.odb"); //MyDocAssign.odb; baseLocation ); "DataSourceName", "db1");
- // curproperties[0] = Properties.createProperty("DataSourceName", "Bibliography");
- curproperties[0] = Properties.createProperty("DataSourceName", "RptWizard01_DB");
- CurReportWizard.startReportWizard(xLocMSF, curproperties, true);
- }
- }
- catch (Exception exception)
- {
- exception.printStackTrace(System.out);
- }
- System.exit(1);
- }
-*/
-/*
- private static void tests(XMultiServiceFactory _xMSF)
- {
- try
- {
-// String[] sServices = _xMSF.getAvailableServiceNames();
-// File aFile = new File("C:/temp/services.txt");
-// aFile.delete();
-// FileWriter aRAF = new FileWriter(aFile);
-// for (int i=0;i<sServices.length;i++)
-// {
-// aRAF.write(sServices[i]);
-// aRAF.write("\n");
-// }
-// aRAF.close();
-
-
-// XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface(XServiceInfo.class, _xMSF);
-// String[] sServices = xServiceInfo.getSupportedServiceNames();
-
-// XControl xControl = (XControl)UnoRuntime.queryInterface(XControl.class, xFormattedField);
-// Object aPeer = xControl.getPeer();
-// XTextConstraints xTC = (XTextConstraints)UnoRuntime.queryInterface(XTextConstraints.class, aPeer);
-// int nHeight = xTC.getTextHeight();
-// int nWidth = xTC.getTextWidth("Blah Fasel");
-
-// Object aTextShapeObj = _xMSF.createInstance("com.sun.star.drawing.TextShape");
-// XText xText = (XText)UnoRuntime.queryInterface(XText.class, aTextShapeObj);
-// xText.setString("Blah fasel");
-//
-// XServiceInfo xServiceInfo2 = (XServiceInfo)UnoRuntime.queryInterface(XServiceInfo.class, aTextShapeObj);
-// String[] sServices2 = xServiceInfo2.getSupportedServiceNames();
-
-// Object aToolkitObj = _xMSF.createInstance("com.sun.star.awt.Toolkit");
-// XToolkit xToolkit = (XToolkit)UnoRuntime.queryInterface(XToolkit.class, aToolkitObj);
-// WindowDescriptor aDescriptor = new WindowDescriptor();
-// aDescriptor.Bounds = new Rectangle(0,0,640,480);
-//
-// XWindowPeer aWindowPeer = xToolkit.createWindow(aDescriptor);
-// XWindow xWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, aWindowPeer);
-// xWindow.setVisible(true);
-// aWindowPeer.setBackground(0x00000000);
-
- Object aControlContainer = _xMSF.createInstance("com.sun.star.awt.UnoControlContainer");
- // XControlContainer xControlContainer = (XControlContainer)UnoRuntime.queryInterface(XControlContainer.class, aControlContainer);
-
- Object aFixedTextModel = _xMSF.createInstance("com.sun.star.awt.UnoControlFixedTextModel");
- XControlModel xFixedTextModel = (XControlModel) UnoRuntime.queryInterface(XControlModel.class, aFixedTextModel);
-// nicht das Model, sondern gleich den FixedText nehmen??
-
-// XMultiServiceFactory xMSF = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class, xFixedTextModel);
-
- Object aFixedText = _xMSF.createInstance("com.sun.star.awt.UnoControlFixedText");
- XServiceInfo xServiceInfo2 = (XServiceInfo) UnoRuntime.queryInterface(XServiceInfo.class, aFixedText);
- String[] sServices2 = xServiceInfo2.getSupportedServiceNames();
-
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class, aFixedText);
- xWindow.setVisible(true);
-
- XFixedText xFixedText = (XFixedText) UnoRuntime.queryInterface(XFixedText.class, aFixedText);
- xFixedText.setText("Dies ist ein String");
-
- XControl xControl = (XControl) UnoRuntime.queryInterface(XControl.class, xFixedText);
- xControl.setModel(xFixedTextModel);
-
- XLayoutConstrains xLayoutConstrains = (XLayoutConstrains) UnoRuntime.queryInterface(XLayoutConstrains.class, aFixedText);
- Size aSize = xLayoutConstrains.getPreferredSize();
-
- // xToolkit.createScreenCompatibleDevice(_nWidth, _nWidth).
- // XWindow x = getReportDefinition().getCurrentController().getFrame().getContainerWindow();
- // Object aObj = _xSection.getParent();
- int dummy = 0;
- }
- catch (Exception e)
- {
- int dummy = 0;
- }
-
- }
-*/
-
public void buildSteps()
{
// CurReportDocument.getDoc().xProgressBar.setValue(30);
- CurDBCommandFieldSelection = new CommandFieldSelection(this, CurReportDocument.getRecordParser(), 100, slblFields, slblSelFields, slblTables, true, 34330);
+ CurDBCommandFieldSelection = new CommandFieldSelection(this, m_reportDocument.getRecordParser(), 100, slblFields, slblSelFields, slblTables, true, 34330);
CurDBCommandFieldSelection.addFieldSelectionListener(new FieldSelectionListener());
if ( !isReportBuilderInstalled() )
{
@@ -507,13 +335,13 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
CurTitlesComponent = new TitlesComponent(this, SOTITLEPAGE, 97, 37, 210, 7, slblColumnNames, slblColumnTitles, 34381);
CurTitlesComponent.addTextListener(this);
// CurReportDocument.getDoc().xProgressBar.setValue(50);
- CurGroupFieldHandler = new GroupFieldHandler(CurReportDocument, this);
+ CurGroupFieldHandler = new GroupFieldHandler(m_reportDocument, this);
// CurReportDocument.getDoc().xProgressBar.setValue(60);
CurSortingComponent = new SortingComponent(this, SOSORTPAGE, 95, 30, 210, 34346);
// CurReportDocument.getDoc().xProgressBar.setValue(70);
- CurReportLayouter = new ReportLayouter(xMSF, CurReportDocument, this);
+ CurReportLayouter = new ReportLayouter(xMSF, m_reportDocument, this);
// CurReportDocument.getDoc().xProgressBar.setValue(80);
- CurReportFinalizer = new ReportFinalizer(xMSF, CurReportDocument, this);
+ CurReportFinalizer = new ReportFinalizer(xMSF, m_reportDocument, this);
// CurReportDocument.getDoc().xProgressBar.setValue(100);
bCloseDocument = true;
// CurReportDocument.getDoc().xProgressBar.end();
@@ -563,7 +391,7 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
private boolean isReportBuilderInstalled()
{
//! Check if the new Report Builder Extension is available
- XContentEnumerationAccess a = (XContentEnumerationAccess) com.sun.star.uno.UnoRuntime.queryInterface(XContentEnumerationAccess.class, xMSF);
+ XContentEnumerationAccess a = com.sun.star.uno.UnoRuntime.queryInterface( XContentEnumerationAccess.class, xMSF );
com.sun.star.container.XEnumeration e = a.createContentEnumeration("com.sun.star.report.pentaho.SOReportJobFactory");
if (e == null)
{
@@ -586,8 +414,7 @@ public class ReportWizard extends WizardDialog implements XTextListener, XComple
// Get the path to the extension and try to add the path to the class loader
final XComponentContext xComponentContext = Helper.getComponentContext(_xMSF);
final Object aSingleton = xComponentContext.getValueByName("/singletons/com.sun.star.deployment.PackageInformationProvider");
- XPackageInformationProvider xProvider = (XPackageInformationProvider) UnoRuntime.queryInterface(XPackageInformationProvider.class, aSingleton);
- // String[][] aStrListList = xProvider.getExtensionList();
+ XPackageInformationProvider xProvider = UnoRuntime.queryInterface( XPackageInformationProvider.class, aSingleton );
final String sLocation = xProvider.getPackageLocation("com.sun.reportdesigner");
return sLocation;
}
@@ -603,7 +430,7 @@ private static void initializeLogger(XMultiServiceFactory _xMSF)
{
System.out.println("Can't get singleton from logging");
}
- final XLoggerPool xLoggerPool = (XLoggerPool)UnoRuntime.queryInterface(XLoggerPool.class, aLoggerPool);
+ final XLoggerPool xLoggerPool = UnoRuntime.queryInterface( XLoggerPool.class, aLoggerPool );
m_xLogger = xLoggerPool.getNamedLogger("com.sun.star.wizards.ReportBuilder");
}
@@ -612,120 +439,65 @@ public static XLogger getLogger()
return m_xLogger;
}
- public XComponent[] startReportWizard(XMultiServiceFactory _xMSF, PropertyValue[] CurPropertyValue)
- {
- return startReportWizard(_xMSF, CurPropertyValue, false);
- }
-
- public XComponent[] startReportWizard(XMultiServiceFactory _xMSF, PropertyValue[] CurPropertyValue, boolean _bDebug)
+ public void startReportWizard()
{
- initializeLogger(_xMSF);
- getLogger().log(com.sun.star.logging.LogLevel.SEVERE, "Start Report Wizard");
+ initializeLogger(xMSF);
+ getLogger().log(LogLevel.SEVERE, "Start Report Wizard");
- XComponent[] ret = null;
- this.xMSF = _xMSF;
- DBGPROPERTYVALUE = CurPropertyValue;
-
- // CurReportDocument = new ReportTextDocument(xMSF, ReportPath + "/stl-default.ott", m_oResource );
- // if (isReportBuilderInstalled())
- // {
- // CurReportDocument = ReportBuilderImplementation.create(xMSF, m_oResource);
- // }
- // else
- // {
- // CurReportDocument = ReportTextImplementation.create(xMSF, m_oResource );
- // }
- boolean bUseOld = false;
- if (!isReportBuilderInstalled())
- {
- bUseOld = true;
- }
- if (_bDebug == true && !bUseOld)
- {
- try
- {
- Class a = Class.forName("com.sun.star.wizards.reportbuilder.ReportBuilderImplementation");
- Method aMethod = a.getMethod("create", new Class[]
- {
- XMultiServiceFactory.class, Resource.class
- });
- CurReportDocument = (IReportDocument) aMethod.invoke(a, new Object[]
- {
- xMSF, m_oResource
- });
- }
- catch (Exception e)
- {
- int dummy = 0;
- }
- }
- else
+ if ( isReportBuilderInstalled() )
{
- if (!bUseOld)
+ // Get the path to the extension and try to add the path to the class loader
+ String sLocation = getPathToExtension(xMSF);
+ // TODO: Umlaut in filename!
+ if ( sLocation.length() > 0 )
{
- // debug == false
-
- // Get the path to the extension and try to add the path to the class loader
- String sLocation = getPathToExtension(xMSF);
- // TODO: Umlaut in filename!
- if (sLocation.length() > 0)
+ try
{
- try
- {
- URI aLocationURI = URI.create(sLocation + "/" + "reportbuilderwizard.jar");
-
- URL[] aURLs = new URL[1];
- aURLs[0] = aLocationURI.toURL();
- URLClassLoader aClassLoader = new URLClassLoader(aURLs, this.getClass().getClassLoader());
- Class a = aClassLoader.loadClass("com.sun.star.wizards.reportbuilder.ReportBuilderImplementation");
- Method aMethod = a.getMethod("create", new Class[]
- {
- XMultiServiceFactory.class, Resource.class
- });
- CurReportDocument = (IReportDocument) aMethod.invoke(a, new Object[]
- {
- xMSF, m_oResource
- });
- }
- catch (Exception e)
- {
- // TODO: Exception not handled.
- int dummy = 0;
- // Maybe problems in URI create() if a wrong char is used like '[' ']', ...
- System.out.println("There could be a problem with the path '" + sLocation + "'");
- }
+ URI aLocationURI = URI.create(sLocation + "/" + "reportbuilderwizard.jar");
+
+ URL[] aURLs = new URL[1];
+ aURLs[0] = aLocationURI.toURL();
+ URLClassLoader aClassLoader = new URLClassLoader(aURLs, this.getClass().getClassLoader());
+ Class a = aClassLoader.loadClass("com.sun.star.wizards.reportbuilder.ReportBuilderImplementation");
+ Method aMethod = a.getMethod("create", new Class[] { XMultiServiceFactory.class });
+ m_reportDocument = (IReportDocument) aMethod.invoke(a, new Object[] { xMSF });
+ }
+ catch (Exception e)
+ {
+ // Maybe problems in URI create() if a wrong char is used like '[' ']', ...
+ System.out.println("There could be a problem with the path '" + sLocation + "'");
}
}
}
+
try
{
- if (CurReportDocument == null)
+ if (m_reportDocument == null)
{
// Fallback, if there is no reportbuilder wizard implementation, we use the old wizard
- CurReportDocument = ReportTextImplementation.create(xMSF, m_oResource);
+ m_reportDocument = new ReportTextImplementation( xMSF );
}
- // CurDBMetaData = CurReportDocument.getRecordParser();
-// tests();
+ m_reportDocument.initialize( m_docUI, m_oResource );
- if (CurReportDocument.getRecordParser().getConnection(CurPropertyValue))
+ if ( m_reportDocument.getRecordParser().getConnection( m_wizardContext ) )
{
- // CurReportDocument.getDoc().xProgressBar.setValue(20);
- CurReportDocument.getRecordParser().oSQLQueryComposer = new SQLQueryComposer(CurReportDocument.getRecordParser());
+ m_reportDocument.getRecordParser().oSQLQueryComposer = new SQLQueryComposer(m_reportDocument.getRecordParser());
buildSteps();
- CurReportDocument.checkInvariants();
+ m_reportDocument.checkInvariants();
- this.CurDBCommandFieldSelection.preselectCommand(CurPropertyValue, false);
+ this.CurDBCommandFieldSelection.preselectCommand( m_wizardContext, false );
- createWindowPeer(CurReportDocument.getWizardParent());
+ createWindowPeer(m_reportDocument.getWizardParent());
- CurReportDocument.getRecordParser().setWindowPeer(this.xControl.getPeer());
+ m_reportDocument.getRecordParser().setWindowPeer(this.xControl.getPeer());
insertQueryRelatedSteps();
- short RetValue = executeDialog(CurReportDocument.getFrame().getComponentWindow().getPosSize());
- ret = dialogFinish(RetValue);
+ short RetValue = executeDialog(m_reportDocument.getFrame().getComponentWindow().getPosSize());
+ if ( RetValue == 0 )
+ dialogFinish();
}
- CurReportDocument.getRecordParser().dispose();
+ m_reportDocument.getRecordParser().dispose();
}
catch (java.io.IOException e)
{
@@ -744,7 +516,6 @@ public static XLogger getLogger()
{
jexception.printStackTrace(System.out);
}
- return ret;
}
public void importReportData(final XMultiServiceFactory xMSF, final Dataimport CurDataimport)
@@ -755,25 +526,25 @@ public static XLogger getLogger()
boolean bexecute = false;
if (!bHasEscapeProcessing)
{
- bexecute = CurReportDocument.getRecordParser().executeCommand(com.sun.star.sdb.CommandType.QUERY); // sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot))
+ bexecute = m_reportDocument.getRecordParser().executeCommand(com.sun.star.sdb.CommandType.QUERY); // sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot))
}
else
{
- bexecute = CurReportDocument.getRecordParser().executeCommand(com.sun.star.sdb.CommandType.COMMAND); // sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot))
+ bexecute = m_reportDocument.getRecordParser().executeCommand(com.sun.star.sdb.CommandType.COMMAND); // sMsgQueryCreationImpossible + (char) 13 + sMsgEndAutopilot))
}
if (bexecute)
{
- bexecute = CurReportDocument.getRecordParser().getFields(CurReportDocument.getRecordParser().getFieldNames(), false);
+ bexecute = m_reportDocument.getRecordParser().getFields(m_reportDocument.getRecordParser().getFieldNames(), false);
}
if (bexecute)
{
// CurDataimport.insertDatabaseDatatoReportDocument(xMSF);
- CurReportDocument.insertDatabaseDatatoReportDocument(xMSF);
+ m_reportDocument.insertDatabaseDatatoReportDocument(xMSF);
}
if (CurReportFinalizer.getReportOpenMode() == ReportFinalizer.SOCREATEDOCUMENT)
{
- bDocisStored = CurReportDocument.getRecordParser().storeDatabaseDocumentToTempPath(CurReportDocument.getComponent(), CurReportFinalizer.getStoreName());
+ bDocisStored = m_reportDocument.getRecordParser().storeDatabaseDocumentToTempPath(m_reportDocument.getComponent(), CurReportFinalizer.getStoreName());
}
}
catch (com.sun.star.wizards.common.InvalidQueryException queryexception)
@@ -782,10 +553,10 @@ public static XLogger getLogger()
CurDataimport.xComponent.dispose();
if (bDocisStored)
{
- CurReportDocument.getRecordParser().addReportDocument(CurReportDocument.getComponent(), false);
+ m_reportDocument.getRecordParser().addReportDocument(m_reportDocument.getComponent(), false);
}
- CurReportDocument.getRecordParser().dispose();
+ m_reportDocument.getRecordParser().dispose();
}
public boolean getReportResources(boolean bgetProgressResourcesOnly)
@@ -794,9 +565,6 @@ public static XLogger getLogger()
if (bgetProgressResourcesOnly == false)
{
sShowBinaryFields = m_oResource.getResText(UIConsts.RID_REPORT + 60);
- slstDatabasesDefaultText = m_oResource.getResText(UIConsts.RID_DB_COMMON + 37);
- slstTablesDefaultText = m_oResource.getResText(UIConsts.RID_DB_COMMON + 38);
- sMsgErrorOccured = m_oResource.getResText(UIConsts.RID_DB_COMMON + 6);
slblTables = m_oResource.getResText(UIConsts.RID_FORM + 6);
slblFields = m_oResource.getResText(UIConsts.RID_FORM + 12);
slblSelFields = m_oResource.getResText(UIConsts.RID_REPORT + 9);
@@ -806,13 +574,9 @@ public static XLogger getLogger()
WizardHeaderText[3] = m_oResource.getResText(UIConsts.RID_REPORT + 30);
WizardHeaderText[4] = m_oResource.getResText(UIConsts.RID_REPORT + 31);
WizardHeaderText[5] = m_oResource.getResText(UIConsts.RID_REPORT + 32);
- sMsgSavingImpossible = m_oResource.getResText(UIConsts.RID_DB_COMMON + 30);
}
- sMsgFilePathInvalid = m_oResource.getResText(UIConsts.RID_DB_COMMON + 36);
slblColumnTitles = m_oResource.getResText(UIConsts.RID_REPORT + 70);
slblColumnNames = m_oResource.getResText(UIConsts.RID_REPORT + 71);
-// sBlindTextNote = m_oResource.getResText(UIConsts.RID_REPORT + 75);
-// sBlindTextNote = JavaTools.replaceSubString( sBlindTextNote, String.valueOf((char)13), "<BR>");
return true;
}
@@ -873,7 +637,7 @@ public static XLogger getLogger()
String sContent = (String) Helper.getUnoPropertyValue(oModel, "Text");
String fieldname = this.CurTitlesComponent.getFieldNameByTitleControl(oModel);
// CurReportDocument.getDoc().oTextFieldHandler.changeUserFieldContent(fieldname, sfieldtitle);
- CurReportDocument.liveupdate_changeUserFieldContent(fieldname, sContent);
+ m_reportDocument.liveupdate_changeUserFieldContent(fieldname, sContent);
}
catch (Exception exception)
{
@@ -903,8 +667,8 @@ public static XLogger getLogger()
if (!bdoenable)
{
String sQueryName = CurDBCommandFieldSelection.getSelectedCommandName();
- DBMetaData.CommandObject oCommand = CurReportDocument.getRecordParser().getQueryByName(sQueryName);
- bdoenable = CurReportDocument.getRecordParser().hasEscapeProcessing(oCommand.getPropertySet());
+ DBMetaData.CommandObject oCommand = m_reportDocument.getRecordParser().getQueryByName(sQueryName);
+ bdoenable = m_reportDocument.getRecordParser().hasEscapeProcessing(oCommand.getPropertySet());
}
super.setStepEnabled(SOSORTPAGE, bdoenable);
diff --git a/wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java b/wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java
index 2972e8153787..9fb9ce575417 100644
--- a/wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java
+++ b/wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java
@@ -33,7 +33,6 @@ package com.sun.star.wizards.reportbuilder;
import com.sun.star.util.XModeSelector;
-import com.sun.star.wizards.report.*;
import com.sun.star.awt.XWindowPeer;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
@@ -46,10 +45,15 @@ import com.sun.star.frame.XFrame;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.report.XReportDefinition;
+import com.sun.star.sdb.XSubDocument;
+import com.sun.star.sdb.application.DatabaseObject;
+import com.sun.star.sdb.application.XDatabaseDocumentUI;
import com.sun.star.sdbc.XConnection;
import com.sun.star.ucb.XCommandProcessor;
import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XModifiable;
import com.sun.star.util.XURLTransformer;
+import com.sun.star.wizards.common.NoValidPathException;
import com.sun.star.wizards.common.Resource;
import com.sun.star.wizards.db.FieldColumn;
import java.lang.reflect.Constructor;
@@ -59,6 +63,15 @@ import java.util.LinkedHashMap;
import java.util.Set;
import java.util.Vector;
import com.sun.star.wizards.common.FileAccess;
+import com.sun.star.wizards.common.NamedValueCollection;
+import com.sun.star.wizards.report.IReportBuilderLayouter;
+import com.sun.star.wizards.report.IReportDefinitionReadAccess;
+import com.sun.star.wizards.report.IReportDocument;
+import com.sun.star.wizards.report.ReportImplementationHelper;
+import com.sun.star.wizards.report.ReportLayouter;
+import com.sun.star.wizards.report.ReportWizard;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* This class use the IReportDocument Interface to communicate between the UI
@@ -69,61 +82,35 @@ import com.sun.star.wizards.common.FileAccess;
public class ReportBuilderImplementation extends ReportImplementationHelper
implements IReportDocument, IReportDefinitionReadAccess
{
+ private Resource m_resource;
+ private XDatabaseDocumentUI m_documentUI;
private static final int MAXIMUM_GROUPCOUNT = 4;
-// public ReportTextDocument getDoc()
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
- public void clearDocument()
+
+ private ReportBuilderImplementation( XMultiServiceFactory _serviceFactory )
{
- // throw new UnsupportedOperationException("Not supported yet.");
+ // creates an access to the ReportBuilder Extension
+ super(_serviceFactory, ReportLayouter.SOOPTLANDSCAPE);
}
- private Resource m_aResource;
- public ReportBuilderImplementation()
+ public static IReportDocument create( XMultiServiceFactory i_serviceFactory )
{
- // super(null, ReportLayouter.SOOPTPORTRAIT);
- super(null, ReportLayouter.SOOPTLANDSCAPE);
- m_aResource = null;
+ return new ReportBuilderImplementation( i_serviceFactory );
}
- private ReportBuilderImplementation(XMultiServiceFactory _aMSF, Resource _oResource)
+ public void initialize( final XDatabaseDocumentUI i_documentUI, final Resource i_resource )
{
- // creates an access to the ReportBuilder Extension
- // super(_aMSF, ReportLayouter.SOOPTPORTRAIT);
- super(_aMSF, ReportLayouter.SOOPTLANDSCAPE);
- m_aResource = _oResource;
+ m_documentUI = i_documentUI;
+ m_resource = i_resource;
}
- /**
- * This is the Factory method. To create a ReportBuilderImplementation Object.
- *
- * @param _xMSF
- * @param _oResource
- * @return
- */
- public static IReportDocument create(XMultiServiceFactory _xMSF, Resource _oResource)
+ public void clearDocument()
{
- final ReportBuilderImplementation a = new ReportBuilderImplementation(_xMSF, _oResource);
- // a.m_xGlobalServiceFactory = _xGlobalServiceFactory;
- return a;
}
-// public void setInitialDocument(Object _aDoc)
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
public XWindowPeer getWizardParent()
{
- // throw new UnsupportedOperationException("Not supported yet.");
- // com.sun.star.frame.XFrame xFrame = thisComponent;
- // openReportBuilderView();
- // XInterface xInterface = (XInterface) getMSF().createInstance("com.sun.star.frame.Desktop");
- // XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(XDesktop.class, xInterface);
- // XFrame xFrame = xDesktop.getCurrentFrame();
-
- final XWindowPeer aWindowPeer = (XWindowPeer) UnoRuntime.queryInterface(XWindowPeer.class, getFrame().getComponentWindow());
+ final XWindowPeer aWindowPeer = UnoRuntime.queryInterface( XWindowPeer.class, getFrame().getComponentWindow() );
return aWindowPeer;
}
private XFrame m_xFrame = null;
@@ -137,17 +124,12 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
*/
private IReportBuilderLayouter getReportBuilderLayouter()
{
- // if (m_aReportBuilderLayouter == null)
- // {
- // m_aReportBuilderLayouter = ReportBuilderLayouter.create(getRecordParser().getReportDocuments(), getConnection());
- // m_aReportBuilderLayouter = ReportBuilderLayouter.create(m_xReportDefinition /* , getConnection() */ );
final IReportBuilderLayouter aReportBuilderLayouter = (IReportBuilderLayouter) getLayoutMap().get(m_sReportBuilderLayoutName);
return aReportBuilderLayouter;
- // }
}
private Object m_aReportDocument;
- private XPropertySet m_aDocumentDefinition;
- private XReportDefinition m_xReportDefinition;
+ private XPropertySet m_documentDefinition;
+ private XReportDefinition m_reportDocument;
/**
* initialize the Report Builder and open it representation
@@ -160,75 +142,36 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
// TODO: type down how we got such ID
final String sClassID = "d7896d52-b7af-4820-9dfe-d404d015960f"; // CLASSID for Report Builder
- Object args[] = new Object[2];
-
- final PropertyValue aClassID = new PropertyValue();
- aClassID.Name = "ClassID";
- aClassID.Value = sClassID;
- args[0] = aClassID;
-
- PropertyValue aConnection = new PropertyValue();
- aConnection.Name = "ActiveConnection";
- aConnection.Value = _xConnection;
- args[1] = aConnection;
-
-
- XReportDefinition xReportDefinition = null;
- final XMultiServiceFactory xMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, /* getRecordParser().getReportDocuments() */ _aDoc);
try
{
- final Object aObj = xMSF.createInstanceWithArguments("com.sun.star.sdb.DocumentDefinition", args);
- final XPropertySet aDocumentDefinition = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aObj);
- m_aDocumentDefinition = aDocumentDefinition;
-
- final XCommandProcessor xProcessor = (XCommandProcessor) UnoRuntime.queryInterface(XCommandProcessor.class, aObj);
- final com.sun.star.ucb.Command aCommand = new com.sun.star.ucb.Command();
- aCommand.Name = "openDesign";
- final com.sun.star.ucb.OpenCommandArgument2 aOpenCommand = new com.sun.star.ucb.OpenCommandArgument2();
- aOpenCommand.Mode = com.sun.star.ucb.OpenMode.DOCUMENT;
-
- PropertyValue args2[] = new PropertyValue[2];
-
- PropertyValue aPropOpenCommand = new PropertyValue();
- aPropOpenCommand.Name = "";
- aPropOpenCommand.Value = aOpenCommand;
- args2[0] = aPropOpenCommand;
+ NamedValueCollection creationArgs = new NamedValueCollection();
+ creationArgs.put( "ActiveConnection", _xConnection );
+ creationArgs.put( "ClassID", sClassID );
+ creationArgs.put( "Mode", "remote" );
- PropertyValue aAddField = new PropertyValue();
- aAddField.Name = "Mode";
- aAddField.Value = "remote";
- args2[1] = aAddField;
+ XComponent[] docDefinition = new XComponent[] { null };
+ XComponent reportDefinitionComp = m_documentUI.createComponentWithArguments(
+ DatabaseObject.REPORT, creationArgs.getPropertyValues(), docDefinition );
- aCommand.Argument = args2;
- // com.sun.star.usb.XCommandEnvironment xEnv = new com.sun.star.ucb.XCommandEnvironment();
- final Object aObj2 = xProcessor.execute(aCommand, xProcessor.createCommandIdentifier(), null);
- xReportDefinition = (XReportDefinition) UnoRuntime.queryInterface(XReportDefinition.class, aObj2);
+ m_documentDefinition = UnoRuntime.queryInterface( XPropertySet.class, docDefinition[0] );
+ m_reportDocument = UnoRuntime.queryInterface( XReportDefinition.class, reportDefinitionComp );
}
catch (com.sun.star.uno.Exception e)
{
ReportWizard.getLogger().log(com.sun.star.logging.LogLevel.SEVERE, "Problems with initialize the ReportDefinition" + e.getMessage());
}
- m_xReportDefinition = xReportDefinition;
switchOffPropertyBrowser();
switchOffAddFieldWindow();
setPageOrientation(m_nDefaultPageOrientation, false /* NO_LAYOUT*/);
- // try
- // {
- // Thread.sleep(1000);
- // }
- // catch (java.lang.InterruptedException e)
- // {
- // }
-
}
private XModeSelector getModeSelector()
{
final XController xController = getReportDefinition().getCurrentController();
- final XModeSelector xModeSelector = (XModeSelector) UnoRuntime.queryInterface(XModeSelector.class, xController);
+ final XModeSelector xModeSelector = UnoRuntime.queryInterface( XModeSelector.class, xController );
return xModeSelector;
}
@@ -273,11 +216,11 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
try
{
final XController xController = getReportDefinition().getCurrentController();
- final XDispatchProvider xDP = (XDispatchProvider) UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ final XDispatchProvider xDP = UnoRuntime.queryInterface( XDispatchProvider.class, xController );
// Create special service for parsing of given URL.
final Object aURLTransformer = getMSF().createInstance("com.sun.star.util.URLTransformer");
- final XURLTransformer xURLTransformer = (XURLTransformer) UnoRuntime.queryInterface(com.sun.star.util.XURLTransformer.class, aURLTransformer);
+ final XURLTransformer xURLTransformer = UnoRuntime.queryInterface( com.sun.star.util.XURLTransformer.class, aURLTransformer );
com.sun.star.util.URL[] aURL = new com.sun.star.util.URL[1];
aURL[0] = new com.sun.star.util.URL();
@@ -309,41 +252,27 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
if (m_xFrame == null)
{
initialize(getRecordParser().getReportDocuments(), getConnection());
- // m_xFrame = getFrame();
m_xFrame = getReportDefinition().getCurrentController().getFrame();
setPageOrientation(m_nDefaultPageOrientation, true /* NO_LAYOUT*/);
}
return m_xFrame;
}
-// public XMultiServiceFactory getDocumentServiceFactory()
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
-
-// public void addTextSectionCopies()
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
public boolean reconnectToDatabase(XMultiServiceFactory xMSF, PropertyValue[] Properties)
{
- throw new UnsupportedOperationException("Not supported yet.");
+ return false;
}
public void insertDatabaseDatatoReportDocument(XMultiServiceFactory xMSF)
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
public void StopProcess()
{
- throw new UnsupportedOperationException("Not supported yet.");
}
public void store(String Name, int OpenMode) throws com.sun.star.uno.Exception
{
- // throw new UnsupportedOperationException("Not supported yet.");
- // getReportBuilderLayouter().store(Name);
// store into the ZIP Storage
if (OpenMode == 1 /* static Report */)
{
@@ -351,23 +280,21 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
return;
}
- final XCommandProcessor xProcessor = UnoRuntime.queryInterface(XCommandProcessor.class, m_aDocumentDefinition);
+ final XCommandProcessor xProcessor = UnoRuntime.queryInterface( XCommandProcessor.class, m_documentDefinition );
final com.sun.star.ucb.Command aCommand = new com.sun.star.ucb.Command();
- aCommand.Name = "storeOwn";
+ aCommand.Name = "store";
- final Object aObj2 = xProcessor.execute(aCommand, xProcessor.createCommandIdentifier(), null);
+ xProcessor.execute(aCommand, xProcessor.createCommandIdentifier(), null);
final XHierarchicalNameContainer aNameContainer = UnoRuntime.queryInterface(XHierarchicalNameContainer.class, m_aReportDocument);
- aNameContainer.insertByHierarchicalName(Name, m_aDocumentDefinition);
+ aNameContainer.insertByHierarchicalName( Name, m_documentDefinition );
}
public boolean liveupdate_addGroupNametoDocument(String[] GroupNames, String CurGroupTitle, Vector GroupFieldVector, ArrayList ReportPath, int iSelCount)
{
- // throw new UnsupportedOperationException("Not supported yet.");
final int GroupCount = GroupFieldVector.size();
if (GroupCount < MAXIMUM_GROUPCOUNT)
{
- // removeGroupNamesofRecordTable(iSelCount);
final FieldColumn CurFieldColumn = getRecordParser().getFieldColumnByTitle(CurGroupTitle);
GroupFieldVector.addElement(CurFieldColumn.getFieldName());
}
@@ -376,16 +303,10 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void refreshGroupFields(String[] _sNewNames)
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
-// public boolean isGroupField(String _FieldName)
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
public void liveupdate_removeGroupName(String[] NewSelGroupNames, String CurGroupTitle, Vector GroupFieldVector)
{
- // throw new UnsupportedOperationException("Not supported yet.");
final FieldColumn CurFieldColumn = getRecordParser().getFieldColumnByTitle(CurGroupTitle);
GroupFieldVector.removeElement(CurFieldColumn.getFieldName());
}
@@ -401,15 +322,12 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void setPageOrientation(int nOrientation)
{
- // throw new UnsupportedOperationException("Not supported yet.");
setPageOrientation(nOrientation, true);
}
public void liveupdate_changeLayoutTemplate(String LayoutTemplatePath/*, String BitmapPath*/)
{
- // throw new UnsupportedOperationException("Not supported yet.");
/* Right Listbox */
-
final IReportBuilderLayouter aLayouter = getReportBuilderLayouter();
aLayouter.loadAndSetBackgroundTemplate(LayoutTemplatePath);
aLayouter.layout();
@@ -435,147 +353,131 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void liveupdate_changeContentTemplate(String ContentTemplatePath)
{
- // throw new UnsupportedOperationException("Not supported yet.");
/* Left Listbox */
setReportBuilderLayouterName(ContentTemplatePath);
}
public void layout_setupRecordSection(String TemplateName)
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
public void removeTextTableAndTextSection()
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
public void layout_selectFirstPage()
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
- public void dispose()
+ private void closeReportDefinition()
{
- // throw new UnsupportedOperationException("Not supported yet.");
- getReportBuilderLayouter().dispose();
-
try
{
- // XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, m_xReportDefinition);
- // xClose.close(true);
- // Failed!
-
- // next idea, which should always work.
- // XController xController = m_xReportDefinition.getCurrentController();
- // XDispatchProvider xDispatcher = (XDispatchProvider)UnoRuntime.queryInterface(XDispatchProvider.class, xController);
- // xDispatcher.queryDispatch();
-
- final XComponent xDocumentComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, m_aDocumentDefinition);
- xDocumentComponent.dispose();
- m_xReportDefinition = null;
-
- // TODO: dispose() office will be killed.
- // m_xReportDefinition.dispose();
+ if ( m_documentDefinition != null )
+ {
+ // set the document to "not modified", to ensure that it won't ask the user before closing
+ XModifiable documentModify = UnoRuntime.queryInterface( XModifiable.class, m_reportDocument );
+ documentModify.setModified( false );
+ // actually close
+ XSubDocument subComponent = UnoRuntime.queryInterface( XSubDocument.class, m_documentDefinition );
+ subComponent.close();
+ }
}
- catch (Exception e)
+ catch ( Exception ex )
{
- // catch all possible exceptions
- int dummy = 0;
+ Logger.getLogger( ReportBuilderImplementation.class.getName() ).log( Level.SEVERE, null, ex );
}
+ m_documentDefinition = null;
+ m_reportDocument = null;
+ }
+
+ public void dispose()
+ {
+ getReportBuilderLayouter().dispose();
+ closeReportDefinition();
}
public XComponent getComponent()
{
- // throw new UnsupportedOperationException("Not supported yet.");
return null;
}
public void liveupdate_changeUserFieldContent(String fieldName, String titlename)
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
public void liveupdate_updateReportTitle(String _sTitleName)
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
-// public void finish()
-// {
-// throw new UnsupportedOperationException("Not supported yet.");
-// }
public void addReportToDBView()
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
- private XComponent[] createFinalReportDocument(String Name, Object _aDBConnection, boolean _bAsTemplate, boolean _bOpenInDesign)
+ private XComponent loadReport( final String i_reportName )
{
- XComponent[] xComponents = new XComponent[1];
try
{
- PropertyValue[] aProperties = new PropertyValue[2];
- aProperties[0] = new PropertyValue();
- aProperties[0].Name = "ActiveConnection";
- // aProperties[0].Value = m_aDocumentDefinition;
- aProperties[0].Value = _aDBConnection;
-
- final com.sun.star.ucb.OpenCommandArgument2 aOpenCommand = new com.sun.star.ucb.OpenCommandArgument2();
- aOpenCommand.Mode = com.sun.star.ucb.OpenMode.DOCUMENT;
-
- aProperties[1] = new PropertyValue();
- aProperties[1].Name = "OpenCommand"; // This name is 'Schall und Rauch'
-// // since Java 6
-// // aProperties[1].Value = Integer.valueOf(com.sun.star.ucb.OpenMode.DOCUMENT);
- aProperties[1].Value = aOpenCommand;
-
-// aProperties[2] = new PropertyValue();
-// aProperties[2].Name = "Title"; // This name is 'Schall und Rauch'
-// aProperties[2].Value = Name;
-
- final XCommandProcessor xProcessor = (XCommandProcessor) UnoRuntime.queryInterface(XCommandProcessor.class, m_aDocumentDefinition);
- com.sun.star.ucb.Command aCommand = new com.sun.star.ucb.Command();
- aCommand.Name = "open";
- aCommand.Argument = aProperties;
-
- final Object aObj2 = xProcessor.execute(aCommand, xProcessor.createCommandIdentifier(), null);
- xComponents[0] = (XComponent) UnoRuntime.queryInterface(XComponent.class, aObj2);
+ return m_documentUI.loadComponent( DatabaseObject.REPORT, i_reportName, false );
}
- catch (com.sun.star.uno.Exception e)
+ catch ( Exception ex )
{
- int dummy = 0;
+ Logger.getLogger( ReportBuilderImplementation.class.getName() ).log( Level.SEVERE, null, ex );
}
- return xComponents;
+ return null;
}
- public XComponent[] createFinalReportDocument(String Name, boolean _bAsTemplate, boolean _bOpenInDesign)
+ private XComponent loadReportFromDocumentDefinition()
{
- // XComponent[] xComponents = getReportBuilderLayouter().createFinalReportDocument(Name, getRecordParser().DBConnection ,_bAsTemplate, _bOpenInDesign);
- if (_bAsTemplate == true && _bOpenInDesign == false)
+ final XCommandProcessor commandProcessor = UnoRuntime.queryInterface(XCommandProcessor.class, m_documentDefinition);
+
+ com.sun.star.ucb.Command aCommand = new com.sun.star.ucb.Command();
+ aCommand.Name = "open";
+ try
{
- final XComponent[] xComponents = createFinalReportDocument(Name, getRecordParser().DBConnection, _bAsTemplate, _bOpenInDesign);
- dispose();
- return xComponents;
+ final Object result = commandProcessor.execute( aCommand, commandProcessor.createCommandIdentifier(), null );
+ return UnoRuntime.queryInterface( XComponent.class, result );
}
- else if (_bAsTemplate == false)
+ catch ( Exception ex )
{
- final XComponent[] xComponents = createFinalReportDocument(Name, getRecordParser().DBConnection, _bAsTemplate, _bOpenInDesign);
- boolean bDocisStored = getRecordParser().storeDatabaseDocumentToTempPath(xComponents[0], Name);
- if (bDocisStored)
- {
- getRecordParser().addReportDocument(xComponents[0], false);
- }
- dispose();
+ Logger.getLogger( ReportBuilderImplementation.class.getName() ).log( Level.SEVERE, null, ex );
}
- else
+ return null;
+ }
+
+ public void createAndOpenReportDocument( String i_name, boolean i_asTemplate, boolean i_openForEditing )
+ {
+ if ( i_openForEditing )
{
// we won't destroy the report builder window, also don't create a document
// Do we need to reopen the report builder with the known name?
switchOnAddFieldWindow();
switchOnPropertyBrowser();
+ return;
}
- return null;
+
+ if ( i_asTemplate )
+ {
+ // don't need the report definition anymore - the document it represents has already been stored
+ closeReportDefinition();
+
+ // open the report, again, this time not in design, but containing data
+ loadReport( i_name );
+ }
+ else
+ {
+ // execute the report from the (yet unsaved) report definition
+ XComponent document = loadReportFromDocumentDefinition();
+
+ // don't need the report definition anymore
+ closeReportDefinition();
+
+ // store the generated report
+ if ( getRecordParser().storeDatabaseDocumentToTempPath( document, i_name ) )
+ getRecordParser().addReportDocument( document, false );
+ }
+
+ dispose();
}
private XConnection getConnection()
@@ -586,7 +488,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void initializeFieldColumns(final int _nType, final String TableName, final String[] FieldNames)
{
getRecordParser().initializeFieldColumns(FieldNames, TableName);
-// getRecordParser().createRecordFieldNames();
final com.sun.star.wizards.db.RecordParser a = getRecordParser();
int[] FieldTypes = new int[FieldNames.length];
@@ -597,7 +498,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
FieldWidths[i] = a.FieldColumns[i].getFieldWidth();
}
getReportBuilderLayouter().setTableName(_nType, TableName);
-// getReportBuilderLayouter().insertFields(getRecordParser().getRecordFieldNames());
getReportBuilderLayouter().insertFieldNames(FieldNames);
getReportBuilderLayouter().insertFieldTypes(FieldTypes);
getReportBuilderLayouter().insertFieldWidths(FieldWidths);
@@ -608,7 +508,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void setFieldTitles(String[] _aFieldTitles)
{
getRecordParser().setFieldTitles(_aFieldTitles);
-// getRecordParser().createRecordFieldNames();
getReportBuilderLayouter().insertFieldTitles(_aFieldTitles);
getReportBuilderLayouter().layout();
@@ -617,18 +516,12 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void setSorting(String[][] _aSortFieldNames)
{
getRecordParser().setSortFieldNames(_aSortFieldNames);
-// getRecordParser().createRecordFieldNames();
}
public void setGrouping(String[] _aGroupFieldNames)
{
getRecordParser().prependSortFieldNames(_aGroupFieldNames);
- // getRecordParser().createRecordFieldNames();
-
- // getReportBuilderLayouter().insertFields(getRecordParser().getRecordFieldNames());
-// getReportBuilderLayouter().insertFieldTitles(getRecordParser().get);
- // getReportBuilderLayouter().insertGroups(_aGroupFieldNames);
getReportBuilderLayouter().insertGroupNames(_aGroupFieldNames);
getReportBuilderLayouter().layout();
}
@@ -643,18 +536,18 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
{
if (m_aReportPath == null)
{
- // Check general availability of office paths
try
{
- m_aReportPath = FileAccess.getOfficePaths(getMSF(), "Template", "share", "/wizard");
- FileAccess.combinePaths(getMSF(), m_aReportPath, "/wizard/report");
+ // Check general availability of office paths
+ m_aReportPath = FileAccess.getOfficePaths( getMSF(), "Template", "share", "/wizard" );
+ FileAccess.combinePaths( getMSF(), m_aReportPath, "/wizard/report" );
}
- catch (Exception e)
+ catch ( NoValidPathException ex )
{
+ Logger.getLogger( ReportBuilderImplementation.class.getName() ).log( Level.SEVERE, null, ex );
}
}
return m_aReportPath;
- // return "";
}
public String getContentPath()
@@ -686,7 +579,7 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
});
Object[] aParams = new Object[2];
aParams[0] = this;
- aParams[1] = m_aResource;
+ aParams[1] = m_resource;
final IReportBuilderLayouter aReportBuilderLayouter = (IReportBuilderLayouter) cTor.newInstance(aParams);
return aReportBuilderLayouter;
}
@@ -694,34 +587,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
{
e.printStackTrace();
}
-// catch (NoSuchMethodException ex)
-// {
-// ex.printStackTrace();
-// }
-// catch (SecurityException ex)
-// {
-// ex.printStackTrace();
-// }
-// catch (InstantiationException ex)
-// {
-// ex.printStackTrace();
-// }
-// catch (IllegalAccessException ex)
-// {
-// ex.printStackTrace();
-// }
-// catch (IllegalArgumentException ex)
-// {
-// ex.printStackTrace();
-// }
-// catch (InvocationTargetException ex)
-// {
-// ex.printStackTrace();
-// }
-// catch (ClassNotFoundException e)
-// {
-// e.printStackTrace();
-// }
return null;
}
private LinkedHashMap m_aLayoutMap = null;
@@ -837,11 +702,11 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public XReportDefinition getReportDefinition()
{
- if (m_xReportDefinition == null)
+ if (m_reportDocument == null)
{
throw new NullPointerException("Report Definition is not already initialized, check if you too early access the report definition.");
}
- return m_xReportDefinition;
+ return m_reportDocument;
}
public XMultiServiceFactory getGlobalMSF()
@@ -851,7 +716,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
public void importReportData(ReportWizard aWizard)
{
- // throw new UnsupportedOperationException("Not supported yet.");
}
public String getDefaultHeaderLayout()
@@ -863,7 +727,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
{
getRecordParser().Command = _sCommand;
getReportDefinition().setCommand(_sCommand);
- // throw new UnsupportedOperationException("Not supported yet.");
}
public void setCommandType(int _nCommand)
@@ -880,11 +743,6 @@ public class ReportBuilderImplementation extends ReportImplementationHelper
throw new java.io.IOException("default.otr");
}
- final String sName = FileAccess.getFilename(sDefaultHeaderLayoutPath);
- // if (sName.toLowerCase().equals("default.otr_") ||
- // LayoutTemplatePath.equals("DefaultLayoutOfHeaders"))
- // File aFile = new File(sDefaultHeaderLayoutPath);
- // File aFile = new File(sName);
FileAccess aAccess = new FileAccess(getGlobalMSF());
if (! aAccess.exists(sDefaultHeaderLayoutPath, true))
{