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 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): class EventsTab(EventsListenerBase, XTabListener):
def __init__(self, controller, name): def __init__(self, controller, name):
@ -1189,39 +1166,6 @@ class UnoGrid(UnoBaseObject):
return 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): class UnoTree(UnoBaseObject):
def __init__(self, obj, ): 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 XMouseMotionListener
from com.sun.star.awt import XFocusListener from com.sun.star.awt import XFocusListener
from com.sun.star.awt import XKeyListener 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 # ~ https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1awt_1_1FontUnderline.html
from com.sun.star.awt import FontUnderline from com.sun.star.awt import FontUnderline
@ -2931,7 +2932,7 @@ def _add_listeners(events, control, name=''):
'addActionListener': EventsButton, 'addActionListener': EventsButton,
'addMouseListener': EventsMouse, 'addMouseListener': EventsMouse,
'addFocusListener': EventsFocus, 'addFocusListener': EventsFocus,
# ~ 'addItemListener': EventsItem, 'addItemListener': EventsItem,
'addKeyListener': EventsKey, 'addKeyListener': EventsKey,
# ~ 'addTabListener': EventsTab, # ~ 'addTabListener': EventsTab,
} }
@ -3096,6 +3097,30 @@ class EventsKey(EventsListenerBase, XKeyListener):
return 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 = ? # ~ BorderColor = ?
# ~ FontStyleName = ? # ~ FontStyleName = ?
# ~ HelpURL = ? # ~ HelpURL = ?
@ -3104,7 +3129,6 @@ class UnoBaseObject(object):
def __init__(self, obj, path=''): def __init__(self, obj, path=''):
self._obj = obj self._obj = obj
self._model = obj.Model self._model = obj.Model
# ~ self._path = path
def __setattr__(self, name, value): def __setattr__(self, name, value):
exists = hasattr(self, name) exists = hasattr(self, name)
@ -3560,6 +3584,45 @@ class UnoListBox(UnoBaseObject):
return 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 = { UNO_CLASSES = {
'label': UnoLabel, 'label': UnoLabel,
'link': UnoLabelLink, 'link': UnoLabelLink,
@ -3569,6 +3632,7 @@ UNO_CLASSES = {
'text': UnoText, 'text': UnoText,
'image': UnoImage, 'image': UnoImage,
'listbox': UnoListBox, 'listbox': UnoListBox,
'roadmap': UnoRoadmap,
} }
@ -3583,9 +3647,9 @@ class LODialog(object):
'text': 'com.sun.star.awt.UnoControlEditModel', 'text': 'com.sun.star.awt.UnoControlEditModel',
'image': 'com.sun.star.awt.UnoControlImageControlModel', 'image': 'com.sun.star.awt.UnoControlImageControlModel',
'listbox': 'com.sun.star.awt.UnoControlListBoxModel', 'listbox': 'com.sun.star.awt.UnoControlListBoxModel',
'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel',
# ~ 'grid': 'com.sun.star.awt.grid.UnoControlGridModel', # ~ 'grid': 'com.sun.star.awt.grid.UnoControlGridModel',
# ~ 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', # ~ 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel',
# ~ 'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel',
# ~ 'tree': 'com.sun.star.awt.tree.TreeControlModel', # ~ 'tree': 'com.sun.star.awt.tree.TreeControlModel',
# ~ 'pages': 'com.sun.star.awt.UnoMultiPageModel', # ~ 'pages': 'com.sun.star.awt.UnoMultiPageModel',
} }