Changeset 420


Ignore:
Timestamp:
21.07.2011 18:19:38 (8 years ago)
Author:
marcus
Message:

Working on time axis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/sandbox/traceplotter.py

    r419 r420  
    6161        self.ZoomWindow = None 
    6262        self.Scrolled = 0 
     63        self.mousedouble = 0 
    6364        self.refresh = False 
    6465        self.AllowDoubleClick = True 
     
    7677 
    7778        self._setup() 
    78  
    79         # init 
    80         self.load(fnames) 
    81         self.OnPaint(None) 
    82         self.SetFocus() 
    8379 
    8480        # event binding 
     
    9389        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown) 
    9490        self.Bind(wx.EVT_SCROLLWIN, self.OnScroll) 
     91        self.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) 
    9592 
    9693        # messaging system 
     
    9996        msgs.subscribe(self.OnNotifyTraceOrder, 'ui.change.traceorder') 
    10097        msgs.subscribe(self.OnNotifyTimeAxis, 'ui.change.timeaxis') 
     98        msgs.subscribe(self._resetTimeRange, 'notify.tracecount') 
     99 
     100        # init 
     101        self.load(fnames) 
     102        self.OnPaint(None) 
     103        self.SetFocus() 
    101104 
    102105    # event processing 
     106    def OnMouseWheel(self, evt): 
     107        pass 
     108 
    103109    def OnMouseLeftDouble(self, evt): 
    104         """ 
    105         Remove phase. 
    106         """ 
    107         print "double" 
    108110        trace, _ = self.ScreenToTraceAndTime(*(evt.GetPositionTuple())) 
    109111        if trace: 
    110             self._debug("Delete phase") 
    111             del trace.shx.picks.manual[self.phasename] 
     112            self.mousedouble = True 
    112113 
    113114        evt.Skip() 
     
    201202            self.dragStart = None 
    202203 
    203 #        print "up", evt.ButtonDClick(wx.MOUSE_BTN_LEFT) 
    204         print "up", evt.ButtonDClick() 
     204        print "up", self.mousedouble 
     205        if self.mousedouble: 
     206            self.mousedouble = False 
     207 
    205208        x, y = evt.GetPositionTuple() 
    206209        trace, timestamp = self.ScreenToTraceAndTime(x, y) 
     
    448451            print inst 
    449452            pass 
    450         self._resetTimeRange() 
     453 
    451454        msgs.sendMessage('notify.tracecount', count=len(self.traces)) 
    452455 
     
    582585            else: 
    583586                start = t.stats.starttime 
    584                 end = start + self.maxlength 
     587                end = start + self.maxDuration 
    585588 
    586589            t._shxPrepareImageData(pltwidth, theight, (start, end), zoom=0.9) 
     
    679682                                                                  height-MARGIN) 
    680683 
     684        # time axis 
     685        canvas.SetPen(wx.Pen('Black', 1)) 
     686        if self.relativeAxis: 
     687            start = 0 
     688        else: 
     689            start = self.start 
     690 
     691        if self.traceOrder in [0, 1]: 
     692            w = width-MARGIN-STATION_INFO 
     693            y = height-TIMESCALE+10 
     694            sx = STATION_INFO 
     695            canvas.DrawLine(sx, y, w+STATION_INFO, y) 
     696 
     697            chunk = w / 5. 
     698            chunk2 = chunk / 5. 
     699            chunk_t = (end - start) / 5 
     700            for i in range(5): 
     701                txt = (start + i*chunk_t).strftime("%H:%M:%S") 
     702                tw, _, _, _ = canvas.GetFullTextExtent(txt) 
     703                x = sx+i*chunk 
     704                canvas.DrawText(txt, x-tw/2, y+8) 
     705                canvas.DrawLine(x, y, x, y+7) 
     706                for j in range(1,5): 
     707                    canvas.DrawLine(x+j*chunk2, y, x+j*chunk2, y+3) 
     708        elif self.traceOrder in [2, 3]: 
     709            # XXX 
     710            h = height-MARGIN-STATION_INFO 
     711 
    681712        # make it visible 
    682713        dc2 = wx.AutoBufferedPaintDCFactory(self) 
     
    688719        msgs.sendMessage('log.debug', message=" ".join([str(i) for i in args])) 
    689720 
    690     def _resetTimeRange(self): 
    691         """ 
    692         Gather information about traces. 
     721    def _resetTimeRange(self, **kwargs): 
     722        """ 
     723        Gather information about traces. Called via message bus. 
    693724        """ 
    694725        min = UTCDateTime() # now 
    695726        max = UTCDateTime(0) # 1970 
    696         maxlength = 0 
     727        maxDuration = 0 
    697728        amplitude = 0 
    698729 
     
    704735            # needed for relative time axis 
    705736            l = t.stats.endtime - t.stats.starttime 
    706             if l > maxlength: 
    707                 maxlength = l 
     737            if l > maxDuration: 
     738                maxDuration = l 
    708739            # used for normation 
    709             t_ampl = t.max() * t.stats.calib 
     740            t_ampl = abs(t.max() * t.stats.calib) 
    710741            if t_ampl > amplitude: 
    711742                amplitude = t_ampl 
     
    713744        self.start = min 
    714745        self.end = max 
    715         self.maxlength = maxlength 
    716         self.amplitude = amplitude 
     746        self.maxDuration = maxDuration 
     747        self.maxAmplitude = amplitude 
    717748 
    718749    def __zoombox(self, dc, start, end, midpoint, color="DARKORANGE", size=1): 
Note: See TracChangeset for help on using the changeset viewer.