diff --git a/gui/builtinStatsViews/__init__.py b/gui/builtinStatsViews/__init__.py index 55e020caf..023f38c28 100644 --- a/gui/builtinStatsViews/__init__.py +++ b/gui/builtinStatsViews/__init__.py @@ -1,10 +1,3 @@ __all__ = ["resourcesViewFull", "resistancesViewFull", "rechargeViewFull", "firepowerViewFull", "capacitorViewFull", "targetingmiscViewFull", "priceViewFull"] - -columns = {} -def registerView(column): - columns[column.name] = column - -def getView(name): - return columns[name] diff --git a/gui/builtinStatsViews/capacitorViewFull.py b/gui/builtinStatsViews/capacitorViewFull.py index 3401ed9ba..0bafc1dfb 100644 --- a/gui/builtinStatsViews/capacitorViewFull.py +++ b/gui/builtinStatsViews/capacitorViewFull.py @@ -39,7 +39,7 @@ class CapacitorViewFull(StatsView): contentSizer = contentPanel.GetSizer() parent = self.panel = contentPanel self.headerPanel = headerPanel - + panel = "full" sizerCapacitor = wx.GridSizer(1, 2) @@ -134,4 +134,4 @@ class CapacitorViewFull(StatsView): self.panel.Layout() self.headerPanel.Layout() -builtinStatsViews.registerView(CapacitorViewFull) +CapacitorViewFull.register() diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index 5cb31b701..5cee82f8b 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -39,7 +39,7 @@ class FirepowerViewFull(StatsView): contentSizer = contentPanel.GetSizer() parent = self.panel = contentPanel self.headerPanel = headerPanel - + panel = "full" sizerFirepower = wx.FlexGridSizer(1, 3) @@ -107,4 +107,4 @@ class FirepowerViewFull(StatsView): self.panel.Layout() self.headerPanel.Layout() -builtinStatsViews.registerView(FirepowerViewFull) +FirepowerViewFull.register() diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 16d72d960..699737f69 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -60,7 +60,7 @@ class PriceViewFull(StatsView): contentSizer = contentPanel.GetSizer() self.panel = contentPanel self.headerPanel = headerPanel - + gridPrice = wx.GridSizer(1, 3) contentSizer.Add( gridPrice, 0, wx.EXPAND | wx.ALL, 0) for type in ("ship", "fittings", "total"): @@ -141,4 +141,4 @@ class PriceViewFull(StatsView): self.labelPriceTotal.SetToolTip(wx.ToolTip("%.2f ISK" % (shipPrice + modPrice))) self.panel.Layout() -builtinStatsViews.registerView(PriceViewFull) +PriceViewFull.register() diff --git a/gui/builtinStatsViews/rechargeViewFull.py b/gui/builtinStatsViews/rechargeViewFull.py index b08869d18..c02cf466a 100644 --- a/gui/builtinStatsViews/rechargeViewFull.py +++ b/gui/builtinStatsViews/rechargeViewFull.py @@ -102,5 +102,4 @@ class RechargeViewFull(StatsView): self.panel.Layout() self.headerPanel.Layout() - -builtinStatsViews.registerView(RechargeViewFull) +RechargeViewFull.register() \ No newline at end of file diff --git a/gui/builtinStatsViews/resistancesViewFull.py b/gui/builtinStatsViews/resistancesViewFull.py index 1c356dd45..6ffb1625a 100644 --- a/gui/builtinStatsViews/resistancesViewFull.py +++ b/gui/builtinStatsViews/resistancesViewFull.py @@ -173,5 +173,5 @@ class ResistancesViewFull(StatsView): self.panel.Layout() self.headerPanel.Layout() +ResistancesViewFull.register() -builtinStatsViews.registerView(ResistancesViewFull) diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index 05823d15b..264adb426 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -180,4 +180,4 @@ class ResourcesViewFull(StatsView): self.panel.Layout() self.headerPanel.Layout() -builtinStatsViews.registerView(ResourcesViewFull) +ResourcesViewFull.register() diff --git a/gui/builtinStatsViews/targetingmiscViewFull.py b/gui/builtinStatsViews/targetingmiscViewFull.py index adba3e7cd..294013686 100644 --- a/gui/builtinStatsViews/targetingmiscViewFull.py +++ b/gui/builtinStatsViews/targetingmiscViewFull.py @@ -122,4 +122,4 @@ class TargetingMiscViewFull(StatsView): self.panel.Layout() self.headerPanel.Layout() -builtinStatsViews.registerView(TargetingMiscViewFull) +TargetingMiscViewFull.register() diff --git a/gui/builtinViewColumns/__init__.py b/gui/builtinViewColumns/__init__.py index 0293e7662..285df91dc 100644 --- a/gui/builtinViewColumns/__init__.py +++ b/gui/builtinViewColumns/__init__.py @@ -1,9 +1,2 @@ __all__ = ["moduleState", "moduleNameOrSlot", "attributeDisplay", "maxRange", - "name", "droneDps", "droneNameAmount", "droneCheckbox", "moduleAmmo"] - -columns = {} -def registerColumn(column): - columns[column.name] = column - -def getColumn(name): - return columns[name] + "name", "droneDps", "droneNameAmount", "droneCheckbox", "moduleAmmo"] \ No newline at end of file diff --git a/gui/builtinViewColumns/attributeDisplay.py b/gui/builtinViewColumns/attributeDisplay.py index aa715a288..0bf700b50 100644 --- a/gui/builtinViewColumns/attributeDisplay.py +++ b/gui/builtinViewColumns/attributeDisplay.py @@ -66,4 +66,4 @@ class AttributeDisplay(ViewColumn): ("displayName", bool, False), ("showIcon", bool, True)) -builtinViewColumns.registerColumn(AttributeDisplay) +AttributeDisplay.register() \ No newline at end of file diff --git a/gui/builtinViewColumns/droneCheckbox.py b/gui/builtinViewColumns/droneCheckbox.py index 5eb5089eb..7820b5df3 100644 --- a/gui/builtinViewColumns/droneCheckbox.py +++ b/gui/builtinViewColumns/droneCheckbox.py @@ -47,4 +47,4 @@ class DroneCheckbox(ViewColumn): else: return self.uncheckedId -builtinViewColumns.registerColumn(DroneCheckbox) +DroneCheckbox.register() diff --git a/gui/builtinViewColumns/droneDps.py b/gui/builtinViewColumns/droneDps.py index f684aced8..cf205a409 100644 --- a/gui/builtinViewColumns/droneDps.py +++ b/gui/builtinViewColumns/droneDps.py @@ -36,4 +36,4 @@ class DroneDps(ViewColumn): def getImageId(self, mod): return -1 -builtinViewColumns.registerColumn(DroneDps) +DroneDps.register() \ No newline at end of file diff --git a/gui/builtinViewColumns/droneNameAmount.py b/gui/builtinViewColumns/droneNameAmount.py index 2d0916d84..ac3be9ab0 100644 --- a/gui/builtinViewColumns/droneNameAmount.py +++ b/gui/builtinViewColumns/droneNameAmount.py @@ -34,4 +34,4 @@ class DroneNameAmount(ViewColumn): def getImageId(self, mod): return -1 -builtinViewColumns.registerColumn(DroneNameAmount) +DroneNameAmount.register() diff --git a/gui/builtinViewColumns/maxRange.py b/gui/builtinViewColumns/maxRange.py index e73e38559..19df09f8c 100644 --- a/gui/builtinViewColumns/maxRange.py +++ b/gui/builtinViewColumns/maxRange.py @@ -69,4 +69,4 @@ class MaxRange(ViewColumn): return (("displayName", bool, False), ("showIcon", bool, True)) -builtinViewColumns.registerColumn(MaxRange) +MaxRange.register() diff --git a/gui/builtinViewColumns/moduleAmmo.py b/gui/builtinViewColumns/moduleAmmo.py index 6a713f0c4..4654a8408 100755 --- a/gui/builtinViewColumns/moduleAmmo.py +++ b/gui/builtinViewColumns/moduleAmmo.py @@ -46,4 +46,4 @@ class ModuleAmmo(ViewColumn): return iconId -builtinViewColumns.registerColumn(ModuleAmmo) +ModuleAmmo.register() diff --git a/gui/builtinViewColumns/moduleNameOrSlot.py b/gui/builtinViewColumns/moduleNameOrSlot.py index 46851401c..8d7996ddf 100644 --- a/gui/builtinViewColumns/moduleNameOrSlot.py +++ b/gui/builtinViewColumns/moduleNameOrSlot.py @@ -58,4 +58,4 @@ class ModuleNameOrSlot(ViewColumn): return iconId -builtinViewColumns.registerColumn(ModuleNameOrSlot) +ModuleNameOrSlot.register() diff --git a/gui/builtinViewColumns/moduleState.py b/gui/builtinViewColumns/moduleState.py index 61e0c9fac..a499f0a69 100644 --- a/gui/builtinViewColumns/moduleState.py +++ b/gui/builtinViewColumns/moduleState.py @@ -46,4 +46,4 @@ class ModuleState(ViewColumn): bitmap = bitmapLoader.getBitmap("state_%s_small" % self.stateNameMap[mod.state], "icons") return self.fittingView.imageList.Add(bitmap) -builtinViewColumns.registerColumn(ModuleState) +ModuleState.register() diff --git a/gui/builtinViewColumns/name.py b/gui/builtinViewColumns/name.py index c1ce9ade1..b77ec9bd8 100644 --- a/gui/builtinViewColumns/name.py +++ b/gui/builtinViewColumns/name.py @@ -44,4 +44,4 @@ class StuffName(ViewColumn): return iconId -builtinViewColumns.registerColumn(StuffName) +StuffName.register() diff --git a/gui/contextMenu.py b/gui/contextMenu.py index 6b6a2033e..970d34ad6 100755 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -23,7 +23,7 @@ class ContextMenu(object): menus = set() @classmethod def register(cls): - cls.menus.add(cls()) + ContextMenu.menus.add(cls()) @classmethod def getMenu(cls, *contexts): diff --git a/gui/display.py b/gui/display.py index 8edd0219d..5da83e642 100644 --- a/gui/display.py +++ b/gui/display.py @@ -19,8 +19,7 @@ import wx import gui.mainFrame -from gui.builtinViewColumns import * -import gui.builtinViewColumns +from gui.viewColumn import ViewColumn import sys class Display(wx.ListCtrl): @@ -42,9 +41,9 @@ class Display(wx.ListCtrl): params = {"showIcon": True, "displayName": False, "attribute": attrName} - col = gui.builtinViewColumns.getColumn("Attribute Display")(self, params) + col = ViewColumn.getColumn("Attribute Display")(self, params) else: - col = gui.builtinViewColumns.getColumn(colName)(self, None) + col = ViewColumn.getColumn(colName)(self, None) self.addColumn(i, col) i += 1 diff --git a/gui/statsPane.py b/gui/statsPane.py index a396ae214..e3bc64026 100644 --- a/gui/statsPane.py +++ b/gui/statsPane.py @@ -22,7 +22,6 @@ from gui.statsView import StatsView import service from gui.pyfatogglepanel import TogglePanel import gui.builtinStatsViews -from gui.builtinStatsViews import * import gui.fittingView as fv import gui.mainFrame @@ -58,7 +57,7 @@ class StatsPane(wx.Panel): maxviews = len(self.DEFAULT_VIEWS) i=0 for viewName in self.DEFAULT_VIEWS: - view = gui.builtinStatsViews.getView(viewName)( self ) + view = StatsView.getView(viewName)( self ) self.views.append(view) tp = TogglePanel(self) diff --git a/gui/statsView.py b/gui/statsView.py index 277239a36..33e2a74e9 100644 --- a/gui/statsView.py +++ b/gui/statsView.py @@ -18,9 +18,18 @@ #=============================================================================== class StatsView(object): + views = {} def __init__(self): pass + @classmethod + def register(cls): + StatsView.views[cls.name] = cls + + @classmethod + def getView(cls, name): + return cls.views[name] + def populatePanel(self, panel): raise NotImplementedError() @@ -29,3 +38,5 @@ class StatsView(object): def refreshPanel(self, fit): raise NotImplementedError() + +from gui.builtinStatsViews import * \ No newline at end of file diff --git a/gui/viewColumn.py b/gui/viewColumn.py index 924b9c7c9..3ed8a40e3 100644 --- a/gui/viewColumn.py +++ b/gui/viewColumn.py @@ -25,10 +25,8 @@ class ViewColumn(object): Once the missing methods are correctly implemented, they can be used as columns in a view. ''' - columns = [] + columns = {} def __init__(self, fittingView): - ViewColumn.columns.append(self) - self.fittingView = fittingView self.columnText = "" self.imageId = -1 @@ -36,6 +34,14 @@ class ViewColumn(object): self.mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE self.resizable = True + @classmethod + def register(cls): + ViewColumn.columns[cls.name] = cls + + @classmethod + def getColumn(cls, name): + return ViewColumn.columns[name] + def getRestrictions(self): raise NotImplementedError() @@ -47,3 +53,5 @@ class ViewColumn(object): def getParameters(self): raise NotImplementedError() + +from gui.builtinViewColumns import * \ No newline at end of file