Add text form control
This commit is contained in:
parent
fce0a21551
commit
f052c634ab
|
@ -16,28 +16,8 @@ class FormControlBase(object):
|
||||||
|
|
||||||
def __init__(self, obj):
|
def __init__(self, obj):
|
||||||
self._obj = obj
|
self._obj = obj
|
||||||
self._index = -1
|
|
||||||
self._rules = {}
|
self._rules = {}
|
||||||
|
|
||||||
@property
|
|
||||||
def obj(self):
|
|
||||||
return self._obj
|
|
||||||
|
|
||||||
@property
|
|
||||||
def name(self):
|
|
||||||
return self.obj.Name
|
|
||||||
|
|
||||||
@property
|
|
||||||
def form(self):
|
|
||||||
return self.obj.getParent()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def index(self):
|
|
||||||
return self._index
|
|
||||||
@index.setter
|
|
||||||
def index(self, value):
|
|
||||||
self._index = value
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def events(self):
|
def events(self):
|
||||||
return self.form.getScriptEvents(self.index)
|
return self.form.getScriptEvents(self.index)
|
||||||
|
|
|
@ -967,7 +967,7 @@ class LOBaseObject(object):
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
exists = hasattr(self, name)
|
exists = hasattr(self, name)
|
||||||
if not exists and not name in ('_obj', '_index'):
|
if not exists and not name in ('_obj', '_index', '_view'):
|
||||||
setattr(self._obj, name, value)
|
setattr(self._obj, name, value)
|
||||||
else:
|
else:
|
||||||
super().__setattr__(name, value)
|
super().__setattr__(name, value)
|
||||||
|
@ -1482,37 +1482,89 @@ class LOSheetCharts(object):
|
||||||
|
|
||||||
class LOFormControl(LOBaseObject):
|
class LOFormControl(LOBaseObject):
|
||||||
|
|
||||||
def __init__(self, obj):
|
def __init__(self, obj, view):
|
||||||
self._obj = obj
|
super().__init__(obj)
|
||||||
self._control = self.doc.CurrentController.getControl(self.obj)
|
self._view = view
|
||||||
|
self._m = view.Model
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
if name == '_control':
|
if name in ('_view', '_m'):
|
||||||
self.__dict__[name] = value
|
self.__dict__[name] = value
|
||||||
else:
|
else:
|
||||||
super().__setattr__(name, value)
|
super().__setattr__(name, value)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def doc(self):
|
def doc(self):
|
||||||
return self.obj.Parent.Parent.Parent
|
return self.obj.Parent.Forms.Parent
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
return self.obj.Name
|
return self.obj.Name
|
||||||
|
@name.setter
|
||||||
|
def name(self, value):
|
||||||
|
self.obj.Name = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def label(self):
|
def tag(self):
|
||||||
return self.obj.Label
|
return self._m.Tag
|
||||||
|
@tag.setter
|
||||||
|
def tag(self, value):
|
||||||
|
self._m.Tag = value
|
||||||
|
|
||||||
def set_focus(self):
|
def set_focus(self):
|
||||||
self._control.setFocus()
|
self._view.setFocus()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class LOForm(object):
|
class LOFormControlLabel(LOFormControl):
|
||||||
|
|
||||||
def __init__(self, obj):
|
def __init__(self, obj, view):
|
||||||
|
super().__init__(obj, view)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def type(self):
|
||||||
|
return 'label'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def value(self):
|
||||||
|
return self._m.Label
|
||||||
|
@value.setter
|
||||||
|
def value(self, value):
|
||||||
|
self._m.Label = value
|
||||||
|
|
||||||
|
|
||||||
|
class LOFormControlText(LOFormControl):
|
||||||
|
|
||||||
|
def __init__(self, obj, view):
|
||||||
|
super().__init__(obj, view)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def type(self):
|
||||||
|
return 'text'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def value(self):
|
||||||
|
return self._m.Text
|
||||||
|
@value.setter
|
||||||
|
def value(self, value):
|
||||||
|
self._m.Text = value
|
||||||
|
|
||||||
|
|
||||||
|
FORM_CONTROL_CLASS = {
|
||||||
|
'label': LOFormControlLabel,
|
||||||
|
'text': LOFormControlText,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class LOForm(object):
|
||||||
|
MODELS = {
|
||||||
|
'label': 'com.sun.star.form.component.FixedText',
|
||||||
|
'text': 'com.sun.star.form.component.TextField',
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(self, obj, draw_page):
|
||||||
self._obj = obj
|
self._obj = obj
|
||||||
|
self._dp = draw_page
|
||||||
|
|
||||||
def __getitem__(self, index):
|
def __getitem__(self, index):
|
||||||
return LOFormControl(self.obj[index])
|
return LOFormControl(self.obj[index])
|
||||||
|
@ -1564,19 +1616,39 @@ class LOForm(object):
|
||||||
def command(self, value):
|
def command(self, value):
|
||||||
self.obj.Command = value
|
self.obj.Command = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def doc(self):
|
||||||
|
return self.obj.Parent.Parent
|
||||||
|
|
||||||
def add(self, args):
|
def add(self, args):
|
||||||
|
name = args['Name']
|
||||||
|
tipo = args.pop('Type').lower()
|
||||||
return
|
w = args.pop('Width')
|
||||||
|
h = args.pop('Height')
|
||||||
|
x = args.pop('X', 0)
|
||||||
|
y = args.pop('Y', 0)
|
||||||
|
control = self.doc.createInstance('com.sun.star.drawing.ControlShape')
|
||||||
|
control.setSize(Size(w, h))
|
||||||
|
control.setPosition(Point(x, y))
|
||||||
|
model = self.doc.createInstance(self.MODELS[tipo])
|
||||||
|
_set_properties(model, args)
|
||||||
|
control.Control = model
|
||||||
|
self.obj.insertByIndex(len(self), model)
|
||||||
|
self._dp.add(control)
|
||||||
|
view = self.doc.CurrentController.getControl(self.obj.getByName(name))
|
||||||
|
control = FORM_CONTROL_CLASS[tipo](control, view)
|
||||||
|
setattr(self, name, control)
|
||||||
|
return control
|
||||||
|
|
||||||
|
|
||||||
class LOSheetForms(object):
|
class LOSheetForms(object):
|
||||||
|
|
||||||
def __init__(self, obj):
|
def __init__(self, draw_page):
|
||||||
self._obj = obj
|
self._dp = draw_page
|
||||||
|
self._obj = draw_page.Forms
|
||||||
|
|
||||||
def __getitem__(self, index):
|
def __getitem__(self, index):
|
||||||
return LOForm(self.obj[index])
|
return LOForm(self.obj[index], self._dp)
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
return self
|
return self
|
||||||
|
@ -1609,7 +1681,7 @@ class LOSheetForms(object):
|
||||||
def insert(self, name):
|
def insert(self, name):
|
||||||
form = self.doc.createInstance('com.sun.star.form.component.Form')
|
form = self.doc.createInstance('com.sun.star.form.component.Form')
|
||||||
self.obj.insertByName(name, form)
|
self.obj.insertByName(name, form)
|
||||||
return LOForm(form)
|
return LOForm(form, self._dp)
|
||||||
|
|
||||||
def remove(self, index):
|
def remove(self, index):
|
||||||
if isinstance(index, int):
|
if isinstance(index, int):
|
||||||
|
@ -1838,7 +1910,7 @@ class LOCalcSheet(object):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def forms(self):
|
def forms(self):
|
||||||
return LOSheetForms(self.obj.DrawPage.Forms)
|
return LOSheetForms(self.obj.DrawPage)
|
||||||
|
|
||||||
def activate(self):
|
def activate(self):
|
||||||
self.doc.activate(self._obj)
|
self.doc.activate(self._obj)
|
||||||
|
|
Loading…
Reference in New Issue