summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java')
-rw-r--r--wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java570
1 files changed, 0 insertions, 570 deletions
diff --git a/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java b/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java
deleted file mode 100644
index 8d7804610144..000000000000
--- a/wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java
+++ /dev/null
@@ -1,570 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-package com.sun.star.wizards.agenda;
-
-import java.util.ArrayList;
-
-import com.sun.star.awt.ItemEvent;
-import com.sun.star.awt.VclWindowPeerAttribute;
-import com.sun.star.awt.XItemListener;
-import com.sun.star.awt.XWindow;
-import com.sun.star.awt.XWindowPeer;
-import com.sun.star.beans.PropertyValue;
-import com.sun.star.lang.EventObject;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.task.XInteractionHandler;
-import com.sun.star.text.XTextDocument;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.util.CloseVetoException;
-import com.sun.star.util.XCloseable;
-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.HelpIds;
-import com.sun.star.wizards.common.Helper;
-import com.sun.star.wizards.common.NoValidPathException;
-import com.sun.star.wizards.common.PropertyNames;
-import com.sun.star.wizards.common.SystemDialog;
-import com.sun.star.wizards.document.OfficeDocument;
-import com.sun.star.wizards.text.ViewHandler;
-import com.sun.star.wizards.ui.PathSelection;
-import com.sun.star.wizards.ui.XPathSelectionListener;
-import com.sun.star.wizards.ui.event.DataAware;
-import com.sun.star.wizards.ui.event.RadioDataAware;
-import com.sun.star.wizards.ui.event.UnoDataAware;
-
-import com.sun.star.beans.XPropertySet;
-import com.sun.star.uno.XInterface;
-
-/**
- * This class is the dialog implementation class -
- * there is not much business logic here - but mostley
- * event methods.
- * Some event methods are also implemented in TopicsControl and TopicsControl.ControlRow.
- */
-public class AgendaWizardDialogImpl extends AgendaWizardDialog
-{
- /**
- * used to prevent a double start of the wizard.
- */
- static boolean running;
-
- /**
- * the preview document controller.
- */
- AgendaTemplate agendaTemplate;
- /**
- * the data model, read from the OOo configuration.
- * (live synchronized: when the user changes the gui,
- * the data model changes, except for topics).
- */
- private CGAgenda agenda;
-
- /**
- * the topics control, a gui element which
- * manipulates the topics data according to the
- * user's input.
- */
- private TopicsControl topicsControl;
-
- /**
- * an array with two array memebers:
- * agendaTemplates[0] contains an array with
- * UI template names.
- * agendaTemplates[1] contains an array with
- * corresponding URLs.
- */
- private String[][] agendaTemplates;
-
- PathSelection myPathSelection;
-
- String sTemplatePath;
- String sUserTemplatePath;
- String sBitmapPath;
-
- String sPath;
-
- /** constructor */
- public AgendaWizardDialogImpl(XMultiServiceFactory xmsf)
- {
- super(xmsf);
- }
-
- protected void enterStep(int OldStep, int NewStep) {}
- protected void leaveStep(int OldStep, int NewStep) {}
-
- /**
- * read the configuration data, open the specified template,
- * initialize the template controller (AgendaTemplate) and
- * set the status of the displayed template to the one
- * read from the configuration.
- * build the dialog.
- * Synchronize the dialog to the same status (read from
- * the configuration).
- * show the dialog.
- */
- public void startWizard() {
- running = true;
- try {
- // read configuration data.
- agenda = new CGAgenda();
-
- Object root = Configuration.getConfigurationRoot(xMSF, "/org.openoffice.Office.Writer/Wizards/Agenda", false);
- agenda.readConfiguration(root,"cp_");
-
- // initialize the agenda template
- agendaTemplate = new AgendaTemplate(xMSF, agenda, resources, this);
- initializeTemplates();
-
- agendaTemplate.load(agendaTemplates[1][agenda.cp_AgendaType] , new ArrayList<PropertyValue[]>());
-
- // build the dialog.
- buildStep1();
- buildStep2();
- buildStep3();
- buildStep4();
- buildStep5();
- topicsControl = new TopicsControl(this,xMSF, agenda);
- buildStep6();
- drawNaviBar();
-
- initializePaths();
-
- //special Control for setting the save Path:
- insertPathSelectionControl();
-
- // create the peer
- XWindow xw = agendaTemplate.xFrame.getContainerWindow();
- XWindowPeer xWindowPeer = UnoRuntime.queryInterface(XWindowPeer.class, xw);
- this.createWindowPeer( xWindowPeer );
-
- // initialize roadmap
- this.addRoadmap();
- this.insertRoadMapItems(
- new String[] { resources.resStep1, resources.resStep2, resources.resStep3, resources.resStep4, resources.resStep5, resources.resStep6, } ,
- new int[] { 1,2,3,4,5,6},
- new boolean[] { true,true,true,true,true,true }
- );
- this.setMaxStep(6);
-
- // synchronize GUI and CGAgenda object.
- makeDA();
- if(myPathSelection.xSaveTextBox.getText().equalsIgnoreCase(PropertyNames.EMPTY_STRING)) {myPathSelection.initializePath();}
-
- executeDialog(agendaTemplate.xFrame);
- removeTerminateListener();
- closeDocument();
- running = false;
-
- }
- catch (Exception ex) {
- removeTerminateListener();
- ex.printStackTrace();
- running=false;
- }
-
-
- }
-
- 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, HelpIds.getHelpIdString( HID + 24 ), HelpIds.getHelpIdString( HID + 25 ));
- myPathSelection.sDefaultDirectory = sUserTemplatePath;
- myPathSelection.sDefaultName = "myAgendaTemplate.ott";
- myPathSelection.sDefaultFilter = "writer8_template";
- myPathSelection.addSelectionListener(new myPathSelectionListener());
- }
-
- private void initializePaths() {
- try {
- sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user", PropertyNames.EMPTY_STRING);
- sBitmapPath = FileAccess.combinePaths(xMSF, sTemplatePath, "/../wizard/bitmap");
- } catch (NoValidPathException e) {
- e.printStackTrace();
- }
- }
-
- private void checkSavePath() {
- if (agenda.cp_TemplatePath == null ||
- agenda.cp_TemplatePath.equals(PropertyNames.EMPTY_STRING) ||
- !getFileAccess().exists(FileAccess.getParentDir(agenda.cp_TemplatePath),false) ||
- !getFileAccess().isDirectory(FileAccess.getParentDir(agenda.cp_TemplatePath )))
- {
- try {
- agenda.cp_TemplatePath =
- FileAccess.connectURLs(
- FileAccess.getOfficePath(xMSF, "Work", PropertyNames.EMPTY_STRING, PropertyNames.EMPTY_STRING) ,
- resources.resDefaultFilename
- );
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
-
- /**
- * bind controls to the agenda member (DataAware model)
- */
- private void makeDA() {
-
- setControlProperty("listPageDesign", PropertyNames.STRING_ITEM_LIST, agendaTemplates[0]);
-
- checkSavePath();
-
- UnoDataAware.attachListBox( agenda, "cp_AgendaType", listPageDesign , null, true ).updateUI();
- UnoDataAware.attachCheckBox( agenda, "cp_IncludeMinutes", chkMinutes, null, true).updateUI();
-
- UnoDataAware.attachEditControl(agenda, "cp_Title", txtTitle, agendaTemplate , true).updateUI();
- UnoDataAware.attachDateControl(agenda, "cp_Date", txtDate, agendaTemplate , true).updateUI();
- UnoDataAware.attachTimeControl(agenda, "cp_Time", txtTime, agendaTemplate , true).updateUI();
- UnoDataAware.attachEditControl(agenda, "cp_Location", cbLocation, agendaTemplate , true).updateUI();
-
- UnoDataAware.attachCheckBox(agenda,"cp_ShowMeetingType", chkMeetingTitle , new RedrawListener( TemplateConsts.FILLIN_MEETING_TYPE ) , true);
- UnoDataAware.attachCheckBox(agenda,"cp_ShowRead", chkRead , new RedrawListener( TemplateConsts.FILLIN_READ ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowBring", chkBring , new RedrawListener( TemplateConsts.FILLIN_BRING ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowNotes", chkNotes , new RedrawListener( TemplateConsts.FILLIN_NOTES ) , true).updateUI();
-
- UnoDataAware.attachCheckBox(agenda,"cp_ShowCalledBy", chkConvenedBy , new RedrawListener( TemplateConsts.FILLIN_CALLED_BY ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowFacilitator", chkPresiding , new RedrawListener( TemplateConsts.FILLIN_FACILITATOR ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowNotetaker", chkNoteTaker , new RedrawListener( TemplateConsts.FILLIN_NOTETAKER ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowTimekeeper", chkTimekeeper , new RedrawListener( TemplateConsts.FILLIN_TIMEKEEPER ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowAttendees", chkAttendees , new RedrawListener( TemplateConsts.FILLIN_PARTICIPANTS ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowObservers", chkObservers , new RedrawListener( TemplateConsts.FILLIN_OBSERVERS ) , true).updateUI();
- UnoDataAware.attachCheckBox(agenda,"cp_ShowResourcePersons", chkResourcePersons , new RedrawListener( TemplateConsts.FILLIN_RESOURCE_PERSONS ) , true).updateUI();
-
- UnoDataAware.attachEditControl(agenda, "cp_TemplateName", txtTemplateName, null, true).updateUI();
- RadioDataAware.attachRadioButtons( agenda, "cp_ProceedMethod",
- new Object[] {optCreateAgenda, optMakeChanges} ,null,true).updateUI();
-
- listPageDesign.addItemListener(new XItemListener() {
- public void itemStateChanged(ItemEvent ie) {
- pageDesignChanged(ie);
- }
- public void disposing(EventObject eo) {}
- });
- }
-
- /** used in developement to start the wizard */
- public static void main(String args[])
- {
- String ConnectStr = "uno:socket,host=127.0.0.1,port=8100;urp,negotiate=0,forcesynchronous=1;StarOffice.ServiceManager";
- try {
- XMultiServiceFactory xLocMSF = Desktop.connect(ConnectStr);
- AgendaWizardDialogImpl wizard = new AgendaWizardDialogImpl(xLocMSF);
- wizard.startWizard();
-
- }
- catch (Exception exception) {
- exception.printStackTrace();
- }
- }
-
-
-
- /**
- * read the available agenda wizard templates.
- */
- public boolean initializeTemplates() {
- try {
- XInterface xPathInterface = (XInterface) xMSF.createInstance("com.sun.star.util.PathSettings");
- XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xPathInterface);
- sTemplatePath = ((String[]) xPropertySet.getPropertyValue("Template_user"))[0];
-
- String sAgendaPath = FileAccess.combinePaths(xMSF, sTemplatePath, "/../common/wizard/agenda" );
-
- agendaTemplates = FileAccess.getFolderTitles(xMSF, "aw" , sAgendaPath);
-
- return true;
- } catch (NoValidPathException nopathexception) {
- nopathexception.printStackTrace();
- return false;
- } catch (Exception exception) {
- exception.printStackTrace();
- return false;
- }
- }
-
- /* ******************************
- * Event methods
- * ******************************
- */
-
- /**
- * first page, page design listbox changed.
- */
- public void pageDesignChanged(ItemEvent ie) {
- int selected = ie.Selected;
- try {
- agendaTemplate.load( agendaTemplates[1][selected] , topicsControl.getTopicsData());
- }
- catch (Exception ex) {
- SystemDialog.showMessageBox(xMSF, "ErrBox", VclWindowPeerAttribute.OK, resources.resErrOpenTemplate);
- ex.printStackTrace();
- }
- agendaTemplate.refreshTopicConstants();
- }
-
- /**
- * last page, template title changed...
- */
- public void templateTitleChanged() {
- String title = (String)Helper.getUnoPropertyValue( getModel(txtTemplateName), "Text" );
- agendaTemplate.setTemplateTitle( title );
- }
-
-
- private FileAccess fileAccess1;
- /** convenience method.
- * instead of creating a FileAccess object every time
- * it is needed, I have a FileAccess object memeber.
- * the first time it is needed it will be created, and
- * then be reused...
- * @return the FileAccess memeber object.
- */
- private FileAccess getFileAccess() {
- if (fileAccess1 == null)
- try {
- fileAccess1 = new FileAccess(xMSF);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return fileAccess1;
-
- }
- /**
- * indicates if the filename was changed by the user through
- * the "save as" dialog.
- * If it is so, one needs not warn the user
- * upon overwrite, since she was already warned.
- */
- private boolean filenameChanged = false;
-
- /**
- * last page, "browse" ("...") button was clicked...
- */
- public void saveAs() {
- try {
-
- checkSavePath();
-
- SystemDialog saveAs = SystemDialog.createStoreDialog(xMSF);
- saveAs.addFilterToDialog("ott","writer8_template",true);
- // call the saveAs dialog.
- String url = saveAs.callStoreDialog(
- FileAccess.getParentDir(agenda.cp_TemplatePath),
- FileAccess.getFilename(agenda.cp_TemplatePath));
-
- if (url != null) {
- agenda.cp_TemplatePath = url;
- setFilename(url);
- filenameChanged = true;
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
-
-
- }
-
- /**
- * is called when the user
- * changes the path through the "save as" dialog.
- * The path displayed is a translated, user-friendly, platform dependant path.
- * @param url the new save url.
- */
- private void setFilename(String url) {
- try {
- String path = getFileAccess().getPath(url,PropertyNames.EMPTY_STRING);
- Helper.setUnoPropertyValue( getModel(myPathSelection.xSaveTextBox), "Text", path);
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
-
- }
-
- public void insertRow() {
- topicsControl.insertRow();
- }
-
- public void removeRow() {
- topicsControl.removeRow();
- }
-
- public void rowUp() {
- topicsControl.rowUp();
- }
-
- public void rowDown() {
- topicsControl.rowDown();
- }
-
-
- /* ************************
- * Navigation bar methods
- * ************************
- */
-
- public void cancelWizard() {
- xDialog.endExecute();
- running = false;
- }
-
- public boolean finishWizard() {
- boolean bSaveSuccess = false; // pesimistic :(
- XTextDocument xTextDocument;
-
- try {
- FileAccess fileAccess = new FileAccess(xMSF);
- sPath = myPathSelection.getSelectedPath();
- if (sPath.equals(PropertyNames.EMPTY_STRING)) {
- 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.resFileExists);
- if (answer == 3) // user said: no, do not overwrite....
- return false;
- }
-
- agendaTemplate.xTextDocument.lockControllers();
-
- xTextDocument = UnoRuntime.queryInterface(XTextDocument.class,agendaTemplate.document);
-
- bSaveSuccess = OfficeDocument.store(xMSF, xTextDocument, sPath , "writer8_template", false );
- } catch (Exception e) {
- SystemDialog.showMessageBox(xMSF, xControl.getPeer(), "ErrorBox", VclWindowPeerAttribute.OK, resources.resErrSaveTemplate);
- }
-
- if (bSaveSuccess) {
- try {
- topicsControl.saveTopics(agenda);
- Object root = Configuration.getConfigurationRoot(xMSF, "/org.openoffice.Office.Writer/Wizards/Agenda", true);
- agenda.writeConfiguration(root,"cp_");
- Configuration.commit(root);
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
-
- agendaTemplate.finish( topicsControl.getTopicsData());
-
- //I have no exact idea what this is doing, but the error message kept
- //popping up, no matter what I tried. Even though I excluded this, it
- //kept working perfectly. I suggest that this tries to store the template
- //document, but it is already stored, written down by a code above. The
- //reason this piece is malfunctioning, because the agendaTemplate.document
- //is read-only (At least as my tests indicated.).
-
- agendaTemplate.xTextDocument.unlockControllers();
-
- PropertyValue loadValues[] = new PropertyValue[2];
- loadValues[0] = new PropertyValue();
- loadValues[0].Name = "AsTemplate";
- if (agenda.cp_ProceedMethod == 1) {
- loadValues[0].Value = Boolean.TRUE;
- } else {
- loadValues[0].Value = Boolean.FALSE;
- }
- loadValues[1] = new PropertyValue();
- loadValues[1].Name = "InteractionHandler";
- try {
- loadValues[1].Value = UnoRuntime.queryInterface(XInteractionHandler.class, xMSF.createInstance("com.sun.star.comp.uui.UUIInteractionHandler"));
- } catch (Exception e) {
- e.printStackTrace();
- }
- Object oDoc = OfficeDocument.load(Desktop.getDesktop(xMSF), sPath, "_default", new PropertyValue[0]);
- xTextDocument = (com.sun.star.text.XTextDocument) oDoc;
- XMultiServiceFactory xDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
- ViewHandler myViewHandler = new ViewHandler(xDocMSF, xTextDocument);
- try {
- myViewHandler.setViewSetting("ZoomType", new Short(com.sun.star.view.DocumentZoomType.OPTIMAL));
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- } else {
- agendaTemplate.xTextDocument.unlockControllers();
- return false;
- }
- xDialog.endExecute();
- running = false;
- return true;
- }
-
- private void closeDocument() {
- try {
- XCloseable xCloseable = UnoRuntime.queryInterface(XCloseable.class, agendaTemplate.xFrame);
- xCloseable.close(false);
- } catch (CloseVetoException e) {
- e.printStackTrace();
- }
- }
-
- /* ********************
- * Sub Classes
- * ********************
- */
-
-
- /**
- * this class is used to redraw an item's table when
- * the user clicks one of the checkboxes in step 3 or 4.
- */
- private class RedrawListener implements DataAware.Listener {
-
- private String itemName;
-
- public RedrawListener(String itemName_) {
- itemName = itemName_;
- }
-
- /* (non-Javadoc)
- * @see com.sun.star.wizards.ui.event.DataAware.Listener#eventPerformed(java.lang.Object)
- */
- public void eventPerformed(Object event) {
- agendaTemplate.xTextDocument.lockControllers();
- agendaTemplate.redraw(itemName);
- agendaTemplate.refreshConstants();
- agendaTemplate.xTextDocument.unlockControllers();
- }
- }
-
-
-}
-