00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 import wx
00020 import sys
00021 from objects.logic.common.logger import logger
00022
00023 def create(parent):
00024 return filterSettings(parent)
00025
00026 [wxID_FILTERSETTINGS, wxID_FILTERSETTINGSBUTTONAPPLY,
00027 wxID_FILTERSETTINGSBUTTONCANCEL, wxID_FILTERSETTINGSBUTTONREMOVEFILTER,
00028 wxID_FILTERSETTINGSLISTCTRLFITLERS,
00029 ] = [wx.NewId() for _init_ctrls in range(5)]
00030
00031
00032
00033
00034
00035
00036
00037 class filterSettings(wx.Dialog):
00038 def _init_coll_listCtrlFitlers_Columns(self, parent):
00039
00040
00041 parent.InsertColumn(col=0, format=wx.LIST_FORMAT_LEFT,
00042 heading='Filter Cateogy', width=150)
00043 parent.InsertColumn(col=1, format=wx.LIST_FORMAT_LEFT,
00044 heading='Filtered Value', width=140)
00045
00046 def _init_ctrls(self, prnt):
00047
00048 wx.Dialog.__init__(self, id=wxID_FILTERSETTINGS, name='filterSettings',
00049 parent=prnt, pos=wx.Point(517, 404), size=wx.Size(329, 313),
00050 style=wx.DEFAULT_DIALOG_STYLE, title='Filters ...')
00051 self.SetClientSize(wx.Size(313, 277))
00052 self.SetToolTipString('')
00053
00054 self.listCtrlFitlers = wx.ListCtrl(id=wxID_FILTERSETTINGSLISTCTRLFITLERS,
00055 name='listCtrlFitlers', parent=self, pos=wx.Point(8, 16),
00056 size=wx.Size(296, 216), style=wx.LC_REPORT | wx.LC_SINGLE_SEL)
00057 self.listCtrlFitlers.SetToolTipString('')
00058 self._init_coll_listCtrlFitlers_Columns(self.listCtrlFitlers)
00059 self.listCtrlFitlers.Bind(wx.EVT_LIST_ITEM_SELECTED,
00060 self.OnListCtrlFitlersListItemSelected,
00061 id=wxID_FILTERSETTINGSLISTCTRLFITLERS)
00062 self.listCtrlFitlers.Bind(wx.EVT_LIST_ITEM_DESELECTED,
00063 self.OnListCtrlFitlersListItemDeselected,
00064 id=wxID_FILTERSETTINGSLISTCTRLFITLERS)
00065
00066 self.buttonRemoveFilter = wx.Button(id=wxID_FILTERSETTINGSBUTTONREMOVEFILTER,
00067 label='Remove Filter', name='buttonRemoveFilter', parent=self,
00068 pos=wx.Point(8, 240), size=wx.Size(88, 23), style=0)
00069 self.buttonRemoveFilter.Bind(wx.EVT_BUTTON,
00070 self.OnButtonRemoveFilterButton,
00071 id=wxID_FILTERSETTINGSBUTTONREMOVEFILTER)
00072
00073 self.buttonApply = wx.Button(id=wxID_FILTERSETTINGSBUTTONAPPLY,
00074 label='Apply', name='buttonApply', parent=self, pos=wx.Point(232,
00075 240), size=wx.Size(75, 23), style=0)
00076 self.buttonApply.Bind(wx.EVT_BUTTON, self.OnButtonApplyButton,
00077 id=wxID_FILTERSETTINGSBUTTONAPPLY)
00078
00079 self.buttonCancel = wx.Button(id=wxID_FILTERSETTINGSBUTTONCANCEL,
00080 label='Cancel', name='buttonCancel', parent=self,
00081 pos=wx.Point(144, 240), size=wx.Size(75, 23), style=0)
00082 self.buttonCancel.Bind(wx.EVT_BUTTON, self.OnButtonCancelButton,
00083 id=wxID_FILTERSETTINGSBUTTONCANCEL)
00084
00085 def __init__(self, parent, peerFilter):
00086 self._init_ctrls(parent)
00087
00088 self.peerDict = dict()
00089 self.removeList = []
00090 self.peerFilter = peerFilter
00091 self.populateListCtrl(peerFilter)
00092 self.selectedFilter = None
00093
00094 self.somethingRemoved = False
00095
00096
00097
00098
00099 def populateListCtrl(self, peerFilter):
00100
00101 peerFilterList = peerFilter.getSafeFilterList()
00102
00103 if len(peerFilterList) == 0: return
00104
00105 for filterCat, filterVal in peerFilterList:
00106 index = self.listCtrlFitlers.InsertStringItem(sys.maxint, filterCat)
00107
00108 self.listCtrlFitlers.SetStringItem(index, 1, str(filterVal))
00109
00110 self.peerDict[index] = (filterCat, filterVal)
00111 print index
00112
00113
00114
00115
00116
00117 def OnButtonRemoveFilterButton(self, event):
00118
00119 if self.selectedFilter == None:
00120 dlg = wx.MessageDialog(None, "No Item was selected", 'Error', wx.ICON_ERROR)
00121 dlg.ShowModal()
00122 dlg.Destroy()
00123 return
00124
00125 tbdIndex = self.selectedFilter
00126 self.removeList.append(self.peerDict[self.selectedFilter])
00127 self.listCtrlFitlers.DeleteItem(self.selectedFilter)
00128
00129
00130 self.peerDict[tbdIndex] = "@@$$"
00131
00132
00133 idx = 0
00134 rebuildPeerList = dict()
00135 for key, val in self.peerDict.iteritems():
00136 if val != "@@$$":
00137 rebuildPeerList[idx] = val
00138 idx += 1
00139
00140 self.peerDict = rebuildPeerList
00141
00142
00143 self.somethingRemoved = True
00144
00145
00146
00147
00148
00149 def OnButtonApplyButton(self, event):
00150
00151 try:
00152 map(self.peerFilter.removeFromFilter, self.removeList)
00153 except ValueError, ve:
00154 logger.log(__name__ + "-- error deleting items from filter list: " + str(ve))
00155
00156 return self.EndModal(wx.ID_OK)
00157
00158
00159
00160
00161 def OnButtonCancelButton(self, event):
00162 return self.EndModal(wx.ID_CANCEL)
00163
00164
00165
00166
00167 def OnListCtrlFitlersListItemSelected(self, event):
00168 item = event.GetItem()
00169 self.selectedFilter = item.GetId()
00170
00171 print self.selectedFilter
00172
00173
00174
00175 def OnListCtrlFitlersListItemDeselected(self, event):
00176 self.selectedFilter = None
00177