Changeset 1226 for SHX


Ignore:
Timestamp:
24.04.2017 10:14:50 (2 years ago)
Author:
klaus
Message:

SHX with X11 and redraw functionality

Location:
SHX/trunk/SeismicHandler/modules
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/modules/drawing_server.py

    r1224 r1226  
    1 link ../../../SzgrfDc/trunk/drawing_server/drawing_server.py 
     1link ../../../SzgrfDc/drawing_server/drawing_server.py 
  • SHX/trunk/SeismicHandler/modules/fastx.py

    r1223 r1226  
    1616 
    1717    def __init__( self ): 
     18        self.redraw_trigger = []  # list of windows to redraw 
     19        self.open_windows_list = [] 
     20        self.all_traces_wdwidx = 1 
    1821        self.ds = drawing_server.DrawingServer() 
     22        self.ds.load_default_filters() 
    1923 
    2024    def open_window( self, wdwidx, xpos, ypos, width, height ): 
     25        if  wdwidx in self.open_windows_list: 
     26            print "fastx: window %d already open" % wdwidx 
     27            return 
     28        print "dbg: fastx: opening window %d" % wdwidx 
    2129        self.ds.open_window( wdwidx, xpos, ypos, width, height ) 
    22         self.ds.pass_trace_data( wdwidx, Traces ) 
     30        self.open_windows_list.append( wdwidx ) 
     31     
     32    def open_all_traces_window( self, xpos, ypos, width, height ): 
     33        self.open_window( self.all_traces_wdwidx, xpos, ypos, width, height ) 
     34        return self.all_traces_wdwidx 
     35     
     36    def redraw_all_traces( self ): 
     37        self.ds.invalidate_window_traces( self.all_traces_wdwidx ) 
     38        self.ds.pass_trace_data( self.all_traces_wdwidx, Traces ) 
     39        self.ds.draw_window( self.all_traces_wdwidx ) 
    2340     
    2441    def close_window( self, wdwidx ): 
     42        if not wdwidx in self.open_windows_list: 
     43            print "fastx: window %d not open, cannot be closed" % wdwidx 
     44            return 
    2545        self.ds.close_window( wdwidx ) 
     46        self.open_windows_list.remove( wdwidx ) 
     47     
     48    def close_all_traces_window( self ): 
     49        self.close_window( self.all_traces_wdwidx ) 
     50     
     51    def close_all_windows( self ): 
     52        for wdwidx in self.open_windows_list: 
     53            self.ds.close_window( wdwidx ) 
     54        self.open_windows_list = [] 
     55     
     56    def trigger_all_traces_redraw( self ): 
     57        if self.all_traces_wdwidx not in self.open_windows_list: 
     58            print "redraw trigger to non-open window ignored" 
     59            return 
     60        if not self.all_traces_wdwidx in self.redraw_trigger: 
     61            self.redraw_trigger.append( self.all_traces_wdwidx ) 
    2662 
    2763    def event_loop( self ): 
     
    3672                #    fromUTCDateTime(abstime),self.trc.stats.channel[-1].upper(), 
    3773                #    qredraw) ) 
     74            if self.redraw_trigger: 
     75                for wdwidx in self.redraw_trigger: 
     76                    if wdwidx == self.all_traces_wdwidx: 
     77                        self.redraw_all_traces() 
     78                    else: 
     79                        print "redraw for wdwidx %d not implemented" % wdwidx 
     80                self.redraw_trigger = [] 
     81     
     82    def dummy_method( self ): 
     83        print "fastx dummy method called" 
     84        self.open_window( self.all_traces_wdwidx, 1, 2, 600, 200 ) 
    3885 
    3986 
  • SHX/trunk/SeismicHandler/modules/screen_x.py

    r1224 r1226  
    130130        self.dimensions = dimension 
    131131        self.pixelunits = pixelunits 
     132        self.fastx = None 
    132133 
    133134        if auto_redraw: 
     
    145146        # this will fire the redraw event 
    146147        #wx.CallAfter(self.plotter.redraw) 
    147         print "should trigger redraw" 
     148        if self.fastx == None: 
     149            print "dbg: fastx not yet initalized, no redraw trigger possible" 
     150        else: 
     151            self.fastx.trigger_all_traces_redraw() 
    148152 
    149153    #@anythread 
     
    153157        """ 
    154158        if self.isAlive(): 
    155             self.fastx.close_window( 1 ) 
     159            self.fastx.close_all_windows() 
    156160        super(TracePlotter, self).stop() 
    157161 
    158162    def setup(self): 
     163        print "dbg: TracePlotter setup called" 
    159164        log_message("debug.traceplotter", "init x app") 
    160165 
     166        print "dbg: before fastx.FastX()" 
    161167        self.fastx = fastx.FastX() 
     168        print "dbg: after fastx.FastX()" 
    162169 
    163170        # original SH calculates uses always 75 dpi 
     
    169176            posy = int( self.dimensions[1] ) 
    170177        else: 
    171             print "not supported" 
    172             exit() 
     178            pixfac = 20. 
     179            width = int( float(self.dimensions[2])*pixfac ) 
     180            height = int( float(self.dimensions[3])*pixfax ) 
     181            posx = int( float(self.dimensions[0])*pixfac ) 
     182            posy = int( float(self.dimensions[1])*pixfac ) 
     183            print "pixel units preferred" 
    173184 
    174         self.fastx.open_window( 1, posx, posy, width, height ) 
     185        self.fastx.open_all_traces_window( posx, posy, width, height ) 
     186        self.fastx.trigger_all_traces_redraw() 
    175187 
    176188    def run(self): 
Note: See TracChangeset for help on using the changeset viewer.