Пример #1
0
 def update_side_panel(self, item):
     if item == self.displayed_item:
         return
     self.displayed_item = item
     if self.side_panel:
         self.side_panel.set_parent(None)
     items = [a for a in item[1]]
     rows = []
     if config.nbtTreeSettings.showAllTags.get():
         meth = None
     else:
         meth = getattr(self, 'build_%s' % item[3].lower(), None)
     col = True
     if meth and len(items) == 1:
         rows = meth(items)
     else:
         height = 0
         for itm in items:
             t = itm.__class__.__name__
             rows.append(Row([Label("Data Type:"), Label(t)], margin=1))
             fields = self.build_field(itm)
             for field in fields:
                 if type(field) == TextFieldWrapped:
                     field.set_size_for_text(self.side_panel_width)
                 row = Row([
                     field,
                 ], margin=1)
                 rows.append(row)
                 height += row.height
         if height > self.displayRow.height:
             col = False
     if rows:
         if col:
             col = Column(rows,
                          align='l',
                          spacing=0,
                          height=self.displayRow.height)
         else:
             col = ScrollPanel(rows=rows,
                               align='l',
                               spacing=0,
                               height=self.displayRow.height,
                               draw_zebra=False,
                               inner_width=self.side_panel_width -
                               scroll_button_size)
         col.set_parent(self.displayRow)
         col.top = self.displayRow.top
         col.left = self.displayRow.subwidgets[0].right
         col.bottom = self.displayRow.subwidgets[0].bottom
         col.shrink_wrap()
         self.side_panel = col
Пример #2
0
 def update_side_panel(self, item):
     if item == self.displayed_item:
         return
     self.displayed_item = item
     if self.side_panel:
         self.side_panel.set_parent(None)
     items = [a for a in item[1]]
     rows = []
     if config.nbtTreeSettings.showAllTags.get():
         meth = None
     else:
         meth = getattr(self, "build_%s" % item[3].lower(), None)
     col = True
     if meth and len(items) == 1:
         rows = meth(items)
     else:
         height = 0
         for itm in items:
             t = itm.__class__.__name__
             rows.append(Row([Label("Data Type:"), Label(t)], margin=1))
             fields = self.build_field(itm)
             for field in fields:
                 if type(field) == TextFieldWrapped:
                     field.set_size_for_text(self.side_panel_width)
                 row = Row([field], margin=1)
                 rows.append(row)
                 height += row.height
         if height > self.displayRow.height:
             col = False
     if rows:
         if col:
             col = Column(rows, align="l", spacing=0, height=self.displayRow.height)
         else:
             col = ScrollPanel(
                 rows=rows,
                 align="l",
                 spacing=0,
                 height=self.displayRow.height,
                 draw_zebra=False,
                 inner_width=self.side_panel_width - scroll_button_size,
             )
         col.set_parent(self.displayRow)
         col.top = self.displayRow.top
         col.left = self.displayRow.subwidgets[0].right
         col.bottom = self.displayRow.subwidgets[0].bottom
         col.shrink_wrap()
         self.side_panel = col