summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/ui/event/ListModelBinder.py
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/event/ListModelBinder.py')
-rw-r--r--wizards/com/sun/star/wizards/ui/event/ListModelBinder.py36
1 files changed, 27 insertions, 9 deletions
diff --git a/wizards/com/sun/star/wizards/ui/event/ListModelBinder.py b/wizards/com/sun/star/wizards/ui/event/ListModelBinder.py
index 5cbe5ae52a32..863a696b97fb 100644
--- a/wizards/com/sun/star/wizards/ui/event/ListModelBinder.py
+++ b/wizards/com/sun/star/wizards/ui/event/ListModelBinder.py
@@ -16,20 +16,25 @@
# 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_):
self.unoList = unoListBox
self.unoListModel = unoListBox.Model
- #COMMENTED
- #self.setListModel(listModel_)
+ self.listModel = None
+ self.setListModel(listModel_)
+ self.renderer = self.Renderer()
def setListModel(self, newListModel):
if self.listModel is not None:
self.listModel.removeListDataListener(self)
self.listModel = newListModel
- self.listModel.addListDataListener(this)
+ self.listModel.addListDataListener(self)
def contentsChanged(self, lde):
selected = self.getSelectedItems()
@@ -50,9 +55,9 @@ class ListModelBinder(object):
self.unoList.addItem(self.getItemString(i), 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)
def getSelectedItems(self):
@@ -62,11 +67,24 @@ class ListModelBinder(object):
self.unoListModel.SelectedItems = selected;
def intervalAdded(self, lde):
- for i in xrange(lde.Index0, lde.Index1):
+ i = lde.getIndex0()
+ while (i <= lde.getIndex1()):
self.insert(i)
+ i += 1
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
def fillList(self, xlist, items, renderer):
@@ -76,7 +94,7 @@ class ListModelBinder(object):
if renderer is not None:
aux = renderer.render(index)
else:
- aux = item.cp_Name
+ aux = item.toString()
xlist.addItem(aux, index)
@classmethod