def __init__(self, parent, mapwindow, stats_data, id=wx.ID_ANY): """ :param parent: gui parent :param mapwindow: mapwindow instance with iclass toolbar and remove raster method :param stats_data: StatisticsData instance (defined in statistics.py) :param id: wx id """ ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT | wx.LC_VIRTUAL | wx.LC_HRULES | wx.LC_VRULES) self.columns = ((_('Class name'), 'name'), (_('Color'), 'color')) self.Populate(columns=self.columns) self.mapWindow = mapwindow self.stats_data = stats_data self.SetItemCount(len(self.stats_data.GetCategories())) self.rightClickedItemIdx = wx.NOT_FOUND listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.TextEditMixin.__init__(self) self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnEdit) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnCategorySelected) self.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnClassRightUp) # wxMSW self.Bind(wx.EVT_RIGHT_UP, self.OnClassRightUp) # wxGTK self.stats_data.statisticsAdded.connect(self.Update) self.stats_data.statisticsDeleted.connect(self.Update) self.stats_data.allStatisticsDeleted.connect(self.Update) self.stats_data.statisticsSet.connect(self.Update)
def __init__( self, parent, columns, frame, id=wx.ID_ANY, columnsNotEditable=[], style=wx.LC_REPORT | wx.BORDER_NONE | wx.LC_HRULES | wx.LC_VRULES, ** kwargs): """List of model variables""" self.parent = parent self.columns = columns self.shape = None self.frame = frame self.columnNotEditable = columnsNotEditable ListCtrl.__init__(self, parent, id=id, style=style, **kwargs) listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.TextEditMixin.__init__(self) i = 0 for col in columns: self.InsertColumn(i, col) self.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER) i += 1 self.itemDataMap = {} # requested by sorter self.itemCount = 0 self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnBeginEdit) self.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnEndEdit) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick) self.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnRightUp) # wxMSW self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp) # wxGTK
def __init__(self, parent, cats_mgr, sel_cats_in_iscatt, id=wx.ID_ANY): ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT | wx.LC_VIRTUAL | wx.LC_HRULES | wx.LC_VRULES | wx.LC_SINGLE_SEL | wx.LC_NO_HEADER) self.columns = ((_('Class name'), 'name'), ) #(_('Color'), 'color')) self.sel_cats_in_iscatt = sel_cats_in_iscatt self.Populate(columns=self.columns) self.cats_mgr = cats_mgr self.SetItemCount(len(self.cats_mgr.GetCategories())) self.rightClickedItemIdx = wx.NOT_FOUND listmix.ListCtrlAutoWidthMixin.__init__(self) # listmix.TextEditMixin.__init__(self) self.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnCategoryRightUp) # wxMSW self.Bind(wx.EVT_RIGHT_UP, self.OnCategoryRightUp) # wxGTK #self.Bind(wx.EVT_LIST_BEGIN_LABEL_EDIT, self.OnEdit) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSel) self.cats_mgr.setCategoryAttrs.connect(self.Update) self.cats_mgr.deletedCategory.connect(self.Update) self.cats_mgr.addedCategory.connect(self.Update)
def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0): """List of layers/categories""" self.parent = parent ListCtrl.__init__(self, parent, id, pos, size, style) listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.TextEditMixin.__init__(self)
def __init__(self, parent, id, size, choices, disabled=[]): ListCtrl.__init__( self, parent, id, size=size, style=wx.LC_REPORT | wx.LC_NO_HEADER | wx.LC_SINGLE_SEL | wx.BORDER_SUNKEN) listmix.ListCtrlAutoWidthMixin.__init__(self) self.InsertColumn(0, '') self.selected = wx.NOT_FOUND self._LoadData(choices, disabled)
def __init__(self, parent): ListCtrl.__init__(self, parent=parent, id=wx.ID_ANY, style=wx.LC_REPORT | wx.BORDER_SUNKEN) listmix.ListCtrlAutoWidthMixin.__init__(self) self.InsertColumn(col=0, heading=_('category')) self.InsertColumn(col=1, heading=_('type')) self.SetColumnWidth(0, 100) self.SetColumnWidth(1, 100) self.index = 0 self.dictIndex = {}
def __init__(self, parent, data, pos=wx.DefaultPosition, log=None): """List of mapset/owner/group""" self.parent = parent self.data = data ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT) CheckListCtrlMixin.__init__(self) self.log = log # setup mixins listmix.ListCtrlAutoWidthMixin.__init__(self) self.LoadData(self.data)
def DeleteItem(self): """Delete selected item in list""" if self.selected == wx.NOT_FOUND: return key = self.GetItemData(self.selected) ListCtrl.DeleteItem(self, self.selected) del self.itemDataMap[key] self.selIdxs.pop(key) # update hidden columns for hCol in six.itervalues(self.hiddenCols): hCol['itemDataMap'].pop(key) hCol['selIdxs'].pop(key) # update key and point number for newkey in range(key, len(self.itemDataMap)): index = self.FindItemData(-1, newkey + 1) self.itemDataMap[newkey][0] = newkey self.SetItem(index, 0, str(newkey + 1)) self.SetItemData(index, newkey) # update selected if self.GetItemCount() > 0: if self.selected < self.GetItemCount(): self.selectedkey = self.GetItemData(self.selected) else: self.selected = self.GetItemCount() - 1 self.selectedkey = self.GetItemData(self.selected) self.SetItemState(self.selected, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) else: self.selected = wx.NOT_FOUND self.selectedkey = -1
def __init__(self, parent, cols, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_HRULES | wx.LC_SINGLE_SEL): """Creates list for points. PointsList class was created from GCPList class in GCP manager. It is possible to be shared by GCP and VNET front end. Important parameters: :param cols: is list containing list items. which represents columns. This columns will be added in order as they are in list. Class will add as first column "use" with number of point and checkbox. Structure of list item must be this: -1. item: column name -2. item: column label -3. item: If column is editable by user, it must contain convert function to convert inserted string to it's type for sorting. Use None for not editable columns. Values for insertion can be in list. This allows insert just values in the list. -4. item: Default value for column cell. Value should be given in it's type in order to sorting would work properly. If 3. item is list, it must be index of some item in the list. Example of cols parameter: column name, column label, convert function, default val @code cols = [ ['E', _('source E'), float, 0.0], ['N', _('source N'), float, 0.0], ['E', _('target E'), float, 0.0], ['N', _('target N'), float, 0.0], ['F_Err', _('Forward error'), None, 0], ['B_Err', _(Backward error'), None, 0] ['type', _('type'), [_(""), _("Start point"), _("End point")], 0] # Select from 3 choices ("Start point", "End point"), # Choice with index 0 ("") is default. ] @endcode """ ListCtrl.__init__(self, parent, id, pos, size, style) # Mixin settings CheckListCtrlMixin.__init__(self) ListCtrlAutoWidthMixin.__init__(self) # TextEditMixin.__init__(self) # inserts first column with points numbers and checkboxes cols.insert(0, ['use', _('use'), False, 0]) self.colsData = cols self.dataTypes = { "colName": 0, "colLabel": 1, "colEditable": 2, "itemDefaultValue": 3} # just for better understanding # information whether list items are checked or not self.CheckList = [] self._createCols() self.hiddenCols = {} self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick) self.selected = wx.NOT_FOUND self.selectedkey = -1 # CheckListCtrlMixin must set an ImageList first self.il = self.GetImageList(wx.IMAGE_LIST_SMALL) # images for column sorting SmallUpArrow = BitmapFromImage(self.getSmallUpArrowImage()) SmallDnArrow = BitmapFromImage(self.getSmallDnArrowImage()) self.sm_dn = self.il.Add(SmallDnArrow) self.sm_up = self.il.Add(SmallUpArrow) # initialize column sorter self.itemDataMap = [] ncols = self.GetColumnCount() ColumnSorterMixin.__init__(self, ncols) # init to ascending sort on first click self._colSortFlag = [1] * ncols # same structure as itemDataMap, information about choice index selected # if cell is in column without values to choose then is -1 self.selIdxs = [] self.ResizeColumns() self.SetColumnWidth(0, 50)