From 5a0f3d42ea796d56216a6e6c9d163e20ac5d3386 Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Mon, 13 Feb 2017 17:31:02 +0100 Subject: [PATCH] Add UIGroup class and instances for structuring the box generators --- boxes/generators/__init__.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/boxes/generators/__init__.py b/boxes/generators/__init__.py index fcdbf5b..3e9a29d 100644 --- a/boxes/generators/__init__.py +++ b/boxes/generators/__init__.py @@ -3,6 +3,31 @@ import inspect import importlib import boxes +ui_groups_by_name = {} + +class UIGroup: + + def __init__(self, name, title=None, description=""): + self.name = name + self.title = title or name + self.description = description + self.generators = [] + # register + ui_groups_by_name[name] = self + + def add(self, box): + self.generators.append(box) + self.generators.sort(key=lambda b:b.__class__.__name__) + +ui_groups = [ + UIGroup("Box", "Boxes"), + UIGroup("FlexBox", "Boxes with flex"), + UIGroup("Tray", "Trays and Drawer Inserts"), + UIGroup("Shelf", "Shelves"), + UIGroup("Part", "Parts and Samples"), + UIGroup("Misc"), + ] + def getAllBoxGenerators(): generators = {} for importer, modname, ispkg in pkgutil.walk_packages(