summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/web
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/web')
-rw-r--r--wizards/com/sun/star/wizards/web/BackgroundsDialog.py194
-rw-r--r--wizards/com/sun/star/wizards/web/IconsDialog.py96
-rw-r--r--wizards/com/sun/star/wizards/web/ImageListDialog.py211
-rw-r--r--wizards/com/sun/star/wizards/web/StylePreview.py76
-rw-r--r--wizards/com/sun/star/wizards/web/WWD_Events.py937
-rw-r--r--wizards/com/sun/star/wizards/web/WWD_General.py258
-rw-r--r--wizards/com/sun/star/wizards/web/WWD_Startup.py661
-rw-r--r--wizards/com/sun/star/wizards/web/WWHID.py140
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizardConst.py39
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizardDialog.py713
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizardDialogResources.py298
-rw-r--r--wizards/com/sun/star/wizards/web/__init__.py0
12 files changed, 3623 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/web/BackgroundsDialog.py b/wizards/com/sun/star/wizards/web/BackgroundsDialog.py
new file mode 100644
index 000000000000..fad4a7c5c186
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/BackgroundsDialog.py
@@ -0,0 +1,194 @@
+from ImageListDialog import *
+from WWHID import HID_BG
+from common.SystemDialog import SystemDialog
+from common.FileAccess import FileAccess
+
+class BackgroundsDialog(ImageListDialog):
+
+ def __init__(self, xmsf, set_, resources):
+ super(BackgroundsDialog, self).__init__(xmsf, HID_BG,
+ (resources.resBackgroundsDialog,
+ resources.resBackgroundsDialogCaption,
+ resources.resOK,
+ resources.resCancel,
+ resources.resHelp,
+ resources.resDeselect,
+ resources.resOther,
+ resources.resCounter))
+ self.sd = SystemDialog.createOpenDialog(xmsf)
+ self.sd.addFilter(
+ resources.resImages, "*.jpg;*.jpeg;*.jpe;*.gif", True)
+ self.sd.addFilter(resources.resAllFiles, "*.*", False)
+ self.settings = set_.root
+ self.fileAccess = FileAccess(xmsf)
+ #COMMENTED
+ #self.il.setListModel(Model(set_))
+ self.il.imageSize = Size (40, 40)
+ #self.il.setRenderer(BGRenderer (0))
+ self.build()
+
+ '''
+ trigered when the user clicks the "other" button.
+ opens a "file open" dialog, adds the selected
+ image to the list and to the web wizard configuration,
+ and then jumps to the new image, selecting it in the list.
+ @see add(String)
+ '''
+
+ def other(self):
+ filename = self.sd.callOpenDialog(
+ False, self.settings.cp_DefaultSession.cp_InDirectory)
+ if filename != None and filename.length > 0 and filename[0] != None:
+ self.settings.cp_DefaultSession.cp_InDirectory = \
+ FileAccess.getParentDir(filename[0])
+ i = add(filename[0])
+ il.setSelected(i)
+ il.display(i)
+
+ '''
+ adds the given image to the image list (to the model)
+ and to the web wizard configuration.
+ @param s
+ @return
+ '''
+
+ def add(self, s):
+ #first i check the item does not already exists in the list...
+ i = 0
+ while i < il.getListModel().getSize():
+ if il.getListModel().getElementAt(i).equals(s):
+ return i
+
+ i += 1
+ il.getListModel().addElement(s)
+ try:
+ configView = Configuration.getConfigurationRoot(
+ self.xMSF, FileAccess.connectURLs(
+ WebWizardConst.CONFIG_PATH, "BackgroundImages"), True)
+ i = Configuration.getChildrenNames(configView).length + 1
+ o = Configuration.addConfigNode(configView, "" + i)
+ Configuration.set(s, "Href", o)
+ Configuration.commit(configView)
+ except Exception, ex:
+ ex.printStackTrace()
+
+ return il.getListModel().getSize() - 1
+
+ '''
+ an ImageList Imagerenderer implemtation.
+ The image URL is the object given from the list model.
+ the image name, got from the "render" method is
+ the filename portion of the url.
+ @author rpiterman
+ '''
+
+ class BGRenderer(object):
+
+ def __init__(self, cut_):
+ ImageListDialog.ImageListDialog_body()
+ self.cut = cut_
+
+ def getImageUrls(self, listItem):
+ if listItem != None:
+ sRetUrls = range(1)
+ sRetUrls[0] = listItem
+ return sRetUrls
+
+ return None
+
+ def render(self, _object):
+ if _object is None:
+ return ""
+ else:
+ return FileAccess.getPathFilename(
+ self.fileAccess.getPath(_object, None))
+
+ '''
+ This is a list model for the image list of the
+ backgrounds dialog.
+ It takes the Backgrounds config set as an argument,
+ and "parses" it to a list of files:
+ It goes through each image in the set, and checks it:
+ if it is a directory it lists all image files in this directory.
+ if it is a file, it adds the file to the list.
+ @author rpiterman
+ '''
+
+ class Model(object):
+ '''
+ constructor. </br>
+ see class description for a description of
+ the handling of the given model
+ @param model the configuration set of the background images.
+ '''
+
+ def __init__(self, model):
+ try:
+ i = 0
+ while i < model.getSize():
+ image = model.getElementAt(i)
+ path = self.sd.xStringSubstitution.substituteVariables(
+ image.cp_Href, False)
+ if self.fileAccess.exists(path, False):
+ addDir(path)
+ else:
+ remove(model.getKey(image))
+
+ i += 1
+ except Exception, ex:
+ ex.printStackTrace()
+
+ '''
+ when instanciating the model, it checks if each image
+ exists. If it doesnot, it will be removed from
+ the configuration.
+ This is what this method does...
+ @param imageName
+ '''
+
+ def remove(self, imageName):
+ try:
+ conf = Configuration.getConfigurationRoot(
+ self.xMSF, WebWizardConst.CONFIG_PATH + "/BackgroundImages",
+ True)
+ Configuration.removeNode(conf, imageName)
+ except Exception, ex:
+ ex.printStackTrace()
+
+ '''
+ if the given url is a directory
+ adds the images in the given directory,
+ otherwise (if it is a file) adds the file to the list.
+ @param url
+ '''
+
+ def addDir(self, url):
+ if self.fileAccess.isDirectory(url):
+ add(self.fileAccess.listFiles(url, False))
+ else:
+ add(url)
+
+ '''
+ adds the given filenames (urls) to
+ the list
+ @param filenames
+ '''
+
+ def add(self, filenames):
+ i = 0
+ while i < filenames.length:
+ add(filenames[i])
+ i += 1
+
+ '''
+ adds the given image url to the list.
+ if and only if it ends with jpg, jpeg or gif
+ (case insensitive)
+ @param filename image url.
+ '''
+
+ def add(self, filename):
+ lcase = filename.toLowerCase()
+ if lcase.endsWith("jpg") or lcase.endsWith("jpeg") or \
+ lcase.endsWith("gif"):
+ Model.this.addElement(filename)
diff --git a/wizards/com/sun/star/wizards/web/IconsDialog.py b/wizards/com/sun/star/wizards/web/IconsDialog.py
new file mode 100644
index 000000000000..cc9ef111dcef
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/IconsDialog.py
@@ -0,0 +1,96 @@
+from ImageListDialog import *
+from WWHID import HID_IS
+from common.FileAccess import FileAccess
+
+'''
+@author rpiterman
+The dialog class for choosing an icon set.
+This class simulates a model, though it does not functions really as one,
+since it does not cast events.
+It also implements the ImageList.ImageRenderer interface, to handle
+its own objects.
+'''
+
+class IconsDialog(ImageListDialog):
+
+ def __init__(self, xmsf, set_, resources):
+ super(IconsDialog, self).__init__(xmsf, HID_IS,
+ (resources.resIconsDialog,
+ resources.resIconsDialogCaption,
+ resources.resOK,
+ resources.resCancel,
+ resources.resHelp,
+ resources.resDeselect,
+ resources.resOther,
+ resources.resCounter))
+ self.htmlexpDirectory = FileAccess.getOfficePath2(
+ xmsf, "Gallery", "share", "")
+ self.icons = \
+ ["firs", "prev", "next", "last", "nav", "text", "up", "down"]
+ self.set = set_
+ self.objects = (self.set.getSize() * len(self.icons),)
+
+ self.il.listModel = self
+ self.il.renderer = self
+ self.il.rows = 4
+ self.il.cols = 8
+ self.il.ImageSize = Size (20, 20)
+ self.il.showButtons = False
+ self.il.rowSelect = True
+ self.il.scaleImages = False
+ self.showDeselectButton = True
+ self.showOtherButton = False
+ self.build()
+
+ def getIconset(self):
+ if getSelected() == None:
+ return None
+ else:
+ return self.set.getKey((getSelected()) / len(self.icons))
+
+ def setIconset(self, iconset):
+ #COMMENTED
+ icon = 0 #self.set.getIndexOf(self.set.getElement(iconset)) * len(self.icons)
+ aux = None
+ if icon >=0:
+ aux = self.objects[icon]
+ self.setSelected(aux)
+
+ def getSize(self):
+ return self.set.getSize() * len(self.icons)
+
+ def getElementAt(self, arg0):
+ return self.objects[arg0]
+
+ def getImageUrls(self, listItem):
+ i = (listItem).intValue()
+ iset = getIconsetNum(i)
+ icon = getIconNum(i)
+ sRetUrls = range(2)
+ sRetUrls[0] = self.htmlexpDirectory + "/htmlexpo/" \
+ + getIconsetPref(iset) + self.icons[icon] + getIconsetPostfix(iset)
+ sRetUrls[1] = sRetUrls[0]
+ return sRetUrls
+
+ def render(self, object):
+ if object == None:
+ return ""
+
+ i = (object).intValue()
+ iset = getIconsetNum(i)
+ return getIconset(iset).cp_Name
+
+ def getIconsetNum(self, i):
+ return i / self.icons.length
+
+ def getIconNum(self, i):
+ return i % self.icons.length
+
+ def getIconsetPref(self, iconset):
+ return getIconset(iconset).cp_FNPrefix
+
+ def getIconsetPostfix(self, iconset):
+ return getIconset(iconset).cp_FNPostfix
+
+ def getIconset(self, i):
+ return self.set.getElementAt(i)
diff --git a/wizards/com/sun/star/wizards/web/ImageListDialog.py b/wizards/com/sun/star/wizards/web/ImageListDialog.py
new file mode 100644
index 000000000000..d34f690594d4
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/ImageListDialog.py
@@ -0,0 +1,211 @@
+from ui.UnoDialog2 import *
+from ui.ImageList import ImageList
+from common.HelpIds import HelpIds
+
+from com.sun.star.awt import FontDescriptor
+from com.sun.star.awt.PushButtonType import OK, CANCEL, HELP, STANDARD
+from com.sun.star.awt import Size
+
+'''
+This class is a general implementation for a
+dialog which displays a choice of images.
+The model and the renderer are
+still abstract in this class.
+To use the class one should extend it,
+in the constructor then set the imageList
+properties (member name il) like image size, grid size,
+model renderer aso, and then call "build".
+This class uses a counter renderer which
+gets an expression which contains %START %END %TOTAL and replaces
+them with the actual numbers.
+<BR/>
+two buttons: "other" and "none" which are there
+to enable choosing images that are not in the list and
+"no image" respectivley, are optional, with default to True,
+so dialogs which do not need those, should set the corresponding
+members showDeselectButton and/or showOtherButton to false.
+<br/>
+the consturctor should recieve, among others, an Array of String resources
+see constructor documentation for details.
+
+@author rpiterman
+'''
+
+class ImageListDialog(UnoDialog2):
+ RES_TITLE = 0
+ RES_LABEL = 1
+ RES_OK = 2
+ RES_CANCEL = 3
+ RES_HELP = 4
+ RES_DESELECT = 5
+ RES_OTHER = 6
+ RES_COUNTER = 7
+ START = "%START"
+ END = "%END"
+ TOTAL = "%TOTAL"
+
+ '''
+ @param xmsf
+ @param resources_ a string array with the following strings :
+ dialog title, label text, ok, cancel, help, deselect, other.
+ <br/> if "deselect" and "other" are not displayed,
+ the array can also be shorter. but if "other" is displayed
+ and "deselect" not, both must be there :-(
+ '''
+
+ def __init__(self, xmsf, hid_, resources_):
+ super(ImageListDialog, self).__init__(xmsf)
+ self.hid = hid_
+ self.cutFilename = 0
+ self.showDeselectButton = True
+ self.showOtherButton = True
+ self.fontDescriptor1 = FontDescriptor()
+ self.resources = resources_
+ self.il = ImageList()
+ self.il.counterRenderer = self.ARenderer(
+ self.resources[ImageListDialog.RES_COUNTER])
+
+ '''
+ adds the controls to the dialog, depending on
+ the size of the image list.
+ This method should be called by subclasses after setting
+ the il ImageList member properties
+ '''
+
+ def build(self):
+ #set dialog properties...
+ ilWidth = (self.il.imageSize.Width + self.il.gap.Width) \
+ * self.il.cols + self.il.gap.Width
+ ilHeight = (self.il.imageSize.Height + self.il.gap.Height) \
+ * self.il.rows + self.il.gap.Height
+ dialogWidth = 6 + ilWidth + 6 + 50 + 6
+ dialogHeight = 3 + 16 + 3 + (ilHeight + 8 + 14) + 6
+ Helper.setUnoPropertyValues(
+ self.xDialogModel,
+ ("Closeable",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ "Moveable",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ "Title",
+ PropertyNames.PROPERTY_WIDTH),
+ (True, dialogHeight, HelpIds.getHelpIdString(self.hid), True,
+ "imgDialog", 59, 24, 1,
+ self.resources[ImageListDialog.RES_TITLE],dialogWidth))
+ #Set member- FontDescriptors...
+ self.fontDescriptor1.Weight = 150
+ PROPNAMES = ("DefaultButton",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ "PushButtonType",
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ iButtonsX = 6 + ilWidth + 6
+ self.btnOK = self.insertButton(
+ "btnOK", None, PROPNAMES,
+ (True, 14, HelpIds.getHelpIdString(self.hid + 3),
+ self.resources[ImageListDialog.RES_OK], "btnOK",
+ iButtonsX, 22, uno.Any("short", OK), 7, 50), self)
+ self.btnCancel = self.insertButton(
+ "btnCancel", None, PROPNAMES,
+ (False, 14, HelpIds.getHelpIdString(self.hid + 4),
+ self.resources[ImageListDialog.RES_CANCEL], "btnCancel",
+ iButtonsX, 41, uno.Any("short", CANCEL), 8, 50), self)
+ self.btnHelp = self.insertButton(
+ "btnHelp", None, PROPNAMES,
+ (False, 14, "", self.resources[ImageListDialog.RES_HELP],
+ "CommandButton3", iButtonsX, 71,
+ uno.Any("short", HELP), 9, 50), self)
+ if self.showOtherButton:
+ aux = 0
+ if self.showDeselectButton:
+ aux = 19
+ otherY = 22 + ilHeight - 14 - aux
+ self.btnOther = self.insertButton(
+ "btnOther", "other", PROPNAMES,
+ (False, 14, HelpIds.getHelpIdString(self.hid + 1),
+ self.resources[ImageListDialog.RES_OTHER], "btnOther",
+ iButtonsX, otherY,
+ uno.Any("short", STANDARD), 5, 50), self)
+
+ if self.showDeselectButton:
+ deselectY = 22 + ilHeight - 14
+ self.btnDeselect = self.insertButton(
+ "btnNoImage", "deselect", PROPNAMES,
+ (False, 14, HelpIds.getHelpIdString(self.hid + 2),
+ self.resources[ImageListDialog.RES_DESELECT], "btnNoImage",
+ iButtonsX, deselectY,
+ uno.Any("short", STANDARD), 4, 50), self)
+
+ self.il.step = 1
+ self.il.pos = Size(6, 22)
+ self.il.helpURL = self.hid + 5
+ self.il.tabIndex = 1
+ self.il.create(self)
+ self.lblTitle = self.insertLabel("lblTitle",
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor1, 8,
+ self.resources[ImageListDialog.RES_LABEL],
+ "lblTitle", 6, 6, 1, 4, 216))
+
+ '''
+ is called when the user clicks "none"
+ '''
+
+ def deselect(self):
+ self.il.setSelected(-1)
+
+ '''
+ @return the currently elected object.
+ '''
+
+ def getSelected(self):
+ return self.il.getSelectedObject()
+
+ '''
+ sets the currently selected object.
+ @param obj the object (out of the model) to be selected.
+ '''
+
+ def setSelected(self, obj):
+ self.il.setSelected(obj)
+ self.il.showSelected()
+
+ '''
+ The counter renderer, which uses a template.
+ The template replaces the Strings "%START", "%END" and
+ "%TOTAL" with the respective values.
+ @author rpiterman
+ '''
+ class ARenderer(object):
+
+ '''
+ @param aTempalte a template for this renderer.
+ The strings %START, %END ,%TOTAL will be replaced
+ with the actual values.
+ '''
+
+ def __init__(self, aTemplate):
+ self.template = aTemplate
+
+ def render(self, counter):
+ s = self.template.replace(ImageListDialog.START, "" + \
+ str(counter.start))
+ s = s.replace(ImageListDialog.END, "" + str(counter.end))
+ s = s.replace(ImageListDialog.TOTAL, "" + str(counter.max))
+ return s
diff --git a/wizards/com/sun/star/wizards/web/StylePreview.py b/wizards/com/sun/star/wizards/web/StylePreview.py
new file mode 100644
index 000000000000..1ad6f9561cda
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/StylePreview.py
@@ -0,0 +1,76 @@
+from common.FileAccess import FileAccess
+import traceback
+
+'''
+@author rpiterman
+the style preview, which is a OOo Document Preview in
+an Image Control.
+This class copies the files needed for this
+preview from the web wizard work directory
+to a given temporary directory, and updates them
+on request, according to the current style/background selection
+of the user.
+'''
+
+class StylePreview(object):
+
+ '''
+ copies the html file to the temp directory, and calculates the
+ destination names of the background and css files.
+ @param wwRoot is the root directory of the web wizard files (
+ usually [oo]/share/template/[lang]/wizard/web
+ '''
+
+ def __init__(self, xmsf, wwRoot_):
+ self.fileAccess = FileAccess(xmsf)
+ self.tempDir = self.createTempDir(xmsf)
+ self.htmlFilename = FileAccess.connectURLs(
+ self.tempDir, "wwpreview.html")
+ self.cssFilename = FileAccess.connectURLs(self.tempDir, "style.css")
+ self.backgroundFilename = FileAccess.connectURLs(
+ self.tempDir, "images/background.gif")
+ self.wwRoot = wwRoot_
+ self.fileAccess.copy(FileAccess.connectURLs(
+ self.wwRoot, "preview.html"), self.htmlFilename)
+
+ '''
+ copies the given style and background files to the temporary
+ directory.
+ @param style
+ @param background
+ @throws Exception
+ '''
+
+ def refresh(self, style, background):
+ css = FileAccess.connectURLs(self.wwRoot, "styles/" + style.cp_CssHref)
+ if background is None or background == "":
+ #delete the background image
+ if self.fileAccess.exists(self.backgroundFilename, False):
+ self.fileAccess.delete(self.backgroundFilename)
+ else:
+ # a solaris bug workaround
+ # TODO
+ #copy the background image to the temp directory.
+ self.fileAccess.copy(background, self.backgroundFilename)
+
+ #copy the actual css to the temp directory
+ self.fileAccess.copy(css, self.cssFilename)
+
+ def cleanup(self):
+ try:
+ self.fileAccess.delete(self.tempDir)
+ except Exception:
+ traceback.print_exc()
+
+ '''
+ creates a temporary directory.
+ @param xmsf
+ @return the url of the new directory.
+ @throws Exception
+ '''
+
+ def createTempDir(self, xmsf):
+ tempPath = FileAccess.getOfficePath2(xmsf, "Temp", "", "")
+ s = self.fileAccess.createNewDir(tempPath, "wwiz")
+ self.fileAccess.createNewDir(s, "images")
+ return s
diff --git a/wizards/com/sun/star/wizards/web/WWD_Events.py b/wizards/com/sun/star/wizards/web/WWD_Events.py
new file mode 100644
index 000000000000..e15d98a4eeaa
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WWD_Events.py
@@ -0,0 +1,937 @@
+import traceback
+from common.Desktop import Desktop
+from WWD_Startup import *
+from BackgroundsDialog import BackgroundsDialog
+from IconsDialog import IconsDialog
+
+'''
+This class implements the ui-events of the
+web wizard.
+it is therfore sorted to steps.
+not much application-logic here - just plain
+methods which react to events.
+The only exception are the finish methods with the save
+session methods.
+'''
+
+class WWD_Events(WWD_Startup):
+
+ iconsDialog = None
+ bgDialog = None
+
+ '''
+ He - my constructor !
+ I add a window listener, which, when
+ the window closes, deltes the temp directory.
+ '''
+
+ def __init__(self, xmsf):
+ super(WWD_Events, self).__init__(xmsf)
+ self.chkFTP.addKeyListener(None)
+ self.chkLocalDir.addKeyListener(None)
+ self.chkZip.addKeyListener(None)
+ self.currentSession = ""
+ self.exitOnCreate = True
+ self.time = 0
+ self.count = 0
+
+ @classmethod
+ def main(self, args):
+ ConnectStr = \
+ "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext"
+ try:
+ xmsf = Desktop.connect(ConnectStr)
+ ww = WWD_Events(xmsf)
+ ww.show()
+ ww.cleanup()
+ except Exception:
+ traceback.print_exc()
+
+ def leaveStep(self, nOldStep, nNewStep):
+ pass
+
+ def enterStep(self, old, newStep):
+ if old == 1:
+ sessionToLoad = ""
+ s = Helper.getUnoPropertyValue(lstLoadWWD_Startup.settings.Model, "SelectedItems")
+ if s.length == 0 or s[0] == 0:
+ sessionToLoad = ""
+ else:
+ sessionToLoad = \
+ WWD_Startup.settings.cp_SavedSessions.getElementAt(s[0]).cp_Name
+
+ if not sessionToLoad.equals(self.currentSession):
+ loadSession(sessionToLoad)
+
+ '''
+ **************
+ STEP 1
+ **************
+ '''
+
+ '''
+ Called from the Uno event dispatcher when the
+ user selects a saved session.
+ '''
+ def sessionSelected(self):
+ s = Helper.getUnoPropertyValue(getModel(lstLoadSettings), "SelectedItems")
+ setEnabled(btnDelSession, s.length > 0 and s[0] > 0)
+
+ '''
+ Ha ! the session should be loaded :-)
+ '''
+
+ def loadSession(self, sessionToLoad):
+ try:
+ sd = self.getStatusDialog()
+ #task = Task("LoadDocs", "", 10)
+ sd.execute(this, task, resources.resLoadingSession)
+ #task.start()
+ self.setSelectedDoc(WWD_Events.EMPTY_SHORT_ARRAY)
+ Helper.setUnoPropertyValue(
+ lstDocuments.Model, "SelectedItems", WWD_Events.EMPTY_SHORT_ARRAY)
+ Helper.setUnoPropertyValue(
+ lstDocuments.Model, "StringItemList", WWD_Events.EMPTY_STRING_ARRAY)
+ if not sessionToLoad:
+ view = Configuration.getConfigurationRoot(
+ xMSF, CONFIG_PATH + "/DefaultSession", False)
+ else:
+ view = Configuration.getConfigurationRoot(
+ xMSF, CONFIG_PATH + "/SavedSessions", False)
+ view = Configuration.getNode(sessionToLoad, view)
+
+ session = CGSession()
+ session.root = settings
+ session.readConfiguration(view, CONFIG_READ_PARAM)
+ #task.setMax(session.cp_Content.cp_Documents.getSize() * 5 + 7)
+ #task.advance(True)
+ if sessionToLoad == "":
+ setSaveSessionName(session)
+
+ mount(session, task, False, sd.self.xUnoDialog)
+ checkSteps()
+ self.currentSession = sessionToLoad
+ '''while task.getStatus() <= task.getMax():
+ task.advance(False)
+ task.removeTaskListener(sd)'''
+ except Exception, ex:
+ unexpectedError(ex)
+
+ try:
+ refreshStylePreview()
+ updateIconsetText()
+ except Exception, e:
+ # TODO Auto-generated catch block
+ e.printStackTrace()
+
+ '''
+ hmm. the user clicked the delete button.
+ '''
+
+ def delSession(self):
+ selected = Helper.getUnoPropertyValue(
+ lstLoadWWD_Startup.settings.Model, "SelectedItems")
+ if selected.length == 0:
+ return
+
+ if selected[0] == 0:
+ return
+
+ confirm = AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, resources.resDelSessionConfirm,
+ ErrorHandler.ERROR_QUESTION_NO)
+ if confirm:
+ try:
+ name = WWD_Startup.settings.cp_SavedSessions.getKey(selected[0])
+ # first delete the session from the registry/configuration.
+ Configuration.removeNode(
+ self.xMSF, CONFIG_PATH + "/SavedSessions", name)
+ # then delete WWD_Startup.settings.cp_SavedSessions
+ WWD_Startup.settings.cp_SavedSessions.remove(selected[0])
+ WWD_Startup.settings.savedSessions.remove(selected[0] - 1)
+ nextSelected = [0]
+ # We try to select the same item index again, if possible
+ if WWD_Startup.settings.cp_SavedSessions.getSize() > selected[0]:
+ nextSelected[0] = selected[0]
+ else:
+ # this will always be available because
+ # the user can not remove item 0.
+ nextSelected[0] = (short)(selected[0] - 1)
+ # if the <none> session will
+ # be selected, disable the remove button...
+ if nextSelected[0] == 0:
+ Helper.setUnoPropertyValue(
+ btnDelSession.Model,
+ PropertyNames.PROPERTY_ENABLED, False)
+ # select...
+
+ Helper.setUnoPropertyValue(
+ lstLoadWWD_Startup.settings.Model, "SelectedItems", nextSelected)
+
+ except Exception, ex:
+ ex.printStackTrace()
+ unexpectedError(ex)
+
+ '''
+ **************
+ STEP 2
+ **************
+ '''
+
+ '''
+ when the user clicks another document
+ in the listbox, this method is called,
+ and couses the display in
+ the textboxes title,description, author and export format
+ to change
+ '''
+
+ def setSelectedDoc(self, s):
+ oldDoc = self.getDoc([WWD_Startup.selectedDoc])
+ doc = self.getDoc(s)
+ if doc is None:
+ self.fillExportList([])
+ #I try to avoid refreshing the export list if
+ #the same type of document is chosen.
+ elif oldDoc is None or oldDoc.appType != doc.appType:
+ self.fillExportList(WWD_Startup.settings.getExporters(doc.appType))
+
+ WWD_Startup.selectedDoc = s
+ self.mountList(doc, self.docAware)
+ self.disableDocUpDown()
+
+ '''
+ The user clicks the "Add" button.
+ This will open a "FileOpen" dialog,
+ and, if the user chooses more than one file,
+ will open a status dialog, when validating each document.
+ '''
+
+ def addDocument(self):
+ try:
+ files = self.getDocAddDialog().callOpenDialog(
+ True, WWD_Startup.settings.cp_DefaultSession.cp_InDirectory)
+ if files is None:
+ return
+
+ task = None #Task("", "", len(files) * 5)
+ '''
+ If more than a certain number
+ of documents have been added,
+ open the status dialog.
+ '''
+ if (len(files) > MIN_ADD_FILES_FOR_DIALOG):
+ sd = self.getStatusDialog()
+ sd.setLabel(resources.resValidatingDocuments)
+ sd.execute(this, task, resources.prodName)
+ oLoadDocs = self.LoadDocs(self.xMSF, self.xUnoDialog, files, self)
+ oLoadDocs.loadDocuments()
+ #task.removeTaskListener(sd)
+ else:
+ '''
+ When adding a single document, do not use a
+ status dialog...
+ '''
+ oLoadDocs = self.LoadDocs(self.xMSF, self.xUnoDialog, files, self)
+ oLoadDocs.loadDocuments()
+ except Exception:
+ traceback.print_exc()
+
+ '''
+ The user clicked delete.
+ '''
+
+ def removeDocument(self):
+ if WWD_Startup.selectedDoc.length == 0:
+ return
+
+ WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.remove(
+ WWD_Startup.selectedDoc[0])
+ # update the selected document
+ while WWD_Startup.selectedDoc[0] >= getDocsCount():
+ WWD_Startup.selectedDoc[0] -= 1
+ # if there are no documents...
+ if WWD_Startup.selectedDoc[0] == -1:
+ WWD_Startup.selectedDoc = WWD_Events.EMPTY_SHORT_ARRAY
+ # update the list to show the right selection.
+
+ docListDA.updateUI()
+ # disables all the next steps, if the list of docuemnts
+ # is empty.
+ checkSteps()
+
+ '''
+ doc up.
+ '''
+
+ def docUp(self):
+ doc = WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.getElementAt(
+ WWD_Startup.selectedDoc[0])
+ WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.remove(
+ WWD_Startup.selectedDoc[0])
+ WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.add(
+ WWD_Startup.selectedDoc[0] - 1, doc)
+ docListDA.updateUI()
+ self.disableDocUpDown()
+
+ '''
+ doc down
+ '''
+
+ def docDown(self):
+ doc = WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.getElementAt(
+ WWD_Startup.selectedDoc[0])
+ WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.remove(
+ WWD_Startup.selectedDoc[0])
+ WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents.add(
+ (WWD_Startup.selectedDoc[0] + 1), doc)
+ docListDA.updateUI()
+ self.disableDocUpDown()
+
+ '''
+ **************
+ STEP 5
+ **************
+ '''
+
+ '''
+ the user clicked the "backgrounds" button
+ '''
+
+ def chooseBackground(self):
+ try:
+ self.setEnabled(self.btnBackgrounds, False)
+ if WWD_Events.bgDialog is None:
+ WWD_Events.bgDialog = BackgroundsDialog(
+ self.xMSF, WWD_Startup.settings.cp_BackgroundImages,
+ self.resources)
+ WWD_Events.bgDialog.createWindowPeer(self.xUnoDialog.Peer)
+
+ WWD_Events.bgDialog.setSelected(
+ WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage)
+ i = WWD_Events.bgDialog.executeDialogFromParent(self)
+ if i == 1:
+ #ok
+ setBackground(WWD_Events.bgDialog.getSelected())
+ except Exception:
+ traceback.print_exc()
+ finally:
+ self.setEnabled(btnBackgrounds, True)
+
+ '''
+ invoked when the BackgorundsDialog is "OKed".
+ '''
+
+ def setBackground(self, background):
+ if background == None:
+ background = ""
+
+ WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage \
+ = background
+ refreshStylePreview()
+
+ '''
+ is called when the user clicks "Icon sets" button.
+ '''
+
+ def chooseIconset(self):
+ try:
+ self.setEnabled(self.btnIconSets, False)
+ if WWD_Events.iconsDialog is None:
+ WWD_Events.iconsDialog = IconsDialog(
+ self.xMSF, WWD_Startup.settings.cp_IconSets,
+ self.resources)
+ WWD_Events.iconsDialog.createWindowPeer(self.xUnoDialog.Peer)
+
+ WWD_Events.iconsDialog.setIconset(
+ WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_IconSet)
+ i = WWD_Events.iconsDialog.executeDialogFromParent(self)
+ if i == 1:
+ #ok
+ self.setIconset(WWD_Events.iconsDialog.getIconset())
+ except Exception:
+ traceback.print_exc()
+ finally:
+ self.setEnabled(btnIconSets, True)
+
+ '''
+ invoked when the Iconsets Dialog is OKed.
+ '''
+
+ def setIconset(self, icon):
+ WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_IconSet = icon
+ updateIconsetText()
+
+ '''
+ **************
+ STEP 7
+ **************
+ '''
+
+ '''
+ sets the publishing url of either a local/zip or ftp publisher.
+ updates the ui....
+ '''
+ def setPublishUrl(self, publisher, url, number):
+ if url == None:
+ return None
+
+ p = getPublisher(publisher)
+ p.cp_URL = url
+ p.cp_Publish = True
+ updatePublishUI(number)
+ p.overwriteApproved = True
+ return p
+
+ '''
+ updates the ui of a certain publisher
+ (the text box url)
+ @param number
+ '''
+
+ def updatePublishUI(self, number):
+ (pubAware.get(number)).updateUI()
+ (pubAware.get(number + 1)).updateUI()
+ checkPublish()
+
+ '''
+ The user clicks the local "..." button.
+ '''
+
+ def setPublishLocalDir(self):
+ dir = showFolderDialog(
+ "Local destination directory", "",
+ WWD_Startup.settings.cp_DefaultSession.cp_OutDirectory)
+ #if ok was pressed...
+ setPublishUrl(LOCAL_PUBLISHER, dir, 0)
+
+ '''
+ The user clicks the "Configure" FTP button.
+ '''
+
+ def setFTPPublish(self):
+ if showFTPDialog(getPublisher(FTP_PUBLISHER)):
+ getPublisher
+ (FTP_PUBLISHER).cp_Publish = True
+ updatePublishUI(2)
+
+ '''
+ show the ftp dialog
+ @param pub
+ @return true if OK was pressed, otherwise false.
+ '''
+
+ def showFTPDialog(self, pub):
+ try:
+ return getFTPDialog(pub).execute(this) == 1
+ except Exception, ex:
+ ex.printStackTrace()
+ return False
+
+ '''
+ the user clicks the zip "..." button.
+ Choose a zip file...
+ '''
+
+ def setZipFilename(self):
+ sd = getZipDialog()
+ zipFile = sd.callStoreDialog(
+ WWD_Startup.settings.cp_DefaultSession.cp_OutDirectory,
+ resources.resDefaultArchiveFilename)
+ setPublishUrl(ZIP_PUBLISHER, zipFile, 4)
+ getPublisher
+ (ZIP_PUBLISHER).overwriteApproved = True
+
+ '''
+ the user clicks the "Preview" button.
+ '''
+
+ def documentPreview(self):
+ try:
+ if self.docPreview == None:
+ self.docPreview = TOCPreview(
+ self.xMSF, settings, resources,
+ stylePreview.tempDir, myFrame)
+
+ self.docPreview.refresh(settings)
+ except Exception, ex:
+ unexpectedError(ex)
+
+ '''
+ **************
+ FINISH
+ **************
+ '''
+
+ '''
+ This method checks if the given target's path,
+ added the pathExtension argument, exists,
+ and asks the user what to do about it.
+ If the user says its all fine, then the target will
+ be replaced.
+ @return true if "create" should continue. false if "create" should abort.
+ '''
+ def publishTargetApproved(self):
+ result = True
+ # 1. check local publish target
+ p = getPublisher(LOCAL_PUBLISHER)
+ # should publish ?
+ if (p.cp_Publish):
+ path = getFileAccess().getPath(p.url, None)
+ # target exists?
+ if getFileAccess().exists(p.url, False):
+ #if its a directory
+ if getFileAccess().isDirectory(p.url):
+ #check if its empty
+ files = getFileAccess().listFiles(p.url, True)
+ if files.length > 0:
+ '''
+ it is not empty :-(
+ it either a local publisher or an ftp
+ (zip uses no directories as target...)
+ '''
+ message = resources.resLocalTragetNotEmpty.replace(
+ "%FILENAME", path)
+ result = AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.MESSAGE_WARNING,
+ ErrorHandler.BUTTONS_YES_NO, ErrorHandler.DEF_NO,
+ ErrorHandler.RESULT_YES)
+ if not result:
+ return result
+
+ else:
+ #not a directory, but still exists
+ message = resources.resLocalTargetExistsAsfile.replace(
+ "%FILENAME", path)
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+
+ # try to write to the path...
+ else:
+ # the local target directory does not exist.
+ message = resources.resLocalTargetCreate.replace(
+ "%FILENAME", path)
+ try:
+ result = AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_QUESTION_YES)
+ except Exception, ex:
+ ex.printStackTrace()
+
+ if not result:
+ return result
+ # try to create the directory...
+
+ try:
+ getFileAccess().fileAccess.createFolder(p.cp_URL)
+ except Exception, ex:
+ message = resources.resLocalTargetCouldNotCreate.replace(
+ "%FILENAME", path)
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+
+ p = getPublisher(ZIP_PUBLISHER)
+ if p.cp_Publish:
+ path = getFileAccess().getPath(p.cp_URL, None)
+ # target exists?
+ if getFileAccess().exists(p.cp_URL, False):
+ #if its a directory
+ if getFileAccess().isDirectory(p.cp_URL):
+ message = resources.resZipTargetIsDir.replace(
+ "%FILENAME", path)
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+ else:
+ #not a directory, but still exists ( a file...)
+ if not p.overwriteApproved:
+ message = resources.resZipTargetExists.replace(
+ "%FILENAME", path)
+ result = AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_QUESTION_YES)
+ if not result:
+ return False
+ # 3. check FTP
+
+ p = getPublisher(FTP_PUBLISHER)
+ # should publish ?
+ if p.cp_Publish:
+ path = getFileAccess().getPath(p.cp_URL, None)
+ # target exists?
+ if getFileAccess().exists(p.url, False):
+ #if its a directory
+ if getFileAccess().isDirectory(p.url):
+ #check if its empty
+ files = getFileAccess().listFiles(p.url, True)
+ if files.length > 0:
+ '''
+ it is not empty :-(
+ it either a local publisher or an ftp
+ (zip uses no directories as target...)
+ '''
+ message = resources.resFTPTargetNotEmpty.replace(
+ "%FILENAME", path)
+ result = AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_QUESTION_CANCEL)
+ if not result:
+ return result
+
+ else:
+ #not a directory, but still exists (as a file)
+ message = resources.resFTPTargetExistsAsfile.replace(
+ "%FILENAME", path)
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+
+ # try to write to the path...
+ else:
+ # the ftp target directory does not exist.
+ message = resources.resFTPTargetCreate.replace(
+ "%FILENAME", path)
+ result = AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_QUESTION_YES)
+ if not result:
+ return result
+ # try to create the directory...
+
+ try:
+ getFileAccess().fileAccess.createFolder(p.url)
+ except Exception, ex:
+ message = resources.resFTPTargetCouldNotCreate.replace(
+ "%FILENAME", path)
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message,
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+
+ return True
+
+ '''
+ return false if "create" should be aborted. true if everything is fine.
+ '''
+
+ def saveSession(self):
+ try:
+ node = None
+ name = getSessionSaveName()
+ #set documents index field.
+ docs = WWD_Startup.settings.cp_DefaultSession.cp_Content.cp_Documents
+ i = 0
+ while i < docs.getSize():
+ (docs.getElementAt(i)).cp_Index = i
+ i += 1
+ conf = Configuration.getConfigurationRoot(
+ self.xMSF, CONFIG_PATH + "/SavedSessions", True)
+ # first I check if a session with the given name exists
+ try:
+ node = Configuration.getNode(name, conf)
+ if node != None:
+ if not AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer,
+ resources.resSessionExists.replace("${NAME}", name),
+ ErrorHandler.ERROR_NORMAL_IGNORE):
+ return False
+ #remove the old session
+
+ Configuration.removeNode(conf, name)
+ except NoSuchElementException, nsex:
+ traceb
+
+ WWD_Startup.settings.cp_DefaultSession.cp_Index = 0;
+ node = Configuration.addConfigNode(conf, name)
+ WWD_Startup.settings.cp_DefaultSession.cp_Name = name;
+ WWD_Startup.settings.cp_DefaultSession.writeConfiguration(
+ node, CONFIG_READ_PARAM)
+ WWD_Startup.settings.cp_SavedSessions.reindexSet(conf, name, "Index")
+ Configuration.commit(conf)
+ # now I reload the sessions to actualize the list/combo
+ # boxes load/save sessions.
+ WWD_Startup.settings.cp_SavedSessions.clear()
+ confView = Configuration.getConfigurationRoot(
+ self.xMSF, CONFIG_PATH + "/SavedSessions", False)
+ WWD_Startup.settings.cp_SavedSessions.readConfiguration(
+ confView, CONFIG_READ_PARAM)
+ WWD_Startup.settings.cp_LastSavedSession = name;
+ self.currentSession = name
+ # now save the name of the last saved session...
+ WWD_Startup.settings.cp_LastSavedSession = name;
+ # TODO add the <none> session...
+ prepareSessionLists()
+ ListModelBinder.fillList(
+ lstLoadSettings, WWD_Startup.settings.cp_SavedSessions.items(), None)
+ ListModelBinder.fillComboBox(
+ cbSaveSettings, WWD_Startup.settings.savedSessions.items(), None)
+ selectSession()
+ self.currentSession = WWD_Startup.settings.cp_LastSavedSession
+ return True
+ except Exception, ex:
+ ex.printStackTrace()
+ return False
+
+ def targetStringFor(self, publisher):
+ p = getPublisher(publisher)
+ if p.cp_Publish:
+ return "\n" + getFileAccess().getPath(p.cp_URL, None)
+ else:
+ return ""
+
+ '''
+ this method will be called when the Status Dialog
+ is hidden.
+ It checks if the "Process" was successfull, and if so,
+ it closes the wizard dialog.
+ '''
+
+ def finishWizardFinished(self):
+ if self.process.getResult():
+ targets = targetStringFor(LOCAL_PUBLISHER) + \
+ targetStringFor(ZIP_PUBLISHER) + \
+ targetStringFor(FTP_PUBLISHER)
+ message = resources.resFinishedSuccess.replace(
+ "%FILENAME", targets)
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_MESSAGE)
+ if self.exitOnCreate:
+ self.xDialog.endExecute()
+
+ else:
+ AbstractErrorHandler.showMessage(
+ self.xMSF, self.xUnoDialog.Peer, resources.resFinishedNoSuccess,
+ ErrorHandler.ERROR_WARNING)
+
+ def cancel(self):
+ xDialog.endExecute()
+
+ '''
+ the user clicks the finish/create button.
+ '''
+
+ def finishWizard(self):
+ finishWizard(True)
+ return True
+
+ '''
+ finish the wizard
+ @param exitOnCreate_ should the wizard close after
+ a successfull create.
+ Default is true,
+ I have a hidden feature which enables false here
+ '''
+
+ def finishWizard(self, exitOnCreate_):
+ self.exitOnCreate = exitOnCreate_
+ '''
+ First I check if ftp password was set, if not - the ftp dialog pops up
+ This may happen when a session is loaded, since the
+ session saves the ftp url and username, but not the password.
+ '''
+ p = getPublisher(FTP_PUBLISHER)
+ # if ftp is checked, and no proxies are set, and password is empty...
+ if p.cp_Publish and not proxies and p.password == None or \
+ p.password == "":
+ if showFTPDialog(p):
+ updatePublishUI(2)
+ #now continue...
+ finishWizard2()
+
+ else:
+ finishWizard2()
+
+ '''
+ this method is only called
+ if ftp-password was eather set, or
+ the user entered one in the FTP Dialog which
+ popped up when clicking "Create".
+ '''
+
+ def finishWizard2(self):
+ p = getPublisher(LOCAL_PUBLISHER)
+ p.url = p.cp_URL
+ '''
+ zip publisher is using another url form...
+ '''
+ p = getPublisher(ZIP_PUBLISHER)
+ #replace the '%' with '%25'
+ url1 = JavaTools.replaceSubString(p.cp_URL, "%25", "%")
+ #replace all '/' with '%2F'
+ url1 = JavaTools.replaceSubString(url1, "%2F", "/")
+ p.url = "vnd.sun.star.zip:#" + url1 + "/";
+ '''
+ and now ftp...
+ '''
+ p = getPublisher(FTP_PUBLISHER)
+ p.url = FTPDialog.getFullURL(p);
+ ''' first we check the publishing targets. If they exist we warn and
+ ask what to do. a False here means the user said "cancel"
+ (or rather:clicked)
+ '''
+ if not publishTargetApproved():
+ return
+ '''
+ In order to save the session correctly,
+ I return the value of the ftp publisher cp_Publish
+ property to its original value...
+ '''
+
+ p.cp_Publish = __ftp;
+ #if the "save settings" checkbox is on...
+
+ if isSaveSession():
+ # if canceled by user
+ if not saveSession():
+ return
+
+ else:
+ WWD_Startup.settings.cp_LastSavedSession = ""
+
+ try:
+ conf = Configuration.getConfigurationRoot(xMSF, CONFIG_PATH, True)
+ Configuration.set(
+ WWD_Startup.settings.cp_LastSavedSession, "LastSavedSession", conf)
+ Configuration.commit(conf)
+ except Exception, ex:
+ ex.printStackTrace()
+
+ '''
+ again, if proxies are on, I disable ftp before the creation process
+ starts.
+ '''
+ if proxies:
+ p.cp_Publish = False
+ '''
+ There is currently a bug, which crashes office when
+ writing folders to an existing zip file, after deleting
+ its content, so I "manually" delete it here...
+ '''
+
+ p = getPublisher(ZIP_PUBLISHER)
+ if getFileAccess().exists(p.cp_URL, False):
+ getFileAccess().delete(p.cp_URL)
+
+ try:
+ eh = ProcessErrorHandler(xMSF, self.xUnoDialog.Peer, resources)
+ self.process = Process(settings, xMSF, eh)
+ pd = getStatusDialog()
+ pd.setRenderer(ProcessStatusRenderer (resources))
+ pd.execute(self, self.process.myTask, resources.prodName)
+ #process,
+ self.process.runProcess()
+ finishWizardFinished()
+ self.process.myTask.removeTaskListener(pd)
+ except Exception, ex:
+ ex.printStackTrace()
+
+ '''
+ is called on the WindowHidden event,
+ deletes the temporary directory.
+ '''
+
+ def cleanup(self):
+ try:
+ self.dpStylePreview.dispose()
+ self.stylePreview.cleanup()
+
+ if WWD_Events.bgDialog is not None:
+ WWD_Events.bgDialog.xComponent.dispose()
+
+ if WWD_Events.iconsDialog is not None:
+ WWD_Events.iconsDialog.xComponent.dispose()
+
+ if ftpDialog is not None:
+ ftpDialog.xComponent.dispose()
+
+ xComponent.dispose()
+
+ if ProcessStatusRenderer is not None:
+ ProcessStatusRenderer.close(False)
+
+ except Exception, ex:
+ traceback.print_exc()
+
+ class LoadDocs(object):
+
+ def __init__(self,xmsf, xC_, files_, parent_):
+ self.xMSF = xmsf
+ self.xC = xC_
+ self.files = files_
+ self.parent = parent_
+
+ def loadDocuments(self):
+ if len(WWD_Startup.selectedDoc) > 0:
+ offset = WWD_Startup.selectedDoc[0] + 1
+ else:
+ offset = WWD_General.getDocsCount()
+
+ '''
+ if the user chose one file, the list starts at 0,
+ if he chose more than one, the first entry is a directory name,
+ all the others are filenames.
+ '''
+ if len(self.files) > 1:
+ start = 1
+ else:
+ start = 0
+
+ #Number of documents failed to validate.
+ failed = 0
+
+ # store the directory
+ if start == 1:
+ WWD_General.settings.cp_DefaultSession.cp_InDirectory = files[0]
+ else:
+ WWD_General.settings.cp_DefaultSession.cp_InDirectory = \
+ FileAccess.getParentDir(self.files[0])
+
+ '''
+ Here i go through each file, and validate it.
+ If its ok, I add it to the ListModel/ConfigSet
+ '''
+
+ for i in xrange(start, len(self.files)):
+ doc = CGDocument()
+
+ if start == 0:
+ doc.cp_URL = self.files[i]
+ else:
+ doc.cp_URL = FileAccess.connectURLs(files[0], files[i])
+
+ '''
+ so - i check each document and if it is ok I add it.
+ The failed variable is used only to calculate the place to add -
+ Error reporting to the user is (or should (-: )
+ done in the checkDocument(...) method
+ '''
+ if WWD_Startup.checkDocument(self.xMSF, doc, None, self.xC):
+ WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.add(
+ offset + i - failed - start, doc)
+ else:
+ failed += 1
+
+ # if any documents where added,
+ # set the first one to be the current-selected document.
+ if len(self.files) > start + failed:
+ self.parent.setSelectedDoc([offset])
+
+ # update the ui...
+ self.parent.docListDA.updateUI();
+ # this enables/disables the next steps.
+ # when no documents in the list, all next steps are disabled
+ self.parent.checkSteps()
+ '''
+ a small insurance that the status dialog will
+ really close...
+ '''
+
+ #while (self.task.getStatus() < self.task.getMax()):
+ # self.task.advance(false)
diff --git a/wizards/com/sun/star/wizards/web/WWD_General.py b/wizards/com/sun/star/wizards/web/WWD_General.py
new file mode 100644
index 000000000000..6fbb0dcd8c1e
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WWD_General.py
@@ -0,0 +1,258 @@
+from WebWizardDialog import *
+from common.SystemDialog import SystemDialog
+from ui.event.ListModelBinder import ListModelBinder
+
+'''
+@author rpiterman
+This class implements general methods, used by different sub-classes
+(either WWD_Sturtup, or WWD_Events) or both.
+'''
+
+class WWD_General(WebWizardDialog):
+
+ settings = None
+
+ def __init__(self, xmsf):
+ super(WWD_General, self).__init__(xmsf)
+ self.xStringSubstitution = SystemDialog.createStringSubstitution(xmsf)
+
+ def getStatusDialog(self):
+ statusDialog = StatusDialog(
+ self.xMSF, StatusDialog.STANDARD_WIDTH,
+ self.resources.resLoadingSession, False,
+ [self.resources.prodName, "", "", "", "", ""],
+ HelpIds.getHelpIdString(HID0_STATUS_DIALOG))
+ try:
+ statusDialog.createWindowPeer(xControl.Peer)
+ except Exception:
+ traceback.print_exc()
+
+ return statusDialog
+
+ '''
+ File Dialog methods
+ '''
+
+ def getDocAddDialog(self):
+ self.docAddDialog = SystemDialog.createOpenDialog(self.xMSF)
+ for i in xrange(WWD_General.settings.cp_Filters.getSize()):
+ f = WWD_General.settings.cp_Filters.getElementAt(i)
+ if f is not None:
+ self.docAddDialog.addFilter(
+ f.cp_Name.replace("%PRODNAME", self.resources.prodName),
+ f.cp_Filter, i == 0)
+ return self.docAddDialog
+
+ def getZipDialog(self):
+ if self.zipDialog is None:
+ self.zipDialog = SystemDialog.createStoreDialog(xMSF)
+ self.zipDialog.addFilter(self.resources.resZipFiles, "*.zip", True)
+
+ return self.zipDialog
+
+ def getFTPDialog(self, pub):
+ if self.ftpDialog is None:
+ try:
+ self.ftpDialog = FTPDialog.FTPDialog_unknown(xMSF, pub)
+ self.ftpDialog.createWindowPeer(xControl.getPeer())
+ except Exception:
+ traceback.print_exc()
+
+ return self.ftpDialog
+
+ def showFolderDialog(self, title, description, dir):
+ if self.folderDialog is None:
+ self.folderDialog = SystemDialog.createFolderDialog(xMSF)
+
+ return self.folderDialog.callFolderDialog(title, description, dir)
+
+ '''
+ returns the document specified
+ by the given short array.
+ @param s
+ @return
+ '''
+
+ @classmethod
+ def getDoc(self, s):
+ if len(s) == 0:
+ return None
+ elif WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() <= s[0]:
+ return None
+ else:
+ return \
+ WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.childrenList[s[0]]
+
+ '''
+ how many documents are in the list?
+ @return the number of documents in the docs list.
+ '''
+
+ @classmethod
+ def getDocsCount(self):
+ return WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.getSize()
+
+ '''
+ fills the export listbox.
+ @param listContent
+ '''
+
+ def fillExportList(self, listContent):
+ ListModelBinder.fillList(self.lstDocTargetType, listContent, None)
+
+ '''
+ returns a publisher object for the given name
+ @param name one of the WebWizardConst constants : FTP
+ @return
+ '''
+
+ def getPublisher(self, name):
+ return WWD_General.settings.cp_DefaultSession.cp_Publishing.getElement(name)
+
+ '''
+ @return true if the checkbox "save session" is checked.
+ '''
+
+ def isSaveSession(self):
+ return int(Helper.getUnoPropertyValue(
+ chkSaveSettings.Model, PropertyNames.PROPERTY_STATE) == 1)
+
+ '''
+ @return the name to save the session (step 7)
+ '''
+
+ def getSessionSaveName(self):
+ return Helper.getUnoPropertyValue(getModel(cbSaveSettings), "Text")
+
+ '''
+ This method checks the status of the wizards and
+ enables or disables the 'next' and the 'create' button.
+ '''
+
+ def checkSteps(self):
+ '''
+ first I check the document list.
+ If it is empty, then step3 and on are disabled.
+ '''
+ if self.checkDocList():
+ self.checkPublish()
+
+ '''
+ enables/disables the steps 3 to 7)
+ @param enabled true = enabled, false = disabled.
+ '''
+
+ def enableSteps(self, enabled):
+ if not enabled and not self.isStepEnabled(3):
+ #disbale steps 3-7
+ return
+
+ for i in xrange(3,8):
+ self.setStepEnabled(i, enabled, True)
+ '''
+ in this place i just disable the finish button.
+ later, in the checkPublish, which is only performed if
+ this one is true, it will be enabled (if the check
+ is positive)
+ '''
+
+ if not enabled:
+ self.enableFinishButton(False)
+
+ '''
+ Checks if the documents list is
+ empty. If it is, disables the steps 3-7, and the
+ create button.
+ @return
+ '''
+
+ def checkDocList(self):
+ if WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() \
+ == 0:
+ self.enableSteps(False)
+ return False
+ else:
+ self.enableSteps(True)
+ return True
+
+ '''
+ check if the save-settings input is ok.
+ (eather the checkbox is unmarked, or,
+ if it is marked, a session name exists.
+ '''
+
+ def checkSaveSession(self):
+ return (not isSaveSession() or not getSessionSaveName() == "")
+
+ '''
+ @return false if this publisher is not active, or, if it
+ active, returns true if the url is not empty...
+ if the url is empty, throws an exception
+ '''
+
+ def checkPublish2(self, s, text, _property):
+ p = self.getPublisher(s)
+ if p.cp_Publish:
+ url = Helper.getUnoPropertyValue(text.Model, _property)
+ if url is None or url == "":
+ raise IllegalArgumentException ()
+ else:
+ return True
+
+ else:
+ return False
+
+ '''
+
+ @return false either if publishing input is wrong or there
+ are no publishing targets chosen. returns true when at least
+ one target is chosen, *and* all
+ which are chosen are legal.
+ If proxies are on, ftp publisher is ignored.
+ '''
+
+ def checkPublish_(self):
+ try:
+ return \
+ self.checkPublish2(LOCAL_PUBLISHER, self.txtLocalDir, "Text") \
+ or (not self.proxies and self.checkPublish(
+ FTP_PUBLISHER, lblFTP, PropertyNames.PROPERTY_LABEL) \
+ or self.checkPublish2(ZIP_PUBLISHER, self.txtZip, "Text")) \
+ and self.checkSaveSession()
+ except IllegalArgumentException, ex:
+ return False
+
+ '''
+ This method checks if the publishing
+ input is ok, and enables and disables
+ the 'create' button.
+ public because it is called from
+ an event listener object.
+ '''
+
+ def checkPublish(self):
+ self.enableFinishButton(self.checkPublish_())
+
+ '''
+ shows a message box "Unexpected Error... " :-)
+ @param ex
+ '''
+
+ def unexpectedError(self, ex):
+ ex.printStackTrace()
+ peer = xControl.getPeer()
+ AbstractErrorHandler.showMessage(
+ self.xMSF, peer, self.resources.resErrUnexpected,
+ ErrorHandler.ERROR_PROCESS_FATAL)
+
+ '''
+ substitutes path variables with the corresponding values.
+ @param path a path, which might contain OOo path variables.
+ @return the path, after substituing path variables.
+ '''
+
+ def substitute(self, path):
+ try:
+ return self.xStringSubstitution.substituteVariables(path, False)
+ except Exception, ex:
+ return path
diff --git a/wizards/com/sun/star/wizards/web/WWD_Startup.py b/wizards/com/sun/star/wizards/web/WWD_Startup.py
new file mode 100644
index 000000000000..86d0091fc752
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WWD_Startup.py
@@ -0,0 +1,661 @@
+from WWD_General import *
+from common.Configuration import Configuration
+from common.FileAccess import FileAccess
+from data.CGSettings import CGSettings
+from data.CGSessionName import CGSessionName
+from ui.event.ListModelBinder import ListModelBinder
+from ui.event.UnoDataAware import UnoDataAware
+from ui.event.RadioDataAware import RadioDataAware
+from data.CGDocument import CGDocument
+from ui.DocumentPreview import DocumentPreview
+from StylePreview import StylePreview
+from ui.event.DataAware import DataAware
+
+from com.sun.star.lang import IllegalArgumentException
+
+'''
+Web Wizard Dialog implementation : Startup.
+This class contains the startup implementation and session mounting methods.
+<h2> Data Aware Concept </h2>
+<p> I use DataAware objects, which synchronize
+UI and Data. A DataAware object a kind of interface
+between a Value and a UI element.
+</P>
+<p>
+A Value is either a JavaBean property with
+a Getter and a Setter or a public class Memeber.
+</P>
+When the UI Control changes, the Value changes correspondingly.
+This depends on WWD_General.settings a Listener which calls the updateData()
+method od the DataAware object.
+When the Value changes, the UI Control changes respopndingly.
+This also depends on WWD_General.settings a Listener which calls the updateUI
+method of the DataAware object.
+</P>
+<P>
+here I use only UI Listeners, and keep calling
+the updateUI() method whenever I change the Value.
+</P>
+To contain the Data, I use the Configuration Data Objects
+which read themselfs out of the Configuration. they are all located under
+the data package.
+<p/>
+Different groups of DataAware objects are grouped into vectors.
+Each group (all elements of a vector) uses the same DataObject,
+so when I change the underlying dataObject, I change the whole vector's
+DataObject, thus actualizing UI.<br/>
+This is what happends when a session loads: I Load the session into
+a tree of DataObjects, and change the DataAware's DataObject. <br/>
+One could also look at this as a kind of "View-Model" relationship.
+The controls are the View, The DataObjects are the Model, containing the
+Data rad directly from the configuration, and the DataAware objects
+are the controller inbetween.
+
+@author rpiterman
+'''
+
+class WWD_Startup(WWD_General):
+
+ selectedDoc = ()
+
+ '''
+ He - my constructor !
+ I call/do here in this order: <br/>
+ Check if ftp http proxy is set, and warn user he can not use
+ ftp if it is.<br/>
+ draw NaviBar and steps 1 to 7, incl. Step X,
+ which is the Layouts ImageList on step 3.<br/>
+ load the WWD_General.settings from the configuration. <br/>
+ set the default save session name to the first
+ available one (sessionX or something like that). <br/>
+ set the Layouts ImageList ListModel, and call
+ its "create()" method. <br/>
+ check the content (documents) specified in the default session.<br/>
+ fill the list boxes (saved sessions, styles, combobox save session). <br/>
+ make data aware. <br/>
+ updateUI (refreshes the display to crrespond to the data in
+ the default session.)<br/>
+ fill the documents listbox. <br/>
+ if proxies are set, disable the ftp controls in step 7.
+ '''
+
+ def __init__(self, xmsf):
+ super(WWD_Startup, self).__init__(xmsf)
+ self.sda = None
+ self.docAware = []
+ self.designAware = []
+ self.genAware = []
+ self.pubAware = []
+ self.proxies = self.getOOProxies()
+ soTemplateDir = FileAccess.getOfficePath2(
+ xmsf, "Template", "share", "/wizard")
+ exclamationURL = FileAccess.connectURLs(
+ soTemplateDir, "../wizard/bitmap/caution_16.png")
+ self.drawNaviBar()
+ self.buildStep1()
+ self.buildStep2()
+ self.buildStep3()
+ self.buildStep4()
+ self.buildStep5()
+ self.buildStep6()
+ self.buildStep7(self.proxies, exclamationURL)
+ self.buildStepX()
+ self.xMSF = xmsf
+ xDesktop = Desktop.getDesktop(xmsf)
+ self.myFrame = OfficeDocument.createNewFrame(xmsf, self)
+ doc = OfficeDocument.createNewDocument(
+ self.myFrame, "swriter", False, True)
+ self.loadSettings(doc)
+ self.setSaveSessionName(WWD_General.settings.cp_DefaultSession)
+ self.ilLayouts.listModel = WWD_General.settings.cp_Layouts
+ self.ilLayouts.create(self)
+ #COMMENTED
+ self.checkContent(WWD_General.settings.cp_DefaultSession.cp_Content, None, self.xUnoDialog)
+ #saved sessions, styles, combobox save session.
+ # also set the chosen saved session...
+ self.fillLists()
+ self.makeDataAware()
+
+ self.updateUI()
+
+ # fill the documents listbox.
+ self.fillDocumentList(self.settings.cp_DefaultSession.cp_Content)
+
+ if self.proxies:
+ self.setEnabled(btnFTP, False)
+ self.setEnabled(chkFTP, False)
+
+ '''
+ return true if http proxies or other proxies
+ which do not enable ftp to function correctly are set.
+ @return true if (http) proxies are on.
+ @throws Exception
+ '''
+
+ def getOOProxies(self):
+ node = Configuration.getConfigurationRoot(
+ self.xMSF, "org.openoffice.Inet/Settings", False)
+ i = int(node.getByName("ooInetProxyType"))
+ if i== 0:
+ #no proxies
+ return False
+ elif i == 2:
+ #http proxies
+ return True
+ else:
+ return True
+
+ '''
+ calculates the first available session name,
+ and sets the current session name to it.
+ The combobox text in step 7 will be updated
+ automatically when updateUI() is called.
+ '''
+
+ def setSaveSessionName(self, session):
+ maxValue = 0
+ length = self.resources.resSessionName
+ # traverse between the sessions and find the one that
+ # has the biggest number.
+ for i in xrange(WWD_General.settings.cp_SavedSessions.getSize()):
+ sessionName = \
+ WWD_General.settings.cp_SavedSessions.getElementAt(i).cp_Name
+ if sessionName.startswith(self.resources.resSessionName):
+ maxValue = max(maxValue, int(sessionName[length:]))
+
+ '''
+ fills the road map, and sets the necessary properties,
+ like MaxStep, Complete, Interactive-
+ Disables the finbihButton.
+ '''
+
+ def addRoadMapItems(self):
+ self.insertRoadMapItems(
+ [True, True, False, False, False, False, False],
+ [self.resources.resStep1, self.resources.resStep2,
+ self.resources.resStep3, self.resources.resStep4,
+ self.resources.resStep5, self.resources.resStep6,
+ self.resources.resStep7])
+ self.setRoadmapInteractive(True)
+ self.setRoadmapComplete(True)
+ self.setCurrentRoadmapItemID(1)
+ self.nMaxStep = 7
+ self.enableFinishButton(False)
+
+ '''
+ This method goes through all
+ the DataAware vectors and objects and
+ calls their updateUI() method.
+ In response, the UI is synchronized to
+ the state of the corresponding data objects.
+ '''
+ def updateUI(self):
+ DataAware.updateUIs(self.designAware)
+ DataAware.updateUIs(self.genAware)
+ DataAware.updateUIs(self.pubAware)
+ self.sessionNameDA.updateUI()
+ self.checkPublish()
+
+ '''
+ create the peer, add roadmap,
+ add roadmap items, add style-preview,
+ disable the steps 3 to 7 if no documents are
+ on the list, and... show the dialog!
+ '''
+
+ def show(self):
+ try:
+ xContainerWindow = self.myFrame.getComponentWindow()
+ self.createWindowPeer(xContainerWindow)
+ self.addRoadmap()
+ self.addRoadMapItems()
+ self.addStylePreview()
+ self.checkSteps()
+ self.executeDialogFromComponent(self.myFrame)
+ self.removeTerminateListener()
+ except Exception:
+ traceback.print_exc()
+
+ '''
+ initializes the style preview.
+ '''
+
+ def addStylePreview(self):
+ try:
+ self.dpStylePreview = DocumentPreview(self.xMSF, self.imgPreview)
+ self.stylePreview = StylePreview(
+ self.xMSF, WWD_General.settings.workPath)
+ self.stylePreview.refresh(
+ WWD_General.settings.cp_DefaultSession.getStyle(),
+ WWD_General.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage)
+ self.dpStylePreview.setDocument(
+ self.stylePreview.htmlFilename, DocumentPreview.PREVIEW_MODE)
+ except Exception:
+ traceback.print_exc()
+
+ '''
+ Loads the web wizard WWD_General.settings from the registry.
+ '''
+
+ def loadSettings(self, document):
+ try:
+ # instanciate
+ WWD_General.settingsResources = \
+ [self.resources.resPages, self.resources.resSlides,
+ self.resources.resCreatedTemplate,
+ self.resources.resUpdatedTemplate,
+ self.resources.resSizeTemplate]
+
+ WWD_General.settings = CGSettings(
+ self.xMSF, WWD_General.settingsResources, document)
+ # get configuration view
+ confRoot = Configuration.getConfigurationRoot(
+ self.xMSF, CONFIG_PATH, False)
+ # read
+ WWD_General.settings.readConfiguration(
+ confRoot, CONFIG_READ_PARAM)
+ configSet = WWD_General.settings.cp_DefaultSession.cp_Publishing
+ # now if path variables are used in publisher pathes, they
+ # are getting replaced here...
+ for i in xrange(configSet.getSize()):
+ p = configSet.getElementAt(i)
+ p.cp_URL = self.substitute(p.cp_URL)
+ # initialize the WWD_General.settings.
+ WWD_General.settings.configure(self.xMSF)
+ # set resource needed for web page.
+ # sort the styles alphabetically
+ #COMMENTED
+ WWD_General.settings.cp_Styles.sort(None)
+ self.prepareSessionLists()
+ if self.proxies:
+ self.__ftp = self.getPublisher(FTP_PUBLISHER).cp_Publish
+ self.getPublisher(FTP_PUBLISHER).cp_Publish = False
+
+ except Exception:
+ traceback.print_exc()
+
+ def prepareSessionLists(self):
+ # now copy the sessions list...
+ sessions = WWD_General.settings.cp_SavedSessions.childrenList
+
+ WWD_General.settings.savedSessions.clear()
+ for index,item in enumerate(sessions):
+ WWD_General.settings.savedSessions.add(index, item)
+ # add an empty session to the saved session
+ # list which apears in step 1
+ sn = CGSessionName()
+ sn.cp_Name = self.resources.resSessionNameNone
+ WWD_General.settings.cp_SavedSessions.add(0, sn)
+
+ '''
+ fills the saved session list, the styles list,
+ and save session combo box.
+ Also set the selected "load" session to the last session
+ which was saved.
+ '''
+
+ def fillLists(self):
+ # fill the saved session list.
+
+ ListModelBinder.fillList(self.lstLoadSettings,
+ WWD_General.settings.cp_SavedSessions.childrenList, None)
+ # set the selected session to load. (step 1)
+ self.selectSession()
+ # fill the styles list.
+ ListModelBinder.fillList(self.lstStyles,
+ WWD_General.settings.cp_Styles.childrenList, None)
+ # fill the save session combobox (step 7)
+ ListModelBinder.fillComboBox(self.cbSaveSettings,
+ WWD_General.settings.savedSessions.childrenList, None)
+
+ def selectSession(self):
+ selectedSession = 0
+ if WWD_General.settings.cp_LastSavedSession is not None \
+ and not WWD_General.settings.cp_LastSavedSession == "":
+ ses = WWD_General.settings.cp_SavedSessions.getElement(
+ settings.cp_LastSavedSession)
+ if ses is not None:
+ selectedSession = \
+ WWD_General.settings.cp_SavedSessions.getIndexOf(ses)
+
+ Helper.setUnoPropertyValue(
+ self.lstLoadSettings.Model, "SelectedItems", (selectedSession,))
+
+ '''
+ attaches to each ui-data-control (like checkbox, groupbox or
+ textbox, no buttons though), a DataObject's JavaBean Property,
+ or class member.
+ '''
+
+ def makeDataAware(self):
+ #page 1
+ ListModelBinder(
+ self.lstLoadSettings, WWD_General.settings.cp_SavedSessions)
+ #page 2 : document properties
+ self.docListDA = UnoDataAware.attachListBox(
+ self, "selectedDoc", self.lstDocuments, False)
+ self.docListDA.disableObjects = \
+ [self.lnDocsInfo, self.btnRemoveDoc, self.lblDocTitle,
+ self.txtDocTitle, self.lblDocInfo, self.txtDocInfo,
+ self.lblDocAuthor, self.txtDocAuthor, self.lblDocExportFormat,
+ self.lstDocTargetType]
+ self.docListDA.updateUI()
+ doc = CGDocument
+ #dummy
+ self.docsBinder = ListModelBinder(self.lstDocuments,
+ WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents)
+ self.docAware.append(UnoDataAware.attachEditControl(
+ doc, "cp_Title", self.txtDocTitle, True))
+ self.docAware.append(UnoDataAware.attachEditControl(
+ doc, "cp_Description", self.txtDocInfo, True))
+ self.docAware.append(UnoDataAware.attachEditControl(
+ doc, "cp_Author", self.txtDocAuthor, True))
+ self.docAware.append(UnoDataAware.attachListBox(
+ doc, "Exporter", self.lstDocTargetType, False))
+ #page 3 : Layout
+ design = WWD_General.settings.cp_DefaultSession.cp_Design
+
+ #COMMENTED
+ #self.sda = SimpleDataAware.SimpleDataAware_unknown(design, DataAware.PropertyValue ("Layout", design), ilLayouts, DataAware.PropertyValue ("Selected", ilLayouts))
+
+ #self.ilLayouts.addItemListener(None)
+ #page 4 : layout 2
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayDescription", self.chbDocDesc, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayAuthor", self.chbDocAuthor, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayCreateDate", self.chkDocCreated, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayUpdateDate", self.chkDocChanged, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayFilename", self.chkDocFilename, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayFileFormat", self.chkDocFormat, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayFormatIcon", self.chkDocFormatIcon, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplayPages", self.chkDocPages, True))
+ self.designAware.append(UnoDataAware.attachCheckBox(
+ design, "cp_DisplaySize", self.chkDocSize, True))
+ self.designAware.append(RadioDataAware.attachRadioButtons(
+ WWD_General.settings.cp_DefaultSession.cp_Design,
+ "cp_OptimizeDisplaySize",
+ (self.optOptimize640x480, self.optOptimize800x600,
+ self.optOptimize1024x768), True))
+ #page 5 : Style
+ '''
+ note : on style change, i do not call here refresh ,but rather on
+ a special method which will perform some display, background and Iconsets changes.
+ '''
+ self.designAware.append(UnoDataAware.attachListBox(
+ WWD_General.settings.cp_DefaultSession.cp_Design,
+ "cp_Style", self.lstStyles, False))
+ #page 6 : site general props
+ self.genAware.append(UnoDataAware.attachEditControl(
+ WWD_General.settings.cp_DefaultSession.cp_GeneralInfo,
+ "cp_Title", self.txtSiteTitle, True))
+ self.genAware.append(UnoDataAware.attachEditControl(
+ WWD_General.settings.cp_DefaultSession.cp_GeneralInfo,
+ "cp_Description", self.txtSiteDesc, True))
+ self.genAware.append(UnoDataAware.attachDateControl(
+ WWD_General.settings.cp_DefaultSession.cp_GeneralInfo,
+ "cp_CreationDate", self.dateSiteCreated, False))
+ self.genAware.append(UnoDataAware.attachDateControl(
+ WWD_General.settings.cp_DefaultSession.cp_GeneralInfo,
+ "cp_UpdateDate", self.dateSiteUpdate, False))
+ self.genAware.append(UnoDataAware.attachEditControl(
+ WWD_General.settings.cp_DefaultSession.cp_GeneralInfo,
+ "cp_Email", self.txtEmail, True))
+ self.genAware.append(UnoDataAware.attachEditControl(
+ WWD_General.settings.cp_DefaultSession.cp_GeneralInfo,
+ "cp_Copyright", self.txtCopyright, True))
+ #page 7 : publishing
+ self.pubAware_(
+ LOCAL_PUBLISHER, self.chkLocalDir, self.txtLocalDir, False)
+ self.pubAware_(
+ FTP_PUBLISHER, self.chkFTP, self.lblFTP, True)
+ self.pubAware_(
+ ZIP_PUBLISHER, self.chkZip, self.txtZip, False)
+ self.sessionNameDA = UnoDataAware.attachEditControl(
+ WWD_General.settings.cp_DefaultSession, "cp_Name",
+ self.cbSaveSettings, True)
+
+ '''
+ A help method to attach a Checkbox and a TextBox to
+ a CGPublish object properties/class members,
+ @param publish
+ @param checkbox
+ @param textbox
+ '''
+
+ def pubAware_(self, publish, checkbox, textbox, isLabel):
+ p = WWD_General.settings.cp_DefaultSession.cp_Publishing.getElement(publish)
+ uda = UnoDataAware.attachCheckBox(p, "cp_Publish", checkbox, True)
+ uda.Inverse = True
+ uda.disableObjects = [textbox]
+ self.pubAware.append(uda)
+ if isLabel:
+ aux = UnoDataAware.attachLabel(p, "cp_URL", textbox, False)
+ else:
+ aux = UnoDataAware.attachEditControl(p, "cp_URL", textbox, False)
+ self.pubAware.append(aux)
+
+ '''
+ Session load methods
+ (are used both on the start of the wizard and
+ when the user loads a session)
+
+ Is called when a new session/settings is
+ loaded. <br/>
+ Checks the documents (validate), fills the
+ documents listbox, and changes the
+ DataAware data objects to the
+ new session's objects.<br/>
+ Task advances 4 times in the mount method,
+ and ??? times for each document in the session.
+ '''
+
+ def mount(self, session, task, refreshStyle, xC):
+ '''
+ This checks the documents. If the user
+ chooses to cancel, the session is not loaded.
+ '''
+ checkContent(session.cp_Content, task, xC)
+ settings.cp_DefaultSession = session;
+ mount(session.cp_Content)
+ task.advance(True)
+ mount(session.cp_Design, self.designAware)
+ mount(session.cp_GeneralInfo, self.genAware)
+ task.advance(True)
+ mount(session.cp_Publishing.getElement(LOCAL_PUBLISHER), 0)
+ mount(session.cp_Publishing.getElement(FTP_PUBLISHER), 1)
+ mount(session.cp_Publishing.getElement(ZIP_PUBLISHER), 2)
+ task.advance(True)
+ self.sessionNameDA.setDataObject(session, True)
+ Helper.setUnoPropertyValue(
+ chkSaveSettings.Model, PropertyNames.PROPERTY_STATE, 1)
+ self.docListDA.updateUI()
+ task.advance(True)
+ if refreshStyle:
+ self.refreshStylePreview()
+ self.updateIconsetText()
+
+ '''
+ used to mount the publishing objects. This is somehow cryptic -
+ there are 6 DataAware objects, 2 for each Publishing Object (CGPublish).
+ All 6 reside on one Vector (pubAware).
+ Since, otherwise than other DataAware objects, different
+ Objects on the same Vector need different DataObjectBinding,
+ I use this method...
+ @param data the CGPublish object
+ @param i the number of the object (0 = local, 1 = ftp, 2 = zip)
+ '''
+
+ def mountDataAware(self, data, i):
+ self.pubAware.get(i * 2).setDataObject(data, True)
+ self.pubAware.get(i * 2 + 1).setDataObject(data, True)
+
+ '''
+ Fills the documents listbox.
+ @param root the CGContent object
+ that contains the documents (a ListModel)
+ '''
+
+ def fillDocumentList(self, root):
+ ListModelBinder.fillList(self.lstDocuments, root.cp_Documents.childrenList, None)
+ #COMMENTED
+ #self.docsBinder.setListModel(root.cp_Documents)
+ self.disableDocUpDown()
+
+ '''
+ changes the DataAwares Objects' (in
+ the gioen list) DataObject to the
+ @param data
+ @param list
+ '''
+
+ def mountList(self, data, _list):
+ for i in _list:
+ i.setDataObject(data, True)
+
+ '''
+ Checks if the document specified by the given CGDocument
+ object (cp_URL) exists. Calls also the validate(...) method
+ of this document.
+ If the document does not exist, it asks the user whether
+ to specify a new URL, or forget about this document.
+ @param doc the document to check.
+ @param task while loading a session, a status is
+ displayed, using the Task object to monitor progress.
+ @return true if the document is ok (a file exists in the given url).
+ '''
+
+ @classmethod
+ def checkDocument(self,xmsf, doc, task, xC):
+ doc.validate(xmsf, task)
+ return True
+ '''except IOError:
+ relocate = SystemDialog.showMessageBox(
+ self.xMSF, xC.Peer, "WarningBox",
+ VclWindowPeerAttribute.YES_NO + VclWindowPeerAttribute.DEF_NO,
+ getFileAccess().getPath(doc.cp_URL, "") + "\n\n" + \
+ self.resources.resSpecifyNewFileLocation)
+ if relocate == 2:
+ _file = getDocAddDialog().callOpenDialog(
+ False, FileAccess.getParentDir(doc.cp_URL))
+ if _file is None:
+ return False
+ else:
+ doc.cp_URL = _file[0]
+ return checkDocument(doc, task, xC)
+
+ else:
+ return False
+
+ except IllegalArgumentException, iaex:
+ #file is a directory
+ SystemDialog.showMessage(
+ self.xMSF, xControl.Peer,
+ self.resources.resErrIsDirectory.replace(
+ "%FILENAME", getFileAccess().getPath(doc.cp_URL, "")),
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+ except Exception:
+ #something went wrong.
+ traceback.print_exc()
+ SystemDialog.showMessage(
+ self.xMSF, xControl.Peer,
+ self.resources.resErrDocValidate.replace(
+ "%FILENAME", getFileAccess().getPath(doc.cp_URL, "")),
+ ErrorHandler.ERROR_PROCESS_FATAL)
+ return False
+ '''
+
+ '''
+ Checks the documents contained in this content.
+ @param content
+ @param task
+ '''
+
+ def checkContent(self, content, task, xC):
+ i = 0
+ while i < content.cp_Documents.getSize():
+ if not checkDocument(content.cp_Documents.getElementAt(i), task, xC):
+ # I use here 'i--' since, when the document is removed
+ # an index change accures
+ content.cp_Documents.remove(i)
+ i -= 1
+ i += 1
+
+ '''
+ Disables/enables the docUpDown buttons (step 2)
+ according to the currently selected document
+ (no doc selected - both disbaled, last doc selected,
+ down disabled and so on...)
+ '''
+
+ def disableDocUpDown(self):
+ try:
+ if len(WWD_Startup.selectedDoc) == 0:
+ aux = False
+ aux2 = False
+ else:
+ if WWD_Startup.selectedDoc[0] == 0:
+ aux = False
+ else:
+ aux = True
+
+ if WWD_Startup.selectedDoc[0] + 1 < \
+ WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.getSize():
+ aux2 = True
+ else:
+ aux2 = False
+
+ self.setEnabled(self.btnDocUp, aux)
+ self.setEnabled(self.btnDocDown, aux2)
+ except Exception:
+ traceback.print_exc()
+
+ def updateBackgroundText(self):
+ bg = \
+ WWD_General.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage
+ if bg is None or bg == "":
+ bg = self.resources.resBackgroundNone
+ else:
+ bg = FileAccess.getPathFilename(getFileAccess().getPath(bg, None))
+
+ Helper.setUnoPropertyValue(
+ self.txtBackground.Model, PropertyNames.PROPERTY_LABEL, bg)
+
+ def updateIconsetText(self):
+ iconset = WWD_General.settings.cp_DefaultSession.cp_Design.cp_IconSet
+ if iconset is None or iconset == "":
+ iconsetName = self.resources.resIconsetNone
+ else:
+ IconSet = WWD_General.settings.cp_IconSets.getElement(iconset)
+ if IconSet is None:
+ iconsetName = self.resources.resIconsetNone
+ else:
+ iconsetName = IconSet.cp_Name
+
+ Helper.setUnoPropertyValue(
+ txtIconset.Model, PropertyNames.PROPERTY_LABEL, iconsetName)
+
+ '''
+ refreshes the style preview.
+ I also call here "updateBackgroundtext", because always
+ when the background is changed, this method
+ has to be called, so I am walking on the safe side here...
+ '''
+
+ def refreshStylePreview(self):
+ try:
+ WWD_General.settings.cp_DefaultSession.cp_Design.cp_Style = \
+ "style" + \
+ str(WWD_General.settings.cp_DefaultSession.cp_Design.cp_Style)
+ self.updateBackgroundText()
+ self.stylePreview.refresh(WWD_General.settings.cp_DefaultSession.getStyle(), WWD_General.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage)
+ self.dpStylePreview.reload(self.xMSF)
+ except Exception:
+ traceback.print_exc()
diff --git a/wizards/com/sun/star/wizards/web/WWHID.py b/wizards/com/sun/star/wizards/web/WWHID.py
new file mode 100644
index 000000000000..28b3aaaa892e
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WWHID.py
@@ -0,0 +1,140 @@
+HID0_WEBWIZARD = 34200 + 0
+HID0_HELP = 34200 + 1
+HID0_NEXT = 34200 + 2
+HID0_PREV = 34200 + 3
+HID0_CREATE = 34200 + 4
+HID0_CANCEL = 34200 + 5
+HID0_STATUS_DIALOG = 34200 + 6 #step 1
+HID1_LST_SESSIONS = 34200 + 7
+HID1_BTN_DEL_SES = 34200 + 9 #step 2
+HID2_LST_DOCS = 34200 + 10
+HID2_BTN_ADD_DOC = 34200 + 11
+HID2_BTN_REM_DOC = 34200 + 12
+HID2_BTN_DOC_UP = 34200 + 13
+HID2_BTN_DOC_DOWN = 34200 + 14
+HID2_TXT_DOC_TITLE = 34200 + 15
+HID2_TXT_DOC_DESC = 34200 + 16
+HID2_TXT_DOC_AUTHOR = 34200 + 17
+HID2_LST_DOC_EXPORT = 34200 + 18
+HID2_STATUS_ADD_DOCS = 34200 + 19 #step 3
+HID3_IL_LAYOUTS_IMG1 = 34200 + 20
+HID3_IL_LAYOUTS_IMG2 = 34200 + 21
+HID3_IL_LAYOUTS_IMG3 = 34200 + 22
+HID3_IL_LAYOUTS_IMG4 = 34200 + 23
+HID3_IL_LAYOUTS_IMG5 = 34200 + 24
+HID3_IL_LAYOUTS_IMG6 = 34200 + 25
+HID3_IL_LAYOUTS_IMG7 = 34200 + 26
+HID3_IL_LAYOUTS_IMG8 = 34200 + 27
+HID3_IL_LAYOUTS_IMG9 = 34200 + 28
+HID3_IL_LAYOUTS_IMG10 = 34200 + 29
+HID3_IL_LAYOUTS_IMG11 = 34200 + 30
+HID3_IL_LAYOUTS_IMG12 = 34200 + 31
+HID3_IL_LAYOUTS_IMG13 = 34200 + 32
+HID3_IL_LAYOUTS_IMG14 = 34200 + 33
+HID3_IL_LAYOUTS_IMG15 = 34200 + 34 #step 4
+HID4_CHK_DISPLAY_FILENAME = 34200 + 35
+HID4_CHK_DISPLAY_DESCRIPTION = 34200 + 36
+HID4_CHK_DISPLAY_AUTHOR = 34200 + 37
+HID4_CHK_DISPLAY_CR_DATE = 34200 + 38
+HID4_CHK_DISPLAY_UP_DATE = 34200 + 39
+HID4_CHK_DISPLAY_FORMAT = 34200 + 40
+HID4_CHK_DISPLAY_F_ICON = 34200 + 41
+HID4_CHK_DISPLAY_PAGES = 34200 + 42
+HID4_CHK_DISPLAY_SIZE = 34200 + 43
+HID4_GRP_OPTIMAIZE_640 = 34200 + 44
+HID4_GRP_OPTIMAIZE_800 = 34200 + 45
+HID4_GRP_OPTIMAIZE_1024 = 34200 + 46 #step 5
+HID5_LST_STYLES = 34200 + 47
+HID5_BTN_BACKGND = 34200 + 48
+HID5_BTN_ICONS = 34200 + 49 #step 6
+HID6_TXT_SITE_TITLE = 34200 + 50
+HID6_TXT_SITE_ICON = 34200 + 51
+HID6_BTN_SITE_ICON = 34200 + 52
+HID6_TXT_SITE_DESC = 34200 + 53
+HID6_TXT_SITE_KEYWRDS = 34200 + 54
+HID6_DATE_SITE_CREATED = 34200 + 55
+HID6_DATE_SITE_UPDATED = 34200 + 56
+HID6_NUM_SITE_REVISTS = 34200 + 57
+HID6_TXT_SITE_EMAIL = 34200 + 58
+HID6_TXT_SITE_COPYRIGHT = 34200 + 59 #step 7
+HID7_BTN_PREVIEW = 34200 + 60
+HID7_CHK_PUBLISH_LOCAL = 34200 + 61
+HID7_TXT_LOCAL = 34200 + 62
+HID7_BTN_LOCAL = 34200 + 63
+HID7_CHK_PUBLISH_ZIP = 34200 + 64
+HID7_TXT_ZIP = 34200 + 65
+HID7_BTN_ZIP = 34200 + 66
+HID7_CHK_PUBLISH_FTP = 34200 + 67
+HID7_BTN_FTP = 34200 + 69
+HID7_CHK_SAVE = 34200 + 70
+HID7_TXT_SAVE = 34200 + 71 #web wizard backgrounds dialog
+HID_BG = 34200 + 90
+HID_BG_BTN_OTHER = 34200 + 91
+HID_BG_BTN_NONE = 34200 + 92
+HID_BG_BTN_OK = 34200 + 93
+HID_BG_BTN_CANCEL = 34200 + 94
+HID_BG_BTN_BACK = 34200 + 95
+HID_BG_BTN_FW = 34200 + 96
+HID_BG_BTN_IMG1 = 34200 + 97
+HID_BG_BTN_IMG2 = 34200 + 98
+HID_BG_BTN_IMG3 = 34200 + 99
+HID_BG_BTN_IMG4 = 34200 + 100
+HID_BG_BTN_IMG5 = 34200 + 101
+HID_BG_BTN_IMG6 = 34200 + 102
+HID_BG_BTN_IMG7 = 34200 + 103
+HID_BG_BTN_IMG8 = 34200 + 104
+HID_BG_BTN_IMG9 = 34200 + 105
+HID_BG_BTN_IMG10 = 34200 + 106
+HID_BG_BTN_IMG11 = 34200 + 107
+HID_BG_BTN_IMG12 = 34200 + 108
+HID_BG_BTN_IMG13 = 34200 + 109
+HID_BG_BTN_IMG14 = 34200 + 100
+HID_BG_BTN_IMG15 = 34200 + 111
+HID_BG_BTN_IMG16 = 34200 + 112 #web wizard icons sets dialog
+HID_IS = 41000 + 0
+HID_IS_ICONSETS = 41000 + 1
+HID_IS_BTN_NONE = 41000 + 2
+HID_IS_BTN_OK = 41000 + 3
+HID_IS_BTN_IMG1 = 41000 + 5
+HID_IS_BTN_IMG2 = 41000 + 6
+HID_IS_BTN_IMG3 = 41000 + 7
+HID_IS_BTN_IMG4 = 41000 + 8
+HID_IS_BTN_IMG5 = 41000 + 9
+HID_IS_BTN_IMG6 = 41000 + 10
+HID_IS_BTN_IMG7 = 41000 + 11
+HID_IS_BTN_IMG8 = 41000 + 12
+HID_IS_BTN_IMG9 = 41000 + 13
+HID_IS_BTN_IMG10 = 41000 + 14
+HID_IS_BTN_IMG11 = 41000 + 15
+HID_IS_BTN_IMG12 = 41000 + 16
+HID_IS_BTN_IMG13 = 41000 + 17
+HID_IS_BTN_IMG14 = 41000 + 18
+HID_IS_BTN_IMG15 = 41000 + 19
+HID_IS_BTN_IMG16 = 41000 + 20
+HID_IS_BTN_IMG17 = 41000 + 21
+HID_IS_BTN_IMG18 = 41000 + 22
+HID_IS_BTN_IMG19 = 41000 + 23
+HID_IS_BTN_IMG20 = 41000 + 24
+HID_IS_BTN_IMG21 = 41000 + 25
+HID_IS_BTN_IMG22 = 41000 + 26
+HID_IS_BTN_IMG23 = 41000 + 27
+HID_IS_BTN_IMG24 = 41000 + 28
+HID_IS_BTN_IMG25 = 41000 + 29
+HID_IS_BTN_IMG26 = 41000 + 30
+HID_IS_BTN_IMG27 = 41000 + 31
+HID_IS_BTN_IMG28 = 41000 + 32
+HID_IS_BTN_IMG29 = 41000 + 33
+HID_IS_BTN_IMG30 = 41000 + 34
+HID_IS_BTN_IMG31 = 41000 + 35
+HID_IS_BTN_IMG32 = 41000 + 36
+
+# web wizard ftp dialog
+HID_FTP = 41000 + 40
+HID_FTP_SERVER = 41000 + 41
+HID_FTP_USERNAME = 41000 + 42
+HID_FTP_PASS = 41000 + 43
+HID_FTP_TEST = 41000 + 44
+HID_FTP_TXT_PATH = 41000 + 45
+HID_FTP_BTN_PATH = 41000 + 46
+HID_FTP_OK = 41000 + 47
+HID_FTP_CANCEL = 41000 + 48
diff --git a/wizards/com/sun/star/wizards/web/WebWizardConst.py b/wizards/com/sun/star/wizards/web/WebWizardConst.py
new file mode 100644
index 000000000000..1903dcbcd01a
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WebWizardConst.py
@@ -0,0 +1,39 @@
+LSTLOADSETTINGS_ITEM_CHANGED = "sessionSelected" # "lstLoadSettingsItemChanged"
+BTNLOADSESSION_ACTION_PERFORMED = "loadSession" # "btnLoadSessionActionPerformed"
+BTNDELSESSION_ACTION_PERFORMED = "delSession" # "btnDelSessionActionPerformed"
+BTNADDDOC_ACTION_PERFORMED = "addDocument" # "btnAddDocActionPerformed"
+BTNREMOVEDOC_ACTION_PERFORMED = "removeDocument" # "btnRemoveDocActionPerformed"
+BTNDOCUP_ACTION_PERFORMED = "docUp" # "btnDocUpActionPerformed"
+BTNDOCDOWN_ACTION_PERFORMED = "docDown" # "btnDocDownActionPerformed"
+LSTSTYLES_ITEM_CHANGED = "refreshStylePreview" # "lstStylesItemChanged"
+BTNBACKGROUNDS_ACTION_PERFORMED = "chooseBackground" # "btnBackgroundsActionPerformed"
+BTNICONSETS_ACTION_PERFORMED = "chooseIconset" # "btnIconSetsActionPerformed"
+BTNFAVICON_ACTION_PERFORMED = "chooseFavIcon" # "btnFavIconActionPerformed"
+BTNPREVIEW_ACTION_PERFORMED = "documentPreview" # "btnPreviewActionPerformed"
+BTNFTP_ACTION_PERFORMED = "setFTPPublish" # "btnFTPActionPerformed"
+CHKLOCALDIR_ITEM_CHANGED = "checkPublish" # "chkLocalDirItemChanged"
+CHKSAVESETTINGS_ITEM_CHANGED = "checkPublish" # "chkSaveSettingsItemChanged"
+TXTSAVESETTINGS_TEXT_CHANGED = "checkPublish" # "txtSaveSettingsTextChanged"
+BTNLOCALDIR_ACTION_PERFORMED = "setPublishLocalDir" # "btnLocalDirActionPerformed"
+BTNZIP_ACTION_PERFORMED = "setZipFilename" # "btnZipActionPerformed"
+CONFIG_PATH = "/org.openoffice.Office.WebWizard/WebWizard"
+CONFIG_READ_PARAM = "cp_"
+TASK = "WWIZ"
+TASK_PREPARE = "t-prep"
+LOCAL_PUBLISHER = "local"
+FTP_PUBLISHER = "ftp"
+ZIP_PUBLISHER = "zip"
+TASK_EXPORT = "t_exp"
+TASK_EXPORT_PREPARE = "t_exp_prep"
+TASK_EXPORT_DOCUMENTS = "t_exp_docs"
+TASK_GENERATE_PREPARE = "t_gen_prep"
+TASK_GENERATE_XSL = "t_gen_x"
+TASK_GENERATE_COPY = "t_gen_cp"
+TASK_PUBLISH_PREPARE = "t_pub_prep"
+TASK_FINISH = "t_fin"
+
+'''
+when the user adds more than this number
+of documents to the list, a status dialog opens.
+'''
+MIN_ADD_FILES_FOR_DIALOG = 2
diff --git a/wizards/com/sun/star/wizards/web/WebWizardDialog.py b/wizards/com/sun/star/wizards/web/WebWizardDialog.py
new file mode 100644
index 000000000000..621d1da2510d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WebWizardDialog.py
@@ -0,0 +1,713 @@
+from ui.WizardDialog import *
+from WebWizardDialogResources import WebWizardDialogResources
+from WebWizardConst import *
+from WWHID import *
+from ui.ImageList import ImageList
+from com.sun.star.awt import Size
+from com.sun.star.awt.FontUnderline import SINGLE
+from com.sun.star.awt.FontFamily import ROMAN
+from com.sun.star.awt.FontSlant import ITALIC
+from com.sun.star.awt.ImageAlign import LEFT
+
+class WebWizardDialog(WizardDialog):
+ PROPNAMES_LBL = (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ PROPNAMES_CHKBOX = (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STATE,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ PROPNAMES_BUTTON = (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ PROPNAMES_TXT = (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ PROPNAMES_TXT_2 = (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y, "ReadOnly",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+ PROPNAMES_TITLE = ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH)
+
+ def __init__(self, xmsf):
+ super(WebWizardDialog, self).__init__(xmsf, HID0_WEBWIZARD)
+ #Load Resources
+ self.resources = WebWizardDialogResources(xmsf)
+ #set dialog properties...
+ Helper.setUnoPropertyValues(self.xDialogModel,(
+ "Closeable",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL, "Moveable",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX, "Title",
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 210, HelpIds.getHelpIdString(HID0_WEBWIZARD), True,
+ "WebWizardDialog", 102, 52, 1, 6,
+ self.resources.resWebWizardDialog_title, 330))
+ self.fontDescriptor0 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor1 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor4 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor5 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor6 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.fontDescriptor7 = \
+ uno.createUnoStruct('com.sun.star.awt.FontDescriptor')
+ self.imgIconsPrev = range(8)
+ #Set member- self.fontDescriptors...
+ self.fontDescriptor0.Weight = 100
+ self.fontDescriptor1.Weight = 150
+ self.fontDescriptor1.Underline = SINGLE
+ self.fontDescriptor4.Weight = 150
+ self.fontDescriptor5.Name = "Angsana New"
+ self.fontDescriptor5.Height = 16
+ self.fontDescriptor5.StyleName = "Regular"
+ self.fontDescriptor5.Family = ROMAN
+ self.fontDescriptor5.Weight = 100
+ self.fontDescriptor6.Name = "Andalus"
+ self.fontDescriptor6.Height = 22
+ self.fontDescriptor6.StyleName = "Bold Italic"
+ self.fontDescriptor6.Weight = 150
+ self.fontDescriptor6.Slant = ITALIC
+ self.fontDescriptor7.Name = "StarSymbol"
+ self.fontDescriptor7.Height = 9
+ self.fontDescriptor7.StyleName = "Regular"
+ self.fontDescriptor7.Weight = 100
+
+ #build components
+
+ def buildStep1(self):
+ tabIndex = 100
+ self.insertLabel("lbIntroTitle", WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 16, self.resources.reslbIntroTitle_value,
+ True, "lbIntroTitle", 91, 8, 1, tabIndex + 1, 232))
+ self.insertLabel("lblIntroduction",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (119, self.resources.reslblIntroduction_value, True,
+ "lblIntroduction", 97, 28, 1, tabIndex + 1, 226))
+ self.insertFixedLine("lnLoadSettings", WebWizardDialog.PROPNAMES_TXT,
+ (2, "", "lnLoadSettings", 91, 147, 1, tabIndex + 1, 234))
+ self.lblLoadSettings = self.insertLabel("lblLoadSettings",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (8, self.resources.reslblLoadSettings_value, True,
+ "lblLoadSettings", 97, 153, 1, tabIndex + 1, 226))
+ self.lstLoadSettings = self.insertListBox(
+ "lstLoadSettings", None, LSTLOADSETTINGS_ITEM_CHANGED,("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL, "LineCount",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID1_LST_SESSIONS), 14,
+ "lstLoadSettings", 97, 165, 1, tabIndex + 1, 173), self)
+ self.btnDelSession = self.insertButton(
+ "btnDelSession", BTNDELSESSION_ACTION_PERFORMED,
+ (PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL, "ImageAlign",
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (False, 14, HelpIds.getHelpIdString(HID1_BTN_DEL_SES), LEFT,
+ self.resources.resbtnDelSession_value, "btnDelSession",
+ 274, 164, 1, tabIndex + 1, 50), self)
+
+ def buildStep2(self):
+ tabIndex = 200
+ self.lblContentTitle = self.insertLabel(
+ "lblContentTitle", WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 16, self.resources.reslblContentTitle_value,
+ True, "lblContentTitle", 91, 8, 2, tabIndex + 1, 232))
+ self.lblSiteContent = self.insertLabel(
+ "lblSiteContent", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblSiteContent_value,
+ "lblSiteContent", 97, 28, 2, tabIndex + 1, 105))
+ self.lstDocuments = self.insertListBox(
+ "lstDocuments", None, None,
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ "LineCount",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (123, HelpIds.getHelpIdString(HID2_LST_DOCS),
+ 9, "lstDocuments", 97, 38, 2, tabIndex + 1, 103), self)
+ self.btnAddDoc = self.insertButton(
+ "btnAddDoc", BTNADDDOC_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID2_BTN_ADD_DOC),
+ self.resources.resbtnAddDoc_value, "btnAddDoc", 97, 165, 2,
+ tabIndex + 1, 50), self)
+ self.btnRemoveDoc = self.insertButton(
+ "btnRemoveDoc", BTNREMOVEDOC_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID2_BTN_REM_DOC),
+ self.resources.resbtnRemoveDoc_value, "btnRemoveDoc", 150, 165,
+ 2, tabIndex + 1, 50), self)
+ self.btnDocUp = self.insertButton(
+ "btnDocUp", BTNDOCUP_ACTION_PERFORMED,
+ ("FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor7, 14, HelpIds.getHelpIdString(HID2_BTN_DOC_UP),
+ self.resources.resbtnDocUp_value, "btnDocUp",
+ 205, 87, 2, tabIndex + 1, 18), self)
+ self.btnDocDown = self.insertButton(
+ "btnDocDown", BTNDOCDOWN_ACTION_PERFORMED,(
+ "FontDescriptor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (self.fontDescriptor7, 14, HelpIds.getHelpIdString(HID2_BTN_DOC_DOWN),
+ self.resources.resbtnDocDown_value, "btnDocDown", 205,
+ 105, 2, tabIndex + 1, 18), self)
+ self.lblDocExportFormat = self.insertLabel(
+ "lblDocExportFormat", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblDocExportFormat_value,
+ "lblDocExportFormat", 235, 28, 2, tabIndex + 1, 89))
+ self.lstDocTargetType = self.insertListBox("lstDocTargetType", None, None,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL, "LineCount",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID2_LST_DOC_EXPORT), 14,
+ "lstDocTargetType", 235, 38, 2, tabIndex + 1, 89), self)
+ self.lnDocsInfo = self.insertFixedLine(
+ "lnDocsInfo", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslnDocsInfo_value, "lnDocsInfo",
+ 235, 66, 2, tabIndex + 1, 90))
+ self.lblDocTitle = self.insertLabel(
+ "lblDocTitle", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblDocTitle_value, "lblDocTitle",
+ 235, 78, 2, tabIndex + 1, 89))
+ self.txtDocTitle = self.insertTextField(
+ "txtDocTitle", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID2_TXT_DOC_TITLE), "txtDocTitle",
+ 235, 88, 2, tabIndex + 1, 89), self)
+ self.lblDocInfo = self.insertLabel(
+ "lblDocInfo", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblDocInfo_value, "lblDocInfo",
+ 235, 103, 2, tabIndex + 1, 89))
+ self.txtDocInfo = self.insertTextField(
+ "txtDocInfo", None,(PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (40, HelpIds.getHelpIdString(HID2_TXT_DOC_DESC), True,
+ "txtDocInfo", 235, 113, 2, tabIndex + 1, 89), self)
+ self.lblDocAuthor = self.insertLabel(
+ "lblDocAuthor", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblDocAuthor_value, "lblDocAuthor",
+ 235, 155, 2, tabIndex + 1, 89))
+ self.txtDocAuthor = self.insertTextField(
+ "txtDocAuthor", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID2_TXT_DOC_AUTHOR),
+ "txtDocAuthor", 235, 165, 2, tabIndex + 1, 89), self)
+
+ def buildStep3(self):
+ self.insertLabel("lblLayoutTitle", WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 16, self.resources.reslblLayoutTitle_value,
+ True, "lblLayoutTitle", 91, 8, 3, 29, 232))
+ self.lblLayouts = self.insertLabel("lblLayouts",
+ WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblLayouts_value, "lblLayouts",
+ 97, 28, 3, 30, 206))
+
+ def buildStep4(self):
+ self.insertLabel("lblLayout2Title", WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 16, self.resources.reslblLayout2Title_value,
+ True, "lblLayout2Title", 91, 8, 4, 33, 232))
+ self.lnDisplay = self.insertLabel("lblDisplay",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (16, self.resources.reslblDisplay_value, True,
+ "lblDisplay", 97, 28, 4, 34, 226))
+ self.chkDocFilename = self.insertCheckBox("chkDocFilename", None,
+ WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_FILENAME),
+ self.resources.reschkDocFilename_value, "chkDocFilename",
+ 103, 50, 0, 4, 35, 99), self)
+ self.chbDocDesc = self.insertCheckBox(
+ "chbDocDesc", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_DESCRIPTION),
+ self.resources.reschbDocDesc_value, "chbDocDesc",
+ 103, 60, 0, 4, 36, 99), self)
+ self.chbDocAuthor = self.insertCheckBox(
+ "chbDocAuthor", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_AUTHOR),
+ self.resources.reschbDocAuthor_value, "chbDocAuthor",
+ 103, 70, 0, 4, 37, 99), self)
+ self.chkDocCreated = self.insertCheckBox(
+ "chkDocCreated", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_CR_DATE),
+ self.resources.reschkDocCreated_value, "chkDocCreated",
+ 103, 80, 0, 4, 38, 99), self)
+ self.chkDocChanged = self.insertCheckBox(
+ "chkDocChanged", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_UP_DATE),
+ self.resources.reschkDocChanged_value, "chkDocChanged",
+ 103, 90, 0, 4, 39, 99), self)
+ self.chkDocFormat = self.insertCheckBox(
+ "chkDocFormat", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_FORMAT),
+ self.resources.reschkDocFormat_value, "chkDocFormat",
+ 200, 50, 0, 4, 40, 110), self)
+ self.chkDocFormatIcon = self.insertCheckBox(
+ "chkDocFormatIcon", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_F_ICON),
+ self.resources.reschkDocFormatIcon_value, "chkDocFormatIcon",
+ 200, 60, 0, 4, 41, 110), self)
+ self.chkDocPages = self.insertCheckBox(
+ "chkDocPages", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_PAGES),
+ self.resources.reschkDocPages_value, "chkDocPages",
+ 200,70, 0, 4, 42, 110), self)
+ self.chkDocSize = self.insertCheckBox(
+ "chkDocSize", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID4_CHK_DISPLAY_SIZE),
+ self.resources.reschkDocSize_value, "chkDocSize",
+ 200, 80, 0, 4, 43, 110), self)
+ self.insertLabel("lblOptimizeFor", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblOptimizeFor_value, "lblOptimizeFor",
+ 97, 113, 4, 44, 226))
+ self.optOptimize640x480 = self.insertRadioButton(
+ "optOptimize640x480", None, WebWizardDialog.PROPNAMES_BUTTON,
+ (10, HelpIds.getHelpIdString(HID4_GRP_OPTIMAIZE_640),
+ self.resources.resoptOptimize640x480_value,
+ "optOptimize640x480", 103, 133, 4, 45, 44), self)
+ self.optOptimize800x600 = self.insertRadioButton(
+ "optOptimize800x600", None, WebWizardDialog.PROPNAMES_BUTTON,
+ (10, HelpIds.getHelpIdString(HID4_GRP_OPTIMAIZE_800),
+ self.resources.resoptOptimize800x600_value,
+ "optOptimize800x600", 103, 146, 4, 46, 44), self)
+ self.optOptimize1024x768 = self.insertRadioButton(
+ "optOptimize1024x768", None, WebWizardDialog.PROPNAMES_BUTTON,
+ (10, HelpIds.getHelpIdString(HID4_GRP_OPTIMAIZE_1024),
+ self.resources.resoptOptimize1024x768_value,
+ "optOptimize1024x768", 103, 158, 4, 47, 44), self)
+
+ def buildStep5(self):
+ self.lblStyleTitle = self.insertLabel(
+ "lblStyleTitle", WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 16, self.resources.reslblStyleTitle_value,
+ True, "lblStyleTitle", 91, 8, 5, 50, 232))
+ self.lblStyle = self.insertLabel(
+ "lblStyle", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblStyle_value,
+ "lblStyle", 97, 28, 5, 51, 80))
+ self.lstStyles = self.insertListBox(
+ "lstStyles", None, LSTSTYLES_ITEM_CHANGED,(
+ "Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL, "LineCount",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID5_LST_STYLES),
+ 14, "lstStyles", 179, 26, 5, 52, 145), self)
+ self.insertLabel("lblBackground", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblBackground, "lblBackground",
+ 97, 46, 5, 51, 70))
+ self.txtBackground = self.insertLabel("txtBackground",
+ ("Border",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (1, 12, self.resources.resBackgroundNone,
+ "txtBackground", 179, 44, 5, 52, 90))
+ self.btnBackgrounds = self.insertButton(
+ "btnBackgrounds", BTNBACKGROUNDS_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID5_BTN_BACKGND),
+ self.resources.resBtnChooseBackground, "btnBackgrounds",
+ 274, 43, 5, 53, 50), self)
+ self.insertLabel("lblIconset", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblIconset, "lblIconset", 97, 64, 5, 51, 70))
+ self.insertLabel("txtIconset",
+ ("Border",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (1, 12, self.resources.resIconsetNone, "txtIconset",
+ 179, 62, 5, 52, 90))
+ self.btnIconSets = self.insertButton(
+ "btnIconSets", BTNICONSETS_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID5_BTN_ICONS),
+ self.resources.resBtnChooseIconset, "btnIconSets",
+ 274, 61, 5, 54, 50), self)
+ self.insertLabel("lblIconsetInfo",
+ (PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (16, self.resources.reslblIconSetInfo, True, "lblIconsetInfo",
+ 179, 78, 5, 51, 145))
+ self.imgPreview = self.insertImage("imgPreview",
+ ("BackgroundColor",
+ PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_IMAGEURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y, "ScaleImage",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (0, False, 78, "", "imgPreview", 91, 100, False, 5, 55, 232))
+
+ def buildStep6(self):
+ tabIndex = 60
+ self.insertLabel("lblTitleGeneralPage",
+ WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 8,
+ self.resources.reslblTitleGeneralPage_value, True,
+ "lblTitleGeneralPage", 90, 9, 6, tabIndex + 1, 232))
+ self.insertLabel("lblSiteTitle", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblSiteTitle_value, "lblSiteTitle",
+ 97, 28, 6, tabIndex + 1, 80))
+ self.txtSiteTitle = self.insertTextField(
+ "txtSiteTitle", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID6_TXT_SITE_TITLE),
+ "txtSiteTitle", 179, 26, 6, tabIndex + 1, 145), self)
+ self.insertFixedLine(
+ "FixedLineMetaData", WebWizardDialog.PROPNAMES_LBL,
+ (9, self.resources.reslblMetaData, "FixedLineMetaData",
+ 97, 56, 6, tabIndex + 1, 228))
+ self.insertLabel("lblSiteDesc", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblSiteDesc_value, "lblSiteDesc",
+ 103, 72, 6, tabIndex + 1, 80))
+ self.txtSiteDesc = self.insertTextField(
+ "txtSiteDesc", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID6_TXT_SITE_DESC), "txtSiteDesc",
+ 179, 70, 6, tabIndex + 1, 145), self)
+ self.insertLabel(
+ "lblEmail", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblEmail_value, "lblEmail",
+ 103, 90, 6, tabIndex + 1, 80))
+ self.txtEmail = self.insertTextField(
+ "txtEmail", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID6_TXT_SITE_EMAIL), "txtEmail",
+ 179, 87, 6, tabIndex + 1, 145), self)
+ self.insertLabel("lblCopyright", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblCopyright_value, "lblCopyright",
+ 103, 108, 6, tabIndex + 1, 80))
+ self.txtCopyright = self.insertTextField(
+ "txtCopyright", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID6_TXT_SITE_COPYRIGHT),
+ "txtCopyright", 179, 106, 6, tabIndex + 1, 145), self)
+ self.insertLabel("lblSiteCreated", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblSiteCreated_value, "lblSiteCreated",
+ 103, 126, 6, tabIndex + 1, 80))
+ self.dateSiteCreated = self.insertDateField("dateSiteCreated", None,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID6_DATE_SITE_CREATED),
+ "dateSiteCreated", 179, 124, 6, tabIndex + 1, 49), self)
+ self.insertLabel("lblSiteUpdated", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblSiteUpdated_value, "lblSiteUpdated",
+ 103, 144, 6, tabIndex + 1, 80))
+ self.dateSiteUpdate = self.insertDateField("dateSiteUpdate", None,
+ ("Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, 12, HelpIds.getHelpIdString(HID6_DATE_SITE_UPDATED),
+ "dateSiteUpdate", 179, 142, 6, tabIndex + 1, 49), self)
+
+ def buildStep7(self, disableFTP, exclamationURL):
+ tabIndex = 700
+ self.lblTitlePublish = self.insertLabel(
+ "lblTitlePublish", WebWizardDialog.PROPNAMES_TITLE,
+ (self.fontDescriptor4, 16, self.resources.reslblTitlePublish_value,
+ True, "lblTitlePublish", 91, 8, 7, tabIndex + 1, 232))
+ self.FixedLine1 = self.insertFixedLine(
+ "FixedLine1", WebWizardDialog.PROPNAMES_LBL,
+ (9, self.resources.resFixedLine1_value, "FixedLine1",
+ 97, 28, 7, tabIndex + 1, 228))
+ self.btnPreview = self.insertButton(
+ "btnPreview", BTNPREVIEW_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID7_BTN_PREVIEW),
+ self.resources.resbtnPreview_value, "btnPreview",
+ 103, 40, 7, tabIndex + 1, 50), self)
+ self.insertFixedLine(
+ "lblCreateSite", WebWizardDialog.PROPNAMES_LBL,
+ (9, self.resources.reslblCreateSite_value, "lblCreateSite",
+ 97, 56, 7, tabIndex + 1, 228))
+ self.chkLocalDir = self.insertCheckBox(
+ "chkLocalDir", CHKLOCALDIR_ITEM_CHANGED,
+ WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID7_CHK_PUBLISH_LOCAL),
+ self.resources.reschkLocalDir_value, "chkLocalDir",
+ 103, 68, 0, 7, tabIndex + 1, 215), self)
+ self.txtLocalDir = self.insertTextField(
+ "txtLocalDir", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID7_TXT_LOCAL), "txtLocalDir",
+ 113, 78, 7, tabIndex + 1, 190), self)
+ self.btnLocalDir = self.insertButton(
+ "btnLocalDir", BTNLOCALDIR_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID7_BTN_LOCAL),
+ self.resources.resbtnLocalDir_value, "btnLocalDir",
+ 308, 77, 7, tabIndex + 1, 16), self)
+ self.chkZip = self.insertCheckBox(
+ "chkZip", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (9, HelpIds.getHelpIdString(HID7_CHK_PUBLISH_ZIP),
+ self.resources.reschkZip_value, "chkZip", 103, 96, 0, 7,
+ tabIndex + 1, 215), self)
+ self.txtZip = self.insertTextField(
+ "txtZip", None, WebWizardDialog.PROPNAMES_TXT,
+ (12, HelpIds.getHelpIdString(HID7_TXT_ZIP), "txtZip",
+ 113, 108, 7, tabIndex + 1, 190), self)
+ self.btnZip = self.insertButton(
+ "btnZip", BTNZIP_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID7_BTN_ZIP),
+ self.resources.resbtnZip_value, "btnZip", 308, 107, 7,
+ tabIndex + 1, 16), self)
+ self.chkFTP = self.insertCheckBox(
+ "chkFTP", None, WebWizardDialog.PROPNAMES_CHKBOX,
+ (8, HelpIds.getHelpIdString(HID7_CHK_PUBLISH_FTP),
+ self.resources.reschkFTP_value, "chkFTP", 103, 124, 0, 7,
+ tabIndex + 1, 215), self)
+ if disableFTP:
+ FTP_STEP = 99
+ else:
+ FTP_STEP = 7
+
+ self.lblFTP = self.insertLabel(
+ "lblFTP", ("Border",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (1, 12, "txtFTP", 113, 134, FTP_STEP, tabIndex + 1, 156))
+ self.btnFTP = self.insertButton(
+ "btnFTP", BTNFTP_ACTION_PERFORMED,
+ WebWizardDialog.PROPNAMES_BUTTON,
+ (14, HelpIds.getHelpIdString(HID7_BTN_FTP),
+ self.resources.resbtnFTP_value, "btnFTP", 274, 133,
+ FTP_STEP, tabIndex + 1, 50), self)
+ if disableFTP:
+ self.insertImage(
+ "imgFTPDisabled",("BackgroundColor", "Border",
+ PropertyNames.PROPERTY_ENABLED,
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_IMAGEURL,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y, "ScaleImage",
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (-1, 0, False, 10, exclamationURL, "imgFTPDisabled", 115,
+ 135, False, 7, tabIndex + 1, 8))
+ self.insertLabel(
+ "lblFTPDisabled",("BackgroundColor",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_LABEL,
+ PropertyNames.PROPERTY_MULTILINE,
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (-1, 8, self.resources.reslblFTPDisabled, True,
+ "lblFTPDisabled", 125, 136, 7, tabIndex + 1, 226))
+
+ self.insertFixedLine(
+ "lnSaveSetting", WebWizardDialog.PROPNAMES_TXT,
+ (2, "", "lnSaveSetting", 97, 151, 7, tabIndex + 1, 228))
+ self.chkSaveSettings = self.insertCheckBox(
+ "chkSaveSettings", CHKSAVESETTINGS_ITEM_CHANGED,
+ WebWizardDialog.PROPNAMES_CHKBOX,
+ (9, HelpIds.getHelpIdString(HID7_CHK_SAVE),
+ self.resources.reschkSaveSettings_value, "chkSaveSettings",
+ 97, 157, 1, 7, tabIndex + 1, 215), self)
+ self.insertLabel(
+ "lblSaveSettings", WebWizardDialog.PROPNAMES_LBL,
+ (8, self.resources.reslblSaveSettings_value, "lblSaveSettings",
+ 107, 169, 7, tabIndex + 1, 45))
+ self.cbSaveSettings = self.insertComboBox(
+ "txtSaveSettings", TXTSAVESETTINGS_TEXT_CHANGED,
+ TXTSAVESETTINGS_TEXT_CHANGED, TXTSAVESETTINGS_TEXT_CHANGED,
+ ("Autocomplete", "Dropdown",
+ PropertyNames.PROPERTY_HEIGHT,
+ PropertyNames.PROPERTY_HELPURL, "LineCount",
+ PropertyNames.PROPERTY_NAME,
+ PropertyNames.PROPERTY_POSITION_X,
+ PropertyNames.PROPERTY_POSITION_Y,
+ PropertyNames.PROPERTY_STEP,
+ PropertyNames.PROPERTY_TABINDEX,
+ PropertyNames.PROPERTY_WIDTH),
+ (True, True, 12, HelpIds.getHelpIdString(HID7_TXT_SAVE),
+ 14, "txtSaveSettings", 179, 167, 7, tabIndex + 1, 145), self)
+
+ '''
+ builds the layouts image list.
+ '''
+
+ def buildStepX(self):
+ self.ilLayouts = ImageList()
+ self.ilLayouts.pos = Size (97, 38)
+ self.ilLayouts.imageSize = Size (34, 30)
+ self.ilLayouts.cols = 5
+ self.ilLayouts.rows = 3
+ self.ilLayouts.step = 3
+ self.ilLayouts.showButtons = False
+ self.ilLayouts.renderer = self.LayoutRenderer()
+ self.ilLayouts.scaleImages = False
+ self.ilLayouts.tabIndex = 31
+ self.ilLayouts.helpURL = HID3_IL_LAYOUTS_IMG1
+
+
+ '''
+ renders the images and titles of
+ the layouts
+ @author rpiterman
+ '''
+
+ class LayoutRenderer:
+
+ def getImageUrls(self, listItem):
+ oResIds = None
+ if listItem != None:
+ oResIds = listItem.getImageUrls()
+
+ return oResIds
+
+ def render(self, listItem):
+ print "implementar"
+ #return listItem == None ? "" : (listItem).cp_Name
diff --git a/wizards/com/sun/star/wizards/web/WebWizardDialogResources.py b/wizards/com/sun/star/wizards/web/WebWizardDialogResources.py
new file mode 100644
index 000000000000..f52f1517f183
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/WebWizardDialogResources.py
@@ -0,0 +1,298 @@
+import traceback
+from common.Resource import Resource
+from common.Configuration import Configuration
+from common.Properties import Properties
+from document.OfficeDocument import OfficeDocument
+
+class WebWizardDialogResources(Resource):
+ UNIT_NAME = "dbwizres"
+ MODULE_NAME = "dbw"
+ RID_WEBWIZARDDIALOG_START = 4000
+ RID_COMMON_START = 500
+ RID_DB_COMMON_START = 1000
+
+ def __init__(self, xmsf):
+ super(WebWizardDialogResources,self).__init__(xmsf,
+ WebWizardDialogResources.MODULE_NAME)
+ self.resbtnDocUp_value = str(8743)
+ self.resbtnDocDown_value = str(8744)
+
+ #Delete the String, uncomment the getResText method
+ self.resWebWizardDialog_title = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 1)
+ self.reslblIntroduction_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 2)
+ self.resbtnDelSession_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 4)
+ self.reslbIntroTitle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 5)
+ self.reslblContentTitle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 6)
+ self.reslnDocsInfo_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 8)
+ self.reslblDocTitle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 9)
+ self.reslblDocInfo_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 10)
+ self.reslblDocAuthor_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 11)
+ self.reslblDocExportFormat_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 12)
+ self.reslblTitleGeneralPage_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 13)
+ self.reslblSiteTitle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 14)
+ self.reslblSiteDesc_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 16)
+ self.reslblSiteCreated_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 18)
+ self.reslblEmail_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 20)
+ self.reslblCopyright_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 21)
+ self.reslblSiteUpdated_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 22)
+ self.resbtnPreview_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 24)
+ self.reslblTitlePublish_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 25)
+ self.reslblCreateSite_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 26)
+ self.reschkLocalDir_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 27)
+ self.resbtnLocalDir_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 28)
+ self.reschkFTP_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 29)
+
+ self.resbtnFTP_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 31)
+ self.reschkZip_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 32)
+ self.resbtnZip_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 33)
+ self.reschkSaveSettings_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 34)
+ self.reslblSaveSettings_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 35)
+ self.reslblLoadSettings_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 36)
+ self.reslblSiteContent_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 37)
+ self.resbtnAddDoc_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 38)
+ self.resbtnRemoveDoc_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 39)
+ self.reslblLayoutTitle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 40)
+ self.reslblStyleTitle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 41)
+ self.reslblStyle_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 42)
+
+ self.reslblLayouts_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 48)
+
+ self.reschbDocDesc_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 50)
+ self.reschbDocAuthor_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 51)
+ self.reschkDocCreated_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 52)
+ self.reschkDocChanged_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 53)
+ self.reschkDocFilename_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 54)
+ self.reschkDocFormat_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 55)
+ self.reschkDocFormatIcon_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 56)
+ self.reschkDocPages_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 57)
+ self.reschkDocSize_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 58)
+ self.resFixedLine1_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 59)
+ self.reslblLayout2Title_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 60)
+ self.reslblDisplay_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 61)
+ self.reslblOptimizeFor_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 62)
+ self.resoptOptimize640x480_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 64)
+ self.resoptOptimize800x600_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 65)
+ self.resoptOptimize1024x768_value = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 66)
+
+ self.resStatusDialogTitle = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 70)
+ self.resCounter = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 71)
+ self.resPublishDir = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 72)
+ self.resFTPTargetExistsAsfile = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 73)
+ self.resLocalTargetExistsAsfile = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 74)
+ self.resZipTargetExists = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 75)
+ self.resFTPTargetNotEmpty = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 76)
+ self.resLocalTragetNotEmpty = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 77)
+ self.resSessionExists = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 78)
+ self.resTaskExportDocs = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 79)
+ self.resTaskExportPrepare = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 80)
+ self.resTaskGenerateCopy = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 81)
+ self.resTaskGeneratePrepare = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 82)
+ self.resTaskGenerateXsl = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 83)
+ self.resTaskPrepare = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 84)
+ self.resTaskPublishPrepare = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 86)
+ self.resTaskPublishLocal = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 87)
+ self.resTaskPublishFTP = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 88)
+ self.resTaskPublishZip = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 89)
+ self.resTaskFinish = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 90)
+
+ self.resImages = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 94)
+ self.resAllFiles = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 95)
+ self.resZipFiles = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 96)
+ self.resBackgroundsDialog = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 98)
+ self.resBackgroundsDialogCaption = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 99)
+ self.resIconsDialog = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 100)
+ self.resIconsDialogCaption = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 101)
+ self.resOther = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 102)
+ self.resDeselect = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 103)
+ self.resFinishedSuccess = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 104)
+ self.resFinishedNoSuccess = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 105)
+ self.resErrTOC = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 106)
+ self.resErrTOCMedia = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 107)
+ self.resErrDocInfo = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 108)
+ self.resErrDocExport = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 109)
+ self.resErrMkDir = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 110)
+ self.resErrSecurity = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 111)
+ self.resErrExportIO = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 112)
+ self.resErrPublishMedia = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 113)
+ self.resErrPublish = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 114)
+ self.resErrUnknown = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 115)
+ self.resErrDocValidate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 116)
+ self.resErrIsDirectory = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 117)
+ self.resLoadingSession = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 118)
+ self.resErrUnexpected = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 119)
+ self.resValidatingDocuments = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 120)
+ self.resDefaultArchiveFilename = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 121)
+ self.resStep1 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 122)
+ self.resStep2 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 123)
+ self.resStep3 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 124)
+ self.resStep4 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 125)
+ self.resStep5 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 126)
+ self.resStep6 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 127)
+ self.resStep7 = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 128)
+ self.resDelSessionConfirm = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 130)
+ self.resPages = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 131)
+ self.resSlides = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 132)
+ self.resCreatedTemplate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 133)
+ self.resUpdatedTemplate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 134)
+ self.resSessionName = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 135)
+ self.reslblBackground = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 136)
+ self.reslblIconset = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 137)
+ self.reslblIconSetInfo = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 138)
+ self.reslblMetaData = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 139)
+ self.resBtnChooseBackground = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 140)
+ self.resBtnChooseIconset = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 141)
+ self.resSessionNameNone = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 142)
+ self.reslblFTPDisabled = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 143)
+ self.resBackgroundNone = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 144)
+ self.resIconsetNone = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 145)
+ self.resFTPTargetCouldNotCreate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 146)
+ self.resFTPTargetCreate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 147)
+ self.resZipTargetIsDir = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 148)
+ self.resLocalTargetCouldNotCreate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 149)
+ self.resLocalTargetCreate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 150)
+ self.resSizeTemplate = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 151)
+ self.resSpecifyNewFileLocation = self.getResText(
+ WebWizardDialogResources.RID_WEBWIZARDDIALOG_START + 152)
+ self.resClose = self.getResText(
+ WebWizardDialogResources.RID_COMMON_START + 17)
+ self.resCancel = self.getResText(
+ WebWizardDialogResources.RID_COMMON_START + 11)
+ self.resOK = self.getResText(
+ WebWizardDialogResources.RID_COMMON_START + 18)
+ self.resHelp = self.getResText(
+ WebWizardDialogResources.RID_COMMON_START + 15)
+ try:
+ self.prodName = Configuration.getProductName(xmsf)
+ self.resGifFiles = Properties.getPropertyValue(
+ OfficeDocument.getTypeMediaDescriptor(
+ xmsf, "gif_Graphics_Interchange"), "UIName")
+ except Exception, ex:
+ traceback.print_exc()
diff --git a/wizards/com/sun/star/wizards/web/__init__.py b/wizards/com/sun/star/wizards/web/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/__init__.py