Changeset 1178 for SHX


Ignore:
Timestamp:
13.02.2016 00:05:42 (4 years ago)
Author:
klaus
Message:

first working dialog box

Location:
SHX/trunk/SeismicHandler
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/basics/analysispar.py

    r1169 r1178  
    436436     
    437437    def _setValue( self, parname, value ): 
    438         "Set parameter value. Value to be set over command line only." 
     438        "Set parameter value. Value to be set via command line only." 
    439439        if not parname in self.pardict.keys(): 
    440440            raise ShxError( "unknown analysis parameter '%s'" % parname ) 
  • SHX/trunk/SeismicHandler/config/runtime.py

    r1153 r1178  
    126126        "RUNTIME:wdwsize_magnify": (1281,151), 
    127127        "RUNTIME:wdwpos_params": (1333,0), 
     128        # popup menu in read dialog 
     129        "RUNTIME:readdialog_stalist": [ 
     130            "GRSN * * BHZ", 
     131            "GRSN * * HH?,EH?", 
     132        ], 
    128133    }) 
    129134 
     
    277282        self.config = conf 
    278283        self.__mergedConfig = mergedConfig 
     284        self.Runtime["RUNTIME:readdialog_stalist"] = [s.replace(';',',') \ 
     285            for s in self.config['readdialog']['stalist']] 
    279286 
    280287    def __getattr__(self, name): 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1177 r1178  
    216216            'n': plotter.OnSetPhase_Pn, 
    217217            'p': plotter.OnSetPhase_P, 
     218            'r': plotter.OnReadDialog, 
    218219            's': plotter.OnSetTimeWindow, 
    219220            'u': plotter.OnSimulateUndo, 
     
    20052006    """ 
    20062007    Basic program frame including menu. 
    2007      
    2008     Shortcuts 
    2009            a(FilterWA) b(Beam) d(DelTimeWdw) g(PhasePg) l(locate) m(mlSingle) 
    2010            n(PhasePn) p(PhaseP) s(SetTimeWdw) u(Undo Filter) w(planewave) 
    2011            0(PrevEvent) 1(NextEvent) 2(PhaseSg) 8(Filter 1-8Hz) >(zoom->right) 
    2012            <(zoom->left) 
    2013     Ctrl-  f(FK) l(FilterSROLP) n(Norm) o(Overlapping) q(Quit) s(SaveT&P) 
    2014            w(FilterWWSSNSP) y(SortByDistance) 
    20152008    """ 
    20162009    def __init__(self, parent, title, size=(640,280), position=(50,100)): 
     
    20982091            'Read stations in circle area around epicener from FDSN webserver', 
    20992092            self.OnReadFdsnCircle ) 
    2100         self.addEntry( fileMenu, 'Read Data ...', 
     2093        self.addEntry( fileMenu, 'Read Data ...\tR', 
    21012094            'Opens dialog box for data input', self.OnReadDialog ) 
    21022095        fileMenu.AppendSeparator() 
     
    25752568     
    25762569    def OnReadDialog( self, e ): 
    2577         dlg = wxdialog.ReadDialog(self) 
     2570        sellist = get_runtime("readdialog_stalist") 
     2571        dlg = wxdialog.ReadDialog(self,stationselect=sellist) 
    25782572        dlg.ShowModal() 
    25792573        dlg.Destroy() 
    25802574        result = dlg.getResult() 
     2575        keeptraces = True 
     2576        if result == None: 
     2577            return 
    25812578        print "dbg: dialog result", result 
     2579        cmds = [] 
     2580        for k in result: 
     2581            if k == 'keep_traces': 
     2582                keeptraces = result[k] 
     2583                continue 
     2584            elif result[k] != '': 
     2585                val = result[k] 
     2586            else: 
     2587                val = ";;" 
     2588            cmds.append( "param set %s %s" % (k,val) ) 
     2589        if keeptraces: 
     2590            cmd = '\n'.join(cmds) 
     2591        else: 
     2592            cmd = '\n'.join(['del all','del h:all']+cmds) 
     2593        _sendShCommand( cmd ) 
     2594        # perform read 
     2595        self.OnReadFdsnCombi(None) 
    25822596     
    25832597    def OnReadFdsnCircle( self, e ): 
  • SHX/trunk/SeismicHandler/modules/wxdialog.py

    r1177 r1178  
    55#    http://www.seismic-handler.org/portal/wiki/Shx/LicenseTerms 
    66 
     7from functools import partial 
    78import wx 
    89from SeismicHandler.basics.analysispar import AnalysisPar 
    910from SeismicHandler.basics.tools import EventTextParser 
    1011from obspy.core import UTCDateTime 
     12from obspy.sh.core import fromUTCDateTime 
    1113 
    1214 
     
    2123    "Dialog to prepare read parameters." 
    2224     
    23     def __init__( self, parent ): 
     25    def __init__( self, parent, stationselect=[] ): 
    2426        "ReadDialog: init method." 
    2527        self.result = None 
     
    3638        intime.SetMonth( inittime.month-1 ) 
    3739        intime.SetDay( inittime.day ) 
    38  
    39         # read date, time and length 
    40         timehbox = wx.BoxSizer( wx.HORIZONTAL ) 
    41         # Date 
    42         vbox = wx.BoxSizer( wx.VERTICAL ) 
    43         vbox.Add( wx.StaticText(self,label='Date'), 0, 
    44             wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    45         self.readdate_ctrl = wx.DatePickerCtrl( self, dt=intime, 
    46             style=wx.DP_DEFAULT|wx.DP_SHOWCENTURY, size=(120,eh) ) 
    47         vbox.Add( self.readdate_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    48         timehbox.Add( vbox, 0, wx.ALL, 5 ) 
    49         # Hour 
    50         vbox = wx.BoxSizer( wx.VERTICAL ) 
    51         vbox.Add( wx.StaticText(self,label='Hour'), 0, 
    52             wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    53         self.readhour_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
    54             min=0, max=23, initial=inittime.hour, size=(50,eh) ) 
    55         vbox.Add( self.readhour_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    56         timehbox.Add( vbox, 0, wx.ALL, 5 ) 
    57         # Minute 
    58         vbox = wx.BoxSizer( wx.VERTICAL ) 
    59         vbox.Add( wx.StaticText(self,label='Min'), 0, 
    60             wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    61         self.readminute_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
    62             min=0, max=59, initial=inittime.minute, size=(50,eh) ) 
    63         vbox.Add( self.readminute_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1) 
    64         timehbox.Add( vbox, 0, wx.ALL, 5 ) 
    65         # Second 
    66         vbox = wx.BoxSizer( wx.VERTICAL ) 
    67         vbox.Add( wx.StaticText(self,label='Sec'), 0, 
    68             wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    69         self.readsecond_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
    70             min=0, max=59, initial=inittime.second, size=(50,eh) ) 
    71         vbox.Add( self.readsecond_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1) 
    72         timehbox.Add( vbox, 0, wx.ALL, 5 ) 
    73         # Read length 
    74         vbox = wx.BoxSizer( wx.VERTICAL ) 
    75         vbox.Add( wx.StaticText(self,label='Lth (min)'), 0, 
    76             wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    77         self.readlength_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
    78             min=0, max=120, initial=6, size=(60,eh) ) 
    79         vbox.Add( self.readlength_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1) 
    80         timehbox.Add( vbox, 0, wx.ALL, 5 ) 
     40        innet = self.ap.getValue( 'readws_net' ) 
     41        instat = self.ap.getValue( 'readws_station' ) 
     42        inloc = self.ap.getValue( 'readws_loc' ) 
     43        inchan = self.ap.getValue( 'readws_chan' ) 
     44     
     45        # networks/station group 
     46        self.statcheck = wx.CheckBox(self,label='Network/Station Group') 
     47        self.statcheck.SetValue( True ) 
     48        self.statcheck.Bind( wx.EVT_CHECKBOX, self.OnStatCheck, 
     49            self.statcheck ) 
     50        stathbox = wx.BoxSizer( wx.HORIZONTAL ) 
     51        # Network 
     52        vbox = wx.BoxSizer( wx.VERTICAL ) 
     53        vbox.Add( wx.StaticText(self,label='Net(s)'), 0, 
     54            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     55        self.statnettext_ctrl = wx.TextCtrl(self,value=innet,size=(50,eh)) 
     56        vbox.Add( self.statnettext_ctrl, 0, 
     57            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     58        stathbox.Add( vbox, 0, wx.ALL, 5 ) 
     59        # Station 
     60        vbox = wx.BoxSizer( wx.VERTICAL ) 
     61        vbox.Add( wx.StaticText(self,label='Station'), 0, 
     62            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     63        self.statstattext_ctrl = wx.TextCtrl(self,value=instat,size=(50,eh)) 
     64        vbox.Add( self.statstattext_ctrl, 0, 
     65            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     66        stathbox.Add( vbox, 0, wx.ALL, 5 ) 
     67        # Location 
     68        vbox = wx.BoxSizer( wx.VERTICAL ) 
     69        vbox.Add( wx.StaticText(self,label='LocID'), 0, 
     70            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     71        self.statloctext_ctrl = wx.TextCtrl(self,value=inloc,size=(40,eh)) 
     72        vbox.Add( self.statloctext_ctrl, 0, 
     73            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     74        stathbox.Add( vbox, 0, wx.ALL, 5 ) 
     75        # Channels 
     76        vbox = wx.BoxSizer( wx.VERTICAL ) 
     77        vbox.Add( wx.StaticText(self,label='Channels'), 0, 
     78            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     79        self.statchantext_ctrl = wx.TextCtrl(self,value=inchan,size=(70,eh)) 
     80        vbox.Add( self.statchantext_ctrl, 0, 
     81            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     82        stathbox.Add( vbox, 0, wx.ALL, 5 ) 
     83        # Popup menu 
     84        vbox = wx.BoxSizer( wx.VERTICAL ) 
     85        vbox.Add( wx.StaticText(self,label='Predef'), 0, 
     86            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     87        self.selpanel = wx.Panel(self,size=(eh,eh),style=wx.BORDER) 
     88        self.selpanel.SetBackgroundColour( shxcolor2 ) 
     89        vbox.Add( self.selpanel, 0, 
     90            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     91        stathbox.Add( vbox, 0, wx.ALL, 5 ) 
    8192 
    8293        # Circular area 
     94        self.circcheck = wx.CheckBox(self,label='Circular Area') 
     95        self.circcheck.SetValue( False ) 
     96        self.circcheck.Bind( wx.EVT_CHECKBOX, self.OnCircCheck, 
     97            self.circcheck ) 
    8398        circhbox = wx.BoxSizer( wx.HORIZONTAL ) 
    8499        # emulate SpinCtrl (for float number) 
     
    88103        self.circlatspin_btn = wx.SpinButton(self,wx.SP_VERTICAL,size=(10,eh)) 
    89104        self.circlat_fs = FloatSpinner( self.circlattext_ctrl, 
    90             self.circlatspin_btn, -90., 90., 0.1 ) 
     105            self.circlatspin_btn, -90., 90., 0.1, 
     106            initval=self.ap.getValue('sta_latitude') ) 
    91107        hbox.Add( self.circlattext_ctrl, 0, wx.ALL, 0 ) 
    92108        hbox.Add( self.circlatspin_btn, 0, wx.ALL, 0 ) 
     
    101117        self.circlonspin_btn = wx.SpinButton(self,wx.SP_VERTICAL,size=(10,eh)) 
    102118        self.circlon_fs = FloatSpinner( self.circlontext_ctrl, 
    103             self.circlonspin_btn, -180., 180., 0.1 ) 
     119            self.circlonspin_btn, -180., 180., 0.1, 
     120            initval=self.ap.getValue('sta_longitude') ) 
    104121        hbox.Add( self.circlontext_ctrl, 0, wx.ALL, 0 ) 
    105122        hbox.Add( self.circlonspin_btn, 0, wx.ALL, 0 ) 
     
    114131        self.circradspin_btn = wx.SpinButton(self,wx.SP_VERTICAL,size=(10,eh)) 
    115132        self.circrad_fs = FloatSpinner( self.circradtext_ctrl, 
    116             self.circradspin_btn, 0., 90., 0.1 ) 
     133            self.circradspin_btn, 0., 90., 0.1, 
     134            initval=self.ap.getValue('sta_radius') ) 
    117135        hbox.Add( self.circradtext_ctrl, 0, wx.ALL, 0 ) 
    118136        hbox.Add( self.circradspin_btn, 0, wx.ALL, 0 ) 
     
    122140        vbox.Add( hbox, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
    123141        circhbox.Add( vbox, 0, wx.ALL, 5 ) 
     142 
     143        # read date, time and length 
     144        timehbox = wx.BoxSizer( wx.HORIZONTAL ) 
     145        # Date 
     146        vbox = wx.BoxSizer( wx.VERTICAL ) 
     147        vbox.Add( wx.StaticText(self,label='Date'), 0, 
     148            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     149        self.readdate_ctrl = wx.DatePickerCtrl( self, dt=intime, 
     150            style=wx.DP_DEFAULT|wx.DP_SHOWCENTURY, size=(110,eh) ) 
     151        vbox.Add( self.readdate_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     152        timehbox.Add( vbox, 0, wx.ALL, 5 ) 
     153        # Hour 
     154        vbox = wx.BoxSizer( wx.VERTICAL ) 
     155        vbox.Add( wx.StaticText(self,label='Hour'), 0, 
     156            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     157        self.readhour_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
     158            min=0, max=23, initial=inittime.hour, size=(50,eh) ) 
     159        vbox.Add( self.readhour_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     160        timehbox.Add( vbox, 0, wx.ALL, 5 ) 
     161        # Minute 
     162        vbox = wx.BoxSizer( wx.VERTICAL ) 
     163        vbox.Add( wx.StaticText(self,label='Min'), 0, 
     164            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     165        self.readminute_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
     166            min=0, max=59, initial=inittime.minute, size=(50,eh) ) 
     167        vbox.Add( self.readminute_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1) 
     168        timehbox.Add( vbox, 0, wx.ALL, 5 ) 
     169        # Second 
     170        vbox = wx.BoxSizer( wx.VERTICAL ) 
     171        vbox.Add( wx.StaticText(self,label='Sec'), 0, 
     172            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     173        self.readsecond_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
     174            min=0, max=59, initial=inittime.second, size=(50,eh) ) 
     175        vbox.Add( self.readsecond_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1) 
     176        timehbox.Add( vbox, 0, wx.ALL, 5 ) 
     177        # Read length 
     178        vbox = wx.BoxSizer( wx.VERTICAL ) 
     179        vbox.Add( wx.StaticText(self,label='Lth (min)'), 0, 
     180            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1 ) 
     181        self.readlength_ctrl = wx.SpinCtrl( self, style=wx.SP_ARROW_KEYS, 
     182            min=0, max=120, initial=6, size=(60,eh) ) 
     183        vbox.Add( self.readlength_ctrl, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 1) 
     184        timehbox.Add( vbox, 0, wx.ALL, 5 ) 
     185         
     186        # Keep or delete existing traces 
     187        self.keepcheck = wx.CheckBox(self,label='Keep Traces') 
     188        self.keepcheck.SetValue( True ) 
    124189 
    125190        # OK and Cancel buttons 
     
    131196        self.Bind( wx.EVT_BUTTON, self.OnReadCancel, cbtn ) 
    132197        hbox.Add( cbtn, 0, wx.ALL, 10 ) 
    133      
     198 
     199        # Popup menu config         
     200        self.selpanel.Bind(wx.EVT_CONTEXT_MENU, self.OnShowPopup) 
     201        self.selpanel.Bind(wx.EVT_LEFT_DOWN, self.OnShowPopup2) 
     202        self.popupmenu = wx.Menu()     
     203        menuBar = wx.MenuBar() 
     204        menuBar.Append(self.popupmenu, "Menu") 
     205        #parent.SetMenuBar(menuBar) 
     206        for selection in stationselect: 
     207            item = self.popupmenu.Append( wx.ID_ANY, selection ) 
     208            item.SetBackgroundColour( shxcolor1 ) 
     209            self.Bind( wx.EVT_MENU, partial(self.OnEntry,selection), item ) 
     210         
     211        # put everything together 
    134212        vbox = wx.BoxSizer(wx.VERTICAL) 
    135213        vbox.Add( *vspace ) 
    136         vbox.Add( wx.StaticText(self,label='Circular Area'), 0, 
     214        vbox.Add( self.statcheck, 0, 
     215            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 3 ) 
     216        vbox.Add( stathbox, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 3 ) 
     217        vbox.Add( *vspace ) 
     218        vbox.Add( wx.StaticLine(self, size=(400,1)), 0, wx.ALL, 5 ) 
     219        vbox.Add( *vspace ) 
     220        vbox.Add( self.circcheck, 0, 
    137221            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 3 ) 
    138222        vbox.Add( circhbox, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 3 ) 
     
    144228        vbox.Add( timehbox, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 3 ) 
    145229        vbox.Add( *vspace ) 
     230        vbox.Add( wx.StaticLine(self, size=(400,1)), 0, wx.ALL, 5 ) 
     231        #vbox.Add( *vspace ) 
     232        vbox.Add( self.keepcheck, 0, 
     233            wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 3 ) 
     234        #vbox.Add( *vspace ) 
    146235        vbox.Add( wx.StaticLine(self, size=(400,1)), 0, wx.ALL, 5 ) 
    147236        vbox.Add( *vspace ) 
     
    152241        self.SetSizer( vbox ) 
    153242        self.Layout() 
     243        self.enableCircElements( False ) 
    154244 
    155245    def OnReadOk( self, e ): 
     246        self.result = {} 
    156247        readdate = self.readdate_ctrl.GetValue() 
    157         rdtime = UTCDateTime( readdate.GetYear(), readdate.GetMonth()+1, 
     248        self.result['read_time'] = fromUTCDateTime( 
     249            UTCDateTime( readdate.GetYear(), readdate.GetMonth()+1, 
    158250            readdate.GetDay(), self.readhour_ctrl.GetValue(), 
    159             self.readminute_ctrl.GetValue(), self.readsecond_ctrl.GetValue() ) 
    160         rdlth = self.readlength_ctrl.GetValue() 
    161         lat = self.circlat_fs.getValue() 
    162         lon = self.circlon_fs.getValue() 
    163         radius = self.circrad_fs.getValue() 
    164         self.result = ("OK",rdtime,rdlth,lat,lon,radius) 
     251            self.readminute_ctrl.GetValue(), self.readsecond_ctrl.GetValue() ) ) 
     252        self.result['read_length'] = self.readlength_ctrl.GetValue()*60 
     253        if self.circcheck.GetValue(): 
     254            self.result['sta_latitude'] = self.circlat_fs.getValue() 
     255            self.result['sta_longitude'] = self.circlon_fs.getValue() 
     256            self.result['sta_radius'] = self.circrad_fs.getValue() 
     257        else: 
     258            self.result['sta_radius'] = 0. # disables reading circle area 
     259        if self.statcheck.GetValue(): 
     260            self.result['readws_net'] = self.statnettext_ctrl.GetValue() 
     261            self.result['readws_station'] = self.statstattext_ctrl.GetValue() 
     262            self.result['readws_loc'] = self.statloctext_ctrl.GetValue() 
     263            self.result['readws_chan'] = self.statchantext_ctrl.GetValue() 
     264        else: 
     265            self.result['readws_net'] = '' # disable station/network reading 
     266            #network = station = loc = chan = None 
     267        self.result['keep_traces'] = self.keepcheck.GetValue() 
    165268        self.Destroy() 
    166269 
    167270    def OnReadCancel( self, e ): 
    168271        self.Destroy() 
     272     
     273    def enableStatElements( self, onoff ): 
     274        if onoff: 
     275            self.statnettext_ctrl.Enable() 
     276            self.statstattext_ctrl.Enable() 
     277            self.statloctext_ctrl.Enable() 
     278            self.statchantext_ctrl.Enable() 
     279        else: 
     280            self.statnettext_ctrl.Disable() 
     281            self.statstattext_ctrl.Disable() 
     282            self.statloctext_ctrl.Disable() 
     283            self.statchantext_ctrl.Disable() 
     284         
     285    def enableCircElements( self, onoff ): 
     286        if onoff: 
     287            self.circlatspin_btn.Enable() 
     288            self.circlattext_ctrl.Enable() 
     289            self.circlonspin_btn.Enable() 
     290            self.circlontext_ctrl.Enable() 
     291            self.circradspin_btn.Enable() 
     292            self.circradtext_ctrl.Enable() 
     293        else: 
     294            self.circlatspin_btn.Disable() 
     295            self.circlattext_ctrl.Disable() 
     296            self.circlonspin_btn.Disable() 
     297            self.circlontext_ctrl.Disable() 
     298            self.circradspin_btn.Disable() 
     299            self.circradtext_ctrl.Disable() 
     300 
     301    def OnCircCheck( self, e ): 
     302        self.enableCircElements( self.circcheck.GetValue() ) 
     303 
     304    def OnStatCheck( self, e ): 
     305        self.enableStatElements( self.statcheck.GetValue() ) 
     306     
     307    def OnShowPopup( self, e ): 
     308        pos = e.GetPosition() 
     309        pos = self.selpanel.ScreenToClient(pos) 
     310        self.selpanel.PopupMenu(self.popupmenu, pos) 
     311 
     312    def OnShowPopup2( self, e ): 
     313        pos = e.GetPosition() 
     314        self.selpanel.PopupMenu(self.popupmenu, pos) 
     315     
     316    def OnEntry( self, pname, e, *args ): 
     317        try: 
     318            net, station, loc, chan = pname.split() 
     319        except: 
     320            return 
     321        self.statnettext_ctrl.SetValue( net ) 
     322        self.statstattext_ctrl.SetValue( station ) 
     323        self.statloctext_ctrl.SetValue( loc ) 
     324        self.statchantext_ctrl.SetValue( chan ) 
    169325 
    170326    def getResult( self ): 
     
    238394class FloatSpinner: 
    239395 
    240     def __init__( self, textctrl, spinbtn, minval, maxval, inc ): 
     396    def __init__( self, textctrl, spinbtn, minval, maxval, inc, initval=0. ): 
    241397        self.textctrl = textctrl 
    242398        self.spinbtn = spinbtn 
     
    248404        minnum = 10*int(minval/inc) - 1 
    249405        self.spinbtn.SetRange( minnum, maxnum ) 
     406        self.textctrl.SetValue( "%3.1f" % initval ) 
    250407 
    251408    def internalBindings(self, spin): 
Note: See TracChangeset for help on using the changeset viewer.