diff options
Diffstat (limited to 'wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java')
-rw-r--r-- | wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java | 1543 |
1 files changed, 1543 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java b/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java new file mode 100644 index 000000000000..106fb68a172e --- /dev/null +++ b/wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java @@ -0,0 +1,1543 @@ +/* + ************************************************************************ + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org 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 version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package com.sun.star.wizards.letter; + +import java.util.Vector; +import com.sun.star.lang.IllegalArgumentException; +import com.sun.star.lang.WrappedTargetException; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.wizards.common.Configuration; +import com.sun.star.wizards.common.Desktop; +import com.sun.star.wizards.common.NoValidPathException; +import com.sun.star.wizards.common.SystemDialog; +import com.sun.star.awt.VclWindowPeerAttribute; +import com.sun.star.awt.XTextComponent; +import com.sun.star.awt.XWindow; +import com.sun.star.awt.XWindowPeer; +import com.sun.star.beans.PropertyValue; +import com.sun.star.container.NoSuchElementException; +import com.sun.star.document.MacroExecMode; +import com.sun.star.document.XDocumentProperties; +import com.sun.star.document.XDocumentPropertiesSupplier; +import com.sun.star.ucb.CommandAbortedException; +import com.sun.star.uno.AnyConverter; +import com.sun.star.uno.Exception; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.wizards.text.*; +import com.sun.star.wizards.common.*; +import com.sun.star.task.XInteractionHandler; +import com.sun.star.text.XTextFrame; +import com.sun.star.text.XTextDocument; +import com.sun.star.uno.XInterface; +import com.sun.star.util.CloseVetoException; +import com.sun.star.util.XCloseable; +import com.sun.star.wizards.document.*; +import com.sun.star.wizards.ui.*; +import com.sun.star.wizards.ui.event.*; +import com.sun.star.wizards.common.Helper; + +public class LetterWizardDialogImpl extends LetterWizardDialog +{ + + protected void enterStep(int OldStep, int NewStep) + { + } + + protected void leaveStep(int OldStep, int NewStep) + { + } + static LetterDocument myLetterDoc; + static boolean running; + XMultiServiceFactory xmsf; + XTextDocument xTextDocument; + PathSelection myPathSelection; + CGLetterWizard myConfig; + Vector mainDA = new Vector(); + Vector letterDA = new Vector(); + Vector businessDA = new Vector(); + String[][] BusinessFiles; + String[][] OfficialFiles; + String[][] PrivateFiles; + String[] Norms; + String[] NormPaths; + String[] NormNames; + String sTemplatePath; + String sUserTemplatePath; + String sBitmapPath; + String sLetterPath; + String sLetterLangPackPath; + String sWorkPath; + String sCurrentNorm; + String sPath; + boolean bEditTemplate; + boolean bSaveSuccess = false; + private boolean filenameChanged = false; + LetterDocument.BusinessPaperObject BusCompanyLogo = null; + LetterDocument.BusinessPaperObject BusCompanyAddress = null; + LetterDocument.BusinessPaperObject BusCompanyAddressReceiver = null; + LetterDocument.BusinessPaperObject BusFooter = null; + final static int RM_TYPESTYLE = 1; + final static int RM_BUSINESSPAPER = 2; + final static int RM_ELEMENTS = 3; + final static int RM_SENDERRECEIVER = 4; + final static int RM_FOOTER = 5; + final static int RM_FINALSETTINGS = 6; + + public LetterWizardDialogImpl(XMultiServiceFactory xmsf) + { + super(xmsf); + this.xmsf = xmsf; + } + + public static void main(String args[]) + { + //only being called when starting wizard remotely + String ConnectStr = "uno:socket,host=127.0.0.1,port=8100;urp,negotiate=0,forcesynchronous=1;StarOffice.ServiceManager"; + XMultiServiceFactory xLocMSF = null; + try + { + xLocMSF = Desktop.connect(ConnectStr); + } + catch (Exception e) + { + e.printStackTrace(); + } + catch (java.lang.Exception e) + { + e.printStackTrace(); + } + LetterWizardDialogImpl lw = new LetterWizardDialogImpl(xLocMSF); + lw.startWizard(xLocMSF, null); + + } + + public void startWizard(XMultiServiceFactory xMSF, Object[] CurPropertyValue) + { + + running = true; + try + { + //Number of steps on WizardDialog: + setMaxStep(6); + + //instatiate The Document Frame for the Preview + myLetterDoc = new LetterDocument(xMSF, this); + + //create the dialog: + drawNaviBar(); + buildStep1(); + buildStep2(); + buildStep3(); + buildStep4(); + buildStep5(); + buildStep6(); + + initializePaths(); + initializeNorms(); + initializeSalutation(); + initializeGreeting(); + + + //special Control for setting the save Path: + insertPathSelectionControl(); + + //load the last used settings from the registry and apply listeners to the controls: + initConfiguration(); + + //set the language according to the Linguistic + int oL = getOfficeLinguistic(); + myConfig.cp_BusinessLetter.cp_Norm = oL; + myConfig.cp_PrivateOfficialLetter.cp_Norm = oL; + myConfig.cp_PrivateLetter.cp_Norm = oL; + initializeTemplates(xMSF); + + if (myConfig.cp_BusinessLetter.cp_Greeting.equals("")) + { + myConfig.cp_BusinessLetter.cp_Greeting = resources.GreetingLabels[0]; + } + if (myConfig.cp_BusinessLetter.cp_Salutation.equals("")) + { + myConfig.cp_BusinessLetter.cp_Salutation = resources.SalutationLabels[0]; + } + if (myConfig.cp_PrivateOfficialLetter.cp_Greeting.equals("")) + { + myConfig.cp_PrivateOfficialLetter.cp_Greeting = resources.GreetingLabels[1]; + } + if (myConfig.cp_PrivateOfficialLetter.cp_Salutation.equals("")) + { + myConfig.cp_PrivateOfficialLetter.cp_Salutation = resources.SalutationLabels[1]; + } + if (myConfig.cp_PrivateLetter.cp_Greeting.equals("")) + { + myConfig.cp_PrivateLetter.cp_Greeting = resources.GreetingLabels[2]; + } + if (myConfig.cp_PrivateLetter.cp_Salutation.equals("")) + { + myConfig.cp_PrivateLetter.cp_Salutation = resources.SalutationLabels[2]; + } + + //update the dialog UI according to the loaded Configuration + updateUI(); + + if (myPathSelection.xSaveTextBox.getText().equalsIgnoreCase("")) + { + myPathSelection.initializePath(); + } + + XWindow xContainerWindow = myLetterDoc.xFrame.getContainerWindow(); + XWindowPeer xWindowPeer = (XWindowPeer) UnoRuntime.queryInterface(XWindowPeer.class, xContainerWindow); + createWindowPeer(xWindowPeer); + + //add the Roadmap to the dialog: + insertRoadmap(); + + //load the last used document and apply last used settings: + setConfiguration(); + + //If the configuration does not define Greeting/Salutation yet choose a default + setDefaultForGreetingAndSalutation(); + + //disable funtionality that is not supported by the template: + initializeElements(); + + //disable the document, so that the user cannot change anything: + myLetterDoc.xFrame.getComponentWindow().setEnable(false); + + executeDialog(myLetterDoc.xFrame); + removeTerminateListener(); + closeDocument(); + running = false; + + } + catch (Exception exception) + { + removeTerminateListener(); + exception.printStackTrace(System.out); + running = false; + return; + } + } + + public void cancelWizard() + { + xDialog.endExecute(); + running = false; + } + + public boolean finishWizard() + { + switchToStep(getCurrentStep(), getMaxStep()); + try + { + //myLetterDoc.xTextDocument.lockControllers(); + FileAccess fileAccess = new FileAccess(xMSF); + sPath = myPathSelection.getSelectedPath(); + if (sPath.equals("")) + { + myPathSelection.triggerPathPicker(); + sPath = myPathSelection.getSelectedPath(); + } + sPath = fileAccess.getURL(sPath); + + //first, if the filename was not changed, thus + //it is coming from a saved session, check if the + // file exists and warn the user. + if (!filenameChanged) + { + if (fileAccess.exists(sPath, true)) + { + + int answer = SystemDialog.showMessageBox(xMSF, xControl.getPeer(), "MessBox", VclWindowPeerAttribute.YES_NO + VclWindowPeerAttribute.DEF_NO, resources.resOverwriteWarning); + if (answer == 3) // user said: no, do not overwrite.... + { + return false; + } + } + } + myLetterDoc.setWizardTemplateDocInfo(resources.resLetterWizardDialog_title, resources.resTemplateDescription); + myLetterDoc.killEmptyUserFields(); + myLetterDoc.keepLogoFrame = (chkUseLogo.getState() != 0); + if ((chkBusinessPaper.getState() != 0) && (chkPaperCompanyLogo.getState() != 0)) + { + myLetterDoc.keepLogoFrame = false; + } + myLetterDoc.keepBendMarksFrame = (chkUseBendMarks.getState() != 0); + myLetterDoc.keepLetterSignsFrame = (chkUseSigns.getState() != 0); + myLetterDoc.keepSenderAddressRepeatedFrame = (chkUseAddressReceiver.getState() != 0); + + if (optBusinessLetter.getState()) + { + if ((chkBusinessPaper.getState() != 0) && (chkCompanyReceiver.getState() != 0)) + { + myLetterDoc.keepSenderAddressRepeatedFrame = false; + } + if ((chkBusinessPaper.getState() != 0) && (chkPaperCompanyAddress.getState() != 0)) + { + myLetterDoc.keepAddressFrame = false; + } + } + + myLetterDoc.killEmptyFrames(); + + + bSaveSuccess = OfficeDocument.store(xMSF, xTextDocument, sPath, "writer8_template", false, "Template could not be saved to " + sPath); + + if (bSaveSuccess) + { + saveConfiguration(); + XInteractionHandler xIH = (XInteractionHandler) UnoRuntime.queryInterface(XInteractionHandler.class, xMSF.createInstance("com.sun.star.comp.uui.UUIInteractionHandler")); + PropertyValue loadValues[] = new PropertyValue[4]; + loadValues[0] = new PropertyValue(); + loadValues[0].Name = "AsTemplate"; + loadValues[1] = new PropertyValue(); + loadValues[1].Name = "MacroExecutionMode"; + loadValues[1].Value = new Short(MacroExecMode.ALWAYS_EXECUTE); + loadValues[2] = new PropertyValue(); + loadValues[2].Name = "UpdateDocMode"; + loadValues[2].Value = new Short(com.sun.star.document.UpdateDocMode.FULL_UPDATE); + loadValues[3] = new PropertyValue(); + loadValues[3].Name = "InteractionHandler"; + loadValues[3].Value = xIH; + + if (bEditTemplate) + { + loadValues[0].Value = Boolean.FALSE; + } + else + { + loadValues[0].Value = Boolean.TRUE; + } + Object oDoc = OfficeDocument.load(Desktop.getDesktop(xMSF), sPath, "_default", loadValues); + XTextDocument xTextDocument = (com.sun.star.text.XTextDocument) oDoc; + XMultiServiceFactory xDocMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument); + ViewHandler myViewHandler = new ViewHandler(xDocMSF, xTextDocument); + myViewHandler.setViewSetting("ZoomType", new Short(com.sun.star.view.DocumentZoomType.OPTIMAL)); + } + else + { + //TODO: Error Handling + } + } + catch (Exception e) + { + e.printStackTrace(); + } + finally + { + xDialog.endExecute(); + running = false; + } + return true; + } + + public void closeDocument() + { + try + { + //xComponent.dispose(); + XCloseable xCloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, myLetterDoc.xFrame); + xCloseable.close(false); + } + catch (CloseVetoException e) + { + e.printStackTrace(); + } + } + + public void optBusinessLetterItemChanged() + { + DataAware.setDataObject(letterDA, myConfig.cp_BusinessLetter, true); + setControlProperty("lblBusinessStyle", "Enabled", Boolean.TRUE); + setControlProperty("lstBusinessStyle", "Enabled", Boolean.TRUE); + setControlProperty("chkBusinessPaper", "Enabled", Boolean.TRUE); + setControlProperty("lblPrivOfficialStyle", "Enabled", Boolean.FALSE); + setControlProperty("lstPrivOfficialStyle", "Enabled", Boolean.FALSE); + setControlProperty("lblPrivateStyle", "Enabled", Boolean.FALSE); + setControlProperty("lstPrivateStyle", "Enabled", Boolean.FALSE); + lstBusinessStyleItemChanged(); + enableSenderReceiver(); + setPossibleFooter(true); + if (myPathSelection.xSaveTextBox.getText().equalsIgnoreCase("")) + { + myPathSelection.initializePath(); + } + } + + public void optPrivOfficialLetterItemChanged() + { + DataAware.setDataObject(letterDA, myConfig.cp_PrivateOfficialLetter, true); + setControlProperty("lblBusinessStyle", "Enabled", Boolean.FALSE); + setControlProperty("lstBusinessStyle", "Enabled", Boolean.FALSE); + setControlProperty("chkBusinessPaper", "Enabled", Boolean.FALSE); + setControlProperty("lblPrivOfficialStyle", "Enabled", Boolean.TRUE); + setControlProperty("lstPrivOfficialStyle", "Enabled", Boolean.TRUE); + setControlProperty("lblPrivateStyle", "Enabled", Boolean.FALSE); + setControlProperty("lstPrivateStyle", "Enabled", Boolean.FALSE); + lstPrivOfficialStyleItemChanged(); + disableBusinessPaper(); + enableSenderReceiver(); + setPossibleFooter(true); + if (myPathSelection.xSaveTextBox.getText().equalsIgnoreCase("")) + { + myPathSelection.initializePath(); + } + } + + public void optPrivateLetterItemChanged() + { + DataAware.setDataObject(letterDA, myConfig.cp_PrivateLetter, true); + setControlProperty("lblBusinessStyle", "Enabled", Boolean.FALSE); + setControlProperty("lstBusinessStyle", "Enabled", Boolean.FALSE); + setControlProperty("chkBusinessPaper", "Enabled", Boolean.FALSE); + setControlProperty("lblPrivOfficialStyle", "Enabled", Boolean.FALSE); + setControlProperty("lstPrivOfficialStyle", "Enabled", Boolean.FALSE); + setControlProperty("lblPrivateStyle", "Enabled", Boolean.TRUE); + setControlProperty("lstPrivateStyle", "Enabled", Boolean.TRUE); + lstPrivateStyleItemChanged(); + disableBusinessPaper(); + disableSenderReceiver(); + setPossibleFooter(false); + if (myPathSelection.xSaveTextBox.getText().equalsIgnoreCase("")) + { + myPathSelection.initializePath(); + } + } + + public void optSenderPlaceholderItemChanged() + { + setControlProperty("lblSenderName", "Enabled", Boolean.FALSE); + setControlProperty("lblSenderStreet", "Enabled", Boolean.FALSE); + setControlProperty("lblPostCodeCity", "Enabled", Boolean.FALSE); + setControlProperty("txtSenderName", "Enabled", Boolean.FALSE); + setControlProperty("txtSenderStreet", "Enabled", Boolean.FALSE); + setControlProperty("txtSenderPostCode", "Enabled", Boolean.FALSE); + setControlProperty("txtSenderState", "Enabled", Boolean.FALSE); + setControlProperty("txtSenderCity", "Enabled", Boolean.FALSE); + myLetterDoc.fillSenderWithUserData(); + } + + public void optSenderDefineItemChanged() + { + setControlProperty("lblSenderName", "Enabled", Boolean.TRUE); + setControlProperty("lblSenderStreet", "Enabled", Boolean.TRUE); + setControlProperty("lblPostCodeCity", "Enabled", Boolean.TRUE); + setControlProperty("txtSenderName", "Enabled", Boolean.TRUE); + setControlProperty("txtSenderStreet", "Enabled", Boolean.TRUE); + setControlProperty("txtSenderPostCode", "Enabled", Boolean.TRUE); + setControlProperty("txtSenderState", "Enabled", Boolean.TRUE); + setControlProperty("txtSenderCity", "Enabled", Boolean.TRUE); + txtSenderNameTextChanged(); + txtSenderStreetTextChanged(); + txtSenderPostCodeTextChanged(); + txtSenderStateTextChanged(); + txtSenderCityTextChanged(); + } + + public void optCreateLetterItemChanged() + { + bEditTemplate = false; + } + + public void optMakeChangesItemChanged() + { + bEditTemplate = true; + } + + public void optReceiverPlaceholderItemChanged() + { + OfficeDocument.attachEventCall(xTextDocument, "OnNew", "StarBasic", "macro:///Template.Correspondence.Placeholder()"); + } + + public void optReceiverDatabaseItemChanged() + { + OfficeDocument.attachEventCall(xTextDocument, "OnNew", "StarBasic", "macro:///Template.Correspondence.Database()"); + } + + public void lstBusinessStyleItemChanged() + { + xTextDocument = myLetterDoc.loadAsPreview(BusinessFiles[1][lstBusinessStyle.getSelectedItemPos()], false); + myLetterDoc.xTextDocument.lockControllers(); + initializeElements(); + chkBusinessPaperItemChanged(); + setElements(false); + myLetterDoc.xTextDocument.unlockControllers(); + activate(); + } + + public void lstPrivOfficialStyleItemChanged() + { + xTextDocument = myLetterDoc.loadAsPreview(OfficialFiles[1][lstPrivOfficialStyle.getSelectedItemPos()], false); + myLetterDoc.xTextDocument.lockControllers(); + initializeElements(); + setPossibleSenderData(true); + setElements(false); + myLetterDoc.xTextDocument.unlockControllers(); + activate(); + } + + public void lstPrivateStyleItemChanged() + { + xTextDocument = myLetterDoc.loadAsPreview(PrivateFiles[1][lstPrivateStyle.getSelectedItemPos()], false); + myLetterDoc.xTextDocument.lockControllers(); + initializeElements(); + setElements(true); + myLetterDoc.xTextDocument.unlockControllers(); + activate(); + } + + public void numLogoHeightTextChanged() + { + BusCompanyLogo.iHeight = (int) (numLogoHeight.getValue() * 1000); + BusCompanyLogo.setFramePosition(); + } + + public void numLogoWidthTextChanged() + { + BusCompanyLogo.iWidth = (int) (numLogoWidth.getValue() * 1000); + BusCompanyLogo.setFramePosition(); + } + + public void numLogoXTextChanged() + { + BusCompanyLogo.iXPos = (int) (numLogoX.getValue() * 1000); + BusCompanyLogo.setFramePosition(); + } + + public void numLogoYTextChanged() + { + BusCompanyLogo.iYPos = (int) (numLogoY.getValue() * 1000); + BusCompanyLogo.setFramePosition(); + } + + public void numAddressWidthTextChanged() + { + BusCompanyAddress.iWidth = (int) (numAddressWidth.getValue() * 1000); + BusCompanyAddress.setFramePosition(); + } + + public void numAddressXTextChanged() + { + BusCompanyAddress.iXPos = (int) (numAddressX.getValue() * 1000); + BusCompanyAddress.setFramePosition(); + } + + public void numAddressYTextChanged() + { + BusCompanyAddress.iYPos = (int) (numAddressY.getValue() * 1000); + BusCompanyAddress.setFramePosition(); + } + + public void numAddressHeightTextChanged() + { + BusCompanyAddress.iHeight = (int) (numAddressHeight.getValue() * 1000); + BusCompanyAddress.setFramePosition(); + } + + public void numFooterHeightTextChanged() + { + BusFooter.iHeight = (int) (numFooterHeight.getValue() * 1000); + BusFooter.iYPos = myLetterDoc.DocSize.Height - BusFooter.iHeight; + BusFooter.setFramePosition(); + } + + public void chkPaperCompanyLogoItemChanged() + { + if (chkPaperCompanyLogo.getState() != 0) + { + //minimal value is required, otherwise the frame creation fails + if (numLogoWidth.getValue() == 0) + { + numLogoWidth.setValue(0.1); + } + if (numLogoHeight.getValue() == 0) + { + numLogoHeight.setValue(0.1); + } + BusCompanyLogo = myLetterDoc.new BusinessPaperObject("Company Logo", (int) (numLogoWidth.getValue() * 1000), (int) (numLogoHeight.getValue() * 1000), (int) (numLogoX.getValue() * 1000), (int) (numLogoY.getValue() * 1000)); + setControlProperty("numLogoHeight", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyLogoHeight", "Enabled", Boolean.TRUE); + setControlProperty("numLogoWidth", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyLogoWidth", "Enabled", Boolean.TRUE); + setControlProperty("numLogoX", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyLogoX", "Enabled", Boolean.TRUE); + setControlProperty("numLogoY", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyLogoY", "Enabled", Boolean.TRUE); + setPossibleLogo(false); + } + else + { + if (BusCompanyLogo != null) + { + BusCompanyLogo.removeFrame(); + } + setControlProperty("numLogoHeight", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyLogoHeight", "Enabled", Boolean.FALSE); + setControlProperty("numLogoWidth", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyLogoWidth", "Enabled", Boolean.FALSE); + setControlProperty("numLogoX", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyLogoX", "Enabled", Boolean.FALSE); + setControlProperty("numLogoY", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyLogoY", "Enabled", Boolean.FALSE); + setPossibleLogo(true); + } + } + + public void chkPaperCompanyAddressItemChanged() + { + if (chkPaperCompanyAddress.getState() != 0) + { +// minimal value is required, otherwise the frame creation fails + if (numAddressWidth.getValue() == 0) + { + numAddressWidth.setValue(0.1); + } + if (numAddressHeight.getValue() == 0) + { + numAddressHeight.setValue(0.1); + } + BusCompanyAddress = myLetterDoc.new BusinessPaperObject("Company Address", (int) (numAddressWidth.getValue() * 1000), (int) (numAddressHeight.getValue() * 1000), (int) (numAddressX.getValue() * 1000), (int) (numAddressY.getValue() * 1000)); + setControlProperty("numAddressHeight", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyAddressHeight", "Enabled", Boolean.TRUE); + setControlProperty("numAddressWidth", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyAddressWidth", "Enabled", Boolean.TRUE); + setControlProperty("numAddressX", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyAddressX", "Enabled", Boolean.TRUE); + setControlProperty("numAddressY", "Enabled", Boolean.TRUE); + setControlProperty("lblCompanyAddressY", "Enabled", Boolean.TRUE); + if (myLetterDoc.hasElement("Sender Address")) + { + myLetterDoc.switchElement("Sender Address", (false)); + } + if (chkCompanyReceiver.getState() != 0) + { + setPossibleSenderData(false); + } + } + else + { + if (BusCompanyAddress != null) + { + BusCompanyAddress.removeFrame(); + } + setControlProperty("numAddressHeight", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyAddressHeight", "Enabled", Boolean.FALSE); + setControlProperty("numAddressWidth", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyAddressWidth", "Enabled", Boolean.FALSE); + setControlProperty("numAddressX", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyAddressX", "Enabled", Boolean.FALSE); + setControlProperty("numAddressY", "Enabled", Boolean.FALSE); + setControlProperty("lblCompanyAddressY", "Enabled", Boolean.FALSE); + if (myLetterDoc.hasElement("Sender Address")) + { + myLetterDoc.switchElement("Sender Address", (true)); + } + setPossibleSenderData(true); + if (optSenderDefine.getState()) + { + optSenderDefineItemChanged(); + } + if (optSenderPlaceholder.getState()) + { + optSenderPlaceholderItemChanged(); + } + } + } + + public void chkCompanyReceiverItemChanged() + { + XTextFrame xReceiverFrame = null; + + if (chkCompanyReceiver.getState() != 0) + { + try + { + xReceiverFrame = TextFrameHandler.getFrameByName("Receiver Address", xTextDocument); + Integer FrameWidth = (Integer) Helper.getUnoPropertyValue(xReceiverFrame, "Width"); + int iFrameWidth = FrameWidth.intValue(); + Integer FrameX = (Integer) Helper.getUnoPropertyValue(xReceiverFrame, "HoriOrientPosition"); + int iFrameX = FrameX.intValue(); + Integer FrameY = (Integer) Helper.getUnoPropertyValue(xReceiverFrame, "VertOrientPosition"); + int iFrameY = FrameY.intValue(); + + //Height of the Company Address in the Receiver Field + int iReceiverHeight = (int) (0.5 * 1000); + BusCompanyAddressReceiver = myLetterDoc.new BusinessPaperObject(" ", iFrameWidth, iReceiverHeight, iFrameX, (iFrameY - iReceiverHeight)); + + setPossibleAddressReceiver(false); + } + catch (NoSuchElementException e) + { + // TODO Error Message: Template modified! + e.printStackTrace(); + } + catch (WrappedTargetException e) + { + e.printStackTrace(); + } + if (chkPaperCompanyAddress.getState() != 0) + { + setPossibleSenderData(false); + } + } + else + { + if (BusCompanyAddressReceiver != null) + { + BusCompanyAddressReceiver.removeFrame(); + } + setPossibleAddressReceiver(true); + setPossibleSenderData(true); + if (optSenderDefine.getState()) + { + optSenderDefineItemChanged(); + } + if (optSenderPlaceholder.getState()) + { + optSenderPlaceholderItemChanged(); + } + } + } + + public void chkPaperFooterItemChanged() + { + + if (chkPaperFooter.getState() != 0) + { + //minimal value is required, otherwise the frame creation fails + if (numFooterHeight.getValue() == 0) + { + numFooterHeight.setValue(0.1); + } + BusFooter = myLetterDoc.new BusinessPaperObject("Footer", (int) myLetterDoc.DocSize.Width, (int) (numFooterHeight.getValue() * 1000), (int) 0, (int) (myLetterDoc.DocSize.Height - (numFooterHeight.getValue() * 1000))); + this.setControlProperty("numFooterHeight", "Enabled", Boolean.TRUE); + this.setControlProperty("lblFooterHeight", "Enabled", Boolean.TRUE); + setPossibleFooter(false); + } + else + { + if (BusFooter != null) + { + BusFooter.removeFrame(); + } + setControlProperty("numFooterHeight", "Enabled", Boolean.FALSE); + setControlProperty("lblFooterHeight", "Enabled", Boolean.FALSE); + setPossibleFooter(true); + } + } + + //switch Elements on/off ------------------------------------------------------- + public void chkUseLogoItemChanged() + { + try + { + if (myLetterDoc.hasElement("Company Logo")) + { + boolean logostatus = AnyConverter.toBoolean(getControlProperty("chkUseLogo", "Enabled")) && (chkUseLogo.getState() != 0); + myLetterDoc.switchElement("Company Logo", logostatus); + } + } + catch (IllegalArgumentException e) + { + e.printStackTrace(); + } + } + + public void chkUseAddressReceiverItemChanged() + { + try + { + if (myLetterDoc.hasElement("Sender Address Repeated")) + { + boolean rstatus = AnyConverter.toBoolean(getControlProperty("chkUseAddressReceiver", "Enabled")) && (chkUseAddressReceiver.getState() != 0); + myLetterDoc.switchElement("Sender Address Repeated", rstatus); + } + } + catch (IllegalArgumentException e) + { + e.printStackTrace(); + } + } + + public void chkUseSignsItemChanged() + { + if (myLetterDoc.hasElement("Letter Signs")) + { + myLetterDoc.switchElement("Letter Signs", (chkUseSigns.getState() != 0)); + } + } + + public void chkUseSubjectItemChanged() + { + if (myLetterDoc.hasElement("Subject Line")) + { + myLetterDoc.switchElement("Subject Line", (chkUseSubject.getState() != 0)); + } + } + + public void chkUseBendMarksItemChanged() + { + if (myLetterDoc.hasElement("Bend Marks")) + { + myLetterDoc.switchElement("Bend Marks", (chkUseBendMarks.getState() != 0)); + } + } + + public void chkUseFooterItemChanged() + { + try + { + boolean bFooterPossible = (chkUseFooter.getState() != 0) && AnyConverter.toBoolean(getControlProperty("chkUseFooter", "Enabled")); + + if (chkFooterNextPages.getState() != 0) + { + myLetterDoc.switchFooter("First Page", false, (chkFooterPageNumbers.getState() != 0), txtFooter.getText()); + myLetterDoc.switchFooter("Standard", bFooterPossible, (chkFooterPageNumbers.getState() != 0), txtFooter.getText()); + } + else + { + myLetterDoc.switchFooter("First Page", bFooterPossible, (chkFooterPageNumbers.getState() != 0), txtFooter.getText()); + myLetterDoc.switchFooter("Standard", bFooterPossible, (chkFooterPageNumbers.getState() != 0), txtFooter.getText()); + } + + //enable/disable roadmap item for footer page + XInterface BPaperItem = getRoadmapItemByID(RM_FOOTER); + Helper.setUnoPropertyValue(BPaperItem, "Enabled", new Boolean(bFooterPossible)); + + } + catch (Exception exception) + { + exception.printStackTrace(System.out); + } + } + + public void chkFooterNextPagesItemChanged() + { + chkUseFooterItemChanged(); + } + + public void chkFooterPageNumbersItemChanged() + { + chkUseFooterItemChanged(); + } + + private void setPossibleFooter(boolean bState) + { + setControlProperty("chkUseFooter", "Enabled", new Boolean(bState)); + chkUseFooterItemChanged(); + } + + private void setPossibleAddressReceiver(boolean bState) + { + if (myLetterDoc.hasElement("Sender Address Repeated")) + { + setControlProperty("chkUseAddressReceiver", "Enabled", new Boolean(bState)); + chkUseAddressReceiverItemChanged(); + } + } + + private void setPossibleLogo(boolean bState) + { + if (myLetterDoc.hasElement("Company Logo")) + { + setControlProperty("chkUseLogo", "Enabled", new Boolean(bState)); + chkUseLogoItemChanged(); + } + } + + public void txtFooterTextChanged() + { + chkUseFooterItemChanged(); + } + + public void txtSenderNameTextChanged() + { + TextFieldHandler myFieldHandler = new TextFieldHandler(myLetterDoc.xMSF, xTextDocument); + myFieldHandler.changeUserFieldContent("Company", txtSenderName.getText()); + } + + public void txtSenderStreetTextChanged() + { + TextFieldHandler myFieldHandler = new TextFieldHandler(myLetterDoc.xMSF, xTextDocument); + myFieldHandler.changeUserFieldContent("Street", txtSenderStreet.getText()); + } + + public void txtSenderCityTextChanged() + { + TextFieldHandler myFieldHandler = new TextFieldHandler(myLetterDoc.xMSF, xTextDocument); + myFieldHandler.changeUserFieldContent("City", txtSenderCity.getText()); + } + + public void txtSenderPostCodeTextChanged() + { + TextFieldHandler myFieldHandler = new TextFieldHandler(myLetterDoc.xMSF, xTextDocument); + myFieldHandler.changeUserFieldContent("PostCode", txtSenderPostCode.getText()); + } + + public void txtSenderStateTextChanged() + { + TextFieldHandler myFieldHandler = new TextFieldHandler(myLetterDoc.xMSF, xTextDocument); + myFieldHandler.changeUserFieldContent("State", txtSenderState.getText()); + } + + public void txtTemplateNameTextChanged() + { + XDocumentPropertiesSupplier xDocPropsSuppl = (XDocumentPropertiesSupplier) UnoRuntime.queryInterface(XDocumentPropertiesSupplier.class, xTextDocument); + XDocumentProperties xDocProps = xDocPropsSuppl.getDocumentProperties(); + String TitleName = txtTemplateName.getText(); + xDocProps.setTitle(TitleName); + } + + public void chkUseSalutationItemChanged() + { + XTextComponent xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation); + myLetterDoc.switchUserField("Salutation", xTextComponent.getText(), (chkUseSalutation.getState() != 0)); + setControlProperty("lstSalutation", "Enabled", new Boolean(chkUseSalutation.getState() != 0)); + } + + public void lstSalutationItemChanged() + { + XTextComponent xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation); + myLetterDoc.switchUserField("Salutation", xTextComponent.getText(), (chkUseSalutation.getState() != 0)); + } + + public void lstSalutationTextChanged() + { + } + + public void chkUseGreetingItemChanged() + { + XTextComponent xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstGreeting); + myLetterDoc.switchUserField("Greeting", xTextComponent.getText(), (chkUseGreeting.getState() != 0)); + setControlProperty("lstGreeting", "Enabled", new Boolean(chkUseGreeting.getState() != 0)); + } + + private void setDefaultForGreetingAndSalutation() + { + XTextComponent xTextComponent; + xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation); + if (xTextComponent.getText().equals("")) + { + xTextComponent.setText(resources.SalutationLabels[0]); + } + xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstGreeting); + if (xTextComponent.getText().equals("")) + { + xTextComponent.setText(resources.GreetingLabels[0]); + } + } + + public void lstGreetingItemChanged() + { + XTextComponent xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstGreeting); + myLetterDoc.switchUserField("Greeting", xTextComponent.getText(), (chkUseGreeting.getState() != 0)); + } + + public void lstGreetingTextChanged() + { + } + + // ---------------------------------------------------------------------------- + public void chkBusinessPaperItemChanged() + { + //enable/disable Roadmap Entry Business Paper + if (chkBusinessPaper.getState() != 0) + { + enableBusinessPaper(); + } + else + { + disableBusinessPaper(); + setPossibleSenderData(true); + } + } + + private int getOfficeLinguistic() + { + int oL = 0; + boolean found = false; + String OfficeLinguistic = Configuration.getOfficeLinguistic(xMSF); + for (int i = 0; i < Norms.length; i++) + { + if (Norms[i].equalsIgnoreCase(OfficeLinguistic)) + { + oL = i; + found = true; + break; + } + } + if (!found) + { + //fall back to English: + for (int i = 0; i < Norms.length; i++) + { + if (Norms[i].equalsIgnoreCase("en-US")) + { + oL = i; + found = true; + break; + } + } + } + return oL; + } + + private void setPossibleSenderData(boolean bState) + { + setControlProperty("optSenderDefine", "Enabled", new Boolean(bState)); + setControlProperty("optSenderPlaceholder", "Enabled", new Boolean(bState)); + setControlProperty("lblSenderAddress", "Enabled", new Boolean(bState)); + if (!bState) + { + setControlProperty("txtSenderCity", "Enabled", new Boolean(bState)); + setControlProperty("txtSenderName", "Enabled", new Boolean(bState)); + setControlProperty("txtSenderPostCode", "Enabled", new Boolean(bState)); + setControlProperty("txtSenderStreet", "Enabled", new Boolean(bState)); + setControlProperty("txtSenderCity", "Enabled", new Boolean(bState)); + setControlProperty("txtSenderState", "Enabled", new Boolean(bState)); + setControlProperty("lblSenderName", "Enabled", new Boolean(bState)); + setControlProperty("lblSenderStreet", "Enabled", new Boolean(bState)); + setControlProperty("lblPostCodeCity", "Enabled", new Boolean(bState)); + } + } + + private void enableSenderReceiver() + { + XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER); + Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE); + } + + private void disableSenderReceiver() + { + XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER); + Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE); + } + + private void enableBusinessPaper() + { + XInterface BPaperItem = getRoadmapItemByID(RM_BUSINESSPAPER); + Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE); + chkPaperCompanyLogoItemChanged(); + chkPaperCompanyAddressItemChanged(); + chkPaperFooterItemChanged(); + chkCompanyReceiverItemChanged(); + } + + private void disableBusinessPaper() + { + XInterface BPaperItem = getRoadmapItemByID(RM_BUSINESSPAPER); + Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE); + if (BusCompanyLogo != null) + { + BusCompanyLogo.removeFrame(); + } + if (BusCompanyAddress != null) + { + BusCompanyAddress.removeFrame(); + } + if (BusFooter != null) + { + BusFooter.removeFrame(); + } + if (BusCompanyAddressReceiver != null) + { + BusCompanyAddressReceiver.removeFrame(); + } + setPossibleAddressReceiver(true); + setPossibleFooter(true); + setPossibleLogo(true); + if (myLetterDoc.hasElement("Sender Address")) + { + myLetterDoc.switchElement("Sender Address", (true)); + } + + } + + public void lstLetterNormItemChanged() + { + //when the norm changes, the correct template needs to be reloaded + sCurrentNorm = Norms[getCurrentLetter().cp_Norm]; + initializeTemplates(xMSF); + if (optBusinessLetter.getState()) + { + lstBusinessStyleItemChanged(); + } + if (optPrivOfficialLetter.getState()) + { + lstPrivOfficialStyleItemChanged(); + } + if (optPrivateLetter.getState()) + { + lstPrivateStyleItemChanged(); + } + } + + public void initializeSalutation() + { + setControlProperty("lstSalutation", "StringItemList", resources.SalutationLabels); + } + + public void initializeGreeting() + { + setControlProperty("lstGreeting", "StringItemList", resources.GreetingLabels); + } + + public void initializeNorms() + { + + LocaleCodes lc = new LocaleCodes(xmsf); + String[] allLocales = lc.getIDs(); + Object[] nameList = + { + "", "" + }; + String[] nameList1 = + { + "", "" + }; + String[] nameList1b = + { + "", "" + }; + String[] nameList2 = + { + "", "" + }; + Vector allPaths = new Vector(); + String sLetterSubPath = "/wizard/letter/"; + + try + { + sTemplatePath = FileAccess.deleteLastSlashfromUrl(sTemplatePath); + String[] PathParts = sTemplatePath.split("/"); + String nuString = ""; + String sMainPath; + for (int i = 0; i < (PathParts.length - 1); i++) + { + nuString = nuString + PathParts[i] + "/"; + } + String sLocLetterPath; + sMainPath = nuString; + sMainPath = FileAccess.deleteLastSlashfromUrl(sMainPath); + + sLetterPath = sMainPath + sLetterSubPath; + //sLetterLangPackPath = FileAccess.combinePaths(xMSF, sTemplatePath, sLetterSubPath); + + XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess"); + com.sun.star.ucb.XSimpleFileAccess xSimpleFileAccess = (com.sun.star.ucb.XSimpleFileAccess) UnoRuntime.queryInterface(com.sun.star.ucb.XSimpleFileAccess.class, xInterface); + nameList1 = xSimpleFileAccess.getFolderContents(sMainPath, true); + nameList2 = xSimpleFileAccess.getFolderContents(sLetterPath, true); + for (int i = 0; i < nameList1.length; i++) + { + String theFileName = FileAccess.getFilename(nameList1[i]); + if (!theFileName.equalsIgnoreCase("wizard")) + { + sLocLetterPath = FileAccess.deleteLastSlashfromUrl(nameList1[i] + sLetterSubPath); + try + { + nameList1b = xSimpleFileAccess.getFolderContents(sLocLetterPath, true); + for (int j = 0; j < nameList1b.length; j++) + { + String theFileNameb = FileAccess.getFilename(nameList1b[j]); + allPaths.add(nameList1[i] + sLetterSubPath + theFileNameb); + } + } + catch (Exception e) + { + //if the path is invalid an exception is thrown - try the fallback below then + } + } + } + for (int i = 0; i < nameList2.length; i++) + { + boolean found = false; + for (int t = 0; t < nameList1.length; t++) + { + if (FileAccess.getFilename(nameList2[i]).equalsIgnoreCase(FileAccess.getFilename(nameList1[t]))) + { + found = true; + } + } + if (!found) + { + allPaths.add(nameList2[i]); + } + } + nameList = allPaths.toArray(); + + + } + catch (CommandAbortedException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + //} catch (NoValidPathException e) { + // TODO Auto-generated catch block + // e.printStackTrace(); + } + catch (Exception e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + Vector NormsVector = new Vector(); + Vector NormsPathVector = new Vector(); + Vector LanguageLabelsVector = new Vector(); + String[] LanguageLabels; + + boolean found = false; + String cIsoCode = ""; + String MSID = ""; + int z = 0; + for (int i = 0; i < nameList.length; i++) + { + found = false; + cIsoCode = FileAccess.getFilename((String) nameList[i]); + for (int t = 0; t < allLocales.length; t++) + { + String[] aLang = allLocales[t].split(";"); + if (cIsoCode.equalsIgnoreCase(aLang[1])) + { + MSID = aLang[2]; + found = true; + t = allLocales.length; + } + } + if (!found) + { + for (int t = 0; t < allLocales.length; t++) + { + String[] aLang = allLocales[t].split(";"); + if (cIsoCode.equalsIgnoreCase(aLang[1].substring(0, 2))) + { + MSID = aLang[2]; + found = true; + t = allLocales.length; + } + } + } + + if (found) + { + NormsVector.add(cIsoCode); + NormsPathVector.add((String) nameList[i]); + LanguageLabelsVector.add(lc.getLanguageString(MSID)); + /* + Norms[z] = cIsoCode; + NormPaths[z] = (String) nameList[i]; + LanguageLabels[z] = lc.getLanguageString(MSID); + z++; + **/ + } + } + + + Norms = new String[NormsVector.size()]; + NormsVector.toArray(Norms); + + NormPaths = new String[NormsPathVector.size()]; + NormsPathVector.toArray(NormPaths); + + LanguageLabels = new String[LanguageLabelsVector.size()]; + LanguageLabelsVector.toArray(LanguageLabels); + + //Norms = new String[nameList.length]; + //NormPaths = new String[nameList.length]; + //LanguageLabels = new String[Norms.length]; + + setControlProperty("lstLetterNorm", "StringItemList", LanguageLabels); + } + + private CGLetter getCurrentLetter() + { + switch (myConfig.cp_LetterType) + { + case 0: + return myConfig.cp_BusinessLetter; + case 1: + return myConfig.cp_PrivateOfficialLetter; + case 2: + return myConfig.cp_PrivateLetter; + default: + return null; + } + } + + private void initializePaths() + { + try + { + sTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share", "/wizard"); + sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user", ""); + sBitmapPath = FileAccess.combinePaths(xMSF, sTemplatePath, "/wizard/bitmap"); + } + catch (NoValidPathException e) + { + e.printStackTrace(); + } + } + + public boolean initializeTemplates(XMultiServiceFactory xMSF) + { + sCurrentNorm = Norms[getCurrentLetter().cp_Norm]; + //creation of the language independent path: + String sLetterPath = NormPaths[getCurrentLetter().cp_Norm]; + + // try + // { + BusinessFiles = FileAccess.getFolderTitles(xMSF, "bus", sLetterPath); + OfficialFiles = FileAccess.getFolderTitles(xMSF, "off", sLetterPath); + PrivateFiles = FileAccess.getFolderTitles(xMSF, "pri", sLetterPath); + + setControlProperty("lstBusinessStyle", "StringItemList", BusinessFiles[0]); + setControlProperty("lstPrivOfficialStyle", "StringItemList", OfficialFiles[0]); + setControlProperty("lstPrivateStyle", "StringItemList", PrivateFiles[0]); + + setControlProperty("lstBusinessStyle", "SelectedItems", new short[] + { + 0 + }); + setControlProperty("lstPrivOfficialStyle", "SelectedItems", new short[] + { + 0 + }); + setControlProperty("lstPrivateStyle", "SelectedItems", new short[] + { + 0 + }); +// } +// catch (com.sun.star.wizards.common.NoValidPathException e) +// { +// return false; +// } + return true; + } + + public void initializeElements() + { + setControlProperty("chkUseLogo", "Enabled", new Boolean(myLetterDoc.hasElement("Company Logo"))); + setControlProperty("chkUseBendMarks", "Enabled", new Boolean(myLetterDoc.hasElement("Bend Marks"))); + setControlProperty("chkUseAddressReceiver", "Enabled", new Boolean(myLetterDoc.hasElement("Sender Address Repeated"))); + setControlProperty("chkUseSubject", "Enabled", new Boolean(myLetterDoc.hasElement("Subject Line"))); + setControlProperty("chkUseSigns", "Enabled", new Boolean(myLetterDoc.hasElement("Letter Signs"))); + myLetterDoc.updateDateFields(); + } + + public void setConfiguration() + { + //set correct Configuration tree: + + if (optBusinessLetter.getState()) + { + optBusinessLetterItemChanged(); + } + if (optPrivOfficialLetter.getState()) + { + optPrivOfficialLetterItemChanged(); + } + if (optPrivateLetter.getState()) + { + optPrivateLetterItemChanged(); + } + } + + public void setElements(boolean privLetter) + { + //UI relevant: + if (optSenderDefine.getState()) + { + optSenderDefineItemChanged(); + } + if (optSenderPlaceholder.getState()) + { + optSenderPlaceholderItemChanged(); + } + chkUseSignsItemChanged(); + chkUseSubjectItemChanged(); + chkUseSalutationItemChanged(); + chkUseGreetingItemChanged(); + chkUseBendMarksItemChanged(); + chkUseAddressReceiverItemChanged(); + txtTemplateNameTextChanged(); + + //not UI relevant: + if (optReceiverDatabase.getState() && !privLetter) + { + optReceiverDatabaseItemChanged(); + } + if (optReceiverPlaceholder.getState() && !privLetter) + { + optReceiverPlaceholderItemChanged(); + } + if (optCreateLetter.getState()) + { + optCreateLetterItemChanged(); + } + if (optMakeChanges.getState()) + { + optMakeChangesItemChanged(); + } + } + + public void insertRoadmap() + { + addRoadmap(); + int i = 0; + i = insertRoadmapItem(0, true, resources.RoadmapLabels[RM_TYPESTYLE], RM_TYPESTYLE); + i = insertRoadmapItem(i, false, resources.RoadmapLabels[RM_BUSINESSPAPER], RM_BUSINESSPAPER); + i = insertRoadmapItem(i, true, resources.RoadmapLabels[RM_ELEMENTS], RM_ELEMENTS); + i = insertRoadmapItem(i, true, resources.RoadmapLabels[RM_SENDERRECEIVER], RM_SENDERRECEIVER); + i = insertRoadmapItem(i, false, resources.RoadmapLabels[RM_FOOTER], RM_FOOTER); + i = insertRoadmapItem(i, true, resources.RoadmapLabels[RM_FINALSETTINGS], RM_FINALSETTINGS); + setRoadmapInteractive(true); + setRoadmapComplete(true); + setCurrentRoadmapItemID((short) 1); + } + + private class myPathSelectionListener implements XPathSelectionListener + { + + public void validatePath() + { + if (myPathSelection.usedPathPicker) + { + filenameChanged = true; + } + myPathSelection.usedPathPicker = false; + } + } + + public void insertPathSelectionControl() + { + myPathSelection = new PathSelection(xMSF, this, PathSelection.TransferMode.SAVE, PathSelection.DialogTypes.FILE); + myPathSelection.insert(6, 97, 70, 205, (short) 45, resources.reslblTemplatePath_value, true, "HID:" + (HID + 47), "HID:" + (HID + 48)); + myPathSelection.sDefaultDirectory = sUserTemplatePath; + myPathSelection.sDefaultName = "myLetterTemplate.ott"; + myPathSelection.sDefaultFilter = "writer8_template"; + myPathSelection.addSelectionListener(new myPathSelectionListener()); + } + + public void initConfiguration() + { + try + { + myConfig = new CGLetterWizard(); + Object root = Configuration.getConfigurationRoot(xMSF, "/org.openoffice.Office.Writer/Wizards/Letter", false); + myConfig.readConfiguration(root, "cp_"); + mainDA.add(RadioDataAware.attachRadioButtons(myConfig, "cp_LetterType", new Object[] + { + optBusinessLetter, optPrivOfficialLetter, optPrivateLetter + }, null, true)); + mainDA.add(UnoDataAware.attachListBox(myConfig.cp_BusinessLetter, "cp_Style", lstBusinessStyle, null, true)); + mainDA.add(UnoDataAware.attachListBox(myConfig.cp_PrivateOfficialLetter, "cp_Style", lstPrivOfficialStyle, null, true)); + mainDA.add(UnoDataAware.attachListBox(myConfig.cp_PrivateLetter, "cp_Style", lstPrivateStyle, null, true)); + mainDA.add(UnoDataAware.attachCheckBox(myConfig.cp_BusinessLetter, "cp_BusinessPaper", chkBusinessPaper, null, true)); + + CGLetter cgl = myConfig.cp_BusinessLetter; + + CGPaperElementLocation cgpl = myConfig.cp_BusinessLetter.cp_CompanyLogo; + CGPaperElementLocation cgpa = myConfig.cp_BusinessLetter.cp_CompanyAddress; + + businessDA.add(UnoDataAware.attachCheckBox(cgpl, "cp_Display", chkPaperCompanyLogo, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpl, "cp_Width", numLogoWidth, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpl, "cp_Height", numLogoHeight, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpl, "cp_X", numLogoX, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpl, "cp_Y", numLogoY, null, true)); + businessDA.add(UnoDataAware.attachCheckBox(cgpa, "cp_Display", chkPaperCompanyAddress, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpa, "cp_Width", numAddressWidth, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpa, "cp_Height", numAddressHeight, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpa, "cp_X", numAddressX, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgpa, "cp_Y", numAddressY, null, true)); + + businessDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PaperCompanyAddressReceiverField", chkCompanyReceiver, null, true)); + businessDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PaperFooter", chkPaperFooter, null, true)); + businessDA.add(UnoDataAware.attachNumericControl(cgl, "cp_PaperFooterHeight", numFooterHeight, null, true)); + + letterDA.add(UnoDataAware.attachListBox(cgl, "cp_Norm", lstLetterNorm, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintCompanyLogo", chkUseLogo, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintCompanyAddressReceiverField", chkUseAddressReceiver, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintLetterSigns", chkUseSigns, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintSubjectLine", chkUseSubject, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintSalutation", chkUseSalutation, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintBendMarks", chkUseBendMarks, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintGreeting", chkUseGreeting, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_PrintFooter", chkUseFooter, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_Salutation", lstSalutation, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_Greeting", lstGreeting, null, true)); + letterDA.add(RadioDataAware.attachRadioButtons(cgl, "cp_SenderAddressType", new Object[] + { + optSenderDefine, optSenderPlaceholder + }, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_SenderCompanyName", txtSenderName, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_SenderStreet", txtSenderStreet, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_SenderPostCode", txtSenderPostCode, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_SenderState", txtSenderState, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_SenderCity", txtSenderCity, null, true)); + letterDA.add(RadioDataAware.attachRadioButtons(cgl, "cp_ReceiverAddressType", new Object[] + { + optReceiverDatabase, optReceiverPlaceholder + }, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_Footer", txtFooter, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_FooterOnlySecondPage", chkFooterNextPages, null, true)); + letterDA.add(UnoDataAware.attachCheckBox(cgl, "cp_FooterPageNumbers", chkFooterPageNumbers, null, true)); + letterDA.add(RadioDataAware.attachRadioButtons(cgl, "cp_CreationType", new Object[] + { + optCreateLetter, optMakeChanges + }, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_TemplateName", txtTemplateName, null, true)); + letterDA.add(UnoDataAware.attachEditControl(cgl, "cp_TemplatePath", myPathSelection.xSaveTextBox, null, true)); + + } + catch (Exception exception) + { + exception.printStackTrace(); + } + + } + + private void updateUI() + { + UnoDataAware.updateUI(mainDA); + UnoDataAware.updateUI(letterDA); + UnoDataAware.updateUI(businessDA); + } + + public void saveConfiguration() + { + try + { + Object root = Configuration.getConfigurationRoot(xMSF, "/org.openoffice.Office.Writer/Wizards/Letter", true); + myConfig.writeConfiguration(root, "cp_"); + Configuration.commit(root); + } + catch (Exception e) + { + e.printStackTrace(); + } + } +} |