Kaydet (Commit) 8583086d authored tarafından Javier Fernandez's avatar Javier Fernandez

PyWebWizard: Fixing bugs and implementation of mising features.

Implementing the Iconset and Background selection dialogs.

- Using the new ListModel interface.
- Connected the ListModelListeners.
- Implemented the Renderer capabilities.

Change-Id: I7a4003db662dbae14b7e1a45d21685776a58d2c3
üst 3fe37133
...@@ -93,3 +93,20 @@ class KeyListenerProcAdapter( unohelper.Base, XKeyListener ): ...@@ -93,3 +93,20 @@ class KeyListenerProcAdapter( unohelper.Base, XKeyListener ):
def keyPressed(self, KeyEvent): def keyPressed(self, KeyEvent):
if callable( self.oProcToCall ): if callable( self.oProcToCall ):
self.oProcToCall(KeyEvent) self.oProcToCall(KeyEvent)
def disposing(self, Event):
# TODO: Implement ?
pass
from com.sun.star.awt import XMouseListener
class OMouseListenerProcAdapter( unohelper.Base, XMouseListener ):
def __init__(self, oProcToCall):
self.oProcToCall = oProcToCall
def mousePressed(self, MouseEvent):
if callable( self.oProcToCall ):
self.oProcToCall(MouseEvent)
def disposing(self, Event):
# TODO: Implement ?
pass
...@@ -16,20 +16,25 @@ ...@@ -16,20 +16,25 @@
# the License at http://www.apache.org/licenses/LICENSE-2.0 . # the License at http://www.apache.org/licenses/LICENSE-2.0 .
# #
class ListModelBinder(object): from abc import abstractmethod
from .ListDataListener import ListDataListener
class ListModelBinder(ListDataListener):
def __init__(self, unoListBox, listModel_): def __init__(self, unoListBox, listModel_):
self.unoList = unoListBox self.unoList = unoListBox
self.unoListModel = unoListBox.Model self.unoListModel = unoListBox.Model
#COMMENTED self.listModel = None
#self.setListModel(listModel_) self.setListModel(listModel_)
self.renderer = self.Renderer()
def setListModel(self, newListModel): def setListModel(self, newListModel):
if self.listModel is not None: if self.listModel is not None:
self.listModel.removeListDataListener(self) self.listModel.removeListDataListener(self)
self.listModel = newListModel self.listModel = newListModel
self.listModel.addListDataListener(this) self.listModel.addListDataListener(self)
def contentsChanged(self, lde): def contentsChanged(self, lde):
selected = self.getSelectedItems() selected = self.getSelectedItems()
...@@ -50,9 +55,9 @@ class ListModelBinder(object): ...@@ -50,9 +55,9 @@ class ListModelBinder(object):
self.unoList.addItem(self.getItemString(i), i) self.unoList.addItem(self.getItemString(i), i)
def getItemString(self, i): def getItemString(self, i):
return self.getItemString(self.listModel.getElementAt(i)) return self.getItemString1(self.listModel.getElementAt(i))
def getItemString(self, item): def getItemString1(self, item):
return self.renderer.render(item) return self.renderer.render(item)
def getSelectedItems(self): def getSelectedItems(self):
...@@ -62,11 +67,24 @@ class ListModelBinder(object): ...@@ -62,11 +67,24 @@ class ListModelBinder(object):
self.unoListModel.SelectedItems = selected; self.unoListModel.SelectedItems = selected;
def intervalAdded(self, lde): def intervalAdded(self, lde):
for i in xrange(lde.Index0, lde.Index1): i = lde.getIndex0()
while (i <= lde.getIndex1()):
self.insert(i) self.insert(i)
i += 1
def intervalRemoved(self, lde): def intervalRemoved(self, lde):
self.remove(lde.Index0, lde.Index1) self.remove(lde.getIndex0(), lde.getIndex1())
class Renderer:
@abstractmethod
def render(self, item):
if (item is None):
return ""
elif (isinstance(item, int)):
return str(item)
else:
return item.toString()
@classmethod @classmethod
def fillList(self, xlist, items, renderer): def fillList(self, xlist, items, renderer):
...@@ -76,7 +94,7 @@ class ListModelBinder(object): ...@@ -76,7 +94,7 @@ class ListModelBinder(object):
if renderer is not None: if renderer is not None:
aux = renderer.render(index) aux = renderer.render(index)
else: else:
aux = item.cp_Name aux = item.toString()
xlist.addItem(aux, index) xlist.addItem(aux, index)
@classmethod @classmethod
......
...@@ -24,6 +24,8 @@ from .WebWizardConst import * ...@@ -24,6 +24,8 @@ from .WebWizardConst import *
from ..common.SystemDialog import SystemDialog from ..common.SystemDialog import SystemDialog
from ..common.FileAccess import FileAccess from ..common.FileAccess import FileAccess
from ..common.Configuration import Configuration from ..common.Configuration import Configuration
from ..common.ListModel import ListModel
from ..ui.ImageList import ImageList
from com.sun.star.awt import Size from com.sun.star.awt import Size
...@@ -47,8 +49,9 @@ class BackgroundsDialog(ImageListDialog): ...@@ -47,8 +49,9 @@ class BackgroundsDialog(ImageListDialog):
self.fileAccess = FileAccess(xmsf) self.fileAccess = FileAccess(xmsf)
#COMMENTED #COMMENTED
#self.il.setListModel(Model(set_)) #self.il.setListModel(Model(set_))
self.il.listModel = self.Model(set_, self)
self.il.imageSize = Size (40, 40) self.il.imageSize = Size (40, 40)
#self.il.setRenderer(BGRenderer (0)) self.il.renderer = self.BGRenderer(0, self)
self.build() self.build()
''' '''
...@@ -106,26 +109,22 @@ class BackgroundsDialog(ImageListDialog): ...@@ -106,26 +109,22 @@ class BackgroundsDialog(ImageListDialog):
@author rpiterman @author rpiterman
''' '''
class BGRenderer(object): class BGRenderer(ImageList.IImageRenderer):
cut = 0
def __init__(self, cut_): def __init__(self, cut_, parent):
ImageListDialog.ImageListDialog_body()
self.cut = cut_ self.cut = cut_
self.parent = parent
def getImageUrls(self, listItem): def getImageUrls(self, listItem):
sRetUrls = [] sRetUrls = []
if (listItem is not None): if (listItem is not None):
sRetUrls.append(listItem) sRetUrls.append(listItem)
return sRetUrls return sRetUrls
return None return None
def render(self, _object): def render(self, obj):
if _object is None: return "" if (obj is None) else FileAccess.getFilename(self.parent.fileAccess.getPath(obj, None))
return ""
else:
return FileAccess.getPathFilename(
self.fileAccess.getPath(_object, None))
''' '''
This is a list model for the image list of the This is a list model for the image list of the
...@@ -138,7 +137,11 @@ class BackgroundsDialog(ImageListDialog): ...@@ -138,7 +137,11 @@ class BackgroundsDialog(ImageListDialog):
@author rpiterman @author rpiterman
''' '''
class Model(object): class Model(ListModel):
parent = None
listModel = []
''' '''
constructor. </br> constructor. </br>
see class description for a description of see class description for a description of
...@@ -146,17 +149,18 @@ class BackgroundsDialog(ImageListDialog): ...@@ -146,17 +149,18 @@ class BackgroundsDialog(ImageListDialog):
@param model the configuration set of the background images. @param model the configuration set of the background images.
''' '''
def __init__(self, model): def __init__(self, model, parent):
self.parent = parent
try: try:
i = 0 i = 0
while i < model.getSize(): while i < model.getSize():
image = model.getElementAt(i) image = model.getElementAt(i)
path = self.sd.xStringSubstitution.substituteVariables( path = parent.sd.xStringSubstitution.substituteVariables(
image.cp_Href, False) image.cp_Href, False)
if self.fileAccess.exists(path, False): if parent.fileAccess.exists(path, False):
addDir(path) self.addDir(path)
else: else:
remove(model.getKey(image)) self.remove(model.getKey(image))
i += 1 i += 1
except Exception: except Exception:
...@@ -173,7 +177,7 @@ class BackgroundsDialog(ImageListDialog): ...@@ -173,7 +177,7 @@ class BackgroundsDialog(ImageListDialog):
def remove(self, imageName): def remove(self, imageName):
try: try:
conf = Configuration.getConfigurationRoot( conf = Configuration.getConfigurationRoot(
self.xMSF, WebWizardConst.CONFIG_PATH + "/BackgroundImages", self.parent.xMSF, CONFIG_PATH + "/BackgroundImages",
True) True)
Configuration.removeNode(conf, imageName) Configuration.removeNode(conf, imageName)
except Exception: except Exception:
...@@ -187,10 +191,10 @@ class BackgroundsDialog(ImageListDialog): ...@@ -187,10 +191,10 @@ class BackgroundsDialog(ImageListDialog):
''' '''
def addDir(self, url): def addDir(self, url):
if self.fileAccess.isDirectory(url): if self.parent.fileAccess.isDirectory(url):
self.add(self.fileAccess.listFiles(url, False)) self.add(self.parent.fileAccess.listFiles(url, False))
else: else:
self.add(url) self.add1(url)
''' '''
adds the given filenames (urls) to adds the given filenames (urls) to
...@@ -212,7 +216,13 @@ class BackgroundsDialog(ImageListDialog): ...@@ -212,7 +216,13 @@ class BackgroundsDialog(ImageListDialog):
''' '''
def add1(self, filename): def add1(self, filename):
lcase = filename.toLowerCase() lcase = filename.lower()
if lcase.endsWith("jpg") or lcase.endsWith("jpeg") or \ if lcase.endswith("jpg") or lcase.endswith("jpeg") or \
lcase.endsWith("gif"): lcase.endswith("gif"):
Model.this.addElement(filename) self.listModel.append(filename)
def getSize(self):
return len(self.listModel)
def getElementAt(self, arg0):
return self.listModel[arg0]
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
from .ImageListDialog import ImageListDialog from .ImageListDialog import ImageListDialog
from .WWHID import HID_IS from .WWHID import HID_IS
from ..common.FileAccess import FileAccess from ..common.FileAccess import FileAccess
from ..common.ListModel import ListModel
from ..ui.ImageList import ImageList
from com.sun.star.awt import Size from com.sun.star.awt import Size
...@@ -31,7 +33,7 @@ It also implements the ImageList.ImageRenderer interface, to handle ...@@ -31,7 +33,7 @@ It also implements the ImageList.ImageRenderer interface, to handle
its own objects. its own objects.
''' '''
class IconsDialog(ImageListDialog): class IconsDialog(ImageListDialog, ImageList.IImageRenderer, ListModel):
def __init__(self, xmsf, set_, resources): def __init__(self, xmsf, set_, resources):
super(IconsDialog, self).__init__(xmsf, HID_IS, super(IconsDialog, self).__init__(xmsf, HID_IS,
...@@ -48,7 +50,7 @@ class IconsDialog(ImageListDialog): ...@@ -48,7 +50,7 @@ class IconsDialog(ImageListDialog):
self.icons = \ self.icons = \
["firs", "prev", "next", "last", "nav", "text", "up", "down"] ["firs", "prev", "next", "last", "nav", "text", "up", "down"]
self.set = set_ self.set = set_
self.objects = (self.set.getSize() * len(self.icons),) self.objects = range(self.set.getSize() * len(self.icons))
self.il.listModel = self self.il.listModel = self
self.il.renderer = self self.il.renderer = self
...@@ -66,16 +68,24 @@ class IconsDialog(ImageListDialog): ...@@ -66,16 +68,24 @@ class IconsDialog(ImageListDialog):
if self.getSelected() is None: if self.getSelected() is None:
return None return None
else: else:
return self.set.getKey((self.getSelected()) / len(self.icons)) selected = self.getSelected()
value = int(selected / len(self.icons))
return "iconset" + str(value)
#return self.set.getKey(value)
def setIconset(self, iconset): def setIconset(self, iconset):
#COMMENTED icon = self.set.getIndexOf(self.set.getElement(iconset)) * len(self.icons)
icon = 0 #self.set.getIndexOf(self.set.getElement(iconset)) * len(self.icons)
aux = None aux = None
if icon >=0: if icon >=0:
aux = self.objects[icon] aux = self.objects[icon]
self.setSelected(aux) self.setSelected(aux)
def addListDataListener(self, listener):
pass
def removeListDataListener(self, listener):
pass
def getSize(self): def getSize(self):
return self.set.getSize() * len(self.icons) return self.set.getSize() * len(self.icons)
...@@ -83,10 +93,10 @@ class IconsDialog(ImageListDialog): ...@@ -83,10 +93,10 @@ class IconsDialog(ImageListDialog):
return self.objects[arg0] return self.objects[arg0]
def getImageUrls(self, listItem): def getImageUrls(self, listItem):
i = (listItem).intValue() i = listItem
iset = getIconsetNum(i) iset = self.getIconsetNum(i)
icon = getIconNum(i) icon = self.getIconNum(i)
sRetUrls = range(2) sRetUrls = list(range(2))
sRetUrls[0] = self.htmlexpDirectory + "/htmlexpo/" \ sRetUrls[0] = self.htmlexpDirectory + "/htmlexpo/" \
+ self.getIconsetPref(iset) + self.icons[icon] + self.getIconsetPostfix(iset) + self.getIconsetPref(iset) + self.icons[icon] + self.getIconsetPostfix(iset)
sRetUrls[1] = sRetUrls[0] sRetUrls[1] = sRetUrls[0]
...@@ -95,12 +105,13 @@ class IconsDialog(ImageListDialog): ...@@ -95,12 +105,13 @@ class IconsDialog(ImageListDialog):
def render(self, object): def render(self, object):
if object is None: if object is None:
return "" return ""
i = (object).intValue()
i = object
iset = self.getIconsetNum(i) iset = self.getIconsetNum(i)
return self.getIconset1(iset).cp_Name return self.getIconset1(iset).cp_Name
def getIconsetNum(self, i): def getIconsetNum(self, i):
return i / self.icons.length return int(i / len(self.icons))
def getIconNum(self, i): def getIconNum(self, i):
return i % len(self.icons) return i % len(self.icons)
......
...@@ -21,6 +21,7 @@ from ..ui.UnoDialog2 import UnoDialog2 ...@@ -21,6 +21,7 @@ from ..ui.UnoDialog2 import UnoDialog2
from ..ui.ImageList import ImageList from ..ui.ImageList import ImageList
from ..common.HelpIds import HelpIds from ..common.HelpIds import HelpIds
from ..common.PropertyNames import PropertyNames from ..common.PropertyNames import PropertyNames
from ..common.IRenderer import IRenderer
from com.sun.star.awt import FontDescriptor from com.sun.star.awt import FontDescriptor
from com.sun.star.awt.PushButtonType import OK, CANCEL, HELP, STANDARD from com.sun.star.awt.PushButtonType import OK, CANCEL, HELP, STANDARD
...@@ -93,7 +94,6 @@ class ImageListDialog(UnoDialog2): ...@@ -93,7 +94,6 @@ class ImageListDialog(UnoDialog2):
''' '''
def build(self): def build(self):
print ("DEBUG !!!! ImageListDialog build 1")
#set dialog properties... #set dialog properties...
ilWidth = (self.il.imageSize.Width + self.il.gap.Width) \ ilWidth = (self.il.imageSize.Width + self.il.gap.Width) \
* self.il.cols + self.il.gap.Width * self.il.cols + self.il.gap.Width
...@@ -169,7 +169,6 @@ class ImageListDialog(UnoDialog2): ...@@ -169,7 +169,6 @@ class ImageListDialog(UnoDialog2):
self.il.helpURL = self.hid + 5 self.il.helpURL = self.hid + 5
self.il.tabIndex = 1 self.il.tabIndex = 1
self.il.create(self) self.il.create(self)
print ("DEBUG !!!! ImageListDialog build 2")
self.lblTitle = self.insertLabel("lblTitle", self.lblTitle = self.insertLabel("lblTitle",
("FontDescriptor", ("FontDescriptor",
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HEIGHT,
...@@ -213,7 +212,7 @@ class ImageListDialog(UnoDialog2): ...@@ -213,7 +212,7 @@ class ImageListDialog(UnoDialog2):
"%TOTAL" with the respective values. "%TOTAL" with the respective values.
@author rpiterman @author rpiterman
''' '''
class ARenderer(object): class ARenderer(IRenderer):
''' '''
@param aTempalte a template for this renderer. @param aTempalte a template for this renderer.
......
...@@ -51,10 +51,6 @@ session methods. ...@@ -51,10 +51,6 @@ session methods.
class WWD_Events(WWD_Startup): class WWD_Events(WWD_Startup):
iconsDialog = None
bgDialog = None
docPreview = None
''' '''
He - my constructor ! He - my constructor !
I add a window listener, which, when I add a window listener, which, when
...@@ -70,6 +66,9 @@ class WWD_Events(WWD_Startup): ...@@ -70,6 +66,9 @@ class WWD_Events(WWD_Startup):
self.exitOnCreate = True self.exitOnCreate = True
self.time = 0 self.time = 0
self.count = 0 self.count = 0
self.bgDialog = None
self.iconsDialog = None
self.docPreview = None
@classmethod @classmethod
def main(self, args): def main(self, args):
...@@ -341,18 +340,18 @@ class WWD_Events(WWD_Startup): ...@@ -341,18 +340,18 @@ class WWD_Events(WWD_Startup):
def chooseBackground(self): def chooseBackground(self):
try: try:
self.setEnabled(self.btnBackgrounds, False) self.setEnabled(self.btnBackgrounds, False)
if WWD_Events.bgDialog is None: if self.bgDialog is None:
WWD_Events.bgDialog = BackgroundsDialog( self.bgDialog = BackgroundsDialog(
self.xMSF, WWD_Startup.settings.cp_BackgroundImages, self.xMSF, self.settings.cp_BackgroundImages,
self.resources) self.resources)
WWD_Events.bgDialog.createWindowPeer(self.xUnoDialog.Peer) self.bgDialog.createWindowPeer(self.xUnoDialog.Peer)
WWD_Events.bgDialog.setSelected( self.bgDialog.setSelected(
WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage) self.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage)
i = WWD_Events.bgDialog.executeDialogFromParent(self) i = self.bgDialog.executeDialogFromParent(self)
if i == 1: if i == 1:
#ok #ok
self.setBackground(WWD_Events.bgDialog.getSelected()) self.setBackground(self.bgDialog.getSelected())
except Exception: except Exception:
traceback.print_exc() traceback.print_exc()
finally: finally:
...@@ -366,7 +365,7 @@ class WWD_Events(WWD_Startup): ...@@ -366,7 +365,7 @@ class WWD_Events(WWD_Startup):
if background is None: if background is None:
background = "" background = ""
WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage \ self.settings.cp_DefaultSession.cp_Design.cp_BackgroundImage \
= background = background
self.refreshStylePreview() self.refreshStylePreview()
...@@ -377,18 +376,18 @@ class WWD_Events(WWD_Startup): ...@@ -377,18 +376,18 @@ class WWD_Events(WWD_Startup):
def chooseIconset(self): def chooseIconset(self):
try: try:
self.setEnabled(self.btnIconSets, False) self.setEnabled(self.btnIconSets, False)
if WWD_Events.iconsDialog is None: if self.iconsDialog is None:
WWD_Events.iconsDialog = IconsDialog( self.iconsDialog = IconsDialog(
self.xMSF, WWD_Startup.settings.cp_IconSets, self.xMSF, self.settings.cp_IconSets,
self.resources) self.resources)
WWD_Events.iconsDialog.createWindowPeer(self.xUnoDialog.Peer) self.iconsDialog.createWindowPeer(self.xUnoDialog.Peer)
WWD_Events.iconsDialog.setIconset( self.iconsDialog.setIconset(
WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_IconSet) self.settings.cp_DefaultSession.cp_Design.cp_IconSet)
i = WWD_Events.iconsDialog.executeDialogFromParent(self) i = self.iconsDialog.executeDialogFromParent(self)
if i == 1: if i == 1:
#ok #ok
self.setIconset(WWD_Events.iconsDialog.getIconset()) self.setIconset(self.iconsDialog.getIconset())
except Exception: except Exception:
traceback.print_exc() traceback.print_exc()
finally: finally:
...@@ -399,7 +398,7 @@ class WWD_Events(WWD_Startup): ...@@ -399,7 +398,7 @@ class WWD_Events(WWD_Startup):
''' '''
def setIconset(self, icon): def setIconset(self, icon):
WWD_Startup.settings.cp_DefaultSession.cp_Design.cp_IconSet = icon self.settings.cp_DefaultSession.cp_Design.cp_IconSet = icon
self.updateIconsetText() self.updateIconsetText()
''' '''
...@@ -892,11 +891,11 @@ class WWD_Events(WWD_Startup): ...@@ -892,11 +891,11 @@ class WWD_Events(WWD_Startup):
self.dpStylePreview.dispose() self.dpStylePreview.dispose()
self.stylePreview.cleanup() self.stylePreview.cleanup()
if WWD_Events.bgDialog is not None: if self.bgDialog is not None:
WWD_Events.bgDialog.xUnoDialog.dispose() self.bgDialog.xUnoDialog.dispose()
if WWD_Events.iconsDialog is not None: if self.iconsDialog is not None:
WWD_Events.iconsDialog.xUnoDialog.dispose() self.iconsDialog.xUnoDialog.dispose()
if self.ftpDialog is not None: if self.ftpDialog is not None:
self.ftpDialog.xUnoDialog.dispose() self.ftpDialog.xUnoDialog.dispose()
......
...@@ -19,6 +19,9 @@ import traceback ...@@ -19,6 +19,9 @@ import traceback
from ..common.ConfigGroup import ConfigGroup from ..common.ConfigGroup import ConfigGroup
from ..common.Configuration import Configuration from ..common.Configuration import Configuration
from ..common.XMLProvider import XMLProvider from ..common.XMLProvider import XMLProvider
from ..ui.event.EventListenerList import EventListenerList
from ..ui.event.ListDataEvent import ListDataEvent
from ..ui.event.ListDataListener import ListDataListener
class WebConfigSet(ConfigGroup): class WebConfigSet(ConfigGroup):
''' '''
...@@ -36,6 +39,7 @@ class WebConfigSet(ConfigGroup): ...@@ -36,6 +39,7 @@ class WebConfigSet(ConfigGroup):
self.childrenMap = {} self.childrenMap = {}
self.childrenList = [] self.childrenList = []
self.noNulls = False self.noNulls = False
self.listenerList = None
def add(self, name, o): def add(self, name, o):
print ("DEBUG !!! WebConfigSet.add -- name: ", name) print ("DEBUG !!! WebConfigSet.add -- name: ", name)
...@@ -49,6 +53,7 @@ class WebConfigSet(ConfigGroup): ...@@ -49,6 +53,7 @@ class WebConfigSet(ConfigGroup):
i = int(name) i = int(name)
print ("DEBUG !!! WebConfigSet.add -- name IS an integer.") print ("DEBUG !!! WebConfigSet.add -- name IS an integer.")
self.childrenList.insert(i, o) self.childrenList.insert(i, o)
self.fireListDataListenerIntervalAdded(i, i);
except Exception: except Exception:
print ("DEBUG !!! WebConfigSet.add -- name IS NOT an integer.") print ("DEBUG !!! WebConfigSet.add -- name IS NOT an integer.")
try: try:
...@@ -66,6 +71,7 @@ class WebConfigSet(ConfigGroup): ...@@ -66,6 +71,7 @@ class WebConfigSet(ConfigGroup):
self.childrenList.insert(i, o) self.childrenList.insert(i, o)
if oldSize > i: if oldSize > i:
oldSize = i oldSize = i
self.fireListDataListenerIntervalAdded(oldSize, i);
except Exception: except Exception:
if (oldO is not None): if (oldO is not None):
print ("DEBUG !!! WebConfigSet.add -- No cp_Index attribute, but element already present, so replace it.") print ("DEBUG !!! WebConfigSet.add -- No cp_Index attribute, but element already present, so replace it.")
...@@ -74,6 +80,7 @@ class WebConfigSet(ConfigGroup): ...@@ -74,6 +80,7 @@ class WebConfigSet(ConfigGroup):
else: else:
print ("DEBUG !!! WebConfigSet.add -- No cp_Index attribute, so just append it.") print ("DEBUG !!! WebConfigSet.add -- No cp_Index attribute, so just append it.")
self.childrenList.append(o) self.childrenList.append(o)
self.fireListDataListenerIntervalAdded(self.getSize() - 1, self.getSize() - 1);
def writeConfiguration(self, configView, param): def writeConfiguration(self, configView, param):
...@@ -126,7 +133,7 @@ class WebConfigSet(ConfigGroup): ...@@ -126,7 +133,7 @@ class WebConfigSet(ConfigGroup):
self.childrenMap.remove(key) self.childrenMap.remove(key)
i = self.childrenList.indexOf(obj) i = self.childrenList.indexOf(obj)
self.childrenList.remove(obj) self.childrenList.remove(obj)
#fireListDataListenerIntervalRemoved(i, i) self.fireListDataListenerIntervalRemoved(i, i)
def remove(self, i): def remove(self, i):
o = getElementAt(i) o = getElementAt(i)
...@@ -136,6 +143,9 @@ class WebConfigSet(ConfigGroup): ...@@ -136,6 +143,9 @@ class WebConfigSet(ConfigGroup):
self.childrenMap.clear() self.childrenMap.clear()
del self.childrenList[:] del self.childrenList[:]
def update(i):
self.fireListDataListenerContentsChanged(i, i)
def createDOM(self, parent): def createDOM(self, parent):
items = self.childrenList items = self.childrenList
i = 0 i = 0
...@@ -207,3 +217,49 @@ class WebConfigSet(ConfigGroup): ...@@ -207,3 +217,49 @@ class WebConfigSet(ConfigGroup):
def sort(self, comparator): def sort(self, comparator):
self.childrenList.sort(comparator) self.childrenList.sort(comparator)
# Registers ListDataListener to receive events.
# @param listener The listener to register.
def addListDataListener(self, listener):
if (self.listenerList is None):
self.listenerList = EventListenerList()
self.listenerList.add(listener)
# Removes ListDataListener from the list of listeners.
# @param listener The listener to remove.
def removeListDataListener(self, listener):
self.listenerList.remove(listener)
# Notifies all registered listeners about the event.
#
# @param event The event to be fired
def fireListDataListenerIntervalAdded(self, i0, i1):
event = ListDataEvent(self, ListDataEvent.INTERVAL_ADDED, i0, i1)
if (self.listenerList is None):
return
for listener in self.listenerList.getListenerList():
if isinstance(listener, ListDataListener):
listener.intervalAdded(event)
# Notifies all registered listeners about the event.
#
# @param event The event to be fired
def fireListDataListenerIntervalRemoved(self, i0, i1):
event = ListDataEvent(self, ListDataEvent.INTERVAL_REMOVED, i0, i1)
if (self.listenerList is None):
return
for listener in self.listenerList.getListenerList():
if isinstance(listener, ListDataListener):
listener.intervalRemoved(event)
# Notifies all registered listeners about the event.
#
# @param event The event to be fired
def fireListDataListenerContentsChanged(self, i0, i1):
event = ListDataEvent(self, ListDataEvent.CONTENTS_CHANGED, i0, i1)
if (self.listenerList is None):
return
for listener in self.listenerList.getListenerList():
if isinstance(listener, ListDataListener):
listener.contentsChanged(event)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment