diff -r 2cb34a4ac65a -r 6b5a4c21e061 doc/doxygen/html/commondialogs_8py-source.html --- a/doc/doxygen/html/commondialogs_8py-source.html Tue Jun 05 17:34:33 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1075 +0,0 @@ - - -CanFestival: /home/epimerde/documents/tc11/CanFestival-3/objdictgen/commondialogs.py Source File - - - - -
-
-
-
-

/home/epimerde/documents/tc11/CanFestival-3/objdictgen/commondialogs.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
-00002 # -*- coding: utf-8 -*-
-00003 
-00004 #This file is part of CanFestival, a library implementing CanOpen Stack. 
-00005 #
-00006 #Copyright (C): Edouard TISSERANT, Francis DUPIN and Laurent BESSARD
-00007 #
-00008 #See COPYING file for copyrights details.
-00009 #
-00010 #This library is free software; you can redistribute it and/or
-00011 #modify it under the terms of the GNU Lesser General Public
-00012 #License as published by the Free Software Foundation; either
-00013 #version 2.1 of the License, or (at your option) any later version.
-00014 #
-00015 #This library is distributed in the hope that it will be useful,
-00016 #but WITHOUT ANY WARRANTY; without even the implied warranty of
-00017 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-00018 #Lesser General Public License for more details.
-00019 #
-00020 #You should have received a copy of the GNU Lesser General Public
-00021 #License along with this library; if not, write to the Free Software
-00022 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-00023 
-00024 from wxPython.wx import *
-00025 from wxPython.grid import *
-00026 import wx
-00027 
-00028 import os
-00029 
-00030 #-------------------------------------------------------------------------------
-00031 #                          Editing Communication Dialog
-00032 #-------------------------------------------------------------------------------
-00033 
-00034 
-00035 [wxID_COMMUNICATIONDIALOG, wxID_COMMUNICATIONDIALOGMAINPANEL,
-00036  wxID_COMMUNICATIONDIALOGPOSSIBLEINDEXES, wxID_COMMUNICATIONDIALOGCURRENTINDEXES,
-00037  wxID_COMMUNICATIONDIALOGSELECT, wxID_COMMUNICATIONDIALOGUNSELECT, 
-00038  wxID_COMMUNICATIONDIALOGSTATICTEXT1, wxID_COMMUNICATIONDIALOGSTATICTEXT2
-00039 ] = [wx.NewId() for _init_ctrls in range(8)]
-00040 
-00041 class CommunicationDialog(wx.Dialog):
-00042     def _init_coll_flexGridSizer1_Items(self, parent):
-00043         # generated method, don't edit
-00044 
-00045         parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-00046 
-00047     def _init_sizers(self):
-00048         # generated method, don't edit
-00049         self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-00050 
-00051         self._init_coll_flexGridSizer1_Items_init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-00052 
-00053         self.SetSizer(self.flexGridSizer1)
-00054 
-00055     def _init_ctrls(self, prnt):
-00056         # generated method, don't edit
-00057         wx.Dialog.__init__(self, id=wxID_COMMUNICATIONDIALOG,
-00058               name='CommunicationDialog', parent=prnt, pos=wx.Point(234, 216),
-00059               size=wx.Size(726, 437), style=wx.DEFAULT_DIALOG_STYLE,
-00060               title='Edit Communication Profile')
-00061         self.SetClientSize(wx.Size(726, 437))
-00062 
-00063         self.MainPanel = wx.Panel(id=wxID_COMMUNICATIONDIALOGMAINPANEL,
-00064               name='MainPanel', parent=self, pos=wx.Point(0, 0),
-00065               size=wx.Size(688, 382), style=wx.TAB_TRAVERSAL)
-00066         self.MainPanel.SetAutoLayout(True)
-00067 
-00068         self.PossibleIndexes = wx.ListBox(choices=[],
-00069               id=wxID_COMMUNICATIONDIALOGPOSSIBLEINDEXES,
-00070               name='PossibleIndexes', parent=self.MainPanel, pos=wx.Point(40,
-00071               48), size=wx.Size(280, 320), style=wxLB_EXTENDED)
-00072         self.PossibleIndexes.Bind(wx.EVT_LEFT_DCLICK, self.OnPossibleIndexesDClickOnPossibleIndexesDClick,
-00073               id=wxID_COMMUNICATIONDIALOGPOSSIBLEINDEXES)
-00074 
-00075         self.CurrentIndexes = wx.ListBox(choices=[],
-00076               id=wxID_COMMUNICATIONDIALOGCURRENTINDEXES, name='CurrentIndexes',
-00077               parent=self.MainPanel, pos=wx.Point(400, 48), size=wx.Size(280,
-00078               320), style=wxLB_EXTENDED)
-00079         self.CurrentIndexes.Bind(wx.EVT_LEFT_DCLICK, self.OnCurrentIndexesDClickOnCurrentIndexesDClick,
-00080               id=wxID_COMMUNICATIONDIALOGCURRENTINDEXES)
-00081 
-00082         self.Select = wx.Button(id=wxID_COMMUNICATIONDIALOGSELECT, label='>>',
-00083               name='Select', parent=self.MainPanel, pos=wx.Point(345, 136),
-00084               size=wx.Size(32, 32), style=0)
-00085         self.Select.Bind(wx.EVT_BUTTON, self.OnSelectButtonOnSelectButton,
-00086               id=wxID_COMMUNICATIONDIALOGSELECT)
-00087 
-00088         self.Unselect = wx.Button(id=wxID_COMMUNICATIONDIALOGUNSELECT,
-00089               label='<<', name='Unselect', parent=self.MainPanel,
-00090               pos=wx.Point(345, 216), size=wx.Size(32, 30), style=0)
-00091         self.Unselect.Bind(wx.EVT_BUTTON, self.OnUnselectButtonOnUnselectButton,
-00092               id=wxID_COMMUNICATIONDIALOGUNSELECT)
-00093 
-00094         self.staticText1 = wx.StaticText(id=wxID_COMMUNICATIONDIALOGSTATICTEXT1,
-00095               label='Possible Profile Indexes:', name='staticText1',
-00096               parent=self.MainPanel, pos=wx.Point(40, 24), size=wx.Size(156,
-00097               17), style=0)
-00098 
-00099         self.staticText2 = wx.StaticText(id=wxID_COMMUNICATIONDIALOGSTATICTEXT2,
-00100               label='Current Profile Indexes:', name='staticText2',
-00101               parent=self.MainPanel, pos=wx.Point(400, 24), size=wx.Size(152,
-00102               17), style=0)
-00103 
-00104         self._init_sizers_init_sizers()
-00105 
-00106     def __init__(self, parent):
-00107         self._init_ctrls_init_ctrls(parent)
-00108         self.ButtonSizerButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL)
-00109         self.flexGridSizer1.Add(self.ButtonSizerButtonSizer, 1, wxALIGN_CENTER)
-00110         self.AllListAllList = []
-00111         self.CurrentListCurrentList = []
-00112         self.IndexDictionaryIndexDictionary = {}
-00113 
-00114     def SetIndexDictionary(self, dictionary):
-00115         self.IndexDictionaryIndexDictionary = dictionary
-00116         
-00117     def SetCurrentList(self, list):
-00118         self.CurrentListCurrentList = []
-00119         self.CurrentListCurrentList.extend(list)
-00120         self.CurrentListCurrentList.sort()
-00121         
-00122     def GetCurrentList(self):
-00123         return self.CurrentListCurrentList
-00124         
-00125     def RefreshLists(self):
-00126         self.PossibleIndexes.Clear()
-00127         self.CurrentIndexes.Clear()
-00128         self.AllListAllList = []
-00129         for index in self.IndexDictionaryIndexDictionary.iterkeys():
-00130             if index not in self.CurrentListCurrentList:
-00131                 self.AllListAllList.append(index)
-00132         self.AllListAllList.sort()
-00133         for index in self.AllListAllList:
-00134             self.PossibleIndexes.Append("0x%04X   %s"%(index, self.IndexDictionaryIndexDictionary[index][0]))
-00135         for index in self.CurrentListCurrentList:
-00136             if index in self.IndexDictionaryIndexDictionary:
-00137                 self.CurrentIndexes.Append("0x%04X   %s"%(index, self.IndexDictionaryIndexDictionary[index][0]))
-00138 
-00139     def OnPossibleIndexesDClick(self, event):
-00140         self.SelectPossibleSelectPossible()
-00141         event.Skip()
-00142 
-00143     def OnCurrentIndexesDClick(self, event):
-00144         self.UnselectCurrentUnselectCurrent()
-00145         event.Skip()
-00146 
-00147     def OnSelectButton(self, event):
-00148         self.SelectPossibleSelectPossible()
-00149         event.Skip()
-00150 
-00151     def OnUnselectButton(self, event):
-00152         self.UnselectCurrentUnselectCurrent()
-00153         event.Skip()
-00154 
-00155     def SelectPossible(self):
-00156         selected = self.PossibleIndexes.GetSelections()
-00157         for i in selected:
-00158             self.CurrentListCurrentList.append(self.AllListAllList[i])
-00159         self.CurrentListCurrentList.sort()
-00160         self.RefreshListsRefreshLists()
-00161 
-00162     def UnselectCurrent(self):
-00163         selected = self.CurrentIndexes.GetSelections()
-00164         for i in selected:
-00165             if not self.IndexDictionaryIndexDictionary[self.CurrentListCurrentList[i]][1]:
-00166                 self.CurrentListCurrentList.pop(i)
-00167         self.CurrentListCurrentList.sort()
-00168         self.RefreshListsRefreshLists()
-00169 
-00170 
-00171 
-00172 #-------------------------------------------------------------------------------
-00173 #                          Create Map Variable Dialog
-00174 #-------------------------------------------------------------------------------
-00175 
-00176 
-00177 [wxID_MAPVARIABLEDIALOG, wxID_MAPVARIABLEDIALOGINDEX, 
-00178  wxID_MAPVARIABLEDIALOGINDEXNAME, wxID_MAPVARIABLEDIALOGMAINPANEL, 
-00179  wxID_MAPVARIABLEDIALOGNUMBER, wxID_MAPVARIABLEDIALOGRADIOBUTTON1, 
-00180  wxID_MAPVARIABLEDIALOGRADIOBUTTON2, wxID_MAPVARIABLEDIALOGRADIOBUTTON3, 
-00181  wxID_MAPVARIABLEDIALOGSTATICTEXT1, wxID_MAPVARIABLEDIALOGSTATICTEXT2, 
-00182  wxID_MAPVARIABLEDIALOGSTATICTEXT3, wxID_MAPVARIABLEDIALOGSTATICTEXT4, 
-00183 ] = [wx.NewId() for _init_ctrls in range(12)]
-00184 
-00185 class MapVariableDialog(wx.Dialog):
-00186     def _init_coll_flexGridSizer1_Items(self, parent):
-00187         # generated method, don't edit
-00188 
-00189         parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-00190 
-00191     def _init_sizers(self):
-00192         # generated method, don't edit
-00193         self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-00194 
-00195         self._init_coll_flexGridSizer1_Items_init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-00196 
-00197         self.SetSizer(self.flexGridSizer1)
-00198 
-00199     def _init_ctrls(self, prnt):
-00200         # generated method, don't edit
-00201         wx.Dialog.__init__(self, id=wxID_MAPVARIABLEDIALOG,
-00202               name='CommunicationDialog', parent=prnt, pos=wx.Point(376, 223),
-00203               size=wx.Size(444, 186), style=wx.DEFAULT_DIALOG_STYLE,
-00204               title='Add Map Variable')
-00205         self.SetClientSize(wx.Size(444, 186))
-00206 
-00207         self.MainPanel = wx.Panel(id=wxID_MAPVARIABLEDIALOGMAINPANEL,
-00208               name='MainPanel', parent=self, pos=wx.Point(0, 0),
-00209               size=wx.Size(431, 142), style=wx.TAB_TRAVERSAL)
-00210         self.MainPanel.SetAutoLayout(True)
-00211 
-00212         self.staticText1 = wx.StaticText(id=wxID_MAPVARIABLEDIALOGSTATICTEXT1,
-00213               label='Index:', name='staticText1', parent=self.MainPanel,
-00214               pos=wx.Point(24, 24), size=wx.Size(156, 17), style=0)
-00215 
-00216         self.Index = wx.TextCtrl(id=wxID_MAPVARIABLEDIALOGINDEX, name='Index',
-00217               parent=self.MainPanel, pos=wx.Point(24, 48), size=wx.Size(152,
-00218               25), style=0, value='0x2000')
-00219 
-00220         self.staticText3 = wx.StaticText(id=wxID_MAPVARIABLEDIALOGSTATICTEXT3,
-00221               label='Name:', name='staticText3', parent=self.MainPanel,
-00222               pos=wx.Point(24, 80), size=wx.Size(47, 17), style=0)
-00223 
-00224         self.IndexName = wx.TextCtrl(id=wxID_MAPVARIABLEDIALOGINDEXNAME,
-00225               name='IndexName', parent=self.MainPanel, pos=wx.Point(24, 104),
-00226               size=wx.Size(152, 24), style=0, value='Undefined')
-00227 
-00228         self.staticText2 = wx.StaticText(id=wxID_MAPVARIABLEDIALOGSTATICTEXT2,
-00229               label='Type:', name='staticText2', parent=self.MainPanel,
-00230               pos=wx.Point(208, 24), size=wx.Size(38, 17), style=0)
-00231 
-00232         self.radioButton1 = wx.RadioButton(id=wxID_MAPVARIABLEDIALOGRADIOBUTTON1,
-00233               label='VAR', name='radioButton1', parent=self.MainPanel,
-00234               pos=wx.Point(208, 48), size=wx.Size(72, 24), style=wxRB_GROUP)
-00235         self.radioButton1.SetValue(True)
-00236         self.radioButton1.Bind(wx.EVT_RADIOBUTTON, self.OnRadioButton1ClickOnRadioButton1Click,
-00237               id=wxID_MAPVARIABLEDIALOGRADIOBUTTON1)
-00238 
-00239         self.radioButton2 = wx.RadioButton(id=wxID_MAPVARIABLEDIALOGRADIOBUTTON2,
-00240               label='ARRAY', name='radioButton2', parent=self.MainPanel,
-00241               pos=wx.Point(208, 72), size=wx.Size(80, 24), style=wxRB_SINGLE)
-00242         self.radioButton2.SetValue(False)
-00243         self.radioButton2.Bind(wx.EVT_RADIOBUTTON, self.OnRadioButton2ClickOnRadioButton2Click,
-00244               id=wxID_MAPVARIABLEDIALOGRADIOBUTTON2)
-00245 
-00246         self.radioButton3 = wx.RadioButton(id=wxID_MAPVARIABLEDIALOGRADIOBUTTON3,
-00247               label='REC', name='radioButton3', parent=self.MainPanel,
-00248               pos=wx.Point(208, 96), size=wx.Size(96, 24), style=wxRB_SINGLE)
-00249         self.radioButton3.SetValue(False)
-00250         self.radioButton3.Bind(wx.EVT_RADIOBUTTON, self.OnRadioButton3ClickOnRadioButton3Click,
-00251               id=wxID_MAPVARIABLEDIALOGRADIOBUTTON3)
-00252 
-00253         self.staticText4 = wx.StaticText(id=wxID_MAPVARIABLEDIALOGSTATICTEXT4,
-00254               label='Number:', name='staticText4', parent=self.MainPanel,
-00255               pos=wx.Point(312, 80), size=wx.Size(88, 16), style=0)
-00256 
-00257         self.Number = wx.TextCtrl(id=wxID_MAPVARIABLEDIALOGNUMBER,
-00258               name='Number', parent=self.MainPanel, pos=wx.Point(312, 104),
-00259               size=wx.Size(112, 24), style=wx.TE_RIGHT, value='0')
-00260 
-00261         self._init_sizers_init_sizers()
-00262 
-00263     def __init__(self, parent):
-00264         self._init_ctrls_init_ctrls(parent)
-00265         self.ButtonSizerButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL)
-00266         self.flexGridSizer1.Add(self.ButtonSizerButtonSizer, 1, wxALIGN_CENTER)
-00267         self.staticText4.Enable(False)
-00268         self.Number.Enable(False)
-00269         
-00270         EVT_BUTTON(self, self.ButtonSizerButtonSizer.GetAffirmativeButton().GetId(), self.OnOKOnOK)
-00271 
-00272     def SetIndex(self, index):
-00273         self.Index.SetValue("0x%04X"%index)
-00274 
-00275     def OnOK(self, event):
-00276         error = []
-00277         try:
-00278             int(self.Index.GetValue(), 16)
-00279         except:
-00280             error.append("Index")
-00281         if self.radioButton2.GetValue() or self.radioButton3.GetValue():
-00282             try:
-00283                 int(self.Number.GetValue())
-00284             except:
-00285                 error.append("Number")
-00286         if len(error) > 0:
-00287             text = ""
-00288             if len(error) > 1:
-00289                 suffix = "s"
-00290             else:
-00291                 suffix = ""
-00292             for i, item in enumerate(error):
-00293                 if i == 0:
-00294                     text += item
-00295                 elif i == len(error) - 1:
-00296                     text += " and %s"%item
-00297                 else:
-00298                     text += ", %s"%item
-00299             message = wxMessageDialog(self, "Form isn't valid. %s must be integer%s!"%(text,suffix), "Error", wxOK|wxICON_ERROR)
-00300             message.ShowModal()
-00301             message.Destroy()
-00302         else:
-00303             self.EndModal(wxID_OK)
-00304 
-00305     def GetValues(self):
-00306         name = self.IndexName.GetValue()
-00307         index = int(self.Index.GetValue(), 16)
-00308         if self.radioButton1.GetValue():
-00309             struct = 1
-00310             number = None
-00311         elif self.radioButton2.GetValue():
-00312             struct = 3
-00313             number = int(self.Number.GetValue())
-00314         elif self.radioButton3.GetValue():
-00315             struct = 7
-00316             number = int(self.Number.GetValue())
-00317         return index, name, struct, number
-00318 
-00319     def OnRadioButton1Click(self, event):
-00320         self.EnableNumberTypingEnableNumberTyping(False)
-00321         event.Skip()
-00322 
-00323     def OnRadioButton2Click(self, event):
-00324         self.EnableNumberTypingEnableNumberTyping(True)
-00325         event.Skip()
-00326 
-00327     def OnRadioButton3Click(self, event):
-00328         self.EnableNumberTypingEnableNumberTyping(True)
-00329         event.Skip()
-00330 
-00331     def EnableNumberTyping(self, enable):
-00332         self.staticText4.Enable(enable)
-00333         self.Number.Enable(enable)
-00334 
-00335 
-00336 #-------------------------------------------------------------------------------
-00337 #                          Create User Type Dialog
-00338 #-------------------------------------------------------------------------------
-00339 
-00340 
-00341 [wxID_USERTYPEDIALOG, wxID_USERTYPEDIALOGLENGTH, wxID_USERTYPEDIALOGMAINPANEL, 
-00342  wxID_USERTYPEDIALOGMAX, wxID_USERTYPEDIALOGMIN, 
-00343  wxID_USERTYPEDIALOGSTATICBOX1, wxID_USERTYPEDIALOGSTATICTEXT1, 
-00344  wxID_USERTYPEDIALOGSTATICTEXT2, wxID_USERTYPEDIALOGSTATICTEXT3, 
-00345  wxID_USERTYPEDIALOGSTATICTEXT4, wxID_USERTYPEDIALOGTYPE, 
-00346 ] = [wx.NewId() for _init_ctrls in range(11)]
-00347 
-00348 class UserTypeDialog(wx.Dialog):
-00349     def _init_coll_flexGridSizer1_Items(self, parent):
-00350         # generated method, don't edit
-00351 
-00352         parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-00353 
-00354     def _init_sizers(self):
-00355         # generated method, don't edit
-00356         self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-00357 
-00358         self._init_coll_flexGridSizer1_Items_init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-00359 
-00360         self.SetSizer(self.flexGridSizer1)
-00361 
-00362     def _init_ctrls(self, prnt):
-00363         # generated method, don't edit
-00364         wx.Dialog.__init__(self, id=wxID_USERTYPEDIALOG, name='UserTypeDialog',
-00365               parent=prnt, pos=wx.Point(376, 223), size=wx.Size(444, 228),
-00366               style=wx.DEFAULT_DIALOG_STYLE, title='Add User Type')
-00367         self.SetClientSize(wx.Size(444, 228))
-00368 
-00369         self.MainPanel = wx.Panel(id=wxID_USERTYPEDIALOGMAINPANEL,
-00370               name='MainPanel', parent=self, pos=wx.Point(0, 0),
-00371               size=wx.Size(431, 182), style=wx.TAB_TRAVERSAL)
-00372         self.MainPanel.SetAutoLayout(True)
-00373 
-00374         self.staticText1 = wx.StaticText(id=wxID_USERTYPEDIALOGSTATICTEXT1,
-00375               label='Type:', name='staticText1', parent=self.MainPanel,
-00376               pos=wx.Point(24, 24), size=wx.Size(156, 17), style=0)
-00377 
-00378         self.Type = wx.Choice(choices=[], id=wxID_USERTYPEDIALOGTYPE,
-00379               name='Type', parent=self.MainPanel, pos=wx.Point(24, 48),
-00380               size=wx.Size(160, 24), style=0)
-00381         self.Type.Bind(wx.EVT_CHOICE, self.OnTypeChoiceOnTypeChoice,
-00382               id=wxID_USERTYPEDIALOGTYPE)
-00383 
-00384         self.staticBox1 = wx.StaticBox(id=wxID_USERTYPEDIALOGSTATICBOX1,
-00385               label='Values', name='staticBox1', parent=self.MainPanel,
-00386               pos=wx.Point(200, 24), size=wx.Size(224, 144), style=0)
-00387 
-00388         self.staticText2 = wx.StaticText(id=wxID_USERTYPEDIALOGSTATICTEXT2,
-00389               label='Minimum:', name='staticText2', parent=self.MainPanel,
-00390               pos=wx.Point(216, 48), size=wx.Size(67, 17), style=0)
-00391 
-00392         self.Min = wx.TextCtrl(id=wxID_USERTYPEDIALOGMIN, name='Min',
-00393               parent=self.MainPanel, pos=wx.Point(296, 48), size=wx.Size(112,
-00394               24), style=wx.TE_RIGHT, value='0')
-00395 
-00396         self.staticText3 = wx.StaticText(id=wxID_USERTYPEDIALOGSTATICTEXT3,
-00397               label='Maximum:', name='staticText3', parent=self.MainPanel,
-00398               pos=wx.Point(216, 88), size=wx.Size(71, 17), style=0)
-00399 
-00400         self.Max = wx.TextCtrl(id=wxID_USERTYPEDIALOGMAX, name='Max',
-00401               parent=self.MainPanel, pos=wx.Point(296, 88), size=wx.Size(112,
-00402               25), style=wx.TE_RIGHT, value='0')
-00403 
-00404         self.staticText4 = wx.StaticText(id=wxID_USERTYPEDIALOGSTATICTEXT4,
-00405               label='Length:', name='staticText4', parent=self.MainPanel,
-00406               pos=wx.Point(216, 128), size=wx.Size(52, 17), style=0)
-00407 
-00408         self.Length = wx.TextCtrl(id=wxID_USERTYPEDIALOGLENGTH, name='Length',
-00409               parent=self.MainPanel, pos=wx.Point(296, 128), size=wx.Size(112,
-00410               25), style=wx.TE_RIGHT, value='0')
-00411 
-00412         self._init_sizers_init_sizers()
-00413 
-00414     def __init__(self, parent):
-00415         self._init_ctrls_init_ctrls(parent)
-00416         self.ButtonSizerButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL)
-00417         self.flexGridSizer1.Add(self.ButtonSizerButtonSizer, 1, wxALIGN_CENTER)
-00418         self.TypeDictionaryTypeDictionary = {}
-00419 
-00420         EVT_BUTTON(self, self.ButtonSizerButtonSizer.GetAffirmativeButton().GetId(), self.OnOKOnOK)
-00421 
-00422     def OnOK(self, event):
-00423         error = []
-00424         good = True
-00425         firstmessage = ""
-00426         secondmessage = ""
-00427         name = self.Type.GetStringSelection()
-00428         if name != "":
-00429             valuetype = self.TypeDictionaryTypeDictionary[name][1]
-00430             if valuetype == 0:
-00431                 try:
-00432                     int(self.Min.GetValue(), 16)
-00433                 except:
-00434                     error.append("Minimum")
-00435                     good = False
-00436                 try:
-00437                     int(self.Max.GetValue(), 16)
-00438                 except:
-00439                     error.append("Maximum")
-00440                     good = False
-00441             elif valuetype == 1:
-00442                 try:
-00443                     int(self.Length.GetValue(), 16)
-00444                 except:
-00445                     error.append("Length")
-00446                     good = False
-00447             if len(error) > 0:
-00448                 secondmessage = ". "
-00449                 for i, item in enumerate(error):
-00450                     if i == 0:
-00451                         secondmessage += item
-00452                     elif i == len(error) - 1:
-00453                         secondmessage += " and %s"%item
-00454                     else:
-00455                         secondmessage += ", %s"%item
-00456                 secondmessage += " must be integer"
-00457                 if len(error) > 1:
-00458                     secondmessage += "s"
-00459         else:
-00460             firstmessage = ". A type must be selected"
-00461             good = False
-00462         if not good:
-00463             message = wxMessageDialog(self, "Form isn't valid%s%s%s!"%(firstmessage,secondmessage), "Error", wxOK|wxICON_ERROR)
-00464             message.ShowModal()
-00465             message.Destroy()
-00466             self.Name.SetFocus()
-00467         else:
-00468             self.EndModal(wxID_OK)
-00469 
-00470     def SetValues(self, min = None, max = None, length = None):
-00471         if min != None:
-00472             self.Min.SetValue(str(min))
-00473         if max != None:
-00474             self.Max.SetValue(str(max))
-00475         if length != None:
-00476             self.Length.SetValue(str(length))
-00477 
-00478     def SetTypeList(self, typedic, type = None):
-00479         self.Type.Clear()
-00480         list = []
-00481         for index, (name, valuetype) in typedic.iteritems():
-00482             self.TypeDictionaryTypeDictionary[name] = (index, valuetype)
-00483             list.append((index, name))
-00484         list.sort()
-00485         for index, name in list:
-00486             self.Type.Append(name)
-00487         if type != None:
-00488             self.Type.SetStringSelection(typedic[type][0])
-00489         self.RefreshValuesRefreshValues()
-00490 
-00491     def OnTypeChoice(self, event):
-00492         self.RefreshValuesRefreshValues()
-00493         event.Skip()
-00494     
-00495     def RefreshValues(self):
-00496         name = self.Type.GetStringSelection()
-00497         if name != "":
-00498             valuetype = self.TypeDictionaryTypeDictionary[name][1]
-00499             if valuetype == 0:
-00500                 self.staticText2.Enable(True)
-00501                 self.staticText3.Enable(True)
-00502                 self.staticText4.Enable(False)
-00503                 self.Min.Enable(True)
-00504                 self.Max.Enable(True)
-00505                 self.Length.Enable(False)
-00506             elif valuetype == 1:
-00507                 self.staticText2.Enable(False)
-00508                 self.staticText3.Enable(False)
-00509                 self.staticText4.Enable(True)
-00510                 self.Min.Enable(False)
-00511                 self.Max.Enable(False)
-00512                 self.Length.Enable(True)
-00513         else:
-00514             self.staticText2.Enable(False)
-00515             self.staticText3.Enable(False)
-00516             self.staticText4.Enable(False)
-00517             self.Min.Enable(False)
-00518             self.Max.Enable(False)
-00519             self.Length.Enable(False)
-00520 
-00521     def GetValues(self):
-00522         name = self.Type.GetStringSelection()
-00523         type = self.TypeDictionaryTypeDictionary[name][0]
-00524         min = int(self.Min.GetValue())
-00525         max = int(self.Max.GetValue())
-00526         length = int(self.Length.GetValue())
-00527         return type, min, max, length
-00528 
-00529 
-00530 
-00531 #-------------------------------------------------------------------------------
-00532 #                          Editing Node Infos Dialog
-00533 #-------------------------------------------------------------------------------
-00534 
-00535 
-00536 [wxID_NODEINFOSDIALOG, wxID_NODEINFOSDIALOGMAINPANEL, 
-00537  wxID_NODEINFOSDIALOGNAME, wxID_NODEINFOSDIALOGNODEID, 
-00538  wxID_NODEINFOSDIALOGDESCRIPTION, wxID_NODEINFOSDIALOGSTATICTEXT1, 
-00539  wxID_NODEINFOSDIALOGSTATICTEXT2, wxID_NODEINFOSDIALOGSTATICTEXT3, 
-00540  wxID_NODEINFOSDIALOGSTATICTEXT4, wxID_NODEINFOSDIALOGTYPE, 
-00541 ] = [wx.NewId() for _init_ctrls in range(10)]
-00542 
-00543 class NodeInfosDialog(wx.Dialog):
-00544     def _init_coll_flexGridSizer1_Items(self, parent):
-00545         # generated method, don't edit
-00546 
-00547         parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-00548 
-00549     def _init_sizers(self):
-00550         # generated method, don't edit
-00551         self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-00552 
-00553         self._init_coll_flexGridSizer1_Items_init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-00554 
-00555         self.SetSizer(self.flexGridSizer1)
-00556 
-00557     def _init_ctrls(self, prnt):
-00558         # generated method, don't edit
-00559         wx.Dialog.__init__(self, id=wxID_NODEINFOSDIALOG,
-00560               name='NodeInfosDialog', parent=prnt, pos=wx.Point(376, 223),
-00561               size=wx.Size(300, 300), style=wx.DEFAULT_DIALOG_STYLE,
-00562               title='Node Infos')
-00563         self.SetClientSize(wx.Size(300, 300))
-00564 
-00565         self.MainPanel = wx.Panel(id=wxID_NODEINFOSDIALOGMAINPANEL,
-00566               name='MainPanel', parent=self, pos=wx.Point(0, 0),
-00567               size=wx.Size(280, 264), style=wx.TAB_TRAVERSAL)
-00568         self.MainPanel.SetAutoLayout(True)
-00569 
-00570         self.staticText1 = wx.StaticText(id=wxID_NODEINFOSDIALOGSTATICTEXT1,
-00571               label='Name:', 
-00572               name='staticText1', parent=self.MainPanel,
-00573               pos=wx.Point(24, 24), size=wx.Size(156, 17), style=0)
-00574 
-00575         self.Name = wx.TextCtrl(id=wxID_NODEINFOSDIALOGNAME, name='Name',
-00576               parent=self.MainPanel, pos=wx.Point(24, 48), size=wx.Size(250,
-00577               25), style=0, value='')
-00578 
-00579         self.staticText2 = wx.StaticText(id=wxID_NODEINFOSDIALOGSTATICTEXT2,
-00580               label='Node ID:', name='staticText2', parent=self.MainPanel,
-00581               pos=wx.Point(24, 80), size=wx.Size(67, 17), style=0)
-00582 
-00583         self.NodeID = wx.TextCtrl(id=wxID_NODEINFOSDIALOGNODEID, name='NodeID',
-00584               parent=self.MainPanel, pos=wx.Point(24, 104), size=wx.Size(250,
-00585               25), style=wx.TE_RIGHT, value='')
-00586 
-00587         self.staticText3 = wx.StaticText(id=wxID_NODEINFOSDIALOGSTATICTEXT3,
-00588               label='Type:', name='staticText3', parent=self.MainPanel,
-00589               pos=wx.Point(24, 136), size=wx.Size(71, 17), style=0)
-00590 
-00591         self.Type = wx.Choice(choices=[], id=wxID_NODEINFOSDIALOGTYPE,
-00592               name='Type', parent=self.MainPanel, pos=wx.Point(24, 160),
-00593               size=wx.Size(250, 25), style=0)
-00594 
-00595         self.staticText4 = wx.StaticText(id=wxID_NODEINFOSDIALOGSTATICTEXT4,
-00596               label='Description:', name='staticText4', parent=self.MainPanel,
-00597               pos=wx.Point(24, 192), size=wx.Size(71, 17), style=0)
-00598 
-00599         self.Description = wx.TextCtrl(id=wxID_NODEINFOSDIALOGDESCRIPTION, 
-00600               name='Description', parent=self.MainPanel, pos=wx.Point(24, 216), 
-00601               size=wx.Size(250, 25), style=0, value='')
-00602 
-00603         self._init_sizers_init_sizers()
-00604 
-00605     def __init__(self, parent):
-00606         self._init_ctrls_init_ctrls(parent)
-00607         self.ButtonSizerButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL)
-00608         self.flexGridSizer1.Add(self.ButtonSizerButtonSizer, 1, wxALIGN_CENTER)
-00609         self.Type.Append("master")
-00610         self.Type.Append("slave")
-00611 
-00612         EVT_BUTTON(self, self.ButtonSizerButtonSizer.GetAffirmativeButton().GetId(), self.OnOKOnOK)
-00613 
-00614     def OnOK(self, event):
-00615         name = self.Name.GetValue()
-00616         message = ""
-00617         if name != "":
-00618             good = not name[0].isdigit()
-00619             for item in name.split("_"):
-00620                 good &= item.isalnum()
-00621             if not good:
-00622                 message = "Node name can't be undefined or start with a digit and must be composed of alphanumerical characters or underscore!"
-00623         if message != "":
-00624             try:
-00625                 nodeid = int(self.NodeID.GetValue(), 16)
-00626             except:
-00627                 message = "Node ID must be integer!"
-00628         if message != "":
-00629             message = wxMessageDialog(self, message, "ERROR", wxOK|wxICON_ERROR)
-00630             message.ShowModal()
-00631             message.Destroy()
-00632             self.Name.SetFocus()
-00633         else:
-00634             self.EndModal(wxID_OK)
-00635     
-00636     def SetValues(self, name, id, type, description):
-00637         self.Name.SetValue(name)
-00638         self.NodeID.SetValue("0x%02X"%id)
-00639         self.Type.SetStringSelection(type)
-00640         self.Description.SetValue(description)
-00641 
-00642     def GetValues(self):
-00643         name = self.Name.GetValue()
-00644         nodeid = int(self.NodeID.GetValue(), 16)
-00645         type = self.Type.GetStringSelection()
-00646         description = self.Description.GetValue()
-00647         return name, nodeid, type, description
-00648 
-00649 
-00650 
-00651 #-------------------------------------------------------------------------------
-00652 #                          Create New Node Dialog
-00653 #-------------------------------------------------------------------------------
-00654 
-00655 
-00656 [wxID_CREATENODEDIALOG, wxID_CREATENODEDIALOGEMERGENCY, 
-00657  wxID_CREATENODEDIALOGGENSYNC, wxID_CREATENODEDIALOGMAINPANEL, 
-00658  wxID_CREATENODEDIALOGNAME, wxID_CREATENODEDIALOGNMT_HEARTBEAT, 
-00659  wxID_CREATENODEDIALOGNMT_NODEGUARDING, wxID_CREATENODEDIALOGNMT_NONE, 
-00660  wxID_CREATENODEDIALOGNODEID, wxID_CREATENODEDIALOGPROFILE, 
-00661  wxID_CREATENODEDIALOGSAVECONFIG, wxID_CREATENODEDIALOGSTATICTEXT1, 
-00662  wxID_CREATENODEDIALOGSTATICTEXT2, wxID_CREATENODEDIALOGSTATICTEXT3, 
-00663  wxID_CREATENODEDIALOGSTATICTEXT4, wxID_CREATENODEDIALOGSTATICTEXT5, 
-00664  wxID_CREATENODEDIALOGSTATICTEXT6, wxID_CREATENODEDIALOGSTATICTEXT7,
-00665  wxID_CREATENODEDIALOGSTOREEDS, wxID_CREATENODEDIALOGDESCRIPTION,
-00666  wxID_CREATENODEDIALOGTYPE, 
-00667 ] = [wx.NewId() for _init_ctrls in range(21)]
-00668 
-00669 class CreateNodeDialog(wx.Dialog):
-00670     def _init_coll_flexGridSizer1_Items(self, parent):
-00671         # generated method, don't edit
-00672 
-00673         parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-00674 
-00675     def _init_sizers(self):
-00676         # generated method, don't edit
-00677         self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-00678 
-00679         self._init_coll_flexGridSizer1_Items_init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-00680 
-00681         self.SetSizer(self.flexGridSizer1)
-00682 
-00683     def _init_ctrls(self, prnt):
-00684         # generated method, don't edit
-00685         wx.Dialog.__init__(self, id=wxID_CREATENODEDIALOG,
-00686               name='CreateNodeDialog', parent=prnt, pos=wx.Point(376, 223),
-00687               size=wx.Size(451, 376), style=wx.DEFAULT_DIALOG_STYLE,
-00688               title='Create a new Node')
-00689         self.SetClientSize(wx.Size(451, 376))
-00690 
-00691         self.MainPanel = wx.Panel(id=wxID_CREATENODEDIALOGMAINPANEL,
-00692               name='MainPanel', parent=self, pos=wx.Point(0, 0),
-00693               size=wx.Size(440, 278), style=wx.TAB_TRAVERSAL)
-00694         self.MainPanel.SetAutoLayout(True)
-00695 
-00696         self.staticText1 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT1,
-00697               label='Name:', name='staticText1', parent=self.MainPanel,
-00698               pos=wx.Point(24, 24), size=wx.Size(156, 17), style=0)
-00699 
-00700         self.staticText2 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT2,
-00701               label='Node ID:', name='staticText2', parent=self.MainPanel,
-00702               pos=wx.Point(24, 80), size=wx.Size(67, 17), style=0)
-00703 
-00704         self.staticText3 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT3,
-00705               label='Type:', name='staticText3', parent=self.MainPanel,
-00706               pos=wx.Point(24, 136), size=wx.Size(71, 17), style=0)
-00707 
-00708         self.Type = wx.Choice(choices=[], id=wxID_CREATENODEDIALOGTYPE,
-00709               name='Type', parent=self.MainPanel, pos=wx.Point(24, 160),
-00710               size=wx.Size(200, 24), style=0)
-00711 
-00712         self.Name = wx.TextCtrl(id=wxID_CREATENODEDIALOGNAME, name='Name',
-00713               parent=self.MainPanel, pos=wx.Point(24, 48), size=wx.Size(200,
-00714               25), style=0, value='')
-00715 
-00716         self.NodeID = wx.TextCtrl(id=wxID_CREATENODEDIALOGNODEID, name='NodeID',
-00717               parent=self.MainPanel, pos=wx.Point(24, 104), size=wx.Size(200,
-00718               25), style=wx.TE_RIGHT, value='')
-00719 
-00720         self.staticText4 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT4,
-00721               label='Profile:', name='staticText4', parent=self.MainPanel,
-00722               pos=wx.Point(24, 192), size=wx.Size(47, 17), style=0)
-00723 
-00724         self.Profile = wx.Choice(choices=[], id=wxID_CREATENODEDIALOGPROFILE,
-00725               name='Profile', parent=self.MainPanel, pos=wx.Point(24, 216),
-00726               size=wx.Size(200, 24), style=0)
-00727         self.Profile.Bind(wx.EVT_CHOICE, self.OnProfileChoiceOnProfileChoice,
-00728               id=wxID_CREATENODEDIALOGPROFILE)
-00729 
-00730         self.staticText5 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT5,
-00731               label='Network Management:', name='staticText5',
-00732               parent=self.MainPanel, pos=wx.Point(256, 24), size=wx.Size(152,
-00733               16), style=0)
-00734 
-00735         self.NMT_None = wx.RadioButton(id=wxID_CREATENODEDIALOGNMT_NONE,
-00736               label='None', name='NMT_None', parent=self.MainPanel,
-00737               pos=wx.Point(256, 40), size=wx.Size(114, 24), style=0)
-00738         self.NMT_None.SetValue(True)
-00739 
-00740         self.NMT_NodeGuarding = wx.RadioButton(id=wxID_CREATENODEDIALOGNMT_NODEGUARDING,
-00741               label='Node Guarding', name='NMT_NodeGuarding',
-00742               parent=self.MainPanel, pos=wx.Point(256, 64), size=wx.Size(128,
-00743               24), style=0)
-00744         self.NMT_NodeGuarding.SetValue(False)
-00745 
-00746         self.NMT_Heartbeat = wx.RadioButton(id=wxID_CREATENODEDIALOGNMT_HEARTBEAT,
-00747               label='Heartbeat', name='NMT_Heartbeat', parent=self.MainPanel,
-00748               pos=wx.Point(256, 88), size=wx.Size(114, 24), style=0)
-00749         self.NMT_Heartbeat.SetValue(False)
-00750 
-00751         self.staticText6 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT6,
-00752               label='Options:', name='staticText6', parent=self.MainPanel,
-00753               pos=wx.Point(256, 128), size=wx.Size(72, 17), style=0)
-00754 
-00755         self.DS302 = wx.CheckBox(id=wxID_CREATENODEDIALOGGENSYNC,
-00756               label='DS-302 Profile', name='DS302', parent=self.MainPanel,
-00757               pos=wx.Point(256, 144), size=wx.Size(128, 24), style=0)
-00758         self.DS302.SetValue(False)
-00759         #self.DS302.Enable(False)
-00760 
-00761         self.GenSYNC = wx.CheckBox(id=wxID_CREATENODEDIALOGGENSYNC,
-00762               label='Generate SYNC', name='GenSYNC', parent=self.MainPanel,
-00763               pos=wx.Point(256, 168), size=wx.Size(128, 24), style=0)
-00764         self.GenSYNC.SetValue(False)
-00765 
-00766         self.Emergency = wx.CheckBox(id=wxID_CREATENODEDIALOGEMERGENCY,
-00767               label='Emergency support', name='Emergency',
-00768               parent=self.MainPanel, pos=wx.Point(256, 192), size=wx.Size(152,
-00769               24), style=0)
-00770         self.Emergency.SetValue(False)
-00771         self.Emergency.Enable(False)
-00772 
-00773         self.SaveConfig = wx.CheckBox(id=wxID_CREATENODEDIALOGSAVECONFIG,
-00774               label='Save Configuration', name='SaveConfig',
-00775               parent=self.MainPanel, pos=wx.Point(256, 216), size=wx.Size(152,
-00776               24), style=0)
-00777         self.SaveConfig.SetValue(False)
-00778         self.SaveConfig.Enable(False)
-00779 
-00780 #        self.StoreEDS = wx.CheckBox(id=wxID_CREATENODEDIALOGSTOREEDS,
-00781 #              label='Store EDS', name='StoreEDS', parent=self.MainPanel,
-00782 #              pos=wx.Point(256, 240), size=wx.Size(144, 24), style=0)
-00783 #        self.StoreEDS.SetValue(False)
-00784 
-00785         self.staticText7 = wx.StaticText(id=wxID_CREATENODEDIALOGSTATICTEXT7,
-00786               label='Description:', name='staticText7', parent=self.MainPanel,
-00787               pos=wx.Point(24, 248), size=wx.Size(71, 17), style=0)
-00788 
-00789         self.Description = wx.TextCtrl(id=wxID_CREATENODEDIALOGDESCRIPTION, 
-00790               name='Description', parent=self.MainPanel, pos=wx.Point(24, 272), 
-00791               size=wx.Size(400, 25), style=0, value='')
-00792 
-00793         self._init_sizers_init_sizers()
-00794 
-00795     def __init__(self, parent, cwd):
-00796         self._init_ctrls_init_ctrls(parent)
-00797         self.ButtonSizerButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL)
-00798         self.flexGridSizer1.Add(self.ButtonSizerButtonSizer, 1, wxALIGN_CENTER)
-00799         self.NodeID.SetValue("0x00")
-00800         self.Type.Append("master")
-00801         self.Type.Append("slave")
-00802         self.Type.SetStringSelection("slave")
-00803         self.Description.SetValue("")
-00804         self.ListProfileListProfile = {"None" : ""}
-00805         self.Profile.Append("None")
-00806         self.DirectoryDirectory = os.path.join(cwd, "config")
-00807         listfiles = os.listdir(self.DirectoryDirectory)
-00808         listfiles.sort()
-00809         for item in listfiles:
-00810             name, extend = os.path.splitext(item)
-00811             if os.path.isfile(os.path.join(self.DirectoryDirectory, item)) and extend == ".prf" and name != "DS-302":
-00812                 self.ListProfileListProfile[name] = os.path.join(self.DirectoryDirectory, item)
-00813                 self.Profile.Append(name)
-00814         self.Profile.Append("Other")
-00815         self.Profile.SetStringSelection("None")
-00816         self.Name.SetFocus()
-00817         
-00818         EVT_BUTTON(self, self.ButtonSizerButtonSizer.GetAffirmativeButton().GetId(), self.OnOKOnOK)
-00819 
-00820     def OnOK(self, event):
-00821         name = self.Name.GetValue()
-00822         message = ""
-00823         if name != "":
-00824             good = not name[0].isdigit()
-00825             for item in name.split("_"):
-00826                 good &= item.isalnum()
-00827             if not good:
-00828                 message = "Node name can't be undefined or start with a digit and must be composed of alphanumerical characters or underscore!"
-00829         if message != "":
-00830             try:
-00831                 nodeid = int(self.NodeID.GetValue(), 16)
-00832             except:
-00833                 message = "Node ID must be an integer!"
-00834         if message != "":
-00835             message = wxMessageDialog(self, message, "ERROR", wxOK|wxICON_ERROR)
-00836             message.ShowModal()
-00837             message.Destroy()
-00838             self.Name.SetFocus()
-00839         else:
-00840             self.EndModal(wxID_OK)
-00841 
-00842     def GetValues(self):
-00843         name = self.Name.GetValue()
-00844         nodeid = 0
-00845         if self.NodeID.GetValue() != "":
-00846             nodeid = int(self.NodeID.GetValue(), 16)
-00847         type = self.Type.GetStringSelection()
-00848         description = self.Description.GetValue()
-00849         return name, nodeid, type, description
-00850 
-00851     def GetProfile(self):
-00852         name = self.Profile.GetStringSelection()
-00853         return name, self.ListProfileListProfile[name]
-00854 
-00855     def GetNMTManagement(self):
-00856         if self.NMT_None.GetValue():
-00857             return "None"
-00858         elif self.NMT_NodeGuarding.GetValue():
-00859             return "NodeGuarding"
-00860         elif self.NMT_Heartbeat.GetValue():
-00861             return "Heartbeat"
-00862         return None
-00863     
-00864     def GetOptions(self):
-00865         options = []
-00866         if self.DS302.GetValue():
-00867             options.append("DS302")
-00868         if self.GenSYNC.GetValue():
-00869             options.append("GenSYNC")
-00870         if self.Emergency.GetValue():
-00871             options.append("Emergency")
-00872         if self.SaveConfig.GetValue():
-00873             options.append("SaveConfig")
-00874 #        if self.StoreEDS.GetValue():
-00875 #            options.append("StoreEDS")
-00876         return options
-00877 
-00878     def OnProfileChoice(self, event):
-00879         if self.Profile.GetStringSelection() == "Other":
-00880             dialog = wxFileDialog(self, "Choose a file", self.DirectoryDirectory, "",  "OD Profile files (*.prf)|*.prf|All files|*.*", wxOPEN|wxCHANGE_DIR)
-00881             dialog.ShowModal()
-00882             filepath = dialog.GetPath()
-00883             dialog.Destroy()
-00884             if os.path.isfile(filepath):
-00885                 name = os.path.splitext(os.path.basename(filepath))[0]
-00886                 self.ListProfileListProfile[name] = filepath
-00887                 length = self.Profile.GetCount()
-00888                 self.Profile.Insert(name, length - 2)
-00889                 self.Profile.SetStringSelection(name)
-00890             else:
-00891                 self.Profile.SetStringSelection("None")
-00892         event.Skip()
-00893 
-00894 
-00895 #-------------------------------------------------------------------------------
-00896 #                            ADD Slave to NodeList Dialog
-00897 #-------------------------------------------------------------------------------
-00898 
-00899 [wxID_ADDSLAVEDIALOG, wxID_ADDSLAVEDIALOGMAINPANEL, wxID_ADDSLAVEDIALOGSLAVENAME, 
-00900  wxID_ADDSLAVEDIALOGSLAVENODEID, wxID_ADDSLAVEDIALOGEDSFILE, 
-00901  wxID_ADDSLAVEDIALOGIMPORTEDS, wxID_ADDSLAVEDIALOGSTATICTEXT1, 
-00902  wxID_ADDSLAVEDIALOGSTATICTEXT2, wxID_ADDSLAVEDIALOGSTATICTEXT3, 
-00903 ] = [wx.NewId() for _init_ctrls in range(9)]
-00904 
-00905 class AddSlaveDialog(wx.Dialog):
-00906     def _init_coll_flexGridSizer1_Items(self, parent):
-00907         # generated method, don't edit
-00908 
-00909         parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-00910 
-00911     def _init_sizers(self):
-00912         # generated method, don't edit
-00913         self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-00914 
-00915         self._init_coll_flexGridSizer1_Items_init_coll_flexGridSizer1_Items(self.flexGridSizer1)
-00916 
-00917         self.SetSizer(self.flexGridSizer1)
-00918 
-00919     def _init_ctrls(self, prnt):
-00920         # generated method, don't edit
-00921         wx.Dialog.__init__(self, id=wxID_ADDSLAVEDIALOG,
-00922               name='AddSlaveDialog', parent=prnt, pos=wx.Point(376, 223),
-00923               size=wx.Size(300, 250), style=wx.DEFAULT_DIALOG_STYLE,
-00924               title='Add a slave to nodelist')
-00925         self.SetClientSize(wx.Size(300, 250))
-00926 
-00927         self.MainPanel = wx.Panel(id=wxID_ADDSLAVEDIALOGMAINPANEL,
-00928               name='MainPanel', parent=self, pos=wx.Point(0, 0),
-00929               size=wx.Size(350, 250), style=wx.TAB_TRAVERSAL)
-00930         self.MainPanel.SetAutoLayout(True)
-00931 
-00932         self.staticText1 = wx.StaticText(id=wxID_ADDSLAVEDIALOGSTATICTEXT1,
-00933               label='Slave Name:', name='staticText1', parent=self.MainPanel,
-00934               pos=wx.Point(24, 24), size=wx.Size(150, 17), style=0)
-00935 
-00936         self.SlaveName = wx.TextCtrl(id=wxID_ADDSLAVEDIALOGSLAVENAME,
-00937               name='SlaveName', parent=self.MainPanel, pos=wx.Point(24, 48), 
-00938               size=wx.Size(250, 24), style=0)
-00939 
-00940         self.staticText2 = wx.StaticText(id=wxID_ADDSLAVEDIALOGSTATICTEXT2,
-00941               label='Slave Node ID:', name='staticText2', parent=self.MainPanel,
-00942               pos=wx.Point(24, 80), size=wx.Size(150, 17), style=0)
-00943 
-00944         self.SlaveNodeID = wx.TextCtrl(id=wxID_ADDSLAVEDIALOGSLAVENODEID,
-00945               name='SlaveName', parent=self.MainPanel, pos=wx.Point(24, 104), 
-00946               size=wx.Size(250, 24), style=wxALIGN_RIGHT)
-00947 
-00948         self.staticText3 = wx.StaticText(id=wxID_ADDSLAVEDIALOGSTATICTEXT3,
-00949               label='EDS File:', name='staticText3', parent=self.MainPanel,
-00950               pos=wx.Point(24, 136), size=wx.Size(155, 17), style=0)
-00951 
-00952         self.EDSFile = wx.Choice(id=wxID_ADDSLAVEDIALOGEDSFILE,
-00953               name='EDSFile', parent=self.MainPanel, pos=wx.Point(24, 160),
-00954               size=wx.Size(145, 24), style=0)
-00955         
-00956         self.ImportEDS = wxButton(id=wxID_ADDSLAVEDIALOGIMPORTEDS, label='Import EDS',
-00957               name='ImportEDS', parent=self.MainPanel, pos=wx.Point(174, 160),
-00958               size=wx.Size(100, 32), style=0)
-00959         self.ImportEDS.Bind(wx.EVT_BUTTON, self.OnImportEDSButtonOnImportEDSButton,
-00960               id=wxID_ADDSLAVEDIALOGIMPORTEDS)
-00961         
-00962         self._init_sizers_init_sizers()
-00963 
-00964     def __init__(self, parent):
-00965         self._init_ctrls_init_ctrls(parent)
-00966         self.ButtonSizerButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL|wxCENTRE)
-00967         self.flexGridSizer1.Add(self.ButtonSizerButtonSizer, 1, wxALIGN_RIGHT)
-00968         
-00969         self.SlaveNodeID.SetValue("0x00")
-00970         
-00971         EVT_BUTTON(self, self.ButtonSizerButtonSizer.GetAffirmativeButton().GetId(), self.OnOKOnOK)
-00972     
-00973     def OnOK(self, event):
-00974         error = []
-00975         if self.SlaveName.GetValue() == "":
-00976             error.append("Slave Name")
-00977         if self.SlaveNodeID.GetValue() == "":
-00978             error.append("Slave Node ID")
-00979         if self.EDSFile.GetStringSelection() == "":
-00980             error.append("EDS File")
-00981         if len(error) > 0:
-00982             text = ""
-00983             for i, item in enumerate(error):
-00984                 if i == 0:
-00985                     text += item
-00986                 elif i == len(error) - 1:
-00987                     text += " and %s"%item
-00988                 else:
-00989                     text += ", %s"%item 
-00990             message = wxMessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wxOK|wxICON_ERROR)
-00991             message.ShowModal()
-00992             message.Destroy()
-00993         else:
-00994             try:
-00995                 nodeid = self.SlaveNodeID.GetValue()
-00996                 if nodeid.find("x") != -1:
-00997                     nodeid = int(nodeid, 16)
-00998                 else:
-00999                     nodeid = int(nodeid)
-01000             except:
-01001                 message = wxMessageDialog(self, "Slave Node ID must be a value in decimal or hexadecimal!", "Error", wxOK|wxICON_ERROR)
-01002                 message.ShowModal()
-01003                 message.Destroy()
-01004                 return
-01005             if not 0 <= nodeid <= 127:
-01006                 message = wxMessageDialog(self, "Slave Node ID must be between 0 and 127!", "Error", wxOK|wxICON_ERROR)
-01007                 message.ShowModal()
-01008                 message.Destroy()
-01009             elif nodeid == 0 or nodeid in self.NodeListNodeList.SlaveNodes.keys():
-01010                 message = wxMessageDialog(self, "A Node with this ID already exist in the network!", "Error", wxOK|wxICON_ERROR)
-01011                 message.ShowModal()
-01012                 message.Destroy()
-01013             else:
-01014                 self.EndModal(wxID_OK)
-01015 
-01016     def OnImportEDSButton(self, event):
-01017         dialog = wxFileDialog(self, "Choose an EDS file", os.getcwd(), "",  "EDS files (*.eds)|*.eds|All files|*.*", wxOPEN|wxCHANGE_DIR)
-01018         if dialog.ShowModal() == wxID_OK:
-01019             filepath = dialog.GetPath()
-01020             if os.path.isfile(filepath):
-01021                 result = self.NodeListNodeList.ImportEDSFile(filepath)
-01022                 if result:
-01023                     message = wxMessageDialog(self, result, "Error", wxOK|wxICON_ERROR)
-01024                     message.ShowModal()
-01025                     message.Destroy()
-01026         dialog.Destroy()
-01027         self.RefreshEDSFileRefreshEDSFile()
-01028         event.Skip()
-01029 
-01030     def RefreshEDSFile(self):
-01031         selection = self.EDSFile.GetStringSelection()
-01032         self.EDSFile.Clear()
-01033         for option in self.NodeListNodeList.EDSNodes.keys():
-01034             self.EDSFile.Append(option)
-01035         if self.EDSFile.FindString(selection) != wxNOT_FOUND:
-01036             self.EDSFile.SetStringSelection(selection)
-01037     
-01038     def SetNodeList(self, nodelist):
-01039         self.NodeListNodeList = nodelist
-01040         self.RefreshEDSFileRefreshEDSFile()
-01041     
-01042     def GetValues(self):
-01043         values = {}
-01044         values["slaveName"] = self.SlaveName.GetValue()
-01045         nodeid = self.SlaveNodeID.GetValue()
-01046         if nodeid.find("x") != -1:
-01047             values["slaveNodeID"] = int(nodeid, 16)
-01048         else:
-01049             values["slaveNodeID"] = int(nodeid)
-01050         values["edsFile"] = self.EDSFile.GetStringSelection()
-01051         return values
-

Generated on Mon Jun 4 16:29:06 2007 for CanFestival by  - -doxygen 1.5.1
- -