Roadmap refactory

This commit is contained in:
Mauricio Baeza 2020-11-19 22:37:11 -06:00
parent da7f1ee392
commit 8b4b44e06a
2 changed files with 67 additions and 59 deletions

View File

@ -806,29 +806,6 @@ class EventsModify(EventsListenerBase, XModifyListener):
return
class EventsItem(EventsListenerBase, XItemListener):
def __init__(self, controller, name):
super().__init__(controller, name)
def disposing(self, event):
pass
def itemStateChanged(self, event):
event_name = '{}_item_changed'.format(self.name)
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
class EventsItemRoadmap(EventsItem):
def itemStateChanged(self, event):
dialog = event.Source.Context.Model
dialog.Step = event.ItemId + 1
return
class EventsTab(EventsListenerBase, XTabListener):
def __init__(self, controller, name):
@ -1189,39 +1166,6 @@ class UnoGrid(UnoBaseObject):
return
class UnoRoadmap(UnoBaseObject):
def __init__(self, obj):
super().__init__(obj)
self._options = ()
@property
def options(self):
return self._options
@options.setter
def options(self, values):
self._options = values
for i, v in enumerate(values):
opt = self.model.createInstance()
opt.ID = i
opt.Label = v
self.model.insertByIndex(i, opt)
return
@property
def enabled(self):
return True
@enabled.setter
def enabled(self, value):
for m in self.model:
m.Enabled = value
return
def set_enabled(self, index, value):
self.model.getByIndex(index).Enabled = value
return
class UnoTree(UnoBaseObject):
def __init__(self, obj, ):

View File

@ -86,6 +86,7 @@ from com.sun.star.awt import XMouseListener
from com.sun.star.awt import XMouseMotionListener
from com.sun.star.awt import XFocusListener
from com.sun.star.awt import XKeyListener
from com.sun.star.awt import XItemListener
# ~ https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1FontUnderline.html
from com.sun.star.awt import FontUnderline
@ -2931,7 +2932,7 @@ def _add_listeners(events, control, name=''):
'addActionListener': EventsButton,
'addMouseListener': EventsMouse,
'addFocusListener': EventsFocus,
# ~ 'addItemListener': EventsItem,
'addItemListener': EventsItem,
'addKeyListener': EventsKey,
# ~ 'addTabListener': EventsTab,
}
@ -3096,6 +3097,30 @@ class EventsKey(EventsListenerBase, XKeyListener):
return
class EventsItem(EventsListenerBase, XItemListener):
def __init__(self, controller, name):
super().__init__(controller, name)
def disposing(self, event):
pass
def itemStateChanged(self, event):
event_name = '{}_item_changed'.format(self.name)
if hasattr(self._controller, event_name):
getattr(self._controller, event_name)(event)
return
class EventsItemRoadmap(EventsItem):
def itemStateChanged(self, event):
dialog = event.Source.Context.Model
dialog.Step = event.ItemId + 1
debug(dialog.Step)
return
# ~ BorderColor = ?
# ~ FontStyleName = ?
# ~ HelpURL = ?
@ -3104,7 +3129,6 @@ class UnoBaseObject(object):
def __init__(self, obj, path=''):
self._obj = obj
self._model = obj.Model
# ~ self._path = path
def __setattr__(self, name, value):
exists = hasattr(self, name)
@ -3560,6 +3584,45 @@ class UnoListBox(UnoBaseObject):
return
class UnoRoadmap(UnoBaseObject):
def __init__(self, obj):
super().__init__(obj)
self._options = ()
def __setattr__(self, name, value):
if name in ('_options',):
self.__dict__[name] = value
else:
super().__setattr__(name, value)
@property
def options(self):
return self._options
@options.setter
def options(self, values):
self._options = values
for i, v in enumerate(values):
opt = self.model.createInstance()
opt.ID = i
opt.Label = v
self.model.insertByIndex(i, opt)
return
@property
def enabled(self):
return True
@enabled.setter
def enabled(self, value):
for m in self.model:
m.Enabled = value
return
def set_enabled(self, index, value):
self.model.getByIndex(index).Enabled = value
return
UNO_CLASSES = {
'label': UnoLabel,
'link': UnoLabelLink,
@ -3569,6 +3632,7 @@ UNO_CLASSES = {
'text': UnoText,
'image': UnoImage,
'listbox': UnoListBox,
'roadmap': UnoRoadmap,
}
@ -3583,9 +3647,9 @@ class LODialog(object):
'text': 'com.sun.star.awt.UnoControlEditModel',
'image': 'com.sun.star.awt.UnoControlImageControlModel',
'listbox': 'com.sun.star.awt.UnoControlListBoxModel',
'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel',
# ~ 'grid': 'com.sun.star.awt.grid.UnoControlGridModel',
# ~ 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel',
# ~ 'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel',
# ~ 'tree': 'com.sun.star.awt.tree.TreeControlModel',
# ~ 'pages': 'com.sun.star.awt.UnoMultiPageModel',
}