summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/report
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2004-05-19 11:47:49 +0000
committerKurt Zenker <kz@openoffice.org>2004-05-19 11:47:49 +0000
commit44720496bb99a3cc4ffd19c9d86be3c1bccd034c (patch)
tree220474eece36e82940664d5af09fd86b70ceb2b8 /wizards/com/sun/star/wizards/report
parentc439f933dd1a6a783473ac67ce343e6f0a4fb156 (diff)
INTEGRATION: CWS qwizards1 (1.1.2); FILE ADDED
2004/05/05 16:10:02 bc 1.1.2.5: #111603# cancelwizard modified 2004/03/12 08:04:44 bc 1.1.2.4: #111603# several changes 2004/02/02 11:28:31 tv 1.1.2.3: formatted with autoformatter (indents now use TAB) 2004/01/30 15:17:45 bc 1.1.2.2: #111603# several improvements 2004/01/22 19:33:32 bc 1.1.2.1: #111603# reimplementing Reportwizard due to querywizard
Diffstat (limited to 'wizards/com/sun/star/wizards/report')
-rw-r--r--wizards/com/sun/star/wizards/report/ReportLayouter.java276
1 files changed, 276 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/report/ReportLayouter.java b/wizards/com/sun/star/wizards/report/ReportLayouter.java
new file mode 100644
index 000000000000..bc68180e2200
--- /dev/null
+++ b/wizards/com/sun/star/wizards/report/ReportLayouter.java
@@ -0,0 +1,276 @@
+/*************************************************************************
+ *
+ * $RCSfile: ReportLayouter.java,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: kz $ $Date: 2004-05-19 12:47:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ */
+
+package com.sun.star.wizards.report;
+
+import com.sun.rsasign.s;
+import com.sun.star.awt.XListBox;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.lang.EventObject;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.XInterface;
+import com.sun.star.wizards.common.*;
+import com.sun.star.wizards.ui.*;
+
+public class ReportLayouter {
+ UnoDialog CurUnoDialog;
+ static String sOrientationHeader;
+ static String sOrientVertical;
+ static String sOrientHorizontal;
+ final int SOTXTTITLE = 28;
+ final int SOCONTENTLST = 29;
+
+ final int SOOPTLANDSCAPE = 30;
+ final int SOOPTPORTRAIT = 31;
+ final int SOLAYOUTLST = 32;
+ static String sReportTitle;
+ static String slblDataStructure;
+ static String slblPageLayout;
+ static String sOrganizeFields;
+ XListBox xContentListBox;
+ XListBox xLayoutListBox;
+ int iOldContentPos;
+ int iOldLayoutPos;
+ XTextComponent xTitleTextBox;
+ ReportDocument CurReportDocument;
+ public String[][] LayoutFiles;
+ public String[][] ContentFiles;
+ private Desktop.OfficePathRetriever curofficepath;
+
+ public ReportLayouter(ReportDocument _CurReportDocument, UnoDialog _CurUnoDialog) {
+ try {
+ short curtabindex = (short) (100 * ReportWizard.SOTEMPLATEPAGE);
+ this.CurUnoDialog = _CurUnoDialog;
+ this.CurReportDocument = _CurReportDocument;
+ //TODO the constructor for the OfficePathRetriever is redundant and should be instantiated elsewhere
+ Desktop odesktop = new Desktop();
+ curofficepath = odesktop.new OfficePathRetriever(CurReportDocument.xMSF);
+ slblDataStructure = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 15);
+ slblPageLayout = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 16);
+ sOrganizeFields = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 19);
+
+ sOrientationHeader = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 22);
+ sOrientVertical = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 23);
+ sOrientHorizontal = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 24);
+ sReportTitle = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 33);
+
+ ContentFiles = FileAccess.getFolderTitles(CurReportDocument.xMSF, "cnt", ReportWizard.ReportPath);
+ LayoutFiles = FileAccess.getFolderTitles(CurReportDocument.xMSF, "stl", ReportWizard.ReportPath);
+ XInterface xUcbInterface = (XInterface) CurReportDocument.xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
+ XSimpleFileAccess xSimpleFileAccess = (XSimpleFileAccess) com.sun.star.uno.UnoRuntime.queryInterface(XSimpleFileAccess.class, xUcbInterface);
+ boolean bcntexists = xSimpleFileAccess.exists(ReportWizard.ReportPath + "/cnt-default.stw");
+ boolean bstlexists = xSimpleFileAccess.exists(ReportWizard.ReportPath + "/stl-default.stw");
+ //TODO Die exception wieder rein; ggfs mit rp absprechen
+ // if ((bcntexists == false) || (bstlexists == false))
+ // throw new NoValidPathException(CurReportDocument.xMSF);
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblTitle",
+ new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width" }, new Object[] { new Integer(8), sReportTitle, new Integer(95), new Integer(27), new Integer(ReportWizard.SOTEMPLATEPAGE),
+ new Short(curtabindex++), new Integer(200)});
+
+ xTitleTextBox = CurUnoDialog.insertTextField("txtTitle", SOTXTTITLE, new TextListenerImpl(),
+ new String[] { "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width" },
+ new Object[] { new Integer(12), "HID:34362", new Integer(95), new Integer(37), new Integer(ReportWizard.SOTEMPLATEPAGE), new Short(curtabindex++), new Integer(169)});
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblContent",
+ new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width" },
+ new Object[] { new Integer(8), slblDataStructure, new Integer(95), new Integer(57), new Integer(ReportWizard.SOTEMPLATEPAGE), new Short(curtabindex++), new Integer(99)});
+
+ short iSelPos = (short) JavaTools.FieldInList(ContentFiles[1], ReportWizard.ReportPath + "/cnt-default.stw");
+ iOldContentPos = (int) iSelPos;
+ xContentListBox = CurUnoDialog.insertListBox("lstContent", SOCONTENTLST, new ActionListenerImpl(), new ItemListenerImpl(),
+ new String[] { "Height", "HelpURL", "PositionX", "PositionY", "SelectedItems", "Step", "StringItemList", "TabIndex", "Width" },
+ new Object[] { new Integer(74), "HID:34363", new Integer(95), new Integer(67), new short[] { iSelPos }, new Integer(ReportWizard.SOTEMPLATEPAGE), ContentFiles[0], new Short(curtabindex++), new Integer(99)
+ });
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblLayout",
+ new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width" },
+ new Object[] { new Integer(8), slblPageLayout, new Integer(205), new Integer(57), new Integer(ReportWizard.SOTEMPLATEPAGE), new Short(curtabindex++), new Integer(99)});
+
+ short iSelLayoutPos = (short) JavaTools.FieldInList(LayoutFiles[1], ReportWizard.ReportPath + "/stl-default.stw");
+ xLayoutListBox = CurUnoDialog.insertListBox("lstLayout", SOLAYOUTLST, new ActionListenerImpl(), new ItemListenerImpl(),
+ new String[] { "Height", "HelpURL", "PositionX", "PositionY", "SelectedItems", "Step", "StringItemList", "TabIndex", "Width" },
+ new Object[] { new Integer(74), "HID:34364", new Integer(205), new Integer(67), new short[] { iSelLayoutPos }, new Integer(ReportWizard.SOTEMPLATEPAGE), LayoutFiles[0], new Short(curtabindex++), new Integer(99)
+ });
+ iOldLayoutPos = (int) iSelPos;
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblOrientation",
+ new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width" },
+ new Object[] { new Integer(8), sOrientationHeader, new Integer(95), new Integer(148), new Integer(ReportWizard.SOTEMPLATEPAGE), new Short(curtabindex++), new Integer(74)});
+
+ CurUnoDialog.insertRadioButton("optLandscape", SOOPTLANDSCAPE, new ItemListenerImpl(),
+ new String[] { "Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width" },
+ new Object[] { new Integer(10), "HID:34365", sOrientHorizontal, new Integer(101), new Integer(158), new Short((short) 1), new Integer(ReportWizard.SOTEMPLATEPAGE), new Short(curtabindex++), new Integer(60)});
+
+ CurUnoDialog.insertRadioButton("optPortrait", SOOPTPORTRAIT, new ItemListenerImpl(),
+ new String[] { "Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width" },
+ new Object[] { new Integer(10), "HID:34366", sOrientVertical, new Integer(101), new Integer(171), new Integer(ReportWizard.SOTEMPLATEPAGE), new Short(curtabindex++), new Integer(60)});
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlImageControlModel", "imgOrientation",
+ new String[] { "Border", "Height", "ImageURL", "PositionX", "PositionY", "ScaleImage", "Step", "Width" },
+ new Object[] { new Short("0"), new Integer(23), curofficepath.BitmapPath + "/landscape.gif", new Integer(164), new Integer(158), new Boolean(false), new Integer(ReportWizard.SOTEMPLATEPAGE), new Integer(30)});
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblBlindTextNote_2",
+ new String[] { "Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "Width" },
+ new Object[] { new Integer(34), ReportWizard.sBlindTextNote, new Boolean(true), new Integer(205), new Integer(148), new Integer(ReportWizard.SOTEMPLATEPAGE), new Integer(99)});
+ } catch (Exception exception) {
+ exception.printStackTrace(System.out);
+ }
+ }
+
+ public void initialize(String _defaultTemplatePath) {
+// CurReportDocument.xTextDocument.lockControllers();
+ CurReportDocument.setupRecordSection(_defaultTemplatePath);
+
+ if (CurUnoDialog.getControlProperty("txtTitle", "Text").equals("")) {
+ String[] sCommandNames = CurReportDocument.CurDBMetaData.getIncludedCommandNames();
+ CurUnoDialog.setControlProperty("txtTitle", "Text", sCommandNames[0]);
+ }
+ CurUnoDialog.setFocus("lblContent");
+ }
+
+ class ItemListenerImpl implements com.sun.star.awt.XItemListener {
+
+ public void itemStateChanged(com.sun.star.awt.ItemEvent EventObject) {
+ try {
+ int iPos;
+ Helper.setUnoPropertyValue(CurUnoDialog.xDialogModel, "Enabled", new Boolean(false));
+ CurReportDocument.xTextDocument.lockControllers();
+ int iKey = CurUnoDialog.getControlKey(EventObject.Source, CurUnoDialog.ControlList);
+ switch (iKey) {
+ case SOCONTENTLST :
+ iPos = xContentListBox.getSelectedItemPos();
+ if (iPos != iOldContentPos) {
+ iOldContentPos = iPos;
+ CurReportDocument.swapContentTemplate(ContentFiles[1][iPos]);
+ }
+ break;
+
+ case SOLAYOUTLST :
+ iPos = xLayoutListBox.getSelectedItemPos();
+ if (iPos != iOldLayoutPos) {
+ iOldLayoutPos = iPos;
+ CurReportDocument.swapLayoutTemplate(LayoutFiles[1][iPos], curofficepath.BitmapPath);
+ }
+ break;
+
+ case SOOPTLANDSCAPE :
+ CurReportDocument.changePageOrientation(curofficepath.BitmapPath, true);
+ break;
+
+ case SOOPTPORTRAIT :
+ CurReportDocument.changePageOrientation(curofficepath.BitmapPath, false);
+ break;
+
+ default :
+ break;
+ }
+ } catch (RuntimeException e) {
+ e.printStackTrace();
+ }
+ CurReportDocument.unlockallControllers();
+ //TODO reset controls
+ // if (bNewLandscape == true)
+ // CurUnoDialog.setControlProperty("imgOrientation", "ImageURL", BitmapPath + "/landscape.gif");
+ // else
+ // CurUnoDialog.setControlProperty("imgOrientation", "ImageURL", BitmapPath + "/portrait.gif");
+
+ Helper.setUnoPropertyValue(CurUnoDialog.xDialogModel, "Enabled", new Boolean(true));
+ }
+
+ public void disposing(EventObject eventObject) {
+ }
+ }
+
+ class ActionListenerImpl implements com.sun.star.awt.XActionListener {
+
+ public void disposing(EventObject eventObject) {
+ }
+
+ public void actionPerformed(com.sun.star.awt.ActionEvent actionEvent) {
+ try {
+ Helper.setUnoPropertyValue(CurUnoDialog.xDialogModel, "Enabled", new Boolean(false));
+ CurReportDocument.xTextDocument.lockControllers();
+ boolean blandscape = (((Short) CurUnoDialog.getControlProperty("optLandscape", "State")).shortValue() == 1);
+ CurReportDocument.changePageOrientation(curofficepath.BitmapPath, blandscape);
+ } catch (Exception exception) {
+ exception.printStackTrace(System.out);
+ }
+ CurReportDocument.unlockallControllers();
+ Helper.setUnoPropertyValue(CurUnoDialog.xDialogModel, "Enabled", new Boolean(true));
+ }
+ }
+
+ class TextListenerImpl implements com.sun.star.awt.XTextListener {
+
+ public void textChanged(com.sun.star.awt.TextEvent EventObject) {
+ try {
+ String TitleName = xTitleTextBox.getText();
+ CurReportDocument.updateReportTitle(xTitleTextBox);
+ } catch (Exception exception) {
+ exception.printStackTrace(System.out);
+ }
+ }
+
+ public void disposing(EventObject EventObject) {
+ }
+ }
+
+}