def _set_selelcted(self, row): if self.selected_row is None: return index = self.data['rows'].index(self.selected_row) if self.key_column is not None and self.key_column in self.data[ 'field_names']: key_column_index = self.data['field_names'].index(self.key_column) else: key_column_index = 0 item_name = self.data['rows'][index][key_column_index] if row is None: self.data['rows'][index:index + 1] = [] self._set_data(self.data) window.info_toast('已删除' + self.item_name + ': ' + item_name) else: if self.var_column is not None and self.var_column.strip() != '': var = row['rows'][0][0] var_column_index = self.data['field_names'].index( self.var_column) if self.selected_row[var_column_index] == var: return self.selected_row[var_column_index] = var else: row = row['rows'][0] for i, v in enumerate(row): self.selected_row[i] = v self._set_data(self.data) window.info_toast('已修改' + self.item_name + ': ' + item_name) if self.event_listener is not None: self.event_listener('change', 'data')
def on_delete_item(name): for i, row in enumerate(rows): if name == row[key_column_index]: rows[i:i + 1] = [] self._set_data(self.data) if self.event_listener is not None: self.event_listener('change', 'data') window.info_toast('已删除' + self.item_name + ': ' + name) break else: window.error_toast('不能删除不存在的' + self.item_name + ': ' + name)
def on_add_item(name): row = ['' for i in range(len(field_names))] row[key_column_index] = name rows.append(row) self._set_data(self.data) if self.event_listener is not None: self.event_listener('change', 'data') window.info_toast('已添加' + self.item_name + ': ' + name) if len(list_group.children) > 2 and select_item( list_group.children[-2]): set_selected_row(row)
def onload_callback(ev): if xhr.status == 200: reply = JSON.parse(xhr.responseText) if 'url' in reply: if self.event_listener is not None: self.event_listener('add', reply['url']) window.info_toast('已上传' + str(files.length) + '个文件') return if 'error' in reply: window.error_toast('上传失败: ' + reply['error']) else: window.error_toast('上传失败')
def on_moveup_item(name): for i, row in enumerate(rows): if name == row[key_column_index]: if i == 0: window.error_toast('不能上移第一个' + self.item_name + ': ' + name) return rows[i], rows[i - 1] = rows[i - 1], rows[i] self._set_data(self.data) if self.event_listener is not None: self.event_listener('change', 'data') window.info_toast('已上移' + self.item_name + ': ' + name) break else: window.error_toast('不能上移不存在的' + self.item_name + ': ' + name)
def on_add_item(name): for row in rows: if row[key_column_index] == name: item_name = '项' if self.item_name is None else self.item_name window.error_toast('已存在的'+item_name+': '+name) return row = ['' for i in range(len(field_names))] row[key_column_index] = name rows.append(row) self._set_data(self.data) if self.event_listener is not None: self.event_listener('change', 'data') self.event_listener('change_data', None) if self.item_name is not None: window.info_toast('已添加'+self.item_name+': ' + name) if len(list_group.children) > 2 and select_item(list_group.children[-2]): self._set_selected_row(row)
def on_rename_item(name, new_name): for row in rows: if row[key_column_index] == new_name: item_name = '项' if self.item_name is None else self.item_name window.error_toast('不能重命名为已存在的'+item_name+': '+new_name) return for i,row in enumerate(rows): if name == row[key_column_index]: row[key_column_index] = new_name self._set_data(self.data) if self.event_listener is not None: self.event_listener('change', 'data') self.event_listener('change_data', None) if self.item_name is not None: window.info_toast('已重命名'+self.item_name+': ' + name + ' -> ' + new_name) break else: item_name = '项' if self.item_name is None else self.item_name window.error_toast('不能重命名不存在的'+item_name+': '+name)
def _set_selected(self, row): if self.selected_row is None: return index = self.data['rows'].index(self.selected_row) if self.key_column is not None: if self.key_column in self.data['field_names']: key_column_index = self.data['field_names'].index(self.key_column) else: key_column_index = int(self.key_column) else: key_column_index = 0 item_name = self.data['rows'][index][key_column_index] if row is None: self.data['rows'][index:index+1] = [] self._set_data(self.data) self._event_listener_data() if self.item_name is not None: window.info_toast('已删除'+self.item_name+': ' + item_name) else: super(ui_select_panel_py, self)._set_selected(row) if self.item_name is not None: window.info_toast('已修改'+self.item_name+': ' + item_name)
def on_pwd_updated(data): if 'error' in data: window.error_toast(data['error']) else: window.info_toast('密码已修改.')