Module VFHauptfenster
[hide private]
[frames] | no frames]

Source Code for Module VFHauptfenster

  1  # -*- coding: utf-8 -*- 
  2  # generated by wxGlade 0.5 on Fri Feb 29 17:34:46 2008 from /home/micha/diss/03-software/gui/wxvf.wxg 
  3   
  4  import wx 
  5  # 
  6  # ---------------------------------------------------------------------------------------- 
  7  # ---------------------------------------------------------------------------------------- 
  8  # --                            ---------------------------------------------------------- 
  9  # --    Beginn Bellair          ---------------------------------------------------------- 
 10  # --                            ---------------------------------------------------------- 
 11  # ---------------------------------------------------------------------------------------- 
 12  # ---------------------------------------------------------------------------------------- 
 13  # 
 14  # 
 15  from BearbeiteStrukturen import BearbeiteStrukturen     # Dialog - Strukturen bearbeiten 
 16  from ProgStart import ProgStart                         # Dialog - Datenbankanmeldung 
 17  from datenbank import Datenbank, Fehler         # Datenbankzugriff, Datenbankvariablen 
 18  import sys                                              # Programmende >sys.exit()< 
 19  import getpass                                          # Benutzername >getuser()< 
 20  # 
 21  # 
 22  # ---------------------------------------------------------------------------------------- 
 23  # ---------------------------------------------------------------------------------------- 
 24  # --                            ---------------------------------------------------------- 
 25  # --    Ende Bellair            ---------------------------------------------------------- 
 26  # --                            ---------------------------------------------------------- 
 27  # ---------------------------------------------------------------------------------------- 
 28  # ---------------------------------------------------------------------------------------- 
 29  # 
 30   
 31   
 32  # begin wxGlade: dependencies 
 33  # end wxGlade 
 34   
35 -class VFHauptfenster(wx.Frame):
36 """ 37 Klasse, die das Hauptfenster der Benutzeroberfläche repräsentiert. 38 39 @raise IOError: Fehlermeldung und Programmende, wenn die Konfigurationsdatei '.wxvf' nicht geöffnet werden kann. 40 @raise Fehler: Fehlermeldung und Programmende, wenn die Datenbankverbindung nicht hergestellt werden kann. 41 """
42 - def __init__(self, *args, **kwds):
43 # begin wxGlade: VFHauptfenster.__init__ 44 kwds["style"] = wx.DEFAULT_FRAME_STYLE 45 wx.Frame.__init__(self, *args, **kwds) 46 47 # Menu Bar 48 self.hauptfenster_menubar = wx.MenuBar() 49 wxglade_tmp_menu = wx.Menu() 50 wxglade_tmp_menu.Append(101, "&Speichern\tCtrl+S", u"Änderungen in der Datenbank ablegen", wx.ITEM_NORMAL) 51 wxglade_tmp_menu.AppendSeparator() 52 wxglade_tmp_menu.Append(102, "&Beenden\tCtrl+B", u"Die Benutzeroberfläche 'wxvf' beenden.", wx.ITEM_NORMAL) 53 self.hauptfenster_menubar.Append(wxglade_tmp_menu, "&Datei") 54 wxglade_tmp_menu = wx.Menu() 55 wxglade_tmp_menu.Append(201, "&Strukturen", "", wx.ITEM_NORMAL) 56 self.hauptfenster_menubar.Append(wxglade_tmp_menu, "&Bearbeiten") 57 self.SetMenuBar(self.hauptfenster_menubar) 58 # Menu Bar end 59 60 self.__set_properties() 61 self.__do_layout() 62 # end wxGlade 63 64 # 65 # ---------------------------------------------------------------------------------------- 66 # ---------------------------------------------------------------------------------------- 67 # -- ---------------------------------------------------------- 68 # -- Beginn Bellair ---------------------------------------------------------- 69 # -- ---------------------------------------------------------- 70 # ---------------------------------------------------------------------------------------- 71 # ---------------------------------------------------------------------------------------- 72 # 73 # 74 # -------------------------------------------------------------------------------- 75 # -- Initialisierungen -------------------------------------------------- 76 # -------------------------------------------------------------------------------- 77 # 78 self.CenterOnScreen() 79 80 # 81 # -------------------------------------------------------------------------------- 82 # -- Menüereignisse ---------------------------------------------------------- 83 # -------------------------------------------------------------------------------- 84 # 85 self.Bind(wx.EVT_MENU, self.__speichereAenderungen__, id=101) 86 self.Bind(wx.EVT_MENU, self.__beendeProgramm__, id=102) 87 88 self.Bind(wx.EVT_MENU, self.__bearbeiteStrukturenDialog__, id=201) 89 90 # 91 # -------------------------------------------------------------------------------- 92 # -- Datenbankbenutzername / -kennwort eingeben -------------------------- 93 # -------------------------------------------------------------------------------- 94 # 95 # 96 # -- später wieder Aktivieren ! ---------------------------------------------------------- 97 # 98 # dlg = ProgStart( self ) 99 # dlg.CenterOnScreen() 100 # dlg.text_ctrl_dbBenutzerName.SetValue( getpass.getuser() ) 101 # if ( dlg.ShowModal() != wx.ID_OK ): 102 # sys.exit() 103 # 104 # dbBenutzerName = dlg.text_ctrl_dbBenutzerName.GetValue() 105 # dbKennwort = dlg.text_ctrl_dbKennwort.GetValue() 106 # dlg.Destroy() 107 dbBenutzerName = "micha" 108 dbKennwort = "M&K2Anna" 109 110 # 111 # -------------------------------------------------------------------------------- 112 # -- Konfigurationsdatei auslesen ------------------------------------------ 113 # -------------------------------------------------------------------------------- 114 # 115 try: 116 confDatei=open('.wxvf', 'r') 117 except IOError: 118 dlg = wx.MessageDialog(self, 119 "Die von 'wxvf' benötigte Konfigurationsdatei ist nicht vorhanden !\n\n" 120 + "Bitte lege im Programmverzeichnis eine Textdatei mit dem Namen '.wxvf' an.\n" 121 + "Bitte trage im Format 'xxx.xxx.xxx.xxx' die IP-Adresse ein, über die der Datenbankserver (PostgreSQL) angesprochen werden kann (000.000.000.000 entspricht 'localhost').\n\n" 122 + "'wxvf' wird beendet." 123 , 'Fehlermeldung', wx.OK | wx.ICON_ERROR ) 124 dlg.ShowModal() 125 dlg.Destroy() 126 sys.exit() 127 # 128 # -- IP-Adresse lesen (xxx.xxx.xxx.xxx) ---------- 129 # -- Die 15 Zeichen - Begrenzung soll vor 'Buffer Overflow' schützen ---------- 130 # 131 hostaddr = confDatei.read( 15 ) 132 confDatei.close() 133 134 # 135 # -------------------------------------------------------------------------------- 136 # -- Verbindung zu 'vf' herstellen ------------------------------------------ 137 # -------------------------------------------------------------------------------- 138 # 139 try: 140 self.dbVerbunden = Datenbank( dbBenutzerName, dbKennwort, hostaddr ) 141 """ 142 @cvar: Datenbankobjekt, welches die Datenbankverbindung enthält. 143 @type: libpq - PgConnection 144 """ 145 146 except Fehler, msg: 147 dlg = wx.MessageDialog( self, str( msg ), 'Fehlermeldung', wx.OK | wx.ICON_ERROR ) 148 dlg.ShowModal() 149 dlg.Destroy() 150 sys.exit()
151 152 153 154 # 155 # ------------------------------------------------------------------------------------ 156 # -- Funktionen ---------------------------------------------------------- 157 # ------------------------------------------------------------------------------------ 158 # 159 160 # 161 # -- Programm beenden -------------------------------------------------- 162 #
163 - def __beendeProgramm__( self, ereignisDummy ):
164 """ 165 Methode die aufgerufen wird, um das Programm zu beenden. 166 167 @param ereignisDummy: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 168 @type ereignisDummy: C{wx - Ereignisobjekt} 169 """ 170 self.dbVerbunden.verwerfeAenderungen() 171 self.Close()
172 173 # 174 # -- Strukturen bearbeiten -------------------------------------------------- 175 #
176 - def __bearbeiteStrukturenDialog__( self, ereignisDummy ):
177 """ 178 Methode die aufgerufen wird, um die in der Datenbank vorhandenen Strukturen zu bearbeiten. 179 180 @param ereignisDummy: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 181 @type ereignisDummy: C{wx - Ereignisobjekt} 182 """ 183 dlg = BearbeiteStrukturen( self ) 184 dlg.liesDatenbank( self.dbVerbunden ) 185 dlg.CenterOnScreen() 186 dlg.ShowModal()
187 188 # 189 # -- Änderungen speichern -------------------------------------------------- 190 #
191 - def __speichereAenderungen__( self, ereignisDummy ):
192 """ 193 Methode die aufgerufen wird, um alle Änderungen zu speichern. 194 195 @param ereignisDummy: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 196 @type ereignisDummy: C{wx - Ereignisobjekt} 197 """ 198 self.dbVerbunden.nimmAenderungen()
199 200 201 # 202 # ---------------------------------------------------------------------------------------- 203 # ---------------------------------------------------------------------------------------- 204 # -- ---------------------------------------------------------- 205 # -- Ende Bellair ---------------------------------------------------------- 206 # -- ---------------------------------------------------------- 207 # ---------------------------------------------------------------------------------------- 208 # ---------------------------------------------------------------------------------------- 209 # 210
211 - def __set_properties(self):
212 # begin wxGlade: VFHauptfenster.__set_properties 213 self.SetTitle("wxvf - 'Virtuelles Fahrzeug'") 214 self.SetSize((685, 480))
215 # end wxGlade 216
217 - def __do_layout(self):
218 # begin wxGlade: VFHauptfenster.__do_layout 219 sizer_1 = wx.BoxSizer(wx.VERTICAL) 220 self.SetSizer(sizer_1) 221 self.Layout()
222 # end wxGlade 223 224 # end of class VFHauptfenster 225