Ignore:
Timestamp:
14/06/06 21:44:17 (13 years ago)
Author:
lawrence
Message:

A large number of small modifications to browse
dealing with a range of bugs ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/browse/ServiceBinding.py

    r1175 r1182  
    3131    def __init__(self,serviceFile='cgi/serviceMap.config'): 
    3232        myConfig.__init__(self,serviceFile) 
    33         self.icon=self.get('RELATED','icon') 
    34         self.iconalt=self.get('RELATED','icon_alt') 
     33        self.seticon('RELATED') 
     34    def seticon(self,t): 
     35        ''' Set icon type t, or if it doesn't exist, use RELATED ''' 
     36        self.icon=self.get(t,'icon') 
     37        if self.icon is None: 
     38            self.seticon('RELATED') 
     39        else: self.iconalt=self.get(t,'icon_alt') 
    3540    def do(self,serviceType,dataProvider): 
    3641        '''  Return an actual endpoint for a given service from the data provider, e.g. 
     
    3944        r=self.get(serviceType,dataProvider) 
    4045        if r is None: 
    41             #see if we have an icon anyway ... 
    42             try: 
    43                 i,a=self.get(serviceType,'icon'),self.get(serviceType,'icon_alt') 
    44                 if (i,a)!=(None,None):self.icon,self.iconalt=i,a 
    45             except: pass 
    46                  
    4746            # just return the URL 
    4847            if dataProvider[0:4]!='http': 
    49                 return 'http://%s'%dataProvider 
    50             else: return dataProvider 
    51         else: 
    52             # this is a service type known to ndg, so we have constructed an endpoint 
    53             self.icon=self.get(serviceType,'icon') 
    54             self.iconalt=self.get(serviceType,'icon_alt') 
    55             return r 
     48                r='http://%s'%dataProvider 
     49            else: r=dataProvider 
     50        self.seticon(serviceType) 
     51        return r 
    5652         
    5753class Service: 
     
    6965        specific repository. Note that we support the NDG id in the abbreviated format 
    7066        entryID is a repository:scheme:localidentifier string ''' 
    71         def __init__(self,n='',entryID=None,serviceFile='cgi/serviceMap.config'): 
     67        def __init__(self,n='',entryID=None,serviceFile='serviceMap.config'): 
    7268            Service.__init__(self) 
    7369            # regrettably we used different things in our ID's than we did in 
     
    10399            #<URL>http://badc.nerc.ac.uk/browse/badc/CDs/spade9293</URL> 
    104100            #</Related_URL> 
     101            #following call simply sets some defaults 
    105102            s,r,l,b=self.__getsrlb(entryID) 
    106             #now ovewrite the self description above with  
    107             #detail from this particular rleated url 
     103            #which we now overwrite with detail from this particular rleated url 
     104            #following helps us avoid namespace problems 
    108105            if helper is None:helper=nsdumb() 
    109106            self.description=helper.getText(elem,'Description') 
     
    111108            self.serviceType=s 
    112109            if s!='': 
     110                #we (NDG) know about this type of URL ... 
    113111                r=helper.getText(elem,'URL') 
    114112                b=self.serviceMap.do(s,r) 
     
    116114                self.url=self.__makeurl(s,b,uri,seqno) 
    117115            else: 
    118                 self.url=helper.getText(elem,'URL') 
     116                #unknown type 
     117                self.serviceType='RELATED' 
     118                self.url=self.serviceMap.do(self.serviceType,helper.getText(elem,'URL')) 
    119119            return self 
    120120        def __str__(self): 
     
    150150                s,r,l='DISCOVERY','',entryID 
    151151                b=self.serviceMap.get(s,'default') 
     152                self.serviceMap.seticon(s) 
    152153            return s,r,l,b 
    153154             
Note: See TracChangeset for help on using the changeset viewer.