mirror of
https://gitee.com/kekingcn/file-online-preview.git
synced 2026-05-09 08:24:02 +00:00
集成OpenOffice替换为LibreOffice
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,320 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
from ..ui.WizardDialog import WizardDialog, uno, UIConsts, PropertyNames
|
||||
from .AgendaWizardDialogConst import AgendaWizardDialogConst, HID
|
||||
from .AgendaWizardDialogResources import AgendaWizardDialogResources
|
||||
|
||||
from com.sun.star.awt.FontUnderline import SINGLE
|
||||
|
||||
class AgendaWizardDialog(WizardDialog):
|
||||
|
||||
def __init__(self, xmsf):
|
||||
super(AgendaWizardDialog,self).__init__(xmsf, HID )
|
||||
|
||||
#Load Resources
|
||||
self.resources = AgendaWizardDialogResources()
|
||||
|
||||
#set dialog properties...
|
||||
self.setDialogProperties(True, 210, True, 200, 52, 1, 1,
|
||||
self.resources.resAgendaWizardDialog_title, 310)
|
||||
|
||||
self.PROPS_LIST = ("Dropdown",
|
||||
PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_LABEL_B = ("FontDescriptor",
|
||||
PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_LABEL,
|
||||
PropertyNames.PROPERTY_MULTILINE,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_CHECK = (PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_LABEL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STATE,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_BUTTON = (PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_LABEL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_X = (PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_TEXTAREA = (PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_LABEL,
|
||||
PropertyNames.PROPERTY_MULTILINE,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_TEXT = (PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_LABEL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
self.PROPS_IMAGE = ("Border",
|
||||
PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_IMAGEURL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
"ScaleImage", PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH)
|
||||
|
||||
self.fontDescriptor4 = \
|
||||
uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
|
||||
self.fontDescriptor4.Weight = 150
|
||||
|
||||
def buildStep1(self):
|
||||
self.insertLabel("lblTitle1", self.PROPS_LABEL_B,
|
||||
(self.fontDescriptor4, 16, self.resources.reslblTitle1_value,
|
||||
True, 91, 8, 1, 100,212))
|
||||
self.insertLabel("lblPageDesign", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblPageDesign_value, 97, 32, 1, 101, 66))
|
||||
self.listPageDesign = self.insertListBox("listPageDesign",
|
||||
None, AgendaWizardDialogConst.LISTPAGEDESIGN_ACTION_PERFORMED,
|
||||
self.PROPS_LIST,
|
||||
(True, 12, AgendaWizardDialogConst.LISTPAGEDESIGN_HID,
|
||||
166, 30, 1, 102, 70), self)
|
||||
self.chkMinutes = self.insertCheckBox("chkMinutes", None,
|
||||
self.PROPS_CHECK, (9, AgendaWizardDialogConst.CHKMINUTES_HID,
|
||||
self.resources.reschkMinutes_value, 97, 50, 0, 1, 103, 203), self)
|
||||
self.insertImage("imgHelp1", self.PROPS_IMAGE,
|
||||
(0, 10, "", UIConsts.INFOIMAGEURL, 92, 145, False, 1, 104, 10))
|
||||
self.insertLabel("lblHelp1", self.PROPS_TEXTAREA,
|
||||
(39, self.resources.reslblHelp1_value,
|
||||
True, 104, 145, 1, 105, 199))
|
||||
|
||||
def buildStep2(self):
|
||||
self.insertLabel("lblTitle2", self.PROPS_LABEL_B,
|
||||
(self.fontDescriptor4, 16, self.resources.reslblTitle2_value,
|
||||
True, 91, 8, 2, 200, 212))
|
||||
self.insertLabel("lblDate", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblDate_value, 97, 32, 2, 201,66))
|
||||
self.txtDate = self.insertDateField(
|
||||
"txtDate", AgendaWizardDialogConst.TXTDATE_TEXT_CHANGED,
|
||||
self.PROPS_LIST,
|
||||
(True, 12, AgendaWizardDialogConst.TXTDATE_HID,
|
||||
166,30, 2, 202, 70), self)
|
||||
self.insertLabel("lblTime", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblTime_value, 97, 50, 2, 203, 66))
|
||||
self.txtTime = self.insertTimeField("txtTime",
|
||||
AgendaWizardDialogConst.TXTTIME_TEXT_CHANGED,
|
||||
(PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
"StrictFormat",
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH),
|
||||
(12, AgendaWizardDialogConst.TXTTIME_HID,
|
||||
166, 48, 2, True, 204, 70), self)
|
||||
self.insertLabel("lblTitle", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblTitle_value, 97, 68, 2, 205, 66))
|
||||
self.txtTitle = self.insertTextField(
|
||||
"txtTitle", AgendaWizardDialogConst.TXTTITLE_TEXT_CHANGED,
|
||||
(PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_MULTILINE,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH),
|
||||
(26, AgendaWizardDialogConst.TXTTITLE_HID,
|
||||
True, 166, 66, 2, 206, 138), self)
|
||||
self.insertLabel("lblLocation", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblLocation_value, 97, 100, 2, 207, 66))
|
||||
self.cbLocation = self.insertTextField(
|
||||
"cbLocation", AgendaWizardDialogConst.TXTLOCATION_TEXT_CHANGED,
|
||||
(PropertyNames.PROPERTY_HEIGHT,
|
||||
PropertyNames.PROPERTY_HELPURL,
|
||||
PropertyNames.PROPERTY_MULTILINE,
|
||||
PropertyNames.PROPERTY_POSITION_X,
|
||||
PropertyNames.PROPERTY_POSITION_Y,
|
||||
PropertyNames.PROPERTY_STEP,
|
||||
PropertyNames.PROPERTY_TABINDEX,
|
||||
PropertyNames.PROPERTY_WIDTH),
|
||||
(34, AgendaWizardDialogConst.CBLOCATION_HID,
|
||||
True, 166,98, 2, 208, 138), self)
|
||||
self.insertImage("imgHelp2", self.PROPS_IMAGE,
|
||||
(0, 10, "", UIConsts.INFOIMAGEURL, 92, 145, False, 2, 209, 10))
|
||||
self.insertLabel("lblHelp2", self.PROPS_TEXTAREA,
|
||||
(39, self.resources.reslblHelp2_value,
|
||||
True, 104, 145, 2, 210, 199))
|
||||
|
||||
def buildStep3(self):
|
||||
self.insertLabel("lblTitle3", self.PROPS_LABEL_B,
|
||||
(self.fontDescriptor4, 16, self.resources.reslblTitle3_value,
|
||||
True, 91, 8, 3, 300,212))
|
||||
self.chkMeetingTitle = self.insertCheckBox("chkMeetingTitle",
|
||||
AgendaWizardDialogConst.CHKUSEMEETINGTYPE_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKMEETINGTITLE_HID,
|
||||
self.resources.reschkMeetingTitle_value,
|
||||
97, 32, 1, 3, 301, 69), self)
|
||||
self.chkRead = self.insertCheckBox("chkRead",
|
||||
AgendaWizardDialogConst.CHKUSEREAD_ITEM_CHANGED, self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKREAD_HID,
|
||||
self.resources.reschkRead_value, 97, 46, 0, 3, 302, 162), self)
|
||||
self.chkBring = self.insertCheckBox("chkBring",
|
||||
AgendaWizardDialogConst.CHKUSEBRING_ITEM_CHANGED, self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKBRING_HID,
|
||||
self.resources.reschkBring_value,
|
||||
97, 60, 0, 3, 303, 162), self)
|
||||
self.chkNotes = self.insertCheckBox("chkNotes",
|
||||
AgendaWizardDialogConst.CHKUSENOTES_ITEM_CHANGED, self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKNOTES_HID,
|
||||
self.resources.reschkNotes_value,
|
||||
97, 74, 1, 3, 304, 160), self)
|
||||
self.insertImage("imgHelp3", self.PROPS_IMAGE, (0, 10,
|
||||
"", UIConsts.INFOIMAGEURL, 92, 145, False, 3, 305, 10))
|
||||
self.insertLabel("lblHelp3", self.PROPS_TEXTAREA,
|
||||
(39, self.resources.reslblHelp3_value, True,104, 145, 3, 306, 199))
|
||||
|
||||
def buildStep4(self):
|
||||
self.insertLabel("lblTitle5", self.PROPS_LABEL_B,
|
||||
(self.fontDescriptor4, 16, self.resources.reslblTitle5_value,
|
||||
True, 91, 8, 4, 400, 212))
|
||||
self.chkConvenedBy = self.insertCheckBox("chkConvenedBy",
|
||||
AgendaWizardDialogConst.CHKUSECALLEDBYNAME_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKCONVENEDBY_HID,
|
||||
self.resources.reschkConvenedBy_value,
|
||||
97, 32, 1, 4, 401, 150), self)
|
||||
self.chkPresiding = self.insertCheckBox("chkPresiding",
|
||||
AgendaWizardDialogConst.CHKUSEFACILITATOR_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKPRESIDING_HID,
|
||||
self.resources.reschkPresiding_value,
|
||||
97, 46, 0, 4, 402, 150), self)
|
||||
self.chkNoteTaker = self.insertCheckBox("chkNoteTaker",
|
||||
AgendaWizardDialogConst.CHKUSENOTETAKER_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKNOTETAKER_HID,
|
||||
self.resources.reschkNoteTaker_value,
|
||||
97, 60, 0, 4, 403, 150), self)
|
||||
self.chkTimekeeper = self.insertCheckBox("chkTimekeeper",
|
||||
AgendaWizardDialogConst.CHKUSETIMEKEEPER_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKTIMEKEEPER_HID,
|
||||
self.resources.reschkTimekeeper_value,
|
||||
97, 74, 0, 4, 404, 150), self)
|
||||
self.chkAttendees = self.insertCheckBox("chkAttendees",
|
||||
AgendaWizardDialogConst.CHKUSEATTENDEES_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKATTENDEES_HID,
|
||||
self.resources.reschkAttendees_value,
|
||||
97, 88, 1, 4, 405, 150), self)
|
||||
self.chkObservers = self.insertCheckBox("chkObservers",
|
||||
AgendaWizardDialogConst.CHKUSEOBSERVERS_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKOBSERVERS_HID,
|
||||
self.resources.reschkObservers_value,
|
||||
97, 102, 0, 4, 406, 150), self)
|
||||
self.chkResourcePersons = self.insertCheckBox("chkResourcePersons",
|
||||
AgendaWizardDialogConst.CHKUSERESOURCEPERSONS_ITEM_CHANGED,
|
||||
self.PROPS_CHECK,
|
||||
(8, AgendaWizardDialogConst.CHKRESOURCEPERSONS_HID,
|
||||
self.resources.reschkResourcePersons_value,
|
||||
97, 116, 0, 4, 407, 150), self)
|
||||
self.insertImage("imgHelp4", self.PROPS_IMAGE,
|
||||
(0, 10, "", UIConsts.INFOIMAGEURL,
|
||||
92, 145, False, 4, 408, 10))
|
||||
self.insertLabel("lblHelp4", self.PROPS_TEXTAREA,
|
||||
(39, self.resources.reslblHelp4_value, True, 104, 145, 4, 409, 199))
|
||||
|
||||
def buildStep5(self):
|
||||
self.insertLabel("lblTitle4", self.PROPS_LABEL_B,
|
||||
(self.fontDescriptor4, 16, self.resources.reslblTitle4_value,
|
||||
True, 91, 8, 5, 500, 212))
|
||||
self.insertLabel("lblTopic", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblTopic_value, 107, 28, 5, 71, 501))
|
||||
self.insertLabel("lblResponsible", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblResponsible_value, 195, 28, 5, 72, 502))
|
||||
self.insertLabel("lblDuration", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblDuration_value, 267, 28, 5, 73, 503))
|
||||
self.btnInsert = self.insertButton("btnInsert",
|
||||
AgendaWizardDialogConst.BTNINSERT_ACTION_PERFORMED,
|
||||
self.PROPS_BUTTON, (14, AgendaWizardDialogConst.BTNINSERT_HID,
|
||||
self.resources.resButtonInsert, 92, 136, 5, 580, 40), self)
|
||||
self.btnRemove = self.insertButton("btnRemove",
|
||||
AgendaWizardDialogConst.BTNREMOVE_ACTION_PERFORMED,
|
||||
self.PROPS_BUTTON, (14, AgendaWizardDialogConst.BTNREMOVE_HID,
|
||||
self.resources.resButtonRemove, 134, 136, 5, 581, 40), self)
|
||||
self.btnUp = self.insertButton("btnUp",
|
||||
AgendaWizardDialogConst.BTNUP_ACTION_PERFORMED,
|
||||
self.PROPS_BUTTON, (14, AgendaWizardDialogConst.BTNUP_HID,
|
||||
self.resources.resButtonUp, 180, 136, 5, 582, 60), self)
|
||||
self.btnDown = self.insertButton("btnDown",
|
||||
AgendaWizardDialogConst.BTNDOWN_ACTION_PERFORMED,
|
||||
self.PROPS_BUTTON, (14, AgendaWizardDialogConst.BTNDOWN_HID,
|
||||
self.resources.resButtonDown, 244, 136, 5, 583, 60), self)
|
||||
|
||||
def buildStep6(self):
|
||||
self.insertLabel("lblTitle6", self.PROPS_LABEL_B,
|
||||
(self.fontDescriptor4, 16, self.resources.reslblTitle6_value,
|
||||
True, 91, 8, 6, 600, 212))
|
||||
self.insertLabel("lblHelpPg6", self.PROPS_TEXTAREA,
|
||||
(24, self.resources.reslblHelpPg6_value, True,
|
||||
97, 32, 6, 601,204))
|
||||
self.insertLabel("lblTemplateName", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblTemplateName_value,
|
||||
97, 62, 6, 602, 101))
|
||||
self.txtTemplateName = self.insertTextField("txtTemplateName",
|
||||
None, self.PROPS_X,
|
||||
(12, AgendaWizardDialogConst.TXTTEMPLATENAME_HID,
|
||||
202, 60, 6, 603, 100), self)
|
||||
self.insertLabel("lblProceed", self.PROPS_TEXT,
|
||||
(8, self.resources.reslblProceed_value, 97, 101, 6, 607,204))
|
||||
self.optCreateAgenda = self.insertRadioButton("optCreateAgenda", None,
|
||||
self.PROPS_CHECK, (8, AgendaWizardDialogConst.OPTCREATEAGENDA_HID,
|
||||
self.resources.resoptCreateAgenda_value,
|
||||
103, 113, 1, 6, 608, 198), self)
|
||||
self.optMakeChanges = self.insertRadioButton("optMakeChanges", None,
|
||||
self.PROPS_BUTTON, (8, AgendaWizardDialogConst.OPTMAKECHANGES_HID,
|
||||
self.resources.resoptMakeChanges_value,
|
||||
103, 125, 6, 609, 198), self)
|
||||
self.insertImage("imgHelp6", self.PROPS_IMAGE, (0, 10, "",
|
||||
UIConsts.INFOIMAGEURL, 92, 145, False, 6, 610, 10))
|
||||
self.insertLabel("lblHelp6", self.PROPS_TEXTAREA,
|
||||
(39, self.resources.reslblHelp6_value, True, 104, 145, 6, 611, 199))
|
||||
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
from ..common.HelpIds import HelpIds
|
||||
|
||||
HID = 41051
|
||||
|
||||
class AgendaWizardDialogConst:
|
||||
|
||||
TXTTITLE_TEXT_CHANGED = "txtTitleTextChanged"
|
||||
TXTDATE_TEXT_CHANGED = "txtDateTextChanged"
|
||||
TXTTIME_TEXT_CHANGED = "txtTimeTextChanged"
|
||||
TXTLOCATION_TEXT_CHANGED = "txtLocationTextChanged"
|
||||
CHKMINUTES_ITEM_CHANGED = "chkMinutesItemChanged"
|
||||
CHKUSEMEETINGTYPE_ITEM_CHANGED = "chkUseMeetingTypeItemChanged"
|
||||
CHKUSEREAD_ITEM_CHANGED = "chkUseReadItemChanged"
|
||||
CHKUSEBRING_ITEM_CHANGED = "chkUseBringItemChanged"
|
||||
CHKUSENOTES_ITEM_CHANGED = "chkUseNotesItemChanged"
|
||||
CHKUSECALLEDBYNAME_ITEM_CHANGED = "chkUseCalledByItemChanged"
|
||||
CHKUSEFACILITATOR_ITEM_CHANGED = "chkUseFacilitatorItemChanged"
|
||||
CHKUSENOTETAKER_ITEM_CHANGED = "chkUseNoteTakerItemChanged"
|
||||
CHKUSETIMEKEEPER_ITEM_CHANGED = "chkUseTimeKeeperItemChanged"
|
||||
CHKUSEATTENDEES_ITEM_CHANGED = "chkUseAttendeesItemChanged"
|
||||
CHKUSEOBSERVERS_ITEM_CHANGED = "chkUseObserversItemChanged"
|
||||
CHKUSERESOURCEPERSONS_ITEM_CHANGED = "chkUseResourcePersonsItemChanged"
|
||||
LISTPAGEDESIGN_ACTION_PERFORMED = "pageDesignChanged"
|
||||
BTNTEMPLATEPATH_ACTION_PERFORMED = "saveAs"
|
||||
BTNINSERT_ACTION_PERFORMED = "insertRow"
|
||||
BTNREMOVE_ACTION_PERFORMED = "removeRow"
|
||||
BTNUP_ACTION_PERFORMED = "rowUp"
|
||||
BTNDOWN_ACTION_PERFORMED = "rowDown"
|
||||
|
||||
LISTPAGEDESIGN_HID = HelpIds.getHelpIdString(HID + 6)
|
||||
CHKMINUTES_HID = HelpIds.getHelpIdString(HID + 7)
|
||||
TXTTIME_HID = HelpIds.getHelpIdString(HID + 8)
|
||||
TXTDATE_HID = HelpIds.getHelpIdString(HID + 9)
|
||||
TXTTITLE_HID = HelpIds.getHelpIdString(HID + 10)
|
||||
CBLOCATION_HID = HelpIds.getHelpIdString(HID + 11)
|
||||
|
||||
CHKMEETINGTITLE_HID = HelpIds.getHelpIdString(HID + 12)
|
||||
CHKREAD_HID = HelpIds.getHelpIdString(HID + 13)
|
||||
CHKBRING_HID = HelpIds.getHelpIdString(HID + 14)
|
||||
CHKNOTES_HID = HelpIds.getHelpIdString(HID + 15)
|
||||
|
||||
CHKCONVENEDBY_HID = HelpIds.getHelpIdString(HID + 16)
|
||||
CHKPRESIDING_HID = HelpIds.getHelpIdString(HID + 17)
|
||||
CHKNOTETAKER_HID = HelpIds.getHelpIdString(HID + 18)
|
||||
CHKTIMEKEEPER_HID = HelpIds.getHelpIdString(HID + 19)
|
||||
CHKATTENDEES_HID = HelpIds.getHelpIdString(HID + 20)
|
||||
CHKOBSERVERS_HID = HelpIds.getHelpIdString(HID + 21)
|
||||
CHKRESOURCEPERSONS_HID = HelpIds.getHelpIdString(HID + 22)
|
||||
|
||||
TXTTEMPLATENAME_HID = HelpIds.getHelpIdString(HID + 23)
|
||||
TXTTEMPLATEPATH_HID = HelpIds.getHelpIdString(HID + 24)
|
||||
BTNTEMPLATEPATH_HID = HelpIds.getHelpIdString(HID + 25)
|
||||
|
||||
OPTCREATEAGENDA_HID = HelpIds.getHelpIdString(HID + 26)
|
||||
OPTMAKECHANGES_HID = HelpIds.getHelpIdString(HID + 27)
|
||||
|
||||
BTNINSERT_HID = HelpIds.getHelpIdString(HID + 28)
|
||||
BTNREMOVE_HID = HelpIds.getHelpIdString(HID + 29)
|
||||
BTNUP_HID = HelpIds.getHelpIdString(HID + 30)
|
||||
BTNDOWN_HID = HelpIds.getHelpIdString(HID + 31)
|
||||
@@ -0,0 +1,384 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
import traceback
|
||||
import os.path
|
||||
from .AgendaWizardDialog import AgendaWizardDialog, uno
|
||||
from .AgendaWizardDialogConst import HID
|
||||
from .AgendaDocument import AgendaDocument, TextElement
|
||||
from .TemplateConsts import TemplateConsts
|
||||
from .TopicsControl import TopicsControl
|
||||
from .CGAgenda import CGAgenda
|
||||
from ..ui.PathSelection import PathSelection
|
||||
from ..ui.event.UnoDataAware import UnoDataAware
|
||||
from ..ui.event.RadioDataAware import RadioDataAware
|
||||
from ..ui.event.CommonListener import TerminateListenerProcAdapter
|
||||
from ..common.NoValidPathException import NoValidPathException
|
||||
from ..common.SystemDialog import SystemDialog
|
||||
from ..common.Desktop import Desktop
|
||||
from ..common.HelpIds import HelpIds
|
||||
from ..common.Configuration import Configuration
|
||||
from ..common.FileAccess import FileAccess
|
||||
from ..document.OfficeDocument import OfficeDocument
|
||||
|
||||
from com.sun.star.util import CloseVetoException
|
||||
from com.sun.star.view.DocumentZoomType import OPTIMAL
|
||||
from com.sun.star.awt.VclWindowPeerAttribute import YES_NO, DEF_NO
|
||||
|
||||
class AgendaWizardDialogImpl(AgendaWizardDialog):
|
||||
|
||||
def __init__(self, xmsf):
|
||||
super(AgendaWizardDialogImpl, self).__init__(xmsf)
|
||||
self.filenameChanged = False
|
||||
self.pageDesign = -1
|
||||
|
||||
def enterStep(self, OldStep, NewStep):
|
||||
pass
|
||||
|
||||
def leaveStep(self, OldStep, NewStep):
|
||||
pass
|
||||
|
||||
def startWizard(self, xMSF):
|
||||
self.running = True
|
||||
try:
|
||||
#Number of steps on WizardDialog
|
||||
self.nMaxStep = 6
|
||||
|
||||
self.agenda = CGAgenda()
|
||||
|
||||
# read configuration data before we initialize the topics
|
||||
root = Configuration.getConfigurationRoot(
|
||||
self.xMSF, "/org.openoffice.Office.Writer/Wizards/Agenda",
|
||||
False)
|
||||
self.agenda.readConfiguration(root, "cp_")
|
||||
|
||||
self.templateConsts = TemplateConsts
|
||||
|
||||
self.initializePaths()
|
||||
# initialize the agenda template
|
||||
self.terminateListener = TerminateListenerProcAdapter(self.queryTermination)
|
||||
self.myAgendaDoc = AgendaDocument(
|
||||
self.xMSF, self.agenda, self.resources,
|
||||
self.templateConsts, self.terminateListener)
|
||||
self.initializeTemplates()
|
||||
|
||||
self.myAgendaDoc.load(
|
||||
self.agendaTemplates[1][self.agenda.cp_AgendaType])
|
||||
self.drawConstants()
|
||||
|
||||
# build the dialog.
|
||||
self.drawNaviBar()
|
||||
|
||||
self.buildStep1()
|
||||
self.buildStep2()
|
||||
self.buildStep3()
|
||||
self.buildStep4()
|
||||
self.buildStep5()
|
||||
self.buildStep6()
|
||||
|
||||
self.topicsControl = TopicsControl(self, self.xMSF, self.agenda)
|
||||
|
||||
#special Control for setting the save Path:
|
||||
self.insertPathSelectionControl()
|
||||
|
||||
# synchronize GUI and CGAgenda object.
|
||||
self.initConfiguration()
|
||||
|
||||
if self.myPathSelection.xSaveTextBox.Text.lower() == "":
|
||||
self.myPathSelection.initializePath()
|
||||
|
||||
# create the peer
|
||||
xContainerWindow = self.myAgendaDoc.xFrame.ContainerWindow
|
||||
self.createWindowPeer(xContainerWindow)
|
||||
|
||||
# initialize roadmap
|
||||
self.insertRoadmap()
|
||||
|
||||
self.executeDialogFromComponent(self.myAgendaDoc.xFrame)
|
||||
self.removeTerminateListener()
|
||||
self.closeDocument()
|
||||
self.running = False
|
||||
except Exception:
|
||||
self.removeTerminateListener()
|
||||
traceback.print_exc()
|
||||
self.running = False
|
||||
return
|
||||
|
||||
def insertPathSelectionControl(self):
|
||||
self.myPathSelection = PathSelection(
|
||||
self.xMSF, self, PathSelection.TransferMode.SAVE,
|
||||
PathSelection.DialogTypes.FILE)
|
||||
self.myPathSelection.insert(6, 97, 70, 205, 45,
|
||||
self.resources.reslblTemplatePath_value, True,
|
||||
HelpIds.getHelpIdString(HID + 24),
|
||||
HelpIds.getHelpIdString(HID + 25))
|
||||
self.myPathSelection.sDefaultDirectory = self.sUserTemplatePath
|
||||
self.myPathSelection.sDefaultName = "myAgendaTemplate.ott"
|
||||
self.myPathSelection.sDefaultFilter = "writer8_template"
|
||||
self.myPathSelection.addSelectionListener(self)
|
||||
|
||||
'''
|
||||
bind controls to the agenda member (DataAware model)
|
||||
'''
|
||||
|
||||
def initConfiguration(self):
|
||||
self.xDialogModel.listPageDesign.StringItemList = \
|
||||
tuple(self.agendaTemplates[0])
|
||||
UnoDataAware.attachListBox(
|
||||
self.agenda, "cp_AgendaType", self.listPageDesign, True).updateUI()
|
||||
self.pageDesign = self.agenda.cp_AgendaType
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_IncludeMinutes", self.chkMinutes, True).updateUI()
|
||||
UnoDataAware.attachEditControl(
|
||||
self.agenda, "cp_Title", self.txtTitle, True).updateUI()
|
||||
UnoDataAware.attachDateControl(
|
||||
self.agenda, "cp_Date", self.txtDate, True).updateUI()
|
||||
UnoDataAware.attachTimeControl(
|
||||
self.agenda, "cp_Time", self.txtTime, True).updateUI()
|
||||
UnoDataAware.attachEditControl(
|
||||
self.agenda, "cp_Location", self.cbLocation, True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowMeetingType", self.chkMeetingTitle,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowRead", self.chkRead, True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowBring", self.chkBring, True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowNotes", self.chkNotes, True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowCalledBy", self.chkConvenedBy,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowFacilitator", self.chkPresiding,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowNotetaker", self.chkNoteTaker,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowTimekeeper", self.chkTimekeeper,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowAttendees", self.chkAttendees,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowObservers", self.chkObservers,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachCheckBox(
|
||||
self.agenda, "cp_ShowResourcePersons",self.chkResourcePersons,
|
||||
True).updateUI()
|
||||
UnoDataAware.attachEditControl(
|
||||
self.agenda, "cp_TemplateName", self.txtTemplateName,
|
||||
True).updateUI()
|
||||
RadioDataAware.attachRadioButtons(
|
||||
self.agenda, "cp_ProceedMethod",
|
||||
(self.optCreateAgenda, self.optMakeChanges), True).updateUI()
|
||||
|
||||
def insertRoadmap(self):
|
||||
self.addRoadmap()
|
||||
self.insertRoadMapItems(
|
||||
self.resources.RoadmapLabels, [True, True, True, True, True, True])
|
||||
self.setRoadmapInteractive(True)
|
||||
self.setRoadmapComplete(True)
|
||||
self.setCurrentRoadmapItemID(1)
|
||||
|
||||
'''
|
||||
read the available agenda wizard templates.
|
||||
'''
|
||||
|
||||
def initializeTemplates(self):
|
||||
try:
|
||||
sAgendaPath = self.sTemplatePath + "/wizard/agenda"
|
||||
self.agendaTemplates = FileAccess.getFolderTitles(
|
||||
self.xMSF, "aw", sAgendaPath, self.resources.dictPageDesign)
|
||||
return True
|
||||
except NoValidPathException:
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
'''
|
||||
first page, page design listbox changed.
|
||||
'''
|
||||
|
||||
def pageDesignChanged(self):
|
||||
try:
|
||||
SelectedItemPos = self.listPageDesign.SelectedItemPos
|
||||
#avoid to load the same item again
|
||||
if self.pageDesign is not SelectedItemPos:
|
||||
self.pageDesign = SelectedItemPos
|
||||
self.myAgendaDoc.load(
|
||||
self.agendaTemplates[1][SelectedItemPos])
|
||||
self.drawConstants()
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
|
||||
#textFields listeners
|
||||
def txtTitleTextChanged(self):
|
||||
self.myAgendaDoc.redrawTitle("txtTitle")
|
||||
|
||||
def txtDateTextChanged(self):
|
||||
self.myAgendaDoc.redrawTitle("txtDate")
|
||||
|
||||
def txtTimeTextChanged(self):
|
||||
self.myAgendaDoc.redrawTitle("txtTime")
|
||||
|
||||
def txtLocationTextChanged(self):
|
||||
self.myAgendaDoc.redrawTitle("cbLocation")
|
||||
|
||||
#checkbox listeners
|
||||
def chkUseMeetingTypeItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_MEETING_TYPE)
|
||||
|
||||
def chkUseReadItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_READ)
|
||||
|
||||
def chkUseBringItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_BRING)
|
||||
|
||||
def chkUseNotesItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_NOTES)
|
||||
|
||||
def chkUseCalledByItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_CALLED_BY)
|
||||
|
||||
def chkUseFacilitatorItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_FACILITATOR)
|
||||
|
||||
def chkUseNoteTakerItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_NOTETAKER)
|
||||
|
||||
def chkUseTimeKeeperItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_TIMEKEEPER)
|
||||
|
||||
def chkUseAttendeesItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_PARTICIPANTS)
|
||||
|
||||
def chkUseObserversItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_OBSERVERS)
|
||||
|
||||
def chkUseResourcePersonsItemChanged(self):
|
||||
self.myAgendaDoc.redraw(self.templateConsts.FILLIN_RESOURCE_PERSONS)
|
||||
|
||||
def insertRow(self):
|
||||
self.topicsControl.insertRow()
|
||||
|
||||
def removeRow(self):
|
||||
self.topicsControl.removeRow()
|
||||
|
||||
def rowUp(self):
|
||||
self.topicsControl.rowUp()
|
||||
|
||||
def rowDown(self):
|
||||
self.topicsControl.rowDown()
|
||||
|
||||
def cancelWizard(self):
|
||||
self.xUnoDialog.endExecute()
|
||||
self.running = False
|
||||
|
||||
def finishWizard(self):
|
||||
self.switchToStep(self.getCurrentStep(), self.nMaxStep)
|
||||
bSaveSuccess = False
|
||||
endWizard = True
|
||||
try:
|
||||
self.sPath = self.myPathSelection.getSelectedPath()
|
||||
if not self.sPath or not os.path.exists(self.sPath):
|
||||
self.myPathSelection.triggerPathPicker()
|
||||
self.sPath = self.myPathSelection.getSelectedPath()
|
||||
|
||||
#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 not self.filenameChanged:
|
||||
answer = SystemDialog.showMessageBox(
|
||||
self.xMSF, "MessBox", YES_NO + DEF_NO,
|
||||
self.resources.resOverwriteWarning,
|
||||
self.xUnoDialog.Peer)
|
||||
if answer == 3:
|
||||
# user said: no, do not overwrite
|
||||
endWizard = False
|
||||
return False
|
||||
|
||||
xDocProps = self.myAgendaDoc.xTextDocument.DocumentProperties
|
||||
xDocProps.Title = self.txtTemplateName.Text
|
||||
self.myAgendaDoc.setWizardTemplateDocInfo( \
|
||||
self.resources.resAgendaWizardDialog_title,
|
||||
self.resources.resTemplateDescription)
|
||||
bSaveSuccess = OfficeDocument.store(
|
||||
self.xMSF, self.myAgendaDoc.xTextDocument, self.sPath,
|
||||
"writer8_template")
|
||||
|
||||
if bSaveSuccess:
|
||||
self.topicsControl.saveTopics(self.agenda)
|
||||
root = Configuration.getConfigurationRoot(
|
||||
self.xMSF, "/org.openoffice.Office.Writer/Wizards/Agenda",
|
||||
True)
|
||||
self.agenda.writeConfiguration(root, "cp_")
|
||||
root.commitChanges()
|
||||
|
||||
self.myAgendaDoc.finish(self.topicsControl.scrollfields)
|
||||
|
||||
loadValues = list(range(2))
|
||||
loadValues[0] = uno.createUnoStruct( \
|
||||
'com.sun.star.beans.PropertyValue')
|
||||
loadValues[0].Name = "AsTemplate"
|
||||
if self.agenda.cp_ProceedMethod == 1:
|
||||
loadValues[0].Value = True
|
||||
else:
|
||||
loadValues[0].Value = False
|
||||
|
||||
loadValues[1] = uno.createUnoStruct( \
|
||||
'com.sun.star.beans.PropertyValue')
|
||||
loadValues[1].Name = "InteractionHandler"
|
||||
|
||||
xIH = self.xMSF.createInstance(
|
||||
"com.sun.star.comp.uui.UUIInteractionHandler")
|
||||
loadValues[1].Value = xIH
|
||||
|
||||
oDoc = OfficeDocument.load(
|
||||
Desktop.getDesktop(self.xMSF),
|
||||
self.sPath, "_default", loadValues)
|
||||
oDoc.CurrentController.ViewSettings.ZoomType = OPTIMAL
|
||||
else:
|
||||
pass
|
||||
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
if endWizard:
|
||||
self.xUnoDialog.endExecute()
|
||||
self.running = False
|
||||
return True
|
||||
|
||||
def closeDocument(self):
|
||||
try:
|
||||
self.myAgendaDoc.xFrame.close(False)
|
||||
except CloseVetoException:
|
||||
traceback.print_exc()
|
||||
|
||||
def drawConstants(self):
|
||||
'''Localise the template'''
|
||||
constRangeList = self.myAgendaDoc.searchFillInItems(1)
|
||||
|
||||
for i in constRangeList:
|
||||
text = i.String.lower()
|
||||
aux = TextElement(i, self.resources.dictConstants[text])
|
||||
aux.write()
|
||||
|
||||
def validatePath(self):
|
||||
if self.myPathSelection.usedPathPicker:
|
||||
self.filenameChanged = True
|
||||
self.myPathSelection.usedPathPicker = False
|
||||
@@ -0,0 +1,145 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
|
||||
class AgendaWizardDialogResources(object):
|
||||
|
||||
SECTION_ITEMS = "AGENDA_ITEMS"
|
||||
SECTION_TOPICS = "AGENDA_TOPICS"
|
||||
SECTION_MINUTES_ALL = "MINUTES_ALL"
|
||||
SECTION_MINUTES = "MINUTES"
|
||||
|
||||
def __init__(self):
|
||||
import sys, os
|
||||
|
||||
# imp is deprecated since Python v.3.4
|
||||
if sys.version_info >= (3,3):
|
||||
from importlib.machinery import SourceFileLoader
|
||||
SourceFileLoader('strings', os.path.join(os.path.dirname(__file__), '../common/strings.hrc')).load_module()
|
||||
else:
|
||||
import imp
|
||||
imp.load_source('strings', os.path.join(os.path.dirname(__file__), '../common/strings.hrc'))
|
||||
|
||||
import strings
|
||||
|
||||
self.resAgendaWizardDialog_title = strings.RID_AGENDAWIZARDDIALOG_START_1
|
||||
self.resoptMakeChanges_value = strings.RID_AGENDAWIZARDDIALOG_START_2
|
||||
self.reslblTemplateName_value = strings.RID_AGENDAWIZARDDIALOG_START_3
|
||||
self.reslblTemplatePath_value = strings.RID_AGENDAWIZARDDIALOG_START_4
|
||||
self.reslblProceed_value = strings.RID_AGENDAWIZARDDIALOG_START_5
|
||||
self.reslblTitle1_value = strings.RID_AGENDAWIZARDDIALOG_START_6
|
||||
self.reslblTitle3_value = strings.RID_AGENDAWIZARDDIALOG_START_7
|
||||
self.reslblTitle2_value = strings.RID_AGENDAWIZARDDIALOG_START_8
|
||||
self.reslblTitle4_value = strings.RID_AGENDAWIZARDDIALOG_START_9
|
||||
self.reslblTitle5_value = strings.RID_AGENDAWIZARDDIALOG_START_10
|
||||
self.reslblTitle6_value = strings.RID_AGENDAWIZARDDIALOG_START_11
|
||||
self.reschkMinutes_value = strings.RID_AGENDAWIZARDDIALOG_START_12
|
||||
self.reslblHelp1_value = strings.RID_AGENDAWIZARDDIALOG_START_13
|
||||
self.reslblTime_value = strings.RID_AGENDAWIZARDDIALOG_START_14
|
||||
self.reslblTitle_value = strings.RID_AGENDAWIZARDDIALOG_START_15
|
||||
self.reslblLocation_value = strings.RID_AGENDAWIZARDDIALOG_START_16
|
||||
self.reslblHelp2_value = strings.RID_AGENDAWIZARDDIALOG_START_17
|
||||
self.resbtnTemplatePath_value = strings.RID_AGENDAWIZARDDIALOG_START_18
|
||||
self.resoptCreateAgenda_value = strings.RID_AGENDAWIZARDDIALOG_START_19
|
||||
self.reslblHelp6_value = strings.RID_AGENDAWIZARDDIALOG_START_20
|
||||
self.reslblTopic_value = strings.RID_AGENDAWIZARDDIALOG_START_21
|
||||
self.reslblResponsible_value = strings.RID_AGENDAWIZARDDIALOG_START_22
|
||||
self.reslblDuration_value = strings.RID_AGENDAWIZARDDIALOG_START_23
|
||||
self.reschkConvenedBy_value = strings.RID_AGENDAWIZARDDIALOG_START_24
|
||||
self.reschkPresiding_value = strings.RID_AGENDAWIZARDDIALOG_START_25
|
||||
self.reschkNoteTaker_value = strings.RID_AGENDAWIZARDDIALOG_START_26
|
||||
self.reschkTimekeeper_value = strings.RID_AGENDAWIZARDDIALOG_START_27
|
||||
self.reschkAttendees_value = strings.RID_AGENDAWIZARDDIALOG_START_28
|
||||
self.reschkObservers_value = strings.RID_AGENDAWIZARDDIALOG_START_29
|
||||
self.reschkResourcePersons_value = strings.RID_AGENDAWIZARDDIALOG_START_30
|
||||
self.reslblHelp4_value = strings.RID_AGENDAWIZARDDIALOG_START_31
|
||||
self.reschkMeetingTitle_value = strings.RID_AGENDAWIZARDDIALOG_START_32
|
||||
self.reschkRead_value = strings.RID_AGENDAWIZARDDIALOG_START_33
|
||||
self.reschkBring_value = strings.RID_AGENDAWIZARDDIALOG_START_34
|
||||
self.reschkNotes_value = strings.RID_AGENDAWIZARDDIALOG_START_35
|
||||
self.reslblHelp3_value = strings.RID_AGENDAWIZARDDIALOG_START_36
|
||||
self.reslblDate_value = strings.RID_AGENDAWIZARDDIALOG_START_38
|
||||
self.reslblHelpPg6_value = strings.RID_AGENDAWIZARDDIALOG_START_39
|
||||
self.reslblPageDesign_value = strings.RID_AGENDAWIZARDDIALOG_START_40
|
||||
self.resDefaultFilename = strings.RID_AGENDAWIZARDDIALOG_START_41
|
||||
self.resDefaultFilename = self.resDefaultFilename[:-4] + ".ott"
|
||||
self.resDefaultTitle = strings.RID_AGENDAWIZARDDIALOG_START_42
|
||||
self.resErrSaveTemplate = strings.RID_AGENDAWIZARDDIALOG_START_43
|
||||
self.resPlaceHolderTitle = strings.RID_AGENDAWIZARDDIALOG_START_44
|
||||
self.resPlaceHolderDate = strings.RID_AGENDAWIZARDDIALOG_START_45
|
||||
self.resPlaceHolderTime = strings.RID_AGENDAWIZARDDIALOG_START_46
|
||||
self.resPlaceHolderLocation = strings.RID_AGENDAWIZARDDIALOG_START_47
|
||||
self.resPlaceHolderHint = strings.RID_AGENDAWIZARDDIALOG_START_48
|
||||
self.resErrOpenTemplate = strings.RID_AGENDAWIZARDDIALOG_START_56
|
||||
self.itemMeetingType = strings.RID_AGENDAWIZARDDIALOG_START_57
|
||||
self.itemBring = strings.RID_AGENDAWIZARDDIALOG_START_58
|
||||
self.itemRead = strings.RID_AGENDAWIZARDDIALOG_START_59
|
||||
self.itemNote = strings.RID_AGENDAWIZARDDIALOG_START_60
|
||||
self.itemCalledBy = strings.RID_AGENDAWIZARDDIALOG_START_61
|
||||
self.itemFacilitator = strings.RID_AGENDAWIZARDDIALOG_START_62
|
||||
self.itemAttendees = strings.RID_AGENDAWIZARDDIALOG_START_63
|
||||
self.itemNotetaker = strings.RID_AGENDAWIZARDDIALOG_START_64
|
||||
self.itemTimekeeper = strings.RID_AGENDAWIZARDDIALOG_START_65
|
||||
self.itemObservers = strings.RID_AGENDAWIZARDDIALOG_START_66
|
||||
self.itemResource = strings.RID_AGENDAWIZARDDIALOG_START_67
|
||||
self.resButtonInsert = strings.RID_AGENDAWIZARDDIALOG_START_68
|
||||
self.resButtonRemove = strings.RID_AGENDAWIZARDDIALOG_START_69
|
||||
self.resButtonUp = strings.RID_AGENDAWIZARDDIALOG_START_70
|
||||
self.resButtonDown = strings.RID_AGENDAWIZARDDIALOG_START_71
|
||||
|
||||
#Create a dictionary for localised string in the template
|
||||
self.dictConstants = {
|
||||
"#datetitle#" : strings.RID_AGENDAWIZARDDIALOG_START_72,
|
||||
"#timetitle#" : strings.RID_AGENDAWIZARDDIALOG_START_73,
|
||||
"#locationtitle#" : strings.RID_AGENDAWIZARDDIALOG_START_74,
|
||||
"#topics#" : strings.RID_AGENDAWIZARDDIALOG_START_75,
|
||||
"#num.#" : strings.RID_AGENDAWIZARDDIALOG_START_76,
|
||||
"#topicheader#" : strings.RID_AGENDAWIZARDDIALOG_START_77,
|
||||
"#responsibleheader#" : strings.RID_AGENDAWIZARDDIALOG_START_78,
|
||||
"#timeheader#" : strings.RID_AGENDAWIZARDDIALOG_START_79,
|
||||
"#additional-information#" : strings.RID_AGENDAWIZARDDIALOG_START_80,
|
||||
"#minutes-for#" : strings.RID_AGENDAWIZARDDIALOG_START_81,
|
||||
"#discussion#" : strings.RID_AGENDAWIZARDDIALOG_START_82,
|
||||
"#conclusion#" : strings.RID_AGENDAWIZARDDIALOG_START_83,
|
||||
"#to-do#" : strings.RID_AGENDAWIZARDDIALOG_START_84,
|
||||
"#responsible-party#" : strings.RID_AGENDAWIZARDDIALOG_START_85,
|
||||
"#deadline#" : strings.RID_AGENDAWIZARDDIALOG_START_86}
|
||||
|
||||
#Create a dictionary for localising the page design
|
||||
self.dictPageDesign = {
|
||||
"Blue" : strings.RID_AGENDAWIZARDDIALOG_START_87,
|
||||
"Classic" : strings.RID_AGENDAWIZARDDIALOG_START_88,
|
||||
"Colorful" : strings.RID_AGENDAWIZARDDIALOG_START_89,
|
||||
"Elegant" : strings.RID_AGENDAWIZARDDIALOG_START_90,
|
||||
"Green" : strings.RID_AGENDAWIZARDDIALOG_START_91,
|
||||
"Grey" : strings.RID_AGENDAWIZARDDIALOG_START_92,
|
||||
"Modern" : strings.RID_AGENDAWIZARDDIALOG_START_93,
|
||||
"Orange" : strings.RID_AGENDAWIZARDDIALOG_START_94,
|
||||
"Red" : strings.RID_AGENDAWIZARDDIALOG_START_95,
|
||||
"Simple" : strings.RID_AGENDAWIZARDDIALOG_START_96}
|
||||
|
||||
#Common Resources
|
||||
self.resOverwriteWarning = strings.RID_COMMON_START_19
|
||||
self.resTemplateDescription = strings.RID_COMMON_START_20
|
||||
|
||||
self.RoadmapLabels = []
|
||||
self.RoadmapLabels.append(strings.RID_AGENDAWIZARDDIALOG_START_50)
|
||||
self.RoadmapLabels.append(strings.RID_AGENDAWIZARDDIALOG_START_51)
|
||||
self.RoadmapLabels.append(strings.RID_AGENDAWIZARDDIALOG_START_52)
|
||||
self.RoadmapLabels.append(strings.RID_AGENDAWIZARDDIALOG_START_53)
|
||||
self.RoadmapLabels.append(strings.RID_AGENDAWIZARDDIALOG_START_54)
|
||||
self.RoadmapLabels.append(strings.RID_AGENDAWIZARDDIALOG_START_55)
|
||||
@@ -0,0 +1,46 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
from ..common.ConfigGroup import ConfigGroup
|
||||
from ..common.ConfigSet import ConfigSet
|
||||
from .CGTopic import CGTopic
|
||||
|
||||
class CGAgenda(ConfigGroup):
|
||||
|
||||
def __init__(self):
|
||||
self.cp_AgendaType = int()
|
||||
self.cp_IncludeMinutes = bool()
|
||||
self.cp_Title = ""
|
||||
self.cp_Date = str()
|
||||
self.cp_Time = str()
|
||||
self.cp_Location = ""
|
||||
self.cp_ShowMeetingType = bool()
|
||||
self.cp_ShowRead = bool()
|
||||
self.cp_ShowBring = bool()
|
||||
self.cp_ShowNotes = bool()
|
||||
self.cp_ShowCalledBy = bool()
|
||||
self.cp_ShowFacilitator = bool()
|
||||
self.cp_ShowNotetaker = bool()
|
||||
self.cp_ShowTimekeeper = bool()
|
||||
self.cp_ShowAttendees = bool()
|
||||
self.cp_ShowObservers = bool()
|
||||
self.cp_ShowResourcePersons = bool()
|
||||
self.cp_TemplateName = str()
|
||||
self.cp_TemplatePath = str()
|
||||
self.cp_ProceedMethod = int()
|
||||
|
||||
self.cp_Topics = ConfigSet(CGTopic)
|
||||
@@ -0,0 +1,60 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
from ..common.ConfigGroup import ConfigGroup
|
||||
|
||||
'''
|
||||
CGTopic means: Configuration Group Topic.
|
||||
This object encapsulates a configuration group with topic information.
|
||||
Since the topic's gui control uses its own data model, there is
|
||||
also code here to convert from the data model to CGTopic object (the constructor)
|
||||
and vice versa (setDataToRow method - used when loading the last session...)
|
||||
'''
|
||||
|
||||
class CGTopic(ConfigGroup):
|
||||
|
||||
'''
|
||||
create a new CGTopic object with data from the given row.
|
||||
the row object is a PropertyValue array, as used
|
||||
by the TopicsControl's data model.
|
||||
@param row PropertyValue array as used by the TopicsControl's data model.
|
||||
'''
|
||||
|
||||
def __init__(self, row=None):
|
||||
if row is None:
|
||||
self.cp_Index = int()
|
||||
self.cp_Topic = str()
|
||||
self.cp_Responsible = str()
|
||||
self.cp_Time = str()
|
||||
else:
|
||||
self.cp_Index = int(row[0].Value[:-1])
|
||||
self.cp_Topic = row[1].Value
|
||||
self.cp_Responsible = row[2].Value
|
||||
self.cp_Time = row[3].Value
|
||||
|
||||
'''
|
||||
copies the data in this CGTopic object
|
||||
to the given row.
|
||||
@param row the row object (PropertyValue array) to
|
||||
copy the data to.
|
||||
'''
|
||||
|
||||
def setDataToRow(self, row):
|
||||
row[0].Value = "" + str(self.cp_Index) + "."
|
||||
row[1].Value = self.cp_Topic
|
||||
row[2].Value = self.cp_Responsible
|
||||
row[3].Value = self.cp_Time
|
||||
@@ -0,0 +1,75 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
import unohelper
|
||||
import traceback
|
||||
|
||||
from .AgendaWizardDialogImpl import AgendaWizardDialogImpl, Desktop
|
||||
|
||||
from com.sun.star.lang import XServiceInfo
|
||||
from com.sun.star.task import XJobExecutor
|
||||
|
||||
# pythonloader looks for a static g_ImplementationHelper variable
|
||||
g_ImplementationHelper = unohelper.ImplementationHelper()
|
||||
g_implName = "com.sun.star.wizards.agenda.CallWizard"
|
||||
|
||||
# implement a UNO component by deriving from the standard unohelper.Base class
|
||||
# and from the interface(s) you want to implement.
|
||||
class CallWizard(unohelper.Base, XJobExecutor, XServiceInfo):
|
||||
def __init__(self, ctx):
|
||||
# store the component context for later use
|
||||
self.ctx = ctx
|
||||
|
||||
def trigger(self, args):
|
||||
try:
|
||||
fw = AgendaWizardDialogImpl(self.ctx.ServiceManager)
|
||||
fw.startWizard(self.ctx.ServiceManager)
|
||||
except Exception as e:
|
||||
print ("Wizard failure exception " + str(type(e)) +
|
||||
" message " + str(e) + " args " + str(e.args) +
|
||||
traceback.format_exc())
|
||||
|
||||
@classmethod
|
||||
def callRemote(self):
|
||||
#Call the wizard remotely(see README)
|
||||
try:
|
||||
ConnectStr = \
|
||||
"uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext"
|
||||
xLocMSF = Desktop.connect(ConnectStr)
|
||||
lw = AgendaWizardDialogImpl(xLocMSF)
|
||||
lw.startWizard(xLocMSF)
|
||||
except Exception as e:
|
||||
print ("Wizard failure exception " + str(type(e)) +
|
||||
" message " + str(e) + " args " + str(e.args) +
|
||||
traceback.format_exc())
|
||||
|
||||
def getImplementationName(self):
|
||||
return g_implName
|
||||
|
||||
def supportsService(self, ServiceName):
|
||||
return g_ImplementationHelper.supportsService(g_implName, ServiceName)
|
||||
|
||||
def getSupportedServiceNames(self):
|
||||
return g_ImplementationHelper.getSupportedServiceNames(g_implName)
|
||||
|
||||
g_ImplementationHelper.addImplementation( \
|
||||
CallWizard, # UNO object class
|
||||
g_implName, # implementation name
|
||||
("com.sun.star.task.Job",),) # list of implemented services
|
||||
# (the only service)
|
||||
|
||||
# vim:set shiftwidth=4 softtabstop=4 expandtab:
|
||||
@@ -0,0 +1,83 @@
|
||||
#
|
||||
# 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 .
|
||||
#
|
||||
|
||||
class TemplateConsts:
|
||||
FILLIN_TITLE = "<title>"
|
||||
FILLIN_TITLE = "<title>"
|
||||
FILLIN_DATE = "<date>"
|
||||
FILLIN_TIME = "<time>"
|
||||
FILLIN_LOCATION = "<location>"
|
||||
'''
|
||||
section name <b>prefix</b> for sections that contain items.
|
||||
this is also used as table name prefix, since each items section
|
||||
must contain a table whose name is identical name to the section's name.
|
||||
'''
|
||||
SECTION_ITEMS = "AGENDA_ITEMS"
|
||||
'''
|
||||
the name of the section which contains the topics.
|
||||
'''
|
||||
SECTION_TOPICS = "AGENDA_TOPICS"
|
||||
'''
|
||||
the name of the parent minutes section.
|
||||
'''
|
||||
SECTION_MINUTES_ALL = "MINUTES_ALL"
|
||||
'''
|
||||
the name of the child minutes section.
|
||||
This section will be duplicated for each topic.
|
||||
'''
|
||||
SECTION_MINUTES = "MINUTES"
|
||||
'''
|
||||
tagged headings and names.
|
||||
These will be searched in item tables (in the template) and will be
|
||||
replaced with resource strings.
|
||||
|
||||
headings...
|
||||
'''
|
||||
FILLIN_MEETING_TYPE = "<meeting-type>"
|
||||
FILLIN_BRING = "<bring>"
|
||||
FILLIN_READ = "<read>"
|
||||
FILLIN_NOTES = "<notes>"
|
||||
'''
|
||||
names...
|
||||
'''
|
||||
FILLIN_CALLED_BY = "<called-by>"
|
||||
FILLIN_FACILITATOR = "<facilitator>"
|
||||
FILLIN_PARTICIPANTS = "<attendees>"
|
||||
FILLIN_NOTETAKER = "<notetaker>"
|
||||
FILLIN_TIMEKEEPER = "<timekeeper>"
|
||||
FILLIN_OBSERVERS = "<observers>"
|
||||
FILLIN_RESOURCE_PERSONS = "<resource-persons>"
|
||||
|
||||
'''
|
||||
fillins for minutes.
|
||||
These will be searched in the minutes section and will be replaced
|
||||
with the appropriate data.
|
||||
'''
|
||||
FILLIN_MINUTES_TITLE = "<minutes-title>"
|
||||
FILLIN_MINUTES_LOCATION = "<minutes-location>"
|
||||
FILLIN_MINUTES_DATE = "<minutes-date>"
|
||||
FILLIN_MINUTES_TIME = "<minutes-time>"
|
||||
'''
|
||||
Minutes-topic fillins
|
||||
These will be searched in the minutes-child-section, and
|
||||
will be replaced with topic data.
|
||||
'''
|
||||
FILLIN_MINUTE_NUM = "<mnum>"
|
||||
FILLIN_MINUTE_TOPIC = "<mtopic>"
|
||||
FILLIN_MINUTE_RESPONSIBLE = "<mresponsible>"
|
||||
FILLIN_MINUTE_TIME = "<mtime>"
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user