00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 import wx
00017 import sys
00018
00019 from objects.logic.common.exception import exception
00020 from objects.logic.common.logger import logger
00021 from objects.logic.network.pcapyImplementation import pcapyImplementation
00022
00023
00024
00025
00026 class networkSettings(wx.Dialog):
00027 def __init__(self, parent, deviceDict):
00028 wx.Dialog.__init__(self, parent, -1, "Which device would you like to monitor?",
00029 size=(400,220))
00030
00031 self.chosenDevice = None
00032 self.deviceDict = deviceDict
00033
00034 self.mainSizer = wx.BoxSizer(wx.VERTICAL)
00035
00036 self.deviceIdxDict = dict()
00037 self.saveSelection = False
00038
00039 self.createWidgets()
00040 self.layoutWidgets()
00041 self.doBinding()
00042
00043
00044 self.SetSizer(self.mainSizer)
00045
00046
00047
00048
00049
00050 def loadConfig(self, optConf):
00051 saveSel = optConf.network_getSaveDeviceSelection()
00052 selectedDevice = optConf.network_getSelectedDevice()
00053
00054 if saveSel == True:
00055 self.saveSelection = True
00056 if self.deviceIdxDict.has_key(selectedDevice):
00057 self.listc.Select(self.deviceIdxDict[selectedDevice])
00058 self.cehckbox.SetValue(True)
00059 else:
00060 self.saveSelection = False
00061
00062
00063
00064
00065
00066 def createWidgets(self):
00067
00068
00069
00070 self.listc = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.LC_SINGLE_SEL,
00071 size=(400, 120))
00072
00073 self.listc.InsertColumn(0, "Network Device", width=340)
00074 self.listc.InsertColumn(1, "Packets",width=50)
00075
00076
00077 for name, desc in self.deviceDict.iteritems():
00078 index = self.listc.InsertStringItem(sys.maxint, name)
00079 self.listc.SetStringItem(index, 1, "-")
00080 self.deviceIdxDict[name] = index
00081
00082
00083
00084 if len(self.deviceDict) > 0:
00085 self.listc.Select(0)
00086
00087
00088
00089
00090 self.cehckbox = wx.CheckBox(self, -1, "Remember this choice")
00091
00092
00093
00094
00095
00096 self.button_ok = wx.Button(self, wx.ID_OK, "Ok")
00097 self.button_cancel = wx.Button(self, wx.ID_CANCEL, "Cancel")
00098
00099
00100
00101
00102 def layoutWidgets(self):
00103
00104 ctrlSizer = wx.BoxSizer(wx.HORIZONTAL)
00105 ctrlSizer.Add(self.listc, 10)
00106
00107 self.mainSizer.Add(ctrlSizer, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 10)
00108
00109 emptySizer = wx.BoxSizer(wx.HORIZONTAL)
00110 emptySizer.Add((15,15), 1)
00111
00112 self.mainSizer.Add(emptySizer, 0,wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 10)
00113
00114
00115 chkSizer = wx.BoxSizer(wx.HORIZONTAL)
00116 chkSizer.Add(self.cehckbox, 1)
00117
00118 self.mainSizer.Add(chkSizer, 0, wx.LEFT, 10)
00119
00120 emptySizer = wx.BoxSizer(wx.HORIZONTAL)
00121 emptySizer.Add((15,15), 1)
00122
00123 self.mainSizer.Add(emptySizer, 0,wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 10)
00124
00125
00126 btnSizer = wx.BoxSizer(wx.HORIZONTAL)
00127
00128 btnSizer.Add(self.button_ok)
00129 btnSizer.Add((10,10), 1)
00130 btnSizer.Add(self.button_cancel)
00131
00132 self.mainSizer.Add(btnSizer, 0, wx.ALIGN_RIGHT | wx.RIGHT,10)
00133
00134
00135
00136 def doBinding(self):
00137
00138 self.Bind(wx.EVT_BUTTON, self.OnOK, self.button_ok)
00139 self.Bind(wx.EVT_BUTTON, self.OnCancel, self.button_cancel)
00140
00141 self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.listc)
00142
00143 self.Bind(wx.EVT_CHECKBOX, self.OnSaveSelection, self.cehckbox)
00144
00145 """
00146 Event Handlers
00147 """
00148
00149
00150
00151 def OnOK(self, event):
00152 if self.chosenDevice == None:
00153 dlg = wx.MessageDialog(None, "No Item was selected", 'Error', wx.ICON_ERROR)
00154 dlg.ShowModal()
00155 dlg.Destroy()
00156 return
00157
00158 logger.log(__name__ + ":Item selected:" + self.chosenDevice )
00159 return self.EndModal(wx.ID_OK)
00160
00161
00162
00163 def OnCancel(self, event):
00164 return self.EndModal(wx.ID_CANCEL)
00165
00166
00167
00168
00169
00170 def OnCloseWindow(self, event):
00171 self.Destroy()
00172
00173
00174
00175
00176 def OnItemSelected(self, evt):
00177 item = evt.GetItem()
00178 self.chosenDevice = item.GetText()
00179
00180
00181
00182 def OnSaveSelection(self, evt):
00183 self.saveSelection = self.cehckbox.GetValue()
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193