ModuleContext.ts 984 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { UIController } from "../easy_ui_framework/UIController";
  2. const PROP_MODULE = "__module__name__";
  3. const PROP_IMPL_CLASS = "__impl__class__";
  4. let defaultModule = "resources";
  5. export class ModuleContext {
  6. public static setDefaultModule(moduleName) {
  7. defaultModule = moduleName;
  8. }
  9. public static getDefaultModule() {
  10. return defaultModule;
  11. }
  12. public static attachClassModule(cls, moduleName) {
  13. cls[PROP_MODULE] = moduleName;
  14. }
  15. public static getClassModule(cls) {
  16. return cls[PROP_MODULE] || defaultModule;
  17. }
  18. public static attachImplClass(cls, implCls) {
  19. cls[PROP_IMPL_CLASS] = implCls;
  20. }
  21. public static attachModuleAndImplClass(cls, moduleName, implCls) {
  22. cls[PROP_MODULE] = moduleName;
  23. cls[PROP_IMPL_CLASS] = implCls;
  24. }
  25. public static getImplClass(cls) {
  26. return cls[PROP_IMPL_CLASS] || cls;
  27. }
  28. public static createFromModule(cls) {
  29. let implCls = this.getImplClass(cls) || cls;
  30. return new implCls();
  31. }
  32. }