From e9440fb5a0579096423c081b0f0a2185b628e896 Mon Sep 17 00:00:00 2001 From: Xisco Fauli Date: Wed, 10 Aug 2011 18:30:07 +0200 Subject: Implement partly the 5th step --- wizards/com/sun/star/wizards/ui/ImageList.py | 311 +++++++++++++-------- wizards/com/sun/star/wizards/ui/UnoDialog.py | 2 +- .../com/sun/star/wizards/ui/event/UnoDataAware.py | 1 + .../com/sun/star/wizards/web/BackgroundsDialog.py | 194 +++++++++++++ wizards/com/sun/star/wizards/web/IconsDialog.py | 96 +++++++ .../com/sun/star/wizards/web/ImageListDialog.py | 211 ++++++++++++++ wizards/com/sun/star/wizards/web/WWD_Events.py | 108 +++---- wizards/com/sun/star/wizards/web/WWD_General.py | 2 +- wizards/com/sun/star/wizards/web/WWD_Startup.py | 51 ++-- .../com/sun/star/wizards/web/WebWizardDialog.py | 2 +- wizards/com/sun/star/wizards/web/data/CGDesign.py | 16 -- wizards/com/sun/star/wizards/web/data/CGSession.py | 8 +- 12 files changed, 787 insertions(+), 215 deletions(-) create mode 100644 wizards/com/sun/star/wizards/web/BackgroundsDialog.py create mode 100644 wizards/com/sun/star/wizards/web/IconsDialog.py create mode 100644 wizards/com/sun/star/wizards/web/ImageListDialog.py (limited to 'wizards') diff --git a/wizards/com/sun/star/wizards/ui/ImageList.py b/wizards/com/sun/star/wizards/ui/ImageList.py index b9afce07b369..a8b40dcaf79b 100644 --- a/wizards/com/sun/star/wizards/ui/ImageList.py +++ b/wizards/com/sun/star/wizards/ui/ImageList.py @@ -23,9 +23,21 @@ class ImageList(object): HIDE_PAGE = 99 TRANSPARENT = -1 LINE_HEIGHT = 8 - IMAGE_PROPS = ("Border", "BackgroundColor", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, "ScaleImage", PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, "Tabstop", PropertyNames.PROPERTY_WIDTH) - MOVE_SELECTION = (PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP) + IMAGE_PROPS = ("Border", "BackgroundColor", + PropertyNames.PROPERTY_HEIGHT, + PropertyNames.PROPERTY_HELPURL, + PropertyNames.PROPERTY_POSITION_X, + PropertyNames.PROPERTY_POSITION_Y, "ScaleImage", + PropertyNames.PROPERTY_STEP, + PropertyNames.PROPERTY_TABINDEX, "Tabstop", + PropertyNames.PROPERTY_WIDTH) + MOVE_SELECTION = (PropertyNames.PROPERTY_POSITION_X, + PropertyNames.PROPERTY_POSITION_Y, + PropertyNames.PROPERTY_STEP) lock = RLock() + listModel = [] + btnNext = None + btnBack = None def __init__(self): self.benabled = True @@ -52,29 +64,88 @@ class ImageList(object): imageTextHeight = self.imageTextLines * ImageList.LINE_HEIGHT opeerConfig = PeerConfig(dialog) self.MOVE_SELECTION_VALS[2] = self.step - imgContainer = dialog.insertImage(self.name + "lblContainer",("BackgroundColor", "Border", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_WIDTH), (ImageList.BACKGROUND_COLOR, 1, (self.imageSize.Height + self.gap.Height) * self.rows + self.gap.Height + imageTextHeight + 1,self.pos.Width,self.pos.Height, self.step, (self.imageSize.Width + self.gap.Width) * self.cols + self.gap.Width)) + imgContainer = dialog.insertImage( + self.name + "lblContainer", + ("BackgroundColor", "Border", + PropertyNames.PROPERTY_HEIGHT, + PropertyNames.PROPERTY_POSITION_X, + PropertyNames.PROPERTY_POSITION_Y, + PropertyNames.PROPERTY_STEP, + PropertyNames.PROPERTY_WIDTH), + (ImageList.BACKGROUND_COLOR, 1, + (self.imageSize.Height + self.gap.Height) \ + * self.rows + self.gap.Height + imageTextHeight + 1, + self.pos.Width,self.pos.Height, self.step, + (self.imageSize.Width + self.gap.Width) \ + * self.cols + self.gap.Width)) opeerConfig.setPeerProperties(imgContainer,"MouseTransparent", True) if self.rowSelect: - selectionWidth = (self.imageSize.Width + self.gap.Width) * self.cols - self.gap.Width + (self.selectionGap.Width * 2) + selectionWidth = (self.imageSize.Width + self.gap.Width) \ + * self.cols - self.gap.Width + (self.selectionGap.Width * 2) else: selectionWidth = self.imageSize.Width + (self.selectionGap.Width * 2) - self.grbxSelectedImage = dialog.insertLabel(self.name + "_grbxSelected", ("BackgroundColor", "Border", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, "Tabstop", PropertyNames.PROPERTY_WIDTH), (ImageList.TRANSPARENT, 1, self.imageSize.Height + (self.selectionGap.Height * 2), #height - 0, #posx - 0, #posy - self.step, True, selectionWidth)) + self.grbxSelectedImage = dialog.insertLabel( + self.name + "_grbxSelected", + ("BackgroundColor", "Border", + PropertyNames.PROPERTY_HEIGHT, + PropertyNames.PROPERTY_POSITION_X, + PropertyNames.PROPERTY_POSITION_Y, + PropertyNames.PROPERTY_STEP, "Tabstop", + PropertyNames.PROPERTY_WIDTH), + (ImageList.TRANSPARENT, 1, + self.imageSize.Height + (self.selectionGap.Height * 2), + 0, #height + 0, #posx + 0, #posy + self.step, True, selectionWidth)) xWindow = self.grbxSelectedImage xWindow.addMouseListener(None) - pNames1 = (PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, "Tabstop", PropertyNames.PROPERTY_WIDTH) - self.lblImageText = dialog.insertLabel(self.name + "_imageText", pNames1, (imageTextHeight, "", self.pos.Width + 1, self.pos.Height + (self.imageSize.Height + self.gap.Height) * self.rows + self.gap.Height, self.step, 0, False, self.cols * (self.imageSize.Width + self.gap.Width) + self.gap.Width - 2)) + pNames1 = (PropertyNames.PROPERTY_HEIGHT, + PropertyNames.PROPERTY_HELPURL, + PropertyNames.PROPERTY_POSITION_X, + PropertyNames.PROPERTY_POSITION_Y, + PropertyNames.PROPERTY_STEP, + PropertyNames.PROPERTY_TABINDEX, "Tabstop", + PropertyNames.PROPERTY_WIDTH) + self.lblImageText = dialog.insertLabel( + self.name + "_imageText", pNames1, + (imageTextHeight, "", self.pos.Width + 1, + self.pos.Height + (self.imageSize.Height + self.gap.Height) \ + * self.rows + self.gap.Height, self.step, 0, False, + self.cols * (self.imageSize.Width + self.gap.Width) \ + + self.gap.Width - 2)) if self.showButtons: - self.btnBack = dialog.insertButton(self.name + "_btnBack", "prevPage", this, pNames1, (14, HelpIds.getHelpIdString((self.helpURL + 1)), self.pos.Width, self.pos.Height + (self.imageSize.Height + self.gap.Height) * self.rows + self.gap.Height + imageTextHeight + 1, self.step, self.tabIndex + 1, True, 14)) - self.btnNext = dialog.insertButton(self.name + "_btnNext", "nextPage", this, pNames1, (14, HelpIds.getHelpIdString((self.helpURL + 1)), self.pos.Width + (self.imageSize.Width + self.gap.Width) * self.cols + self.gap.Width - 14 + 1, self.pos.Height + (self.imageSize.Height + self.gap.Height) * self.rows + self.gap.Height + imageTextHeight + 1, self.step, self.tabIndex + 2, True, 14)) - self.lblCounter = dialog.insertLabel(self.name + "_lblCounter", pNames1, (ImageList.LINE_HEIGHT, "", self.pos.Width + 14 + 1, self.pos.Height + (self.imageSize.Height + self.gap.Height) * self.rows + self.gap.Height + imageTextHeight + ((14 - ImageList.LINE_HEIGHT) / 2), self.step, 0, False, self.cols * (self.imageSize.Width + self.gap.Width) + self.gap.Width - 2 * 14 - 1)) + ImageList.btnBack = dialog.insertButton( + self.name + "_btnBack", "prevPage", pNames1, + (14, HelpIds.getHelpIdString((self.helpURL + 1)), + self.pos.Width, self.pos.Height + \ + (self.imageSize.Height + self.gap.Height) * \ + self.rows + self.gap.Height + imageTextHeight + 1, + self.step, self.tabIndex + 1, True, 14), self) + ImageList.btnNext = dialog.insertButton( + self.name + "_btnNext", "nextPage", pNames1, + (14, HelpIds.getHelpIdString((self.helpURL + 1)), + self.pos.Width + (self.imageSize.Width + self.gap.Width) * \ + self.cols + self.gap.Width - 14 + 1, + self.pos.Height + (self.imageSize.Height + self.gap.Height) \ + * self.rows + self.gap.Height + imageTextHeight + 1, + self.step, self.tabIndex + 2, True, 14), self) + self.lblCounter = dialog.insertLabel( + self.name + "_lblCounter", pNames1, + (ImageList.LINE_HEIGHT, "", self.pos.Width + 14 + 1, + self.pos.Height + (self.imageSize.Height + self.gap.Height) \ + * self.rows + self.gap.Height + imageTextHeight + \ + ((14 - ImageList.LINE_HEIGHT) / 2), + self.step, 0, False, self.cols * \ + (self.imageSize.Width + self.gap.Width) + \ + self.gap.Width - 2 * 14 - 1)) Helper.setUnoPropertyValue(self.lblCounter.Model, "Align", 1) - Helper.setUnoPropertyValue(self.btnBack.Model, PropertyNames.PROPERTY_LABEL, "<") - Helper.setUnoPropertyValue(self.btnNext.Model, PropertyNames.PROPERTY_LABEL, ">") + Helper.setUnoPropertyValue(ImageList.btnBack.Model, + PropertyNames.PROPERTY_LABEL, "<") + Helper.setUnoPropertyValue(ImageList.btnNext.Model, + PropertyNames.PROPERTY_LABEL, ">") self.m_aImages = [None] * (self.rows * self.cols) @@ -84,23 +155,32 @@ class ImageList(object): self.refreshImages() #COMMENTED - #self.listModel.addListDataListener(None) + #ImageList.listModel.addListDataListener(None) #used for optimization def createImage(self, dialog, _row, _col): imageName = self.name + "_image" + str(_row * self.cols + _col) - image = dialog.insertImage(imageName, ImageList.IMAGE_PROPS, (ImageList.NO_BORDER, ImageList.BACKGROUND_COLOR, self.imageSize.Height, HelpIds.getHelpIdString(self.helpURL + 1), self.getImagePosX(_col), self.getImagePosY(_row), self.scaleImages, self.step, self.tabIndex, False, self.imageSize.Width)) + image = dialog.insertImage( + imageName, ImageList.IMAGE_PROPS, + (ImageList.NO_BORDER, ImageList.BACKGROUND_COLOR, + self.imageSize.Height, + HelpIds.getHelpIdString(self.helpURL + 1), + self.getImagePosX(_col), self.getImagePosY(_row), + self.scaleImages, self.step, self.tabIndex, + False, self.imageSize.Width)) #COMMENTED image.addMouseListener(None) image.addKeyListener(None) return image def getImagePosX(self, col): - return self.pos.Width + col * (self.imageSize.Width + self.gap.Width) + self.gap.Width + return self.pos.Width + col * \ + (self.imageSize.Width + self.gap.Width) + self.gap.Width def getImagePosY(self, row): - return self.pos.Height + row * (self.imageSize.Height + self.gap.Height) + self.gap.Height + return self.pos.Height + row * \ + (self.imageSize.Height + self.gap.Height) + self.gap.Height def refreshImages(self): if self.showButtons: @@ -114,14 +194,18 @@ class ImageList(object): focusable = True for index, item in enumerate(self.m_aImages): - oResources = self.renderer.getImageUrls(self.getObjectFor(index)) + #COMMENTED + oResources = None #self.renderer.getImageUrls(self.getObjectFor(index)) if oResources is not None: if len(oResources) == 1: - Helper.setUnoPropertyValue(item.Model, PropertyNames.PROPERTY_IMAGEURL, oResources[0]) + Helper.setUnoPropertyValue(item.Model, + PropertyNames.PROPERTY_IMAGEURL, oResources[0]) elif len(oResources) == 2: - self.oUnoDialog.getPeerConfiguration().setImageUrl(item.Model, oResources[0], oResources[1]) + self.oUnoDialog.getPeerConfiguration().setImageUrl( + item.Model, oResources[0], oResources[1]) - Helper.setUnoPropertyValue(item.Model, "Tabstop", bool(focusable)) + Helper.setUnoPropertyValue( + item.Model, "Tabstop", bool(focusable)) if self.refreshOverNull: item.Visible = True @@ -130,23 +214,29 @@ class ImageList(object): self.refreshSelection() def refreshCounterText(self): - Helper.setUnoPropertyValue(self.lblCounter.Model, PropertyNames.PROPERTY_LABEL, self.counterRenderer.render(Counter (self.pageStart + 1, pageEnd(), self.listModel.getSize()))) + Helper.setUnoPropertyValue( + self.lblCounter.Model, PropertyNames.PROPERTY_LABEL, + self.counterRenderer.render( + self.Counter (self.pageStart + 1, + self.pageEnd, len(ImageList.listModel)))) def pageEnd(self): i = self.pageStart + self.cols * self.rows - if i > self.listModel.getSize() - 1: - return self.listModel.getSize() + if i > ImageList.listModel.getSize() - 1: + return ImageList.listModel.getSize() else: return i def refreshSelection(self): - if self.selected < self.pageStart or self.selected >= (self.pageStart + self.rows * self.cols): + if self.selected < self.pageStart or \ + self.selected >= (self.pageStart + self.rows * self.cols): self.hideSelection() else: self.moveSelection(self.getImageIndexFor(self.selected)) def hideSelection(self): - Helper.setUnoPropertyValue(self.grbxSelectedImage.Model, PropertyNames.PROPERTY_STEP, ImageList.HIDE_PAGE) + Helper.setUnoPropertyValue(self.grbxSelectedImage.Model, + PropertyNames.PROPERTY_STEP, ImageList.HIDE_PAGE) self.grbxSelectedImage.Visible = False ''' @@ -161,30 +251,36 @@ class ImageList(object): else: col = image - (row * self.cols) - self.MOVE_SELECTION_VALS[0] = Integer.Integer_unknown(getImagePosX(col) - self.selectionGap.Width) - self.MOVE_SELECTION_VALS[1] = Integer.Integer_unknown(getImagePosY(row) - self.selectionGap.Height) - Helper.setUnoPropertyValues(self.grbxSelectedImage.Model, ImageList.MOVE_SELECTION, self.MOVE_SELECTION_VALS) - if (Helper.getUnoPropertyValue(self.dialogModel, PropertyNames.PROPERTY_STEP)).shortValue() == self.step.shortValue(): + self.MOVE_SELECTION_VALS[0] = \ + (self.getImagePosX(col) - self.selectionGap.Width) + self.MOVE_SELECTION_VALS[1] = \ + (self.getImagePosY(row) - self.selectionGap.Height) + Helper.setUnoPropertyValues( + self.grbxSelectedImage.Model, ImageList.MOVE_SELECTION, + self.MOVE_SELECTION_VALS) + if (Helper.getUnoPropertyValue(self.dialogModel, + PropertyNames.PROPERTY_STEP)) == self.step: self.grbxSelectedImage.Visible = True #now focus... - for i in enumerate(self.m_aImages): - if i != image: - self.defocus(i) + for index,item in enumerate(self.m_aImages): + if index != image: + self.defocus(index) else: - Helper.setUnoPropertyValue(self.m_aImages[image].Model, "Tabstop", True) + Helper.setUnoPropertyValue( + self.m_aImages[image].Model, "Tabstop", True) ''' @param i - @return the Object in the list model corresponding to the given image index. + @return the Object in the list model corresponding to the given image index ''' def getObjectFor(self, i): ii = self.getIndexFor(i) - if self.listModel.getSize() <= ii: + if ImageList.listModel.getSize() <= ii: return None else: - return self.listModel.getElementAt(ii) + return ImageList.listModel.getElementAt(ii) ''' @param i @@ -202,7 +298,8 @@ class ImageList(object): if event.getIndex1() <= self.selected: self.selected += event.getIndex1() - event.getIndex0() + 1 - if event.getIndex0() < self.pageStart or event.getIndex1() < (self.pageStart + getRows() + getCols()): + if event.getIndex0() < self.pageStart or \ + event.getIndex1() < (self.pageStart + getRows() + getCols()): refreshImages() ''' @@ -233,8 +330,8 @@ class ImageList(object): ''' def fireItemSelected(self): - with AgendaTemplate.lock: - if self.itemListenerList == None: + with ImageList.lock: + if self.itemListenerList is None: return auxlist = self.itemListenerList.clone() @@ -242,43 +339,41 @@ class ImageList(object): for i in auxlist: i.itemStateChanged(None) - def setSelected(self, i): - if self.rowSelect and (i >= 0): - i = (i / self.cols) * self.cols + def setSelected(self, _object): + if not isinstance(_object, int): + _object = -1 + if _object is not None: + for index, item in enumerate(ImageList.listModel): + if item == _object: + _object = index + return - if self.selected == i: - return - - self.selected = i - refreshImageText() - refreshSelection() - fireItemSelected() - - def setSelected(self, object): - if object == None: - setSelected(-1) - else: - i = 0 - while i < getListModel().getSize(): - if getListModel().getElementAt(i).equals(object): - setSelected(i) - return + if self.rowSelect and (_object >= 0): + _object = (_object / self.cols) * self.cols - i += 1 + if self.selected == _object: + return - setSelected(-1) + self.selected = _object + self.refreshImageText() + self.refreshSelection() + #COMMENTED + #self.fireItemSelected() def refreshImageText(self): if self.selected >= 0: - item = getListModel().getElementAt(self.selected) + #COMMENTED + item = None #ImageList.listModel.getElementAt(self.selected) else: item = None - Helper.setUnoPropertyValue(self.lblImageText.Model, PropertyNames.PROPERTY_LABEL, " " + self.renderer.render(item)) + Helper.setUnoPropertyValue( + self.lblImageText.Model, PropertyNames.PROPERTY_LABEL, + " " + self.renderer.render(item)) def nextPage(self): - if self.pageStart < getListModel().getSize() - self.rows * self.cols: + if self.pageStart < listModel().getSize() - self.rows * self.cols: setPageStart(self.pageStart + self.rows * self.cols) def prevPage(self): @@ -292,55 +387,62 @@ class ImageList(object): setPageStart(i) def enableButtons(self): - enable(self.btnNext, bool(self.pageStart + self.rows * self.cols < self.listModel.getSize())) - enable(self.btnBack, bool(self.pageStart > 0)) + self.enable( + ImageList.btnNext, + bool(self.pageStart + self.rows * self.cols < len(ImageList.listModel))) + self.enable(ImageList.btnBack, bool(self.pageStart > 0)) def enable(self, control, enable): - Helper.setUnoPropertyValue(control.Model, PropertyNames.PROPERTY_ENABLED, enable) + Helper.setUnoPropertyValue(control.Model, + PropertyNames.PROPERTY_ENABLED, enable) def setBorder(self, control, border): Helper.setUnoPropertyValue(control.Model, "Border", border) def getImageFromEvent(self, event): image = (event).Source - controlName = Helper.getUnoPropertyValue(image.Model, PropertyNames.PROPERTY_NAME) + controlName = Helper.getUnoPropertyValue(image.Model, + PropertyNames.PROPERTY_NAME) return Integer.valueOf(controlName.substring(6 + self.name.length())) def mousePressed(self, event): image = getImageFromEvent(event) index = getIndexFor(image) - if index < self.listModel.getSize(): + if index < ImageList.listModel.getSize(): focus(image) setSelected(index) def getSelectedObjects(self): - return[getListModel().getElementAt(self.selected)] + return[listModel().getElementAt(self.selected)] class SimpleCounterRenderer: def render(self, counter): - return "" + (counter).start + ".." + (counter).end + "/" + (counter).max + return \ + "" + (counter).start + ".." + (counter).end + "/" + (counter).max - '''class Counter: + class Counter(object): - def __init__self, start_, end_, max_): + def __init__(self, start_, end_, max_): self.start = start_ self.end = end_ - self.max = max_''' + self.max = max_ def getSelectedObject(self): if self.selected >= 0: - return getListModel().getElementAt(self.selected) + return listModel().getElementAt(self.selected) return None def showSelected(self): oldPageStart = self.pageStart if self.selected != -1: - self.pageStart = (self.selected / self.m_aImages.length) * self.m_aImages.length + self.pageStart = \ + (self.selected / len(self.m_aImages)) * len(self.m_aImages) if oldPageStart != self.pageStart: - enableButtons() - refreshImages() + #COMMENTED + #self.enableButtons() + self.refreshImages() def keyPressed(self, ke): image = getImageFromEvent(ke) @@ -355,54 +457,25 @@ class ImageList(object): changeFocus(image, newImage) def isFocusable(self, image): - return (image >= 0) and (getIndexFor(image) < self.listModel.getSize()) + return (image >= 0) and \ + (getIndexFor(image) < ImageList.listModel.getSize()) def changeFocus(self, oldFocusImage, newFocusImage): focus(newFocusImage) defocus(oldFocusImage) - def getKeyMove(self, ke, row, col): - '''switch (ke.KeyCode) - { - case Key.UP: - if (row > 0) - { - return 0 - getCols(); - } - break; - case Key.DOWN: - if (row < getRows() - 1) - { - return getCols(); - } - break; - case Key.LEFT: - if (col > 0) - { - return -1; - } - break; - case Key.RIGHT: - if (col < getCols() - 1) - { - return 1; - } - break; - case Key.SPACE: - select(ke); - } - return 0;''' - def select(self, ke): setSelected(getIndexFor(getImageFromEvent(ke))) def focus(self, image): - Helper.setUnoPropertyValue(self.m_aImages[image].Model, "Tabstop", True) + Helper.setUnoPropertyValue( + self.m_aImages[image].Model, "Tabstop", True) xWindow = self.m_aImages[image] xWindow.setFocus() def defocus(self, image): - Helper.setUnoPropertyValue(self.m_aImages[image].Model, "Tabstop", False) + Helper.setUnoPropertyValue( + self.m_aImages[image].Model, "Tabstop", False) '''jump to the given item (display the screen that contains the given item). @@ -411,7 +484,7 @@ class ImageList(object): def display(self, i): isAux = (getCols() * getRows()) - ps = (self.listModel.getSize() / isAux) * isAux + ps = (ImageList.listModel.getSize() / isAux) * isAux setPageStart(ps) def setenabled(self, b): @@ -422,8 +495,8 @@ class ImageList(object): UnoDialog2.setEnabled(self.grbxSelectedImage, b) UnoDialog2.setEnabled(self.lblImageText, b) if self.showButtons: - UnoDialog2.setEnabled(self.btnBack, b) - UnoDialog2.setEnabled(self.btnNext, b) + UnoDialog2.setEnabled(ImageList.btnBack, b) + UnoDialog2.setEnabled(ImageList.btnNext, b) UnoDialog2.setEnabled(self.lblCounter, b) self.benabled = b diff --git a/wizards/com/sun/star/wizards/ui/UnoDialog.py b/wizards/com/sun/star/wizards/ui/UnoDialog.py index 514978af692f..53519ec30fec 100644 --- a/wizards/com/sun/star/wizards/ui/UnoDialog.py +++ b/wizards/com/sun/star/wizards/ui/UnoDialog.py @@ -262,7 +262,7 @@ class UnoDialog(object): ''' def executeDialogFromParent(self, parent): - return self.executeDialog(parent.xWindow.PosSize) + return self.executeDialog(parent.xUnoDialog.PosSize) ''' @param XComponent diff --git a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py index 8afef0a08152..483a56916afc 100644 --- a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py +++ b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.py @@ -72,6 +72,7 @@ class UnoDataAware(DataAware): checkBox.addItemListener(ItemListenerProcAdapter(method)) return uda + @classmethod def attachLabel(self, data, prop, label, field): return UnoDataAware(data, prop, label, PropertyNames.PROPERTY_LABEL) 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.
+ 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. +
+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. +
+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. +
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/WWD_Events.py b/wizards/com/sun/star/wizards/web/WWD_Events.py index 9623d9a17884..e15d98a4eeaa 100644 --- a/wizards/com/sun/star/wizards/web/WWD_Events.py +++ b/wizards/com/sun/star/wizards/web/WWD_Events.py @@ -1,6 +1,8 @@ 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 @@ -14,6 +16,9 @@ session methods. class WWD_Events(WWD_Startup): + iconsDialog = None + bgDialog = None + ''' He - my constructor ! I add a window listener, which, when @@ -46,7 +51,7 @@ class WWD_Events(WWD_Startup): pass def enterStep(self, old, newStep): - if (old == 1): + if old == 1: sessionToLoad = "" s = Helper.getUnoPropertyValue(lstLoadWWD_Startup.settings.Model, "SelectedItems") if s.length == 0 or s[0] == 0: @@ -103,7 +108,7 @@ class WWD_Events(WWD_Startup): if sessionToLoad == "": setSaveSessionName(session) - mount(session, task, False, sd.xControl) + mount(session, task, False, sd.self.xUnoDialog) checkSteps() self.currentSession = sessionToLoad '''while task.getStatus() <= task.getMax(): @@ -133,7 +138,7 @@ class WWD_Events(WWD_Startup): return confirm = AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, resources.resDelSessionConfirm, + self.xMSF, self.xUnoDialog.Peer, resources.resDelSessionConfirm, ErrorHandler.ERROR_QUESTION_NO) if confirm: try: @@ -190,7 +195,7 @@ class WWD_Events(WWD_Startup): #the same type of document is chosen. elif oldDoc is None or oldDoc.appType != doc.appType: self.fillExportList(WWD_Startup.settings.getExporters(doc.appType)) - # do nothing + WWD_Startup.selectedDoc = s self.mountList(doc, self.docAware) self.disableDocUpDown() @@ -295,22 +300,23 @@ class WWD_Events(WWD_Startup): def chooseBackground(self): try: - setEnabled(btnBackgrounds, False) - if self.bgDialog == None: - self.bgDialog = BackgroundsDialog( - self.xMSF, WWD_Startup.settings.cp_BackgroundImages, resources) - self.bgDialog.createWindowPeer(xControl.Peer) - - self.bgDialog.setSelected( + 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 = self.bgDialog.executeDialog(WWD_Events.this) + i = WWD_Events.bgDialog.executeDialogFromParent(self) if i == 1: #ok - setBackground(self.bgDialog.getSelected()) - except Exception, ex: - ex.printStackTrace() + setBackground(WWD_Events.bgDialog.getSelected()) + except Exception: + traceback.print_exc() finally: - setEnabled(btnBackgrounds, True) + self.setEnabled(btnBackgrounds, True) ''' invoked when the BackgorundsDialog is "OKed". @@ -320,7 +326,8 @@ class WWD_Events(WWD_Startup): if background == None: background = "" - WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage = background + WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage \ + = background refreshStylePreview() ''' @@ -329,22 +336,23 @@ class WWD_Events(WWD_Startup): def chooseIconset(self): try: - setEnabled(btnIconSets, False) - if self.iconsDialog == None: - self.iconsDialog = IconsDialog( - self.xMSF, WWD_Startup.settings.cp_IconSets, resources) - self.iconsDialog.createWindowPeer(xControl.Peer) - - self.iconsDialog.setIconset( + 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 = self.iconsDialog.executeDialog(WWD_Events.this) + i = WWD_Events.iconsDialog.executeDialogFromParent(self) if i == 1: #ok - setIconset(self.iconsDialog.getIconset()) - except Exception, ex: - ex.printStackTrace() + self.setIconset(WWD_Events.iconsDialog.getIconset()) + except Exception: + traceback.print_exc() finally: - setEnabled(btnIconSets, True) + self.setEnabled(btnIconSets, True) ''' invoked when the Iconsets Dialog is OKed. @@ -485,7 +493,7 @@ class WWD_Events(WWD_Startup): message = resources.resLocalTragetNotEmpty.replace( "%FILENAME", path) result = AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.MESSAGE_WARNING, ErrorHandler.BUTTONS_YES_NO, ErrorHandler.DEF_NO, ErrorHandler.RESULT_YES) @@ -497,7 +505,7 @@ class WWD_Events(WWD_Startup): message = resources.resLocalTargetExistsAsfile.replace( "%FILENAME", path) AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_PROCESS_FATAL) return False @@ -508,7 +516,7 @@ class WWD_Events(WWD_Startup): "%FILENAME", path) try: result = AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_QUESTION_YES) except Exception, ex: ex.printStackTrace() @@ -523,7 +531,7 @@ class WWD_Events(WWD_Startup): message = resources.resLocalTargetCouldNotCreate.replace( "%FILENAME", path) AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_PROCESS_FATAL) return False @@ -537,7 +545,7 @@ class WWD_Events(WWD_Startup): message = resources.resZipTargetIsDir.replace( "%FILENAME", path) AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_PROCESS_FATAL) return False else: @@ -546,7 +554,7 @@ class WWD_Events(WWD_Startup): message = resources.resZipTargetExists.replace( "%FILENAME", path) result = AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_QUESTION_YES) if not result: return False @@ -571,7 +579,7 @@ class WWD_Events(WWD_Startup): message = resources.resFTPTargetNotEmpty.replace( "%FILENAME", path) result = AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_QUESTION_CANCEL) if not result: return result @@ -581,7 +589,7 @@ class WWD_Events(WWD_Startup): message = resources.resFTPTargetExistsAsfile.replace( "%FILENAME", path) AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_PROCESS_FATAL) return False @@ -591,7 +599,7 @@ class WWD_Events(WWD_Startup): message = resources.resFTPTargetCreate.replace( "%FILENAME", path) result = AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_QUESTION_YES) if not result: return result @@ -603,7 +611,7 @@ class WWD_Events(WWD_Startup): message = resources.resFTPTargetCouldNotCreate.replace( "%FILENAME", path) AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_PROCESS_FATAL) return False @@ -630,7 +638,7 @@ class WWD_Events(WWD_Startup): node = Configuration.getNode(name, conf) if node != None: if not AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, + self.xMSF, self.xUnoDialog.Peer, resources.resSessionExists.replace("${NAME}", name), ErrorHandler.ERROR_NORMAL_IGNORE): return False @@ -693,13 +701,13 @@ class WWD_Events(WWD_Startup): message = resources.resFinishedSuccess.replace( "%FILENAME", targets) AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, message, ErrorHandler.ERROR_MESSAGE) + self.xMSF, self.xUnoDialog.Peer, message, ErrorHandler.ERROR_MESSAGE) if self.exitOnCreate: self.xDialog.endExecute() else: AbstractErrorHandler.showMessage( - self.xMSF, xControl.Peer, resources.resFinishedNoSuccess, + self.xMSF, self.xUnoDialog.Peer, resources.resFinishedNoSuccess, ErrorHandler.ERROR_WARNING) def cancel(self): @@ -812,7 +820,7 @@ class WWD_Events(WWD_Startup): getFileAccess().delete(p.cp_URL) try: - eh = ProcessErrorHandler(xMSF, xControl.Peer, resources) + eh = ProcessErrorHandler(xMSF, self.xUnoDialog.Peer, resources) self.process = Process(settings, xMSF, eh) pd = getStatusDialog() pd.setRenderer(ProcessStatusRenderer (resources)) @@ -834,11 +842,11 @@ class WWD_Events(WWD_Startup): self.dpStylePreview.dispose() self.stylePreview.cleanup() - if self.bgDialog is not None: - self.bgDialog.xComponent.dispose() + if WWD_Events.bgDialog is not None: + WWD_Events.bgDialog.xComponent.dispose() - if self.iconsDialog is not None: - self.iconsDialog.xComponent.dispose() + if WWD_Events.iconsDialog is not None: + WWD_Events.iconsDialog.xComponent.dispose() if ftpDialog is not None: ftpDialog.xComponent.dispose() @@ -901,10 +909,12 @@ class WWD_Events(WWD_Startup): ''' 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 + 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) + WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.add( + offset + i - failed - start, doc) else: failed += 1 diff --git a/wizards/com/sun/star/wizards/web/WWD_General.py b/wizards/com/sun/star/wizards/web/WWD_General.py index c3df6588fffc..6fbb0dcd8c1e 100644 --- a/wizards/com/sun/star/wizards/web/WWD_General.py +++ b/wizards/com/sun/star/wizards/web/WWD_General.py @@ -81,7 +81,7 @@ class WWD_General(WebWizardDialog): return None else: return \ - WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.getElementAt(s[0]) + WWD_General.settings.cp_DefaultSession.cp_Content.cp_Documents.childrenList[s[0]] ''' how many documents are in the list? diff --git a/wizards/com/sun/star/wizards/web/WWD_Startup.py b/wizards/com/sun/star/wizards/web/WWD_Startup.py index ccb10500159c..86d0091fc752 100644 --- a/wizards/com/sun/star/wizards/web/WWD_Startup.py +++ b/wizards/com/sun/star/wizards/web/WWD_Startup.py @@ -110,13 +110,13 @@ class WWD_Startup(WWD_General): self.ilLayouts.listModel = WWD_General.settings.cp_Layouts self.ilLayouts.create(self) #COMMENTED - #self.checkContent(WWD_General.settings.cp_DefaultSession.cp_Content, Task("", "", 99999), self.xUnoDialog) + 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() + self.updateUI() # fill the documents listbox. self.fillDocumentList(self.settings.cp_DefaultSession.cp_Content) @@ -194,7 +194,7 @@ class WWD_Startup(WWD_General): DataAware.updateUIs(self.genAware) DataAware.updateUIs(self.pubAware) self.sessionNameDA.updateUI() - checkPublish() + self.checkPublish() ''' create the peer, add roadmap, @@ -226,8 +226,7 @@ class WWD_Startup(WWD_General): self.stylePreview = StylePreview( self.xMSF, WWD_General.settings.workPath) self.stylePreview.refresh( - WWD_General.settings.cp_DefaultSession.getStyle( - WWD_General.settings.cp_Styles), + WWD_General.settings.cp_DefaultSession.getStyle(), WWD_General.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage) self.dpStylePreview.setDocument( self.stylePreview.htmlFilename, DocumentPreview.PREVIEW_MODE) @@ -391,7 +390,7 @@ class WWD_Startup(WWD_General): ''' self.designAware.append(UnoDataAware.attachListBox( WWD_General.settings.cp_DefaultSession.cp_Design, - "Style", self.lstStyles, False)) + "cp_Style", self.lstStyles, False)) #page 6 : site general props self.genAware.append(UnoDataAware.attachEditControl( WWD_General.settings.cp_DefaultSession.cp_GeneralInfo, @@ -401,10 +400,10 @@ class WWD_Startup(WWD_General): "cp_Description", self.txtSiteDesc, True)) self.genAware.append(UnoDataAware.attachDateControl( WWD_General.settings.cp_DefaultSession.cp_GeneralInfo, - "CreationDate", self.dateSiteCreated, False)) + "cp_CreationDate", self.dateSiteCreated, False)) self.genAware.append(UnoDataAware.attachDateControl( WWD_General.settings.cp_DefaultSession.cp_GeneralInfo, - "UpdateDate", self.dateSiteUpdate, False)) + "cp_UpdateDate", self.dateSiteUpdate, False)) self.genAware.append(UnoDataAware.attachEditControl( WWD_General.settings.cp_DefaultSession.cp_GeneralInfo, "cp_Email", self.txtEmail, True)) @@ -412,12 +411,12 @@ class WWD_Startup(WWD_General): WWD_General.settings.cp_DefaultSession.cp_GeneralInfo, "cp_Copyright", self.txtCopyright, True)) #page 7 : publishing - self.pubAware.append(self.pubAware_( - LOCAL_PUBLISHER, self.chkLocalDir, self.txtLocalDir, False)) - self.pubAware.append(self.pubAware_( - FTP_PUBLISHER, self.chkFTP, self.lblFTP, True)) - self.pubAware.append(self.pubAware_( - ZIP_PUBLISHER, self.chkZip, self.txtZip, False)) + 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) @@ -435,11 +434,12 @@ class WWD_Startup(WWD_General): uda = UnoDataAware.attachCheckBox(p, "cp_Publish", checkbox, True) uda.Inverse = True uda.disableObjects = [textbox] - #COMMENTED - '''if isLabel: - aux = UnoDataAware.attachLabel(p, "URL", textbox, False) + self.pubAware.append(uda) + if isLabel: + aux = UnoDataAware.attachLabel(p, "cp_URL", textbox, False) else: - aux = UnoDataAware.attachEditControl(p, "URL", textbox, False)''' + aux = UnoDataAware.attachEditControl(p, "cp_URL", textbox, False) + self.pubAware.append(aux) ''' Session load methods @@ -620,17 +620,17 @@ class WWD_Startup(WWD_General): def updateBackgroundText(self): bg = \ WWD_General.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage - if bg is None or bg.equals(""): + if bg is None or bg == "": bg = self.resources.resBackgroundNone else: bg = FileAccess.getPathFilename(getFileAccess().getPath(bg, None)) Helper.setUnoPropertyValue( - txtBackground.Model, PropertyNames.PROPERTY_LABEL, bg) + 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.equals(""): + if iconset is None or iconset == "": iconsetName = self.resources.resIconsetNone else: IconSet = WWD_General.settings.cp_IconSets.getElement(iconset) @@ -651,8 +651,11 @@ class WWD_Startup(WWD_General): def refreshStylePreview(self): try: - updateBackgroundText() - self.stylePreview.refresh(settings.cp_DefaultSession.getStyle(), WWD_General.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage) - self.dpStylePreview.reload(xMSF) + 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/WebWizardDialog.py b/wizards/com/sun/star/wizards/web/WebWizardDialog.py index fde61980fe26..621d1da2510d 100644 --- a/wizards/com/sun/star/wizards/web/WebWizardDialog.py +++ b/wizards/com/sun/star/wizards/web/WebWizardDialog.py @@ -408,7 +408,7 @@ class WebWizardDialog(WizardDialog): self.insertLabel("lblBackground", WebWizardDialog.PROPNAMES_LBL, (8, self.resources.reslblBackground, "lblBackground", 97, 46, 5, 51, 70)) - self.insertLabel("txtBackground", + self.txtBackground = self.insertLabel("txtBackground", ("Border", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, diff --git a/wizards/com/sun/star/wizards/web/data/CGDesign.py b/wizards/com/sun/star/wizards/web/data/CGDesign.py index cc873a2395cc..c038812d9b31 100644 --- a/wizards/com/sun/star/wizards/web/data/CGDesign.py +++ b/wizards/com/sun/star/wizards/web/data/CGDesign.py @@ -20,19 +20,3 @@ class CGDesign(ConfigGroup): def createDOM(self, parent): return XMLHelper.addElement(parent, "design", (0,), (0,)) - - def getStyle(self): - style = root.cp_Styles.getElement(self.cp_Style) - return [root.cp_Styles.getIndexOf(style)] - - def setStyle(self, newStyle): - o = root.cp_Styles.getElementAt(newStyle[0]) - self.cp_Style = root.cp_Styles.getKey(o) - - def getLayout(self): - layout = root.cp_Layouts.getElement(self.cp_Layout) - return layout.cp_Index - - def setLayout(self, layoutIndex): - layout = root.cp_Layouts.getElementAt(layoutIndex) - self.cp_Layout = root.cp_Layouts.getKey(layout) diff --git a/wizards/com/sun/star/wizards/web/data/CGSession.py b/wizards/com/sun/star/wizards/web/data/CGSession.py index 3d7263f09cd1..9e5876c4c9eb 100644 --- a/wizards/com/sun/star/wizards/web/data/CGSession.py +++ b/wizards/com/sun/star/wizards/web/data/CGSession.py @@ -36,11 +36,11 @@ class CGSession(ConfigGroup): else: return "800" - def getLayout(self, layouts): - return layouts.getElement(self.cp_Design.cp_Layout) + def getLayout(self): + return self. root.cp_Layouts.getElement(self.cp_Design.cp_Layout) - def getStyle(self, styles): - return styles.getElement(self.cp_Design.cp_Style) + def getStyle(self): + return self.root.cp_Styles.getElement(self.cp_Design.cp_Style) def createDOM(self): factory = DocumentBuilderFactory.newInstance() -- cgit