Changeset 933


Ignore:
Timestamp:
04/11/13 12:49:39 (6 years ago)
Author:
marcus
Message:
  • making colors and line-styles work better
Location:
SHX/trunk/SeismicHandler
Files:
3 edited

Legend:

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

    r892 r933  
    3131 
    3232class AttributeBlock(object): 
    33     lstyles = ["Solid", "ShortDash", "LongDash", "DotDash", "Dot"] 
     33    lstyles = ["solid", "short_dash", "long_dash", "dot_dash", "dot"] 
    3434    def __init__(self, **kwargs): 
    3535        """ 
     
    4141        attrib.color = [0, 0, 0] 
    4242        attrib.font = "default" 
    43         attrib.linestyle = 1 
     43        attrib.linestyle = "solid" 
    4444        attrib.linewidth = 1 
     45 
     46        self.style = attrib 
    4547 
    4648        # override with new values 
    4749        for k in kwargs: 
    48             kl = k.lower() 
    49             if kl not in attrib.keys(): 
    50                 raise NameError("invalid style attribute") 
     50            setattr(self.style, k, kwargs[k]) 
    5151 
    52             v = kwargs[k] 
    53             if v.isdigit(): 
    54                 v = int(v) 
    55             else: 
    56                 try: 
    57                     v = float(v) 
    58                 except: 
    59                     pass 
    60             attrib[kl] = v 
     52    def __getattr__(self, name): 
     53        try: 
     54            return self.style[name.lower()] 
     55        except: 
     56            raise AttributeError() 
    6157 
    62         self.style = attrib 
     58    def __setattr__(self, name, value): 
     59        """ 
     60        If an attribute name is used in association it will be masked 
     61        transparently into the style AttribDict. In this case also consistent 
     62        checks will be made. 
     63        """ 
     64        try: 
     65            if name.lower() in self.style: 
     66                style = self.style 
     67                kl = name.lower() 
     68                if kl not in style.keys(): 
     69                    raise NameError("invalid style attribute: %s" % kl) 
     70 
     71                v = value 
     72                if v.isdigit(): 
     73                    v = int(v) 
     74                else: 
     75                    try: 
     76                        v = float(v) 
     77                    except: 
     78                        pass 
     79 
     80                if kl == "linestyle": 
     81                    try: 
     82                        v = self.lstyles[v-1] 
     83                    except: 
     84                        pass 
     85                    if v.lower() not in self.lstyles: 
     86                        msg = "Invalid line-style! Valid: %s or numbers: 1-%u" 
     87                        print msg % (", ".join(self.lstyles), len(self.lstyles)) 
     88                        return 
     89 
     90                if kl == "linewidth": 
     91                    v = int(v) 
     92 
     93                self.style[kl] = v 
     94                return 
     95        except: 
     96            pass 
     97        object.__setattr__(self, name, value) 
  • SHX/trunk/SeismicHandler/commands/fetch.py

    r928 r933  
    1111from SeismicHandler.basics.error import ShxError 
    1212from SeismicHandler.config import Settings 
    13 from SeismicHandler.modules.stations import resolveStations 
     13from SeismicHandler.modules.stations import resolveStations, ChannelMeta, \ 
     14                                                                       Stations 
    1415from obspy.core import Stream 
    1516from obspy.sh.core import toUTCDateTime 
     
    7576                        continue 
    7677 
    77                 if self.qualifiers["STOREMETA"]: 
    78                     pass 
     78                    if self.qualifiers["STOREMETA"]: 
     79                        # save meta data locally 
     80                        pass 
    7981 
    8082                if st: 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r929 r933  
    758758 
    759759            # get color, etc. attribute 
    760 #            import pdb; pdb.set_trace() 
    761760            attrib = t.get_info("attrib") 
    762761            try: 
     
    764763            except KeyError: 
    765764                style = AttributeBlock() 
    766 #            print vars(style) 
     765            try: 
     766                color = map(int, style.color.split(',')) 
     767            except: 
     768                color = style.color 
     769            linestyle = getattr(wx, style.linestyle.upper()) 
     770            buffer.SetPen(wx.Pen(color, style.linewidth, linestyle)) 
    767771            buffer.BeginDrawing() 
    768772            buffer.DrawLineList(ImageData) 
Note: See TracChangeset for help on using the changeset viewer.