source: cows_wps/trunk/cows_wps/lib/ui/proc_config.py @ 5940

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cows_wps/trunk/cows_wps/lib/ui/proc_config.py@5940
Revision 5940, 2.6 KB checked in by astephen, 10 years ago (diff)

added ui code

Line 
1import logging
2
3from cows_wps.lib.ui.proc_config_convertor import ProcConfigConvertor
4from cows_wps.utils.parse_capabilities_config import caps_config_dict
5
6log = logging.getLogger(__name__)
7
8
9class ProcConfig(object):
10
11    def getProcList(self):
12        proc_dict = {}
13        log.warn("%s"%caps_config_dict.keys())
14
15        for proc_id in caps_config_dict["Identifiers"]:
16            proc_dict[proc_id] = proc_id
17
18        return proc_dict
19
20    def renderProcConfig(self, proc):
21        pcc = ProcConfigConvertor()
22        proc_config = pcc.convertConfig(proc)
23        return self.renderProcessPage(proc_config)
24       
25
26    def renderProcessPage(self, pc):
27        """
28        Takes a dictionary representing the process config.
29        Returns a list of HTML components.
30        """
31        resp = ["<div>"]
32
33        resp.extend( self.renderBlock("Process Information", pc["Process Information"]) )
34
35        resp.extend( self.renderInputs(pc["Inputs"]) )
36
37        resp.extend( self.renderBlock("Process Outputs", pc["Outputs"]) ) 
38        resp.append( "</div>\n" )
39        return resp
40
41    def renderBlock(self, id, items):
42
43        resp = ["<div>"]
44        resp.append( "<H3>%s</H3>\n" % id )
45
46        for k, v in items:
47               
48            resp.append( '<div style="width:200px;"><b>%s:</b></div><div style="position: relative; left:210px; top: -20px;">%s</div>\n' % (k, v) )
49
50        resp.append("</div>\n")
51        return resp
52
53    def renderInputs(self, items):
54        resp = ["<div>\n<H3>Process Inputs</H3>"]
55        resp.append( '<table border="1" style="position: relative; left: 30px;">\n' )
56
57        keys = ["Parameter name", "type", "item_type", "allowed_length", "possible_values"]
58        skeys = ["Parameter name", "Data type", "Is array?", "Permitted lengths", "Allowed values"]
59
60        resp.append("<tr>\n")
61        for (i, key) in enumerate(keys):
62            resp.append( '<td style="background:#FF9900"><b>%s</b></td>\n' % skeys[i] ) 
63
64        for (param_name, dct) in items: 
65
66            resp.append( '<tr>\n<td style="background:#FFFFFF">%s</td>\n' % param_name )
67
68            for key in keys[1:]:
69               
70                value = dct[key]
71                if key == "possible_values" and value != None:
72                    value = ", ".join(value)
73
74                if value != None: 
75                    resp.append( '<td style="background:#00FF00;">%s</td>\n' % value ) 
76                else:
77                    resp.append( '<td style="background:red;">-</td>\n' )
78
79            resp.append("</tr>\n")
80
81        resp.append("</table>\n")
82        resp.append("</div>\n")
83        return resp
Note: See TracBrowser for help on using the repository browser.