[TIC-Core] UI element HF and QT implemented. GBS support of category
[archive/20170607/tools/tic-core.git] / tic / parser / view_parser.py
index c227622..bb6f06d 100644 (file)
@@ -92,7 +92,7 @@ def make_view_data(pkg_group):
     def make_meta_node(pkgname, viewtext):
         return dict(text=viewtext, metaname=pkgname, nodes=[])
     def make_linked_meta_node(pkgname, viewtext, cat):
-        return dict(text='<i>'+viewtext+'</i>', metaname=pkgname, nodes=[], category=cat)
+        return dict(text='&nbsp;&nbsp;<i>'+viewtext+'</i>', metaname=pkgname, nodes=[], category=cat, tooltip="This is a link of a building block.")
     def is_blank_ui_meta_node(pkgname):
         return (pkgname[-8:-2] == '__UI__')
     def handle_ui_meta_node(tag, node):
@@ -111,6 +111,10 @@ def make_view_data(pkg_group):
         elif tag == 'HT' or tag == 'ht':
             # Keep the summary (TODO: verify the usage of HTML tags.)
             node['text'] = node['text'] # Do we need conversion?
+        elif tag == 'HF' or tag == 'hf':
+            node['text'] = '<p style="height:0px; margin-bottom:-10px"></p>'
+        elif tag == 'QT' or tag == 'qt':
+            node['text'] = '<p style="height:0px; margin-bottom:-16px"></p>'
         else:
             node['text'] = ''
         return node
@@ -151,11 +155,16 @@ def make_view_data(pkg_group):
                         return node
                     ksURL += m.group(0)
                 node['tooltip'] = 'Image base from '+ksURL
+                node['icon'] = 'glyphicon glyphicon-list-alt'
                 node['ks'] = ksURL
             elif desc[0:10] == '__EXPAND__':
                 # Omit the first line with __EXPAND__ from showing.
                 pkg_info['description'] = desc[len(desc.splitlines(True)[0]):]
-                node['state'] = { 'expanded': True }
+                option = desc.splitlines()[0][10:].strip(': \t')
+                if len(option) == 0:
+                    node['expandcondition'] = 'all'
+                else:
+                    node['expandcondition'] = option
         return node
 
     # view_data for tree view on web-ui
@@ -196,6 +205,18 @@ def make_view_data(pkg_group):
         view_ref[root[0]] = root_node
         if root[0] in category_dict:
             root_node['category'] = category_dict[root[0]]
+        else:
+            # Backup routine for GBS, which does not seem to publish suggest info correctly.
+            # TODO: This routine has hardcoded category names, which should be improved.
+            m = re.search('(?<=root-)[a-zA-Z]*', root[0])
+            if m:
+                cat = m.group(0)
+                if cat == 'domain':
+                    cat = 'domains'
+                if cat == 'feature':
+                    cat = 'epicfeatures'
+                root_node['category'] = cat
+                logger.info("Fallback for "+cat+" for "+root[0])
         if is_blank_ui_meta_node(root[0]):
             name = root[0]
             sub1_node = handle_ui_meta_node(name[-2:], root_node)