Ignore:
Timestamp:
11/06/06 21:53:22 (13 years ago)
Author:
lawrence
Message:

Refactoring browse for consistent service binding
and icons.

File:
1 edited

Legend:

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

    r1151 r1152  
    2121    def __init__(self,serviceFile='cgi/serviceMap.config'): 
    2222        myConfig.__init__(self,serviceFile) 
    23         self.icon,self.iconalt=None,'NoIcon' 
     23        self.icon=self.get('RELATED','icon') 
     24        self.iconalt=self.get('RELATED','icon_alt') 
    2425    def do(self,serviceType,dataProvider): 
    2526        '''  Return an actual endpoint for a given service from the data provider, e.g. 
    2627        for ndg_a_service,badc.nerc.ac.uk get http://superglue.badc.rl.ac.uk/cgi-bin/browse.py ''' 
     28        serviceType=serviceType.upper() 
    2729        r=self.get(serviceType,dataProvider) 
    2830        if r is None: 
    29             # we assume this isn't an NDG service and just return the URL 
     31            #see if we have an icon anyway ... 
     32            try: 
     33                i,a=self.get(serviceType,'icon'),self.get(serviceType,'icon_alt') 
     34                if (i,a)!=(None,None):self.icon,self.iconalt=i,a 
     35            except: pass 
     36                 
     37            # just return the URL 
    3038            if dataProvider[0:4]!='http': 
    3139                return 'http://%s'%dataProvider 
     
    3442            # this is a service type known to ndg, so we have constructed an endpoint 
    3543            self.icon=self.get(serviceType,'icon') 
    36             print 'Icon',self.icon 
    3744            self.iconalt=self.get(serviceType,'icon_alt') 
    3845            return r 
     
    5158        an NDG-A type identifier should expect the NDG-A-Service running at the 
    5259        specific repository ''' 
    53         def __init__(self,n='',nativeID=None,serviceFile='cgi/serviceMap.config'): 
     60        def __init__(self,n='',nativeID=None,serviceFile='cgi/serviceMap.config',uri='local'): 
    5461            Service.__init__(self) 
    5562            # regrettably we used different things in our ID's than we did in 
     
    5865            self.serviceMap=ServiceMap(serviceFile=serviceFile) 
    5966            self.name=n 
    60             if nativeID is not None: self.native(nativeID)  
    61         def native(self,elem): 
     67            if nativeID is not None: self.native(nativeID,uri=uri)  
     68        def native(self,elem,uri='local'): 
    6269            ''' Given an ndg id, get the native service ''' 
    6370            #e.g. 
     
    7380            if s in self.mapping: s=self.mapping[s] 
    7481            b=self.serviceMap.do(s,r) 
    75             self.url='%s?uri=%s'%(b,l) 
     82            if uri=='local': 
     83                uri=l 
     84            elif uri=='stubB': 
     85                uri='%s/%s'%(r,l) 
     86            self.url='%s?uri=%s'%(b,uri) 
     87            self.serviceType=s 
    7688            return self 
    7789        def related(self,elem,idelem): 
     
    8698            #</Related_URL> 
    8799            self.description=wrapGetText(elem,'Description') 
    88             ctype=wrapGetText(elem,'URL_Content_Type') 
    89             if ctype!='': 
    90                 b=self.serviceMap.do(ctype,wrapGetText(elem,'URL')) 
     100            self.serviceType=wrapGetText(elem,'URL_Content_Type') 
     101            if self.serviceType!='': 
     102                b=self.serviceMap.do(self.serviceType,wrapGetText(elem,'URL')) 
    91103                l=wrapGetText(idelem,'localIdentifier') 
    92104                self.url='%s?uri=%s'%(b,l) 
    93105            else: 
    94106                self.url=wrapGetText(elem,'URL') 
     107            f=file('tmplog.log','a') 
     108            f.write(self.serviceType+'#'+self.url+'#'+self.icon()) 
     109            f.close() 
    95110            return self 
    96111        def __str__(self): 
Note: See TracChangeset for help on using the changeset viewer.