Add row data

This commit is contained in:
Mauricio Baeza 2020-12-25 20:07:26 -06:00
parent 8ec4b025ac
commit b8d37ed834
4 changed files with 68 additions and 24 deletions

View File

@ -4676,12 +4676,11 @@ class UnoGrid(UnoBaseObject):
def __init__(self, obj): def __init__(self, obj):
super().__init__(obj) super().__init__(obj)
self._gdm = self.model.GridDataModel self._gdm = self.model.GridDataModel
self._columns = []
self._data = [] self._data = []
# ~ self._format_columns = () self._formats = ()
def __setattr__(self, name, value): def __setattr__(self, name, value):
if name in ('_gdm', '_columns', '_data'): if name in ('_gdm', '_data', '_formats'):
self.__dict__[name] = value self.__dict__[name] = value
else: else:
super().__setattr__(name, value) super().__setattr__(name, value)
@ -4700,10 +4699,10 @@ class UnoGrid(UnoBaseObject):
@property @property
def columns(self): def columns(self):
return self._columns return {}
@columns.setter @columns.setter
def columns(self, values): def columns(self, values):
self._columns = values # ~ self._columns = values
#~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html
model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True)
for properties in values: for properties in values:
@ -4742,14 +4741,43 @@ class UnoGrid(UnoBaseObject):
def row(self): def row(self):
return self.obj.CurrentRow return self.obj.CurrentRow
@property
def row_count(self):
return self._gdm.RowCount
@property @property
def column(self): def column(self):
return self.obj.CurrentColumn return self.obj.CurrentColumn
@property
def column(self):
return self.obj.CurrentColumn
@property
def formats(self):
return self._formats
@formats.setter
def formats(self, values):
self._formats = values
def clear(self): def clear(self):
self._gdm.removeAllRows() self._gdm.removeAllRows()
return return
def _format_columns(self, data):
row = data
if self.formats:
for i, f in enumerate(formats):
if f:
row[i] = f.format(data[i])
return row
def add_row(self, data):
self._data.append(data)
row = self._format_columns(data)
self._gdm.addRow(self.row_count + 1, row)
return
# UP # UP
def _format_cols(self): def _format_cols(self):
rows = tuple(tuple( rows = tuple(tuple(
@ -4790,12 +4818,6 @@ class UnoGrid(UnoBaseObject):
row.append(d) row.append(d)
return tuple(row) return tuple(row)
def add_row(self, data):
# ~ self._data.append(data)
data = self._validate_column(data)
self._gdm.addRow(self.rows + 1, data)
return
def remove_row(self, row): def remove_row(self, row):
self._gdm.removeRow(row) self._gdm.removeRow(row)
# ~ del self._data[row] # ~ del self._data[row]

Binary file not shown.

View File

@ -4676,12 +4676,11 @@ class UnoGrid(UnoBaseObject):
def __init__(self, obj): def __init__(self, obj):
super().__init__(obj) super().__init__(obj)
self._gdm = self.model.GridDataModel self._gdm = self.model.GridDataModel
self._columns = []
self._data = [] self._data = []
# ~ self._format_columns = () self._formats = ()
def __setattr__(self, name, value): def __setattr__(self, name, value):
if name in ('_gdm', '_columns', '_data'): if name in ('_gdm', '_data', '_formats'):
self.__dict__[name] = value self.__dict__[name] = value
else: else:
super().__setattr__(name, value) super().__setattr__(name, value)
@ -4700,10 +4699,10 @@ class UnoGrid(UnoBaseObject):
@property @property
def columns(self): def columns(self):
return self._columns return {}
@columns.setter @columns.setter
def columns(self, values): def columns(self, values):
self._columns = values # ~ self._columns = values
#~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html
model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True)
for properties in values: for properties in values:
@ -4742,14 +4741,42 @@ class UnoGrid(UnoBaseObject):
def row(self): def row(self):
return self.obj.CurrentRow return self.obj.CurrentRow
@property
def row_count(self):
return self._gdm.RowCount
@property @property
def column(self): def column(self):
return self.obj.CurrentColumn return self.obj.CurrentColumn
@property
def column(self):
return self.obj.CurrentColumn
@property
def formats(self):
return self._formats
@formats.setter
def formats(self, values):
self._formats = values
def clear(self): def clear(self):
self._gdm.removeAllRows() self._gdm.removeAllRows()
return return
def _format_columns(self, data):
row = data
if self.formats:
for i, f in enumerate(formats):
row[i] = f.format(data[i])
return row
def add_row(self, data):
self._data.append(data)
row = self._format_columns(data)
self._gdm.addRow(self.row_count + 1, row)
return
# UP # UP
def _format_cols(self): def _format_cols(self):
rows = tuple(tuple( rows = tuple(tuple(
@ -4790,12 +4817,6 @@ class UnoGrid(UnoBaseObject):
row.append(d) row.append(d)
return tuple(row) return tuple(row)
def add_row(self, data):
# ~ self._data.append(data)
data = self._validate_column(data)
self._gdm.addRow(self.rows + 1, data)
return
def remove_row(self, row): def remove_row(self, row):
self._gdm.removeRow(row) self._gdm.removeRow(row)
# ~ del self._data[row] # ~ del self._data[row]

View File

@ -15,6 +15,7 @@ class Controllers(object):
self.d = dlg self.d = dlg
self.paths = [] self.paths = []
@app.catch_exception
def button_add_action(self, event): def button_add_action(self, event):
path = app.paths.get_file() path = app.paths.get_file()
if not path: if not path:
@ -25,8 +26,8 @@ class Controllers(object):
return return
self.paths.append(path) self.paths.append(path)
# ~ p, filename, n, e = app.get_info_path(path) p = app.paths(path)
# ~ self.d.grid.add_row((filename, '', path)) self.d.grid.add_row((p.file_name, 'delete.svg', p.path))
# ~ self.d.grid.set_cell_tooltip(0, self.d.grid.rows-1, p) # ~ self.d.grid.set_cell_tooltip(0, self.d.grid.rows-1, p)
# ~ self.d.grid.sort(0) # ~ self.d.grid.sort(0)
app.debug(path) app.debug(path)