Move some view handling stuff around and do initial work on the

fleetBrowser
This commit is contained in:
cncfanatics
2010-11-20 20:32:47 +01:00
parent c730e59840
commit 6e1b789fb2
27 changed files with 117 additions and 69 deletions

2
eos

Submodule eos updated: 5c635976f2...0c6e933317

View File

@@ -20,7 +20,7 @@
import wx
import service
import gui.display as d
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
import gui.marketBrowser as mb
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu

View File

@@ -1,9 +1,7 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.fittingView
import wx
import gui.fittingView
from gui import bitmapLoader
class AmmoPattern(ContextMenu):

View File

@@ -1,7 +1,7 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.fittingView
import gui.builtinViews.fittingView
import wx
from gui import bitmapLoader
@@ -15,7 +15,7 @@ class DamagePattern(ContextMenu):
def getText(self, context, selection):
sDP = service.DamagePattern.getInstance()
self.patterns = sDP.getDamagePatternList()
self.patterns.sort( key=lambda p: (p.name in ["Selected Ammo",
self.patterns.sort( key=lambda p: (p.name in ["Selected Ammo",
"Uniform"], p.name) )
m = map(lambda p: p.name, self.patterns)
return m
@@ -26,7 +26,7 @@ class DamagePattern(ContextMenu):
fitID = self.mainFrame.getActiveFit()
sFit.setDamagePattern(fitID, self.patterns[i])
setattr(self.mainFrame,"_activeDmgPattern",self.patterns[i])
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
wx.PostEvent(self.mainFrame, gui.builtinViews.fittingView.FitChanged(fitID=fitID))
def getBitmap(self, context, selection):
sFit = service.Fit.getInstance()

View File

@@ -1,7 +1,7 @@
from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import gui.mainFrame
import gui.fittingView
import gui.builtinViews.fittingView
import service
import wx
@@ -54,5 +54,5 @@ class DroneSpinner(wx.Dialog):
sFit.splitDroneStack(fitID, self.drone, self.spinner.GetValue())
else:
sFit.splitProjectedDroneStack(fitID, self.drone, self.spinner.GetValue())
wx.PostEvent(mainFrame, gui.fittingView.FitChanged(fitID=fitID))
wx.PostEvent(mainFrame, gui.builtinViews.fittingView.FitChanged(fitID=fitID))
event.Skip()

View File

@@ -1,7 +1,7 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.fittingView
import gui.builtinViews.fittingView
import wx
from gui import bitmapLoader
@@ -19,7 +19,7 @@ class FactorReload(ContextMenu):
sFit = service.Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.toggleFactorReload(fitID)
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
wx.PostEvent(self.mainFrame, gui.builtinViews.fittingView.FitChanged(fitID=fitID))
def getBitmap(self, context, selection):
sFit = service.Fit.getInstance()

View File

@@ -1,10 +1,10 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.fittingView
import wx
from gui import bitmapLoader
from eos.types import Hardpoint
import gui.builtinViews.fittingView
class ModuleAmmoPicker(ContextMenu):
def __init__(self):
@@ -179,6 +179,6 @@ class ModuleAmmoPicker(ContextMenu):
fitID = self.mainFrame.getActiveFit()
sFit.setAmmo(fitID, charge.ID if charge is not None else None, self.modules)
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
wx.PostEvent(self.mainFrame, gui.builtinViews.fittingView.FitChanged(fitID=fitID))
ModuleAmmoPicker.register()

View File

@@ -1,7 +1,7 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.fittingView
import gui.builtinViews.fittingView
import wx
class Project(ContextMenu):
@@ -22,6 +22,6 @@ class Project(ContextMenu):
sFit = service.Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.project(fitID, selection[0])
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
wx.PostEvent(self.mainFrame, gui.builtinViews.fittingView.FitChanged(fitID=fitID))
Project.register()

View File

@@ -25,7 +25,7 @@ from gui import pygauge as PG
from util import formatAmount
import service
import gui.mainFrame
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
EffictiveHpToggled, EFFECTIVE_HP_TOGGLED = wx.lib.newevent.NewEvent()

1
gui/builtinViews/__init__.py Executable file
View File

@@ -0,0 +1 @@
__all__ = ["fittingView", "fleetView"]

View File

@@ -22,14 +22,13 @@ import wx.lib.newevent
import service
import gui.mainFrame
import gui.marketBrowser
import bitmapLoader
import gui.display as d
from gui.contextMenu import ContextMenu
import gui.shipBrowser
import sys
from eos.types import Slot
from gui.builtinViewColumns.state import State
import gui.multiSwitch
from gui import bitmapLoader
FitChanged, FIT_CHANGED = wx.lib.newevent.NewEvent()

View File

@@ -0,0 +1,55 @@
import wx.gizmos
import gui.fleetBrowser
import service
#Tab spawning handler
class FleetSpawner(gui.multiSwitch.TabSpawner):
def __init__(self, multiSwitch):
self.multiSwitch = multiSwitch
mainFrame = gui.mainFrame.MainFrame.getInstance()
mainFrame.Bind(gui.fleetBrowser.EVT_FLEET_SELECTED, self.fleetSelected)
def fleetSelected(self, event):
view = FleetView(self.multiSwitch)
self.multiSwitch.ReplaceActivePage(view)
view.populate(event.fleetID)
view.Show()
FleetSpawner.register()
class FleetView(wx.gizmos.TreeListCtrl):
def __init__(self, parent):
wx.gizmos.TreeListCtrl.__init__(self, parent)
self.tabManager = parent
self.imageList = wx.ImageList(16, 16)
self.SetImageList(self.imageList)
for col in ("Fit", "Shiptype", "Character", "Bonusses"):
self.AddColumn(col)
def populate(self, fleetID):
sFleet = service.Fleet.getInstance()
f = sFleet.getFleet(fleetID)
self.tabManager.SetPageTextIcon(self.tabManager.GetSelection(), f.name)
self.fleet = f
self.DeleteAllItems()
root = self.AddRoot("FC")
self.setEntry(root, f.leader)
def setEntry(self, treeItemId, fit):
if fit is None:
self.SetItemText(treeItemId, "Empty", 0)
else:
fleet = self.fleet
self.SetItemText(treeItemId, fit.name, 0)
self.SetItemText(treeItemId, fit.ship.item.name, 1)
self.SetItemText(treeItemId, fit.character.name, 2)
boosts = fleet.store.getBoosts(fit)
if boosts:
bonusses = []
for name, info in boosts.iteritems():
bonusses.append("%s: %.2g" % (name, info[0]))
self.SetItemText(treeItemId, ", ".join(bonusses), 3)

View File

@@ -27,7 +27,7 @@ import service
import gui.display as d
from gui.contextMenu import ContextMenu
import sys
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
CharListUpdated, CHAR_LIST_UPDATED = wx.lib.newevent.NewEvent()
CharChanged, CHAR_CHANGED = wx.lib.newevent.NewEvent()

View File

@@ -21,7 +21,7 @@ import wx
import service
from gui import characterEditor as ce
from gui import bitmapLoader
from gui import fittingView as fv
from gui.builtinViews import fittingView as fv
import gui.mainFrame
class CharacterSelection(wx.Panel):

View File

@@ -204,17 +204,23 @@ class PFNotebook(wx.Panel):
def IsActive(self, page):
return self.activePage == page
def SetPageText(self, i, text, refresh=False):
def SetPageText(self, i, text, refresh=True):
tab = self.tabsContainer.tabs[i]
tab.text = text
if refresh:
self.tabsContainer.AdjustTabsSize()
self.Refresh()
def SetPageIcon(self, i, icon, refresh=False):
def SetPageIcon(self, i, icon, refresh=True):
tab = self.tabsContainer.tabs[i]
tab.tabImg = icon
if refresh:
self.tabsContainer.AdjustTabsSize()
self.Refresh()
def SetPageTextIcon(self, i, text=wx.EmptyString, icon=None):
self.SetPageText(i, text)
self.SetPageIcon(i, icon)
self.SetPageText(i, text, False)
self.SetPageIcon(i, icon, False)
self.tabsContainer.AdjustTabsSize()
self.Refresh()

View File

@@ -20,7 +20,7 @@
import wx
import service
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
import gui.marketBrowser as mb
import gui.display as d
from gui.builtinViewColumns.state import State

View File

@@ -1,6 +1,13 @@
import wx
import copy
from gui import bitmapLoader
import gui.mainFrame
class FleetBrowser(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.SetBackgroundColour("pink")
x = FleetItem(self, 1, "IMBA Fleet", 23, size = (200,32))
FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent()
@@ -10,6 +17,7 @@ class FleetItem(wx.Window):
size=(0,16), style=0):
wx.Window.__init__(self, parent, id, pos, size, style)
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.fleetID = fleetID
self.fleetName = fleetName
self.fleetCount = fleetCount
@@ -26,6 +34,11 @@ class FleetItem(wx.Window):
self.Bind(wx.EVT_LEAVE_WINDOW, self.LeaveWindow)
self.Bind(wx.EVT_ENTER_WINDOW, self.EnterWindow)
self.Bind(wx.EVT_LEFT_UP, self.selected)
def selected(self, event):
wx.PostEvent(self.mainFrame, FleetSelected(fleetID=0))
event.Skip()
def Rename(self, newName):
self.fleetName = newName
@@ -102,9 +115,3 @@ class FleetItem(wx.Window):
event.Skip()
class FleetBrowser(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.SetBackgroundColour("pink")
x = FleetItem(self, 1, "IMBA Fleet", 23, size = (200,32))

View File

@@ -1,29 +0,0 @@
import wx.gizmos
import gui.fleetBrowser
#Tab spawning handler
class FleetSpawner(gui.multiSwitch.TabSpawner):
def __init__(self, multiSwitch):
self.multiSwitch = multiSwitch
mainFrame = gui.mainFrame.MainFrame.getInstance()
mainFrame.Bind(gui.fleetBrowser.EVT_FLEET_SELECTED, self.fleetSelected)
def fleetSelected(self, event):
view = FleetView(self.multiSwitch)
self.multiSwitch.ReplaceActivePage(view)
FleetSpawner.register()
class FleetView(wx.gizmos.TreeListCtrl):
def __init__(self, parent):
wx.gizmos.TreeListCtrl.__init__(self, parent)
self.imageList = wx.ImageList(16, 16)
self.SetImageList(self.imageList)
for col in ("Fit", "Character", "Bonusses"):
self.AddColumn(col)
self.AddRoot("WC")
def populate(self):
pass

View File

@@ -20,7 +20,6 @@
import wx
import bitmapLoader
import gui.display
import gui.fittingView
try:
import matplotlib as mpl

View File

@@ -20,7 +20,7 @@
import wx
import service
import gui.display as d
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
import gui.marketBrowser as mb
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu

View File

@@ -35,11 +35,11 @@ from gui.graphFrame import GraphFrame
from gui.copySelectDialog import CopySelectDialog
from gui.fleetBrowser import FleetBrowser
import aboutData
import gui.fittingView as fv
from wx._core import PyDeadObjectError
import os.path
import gui.chromeTabs
from util import toClipboard, fromClipboard
from builtinViews import *
#dummy panel no paint no erasebk
class PFPanel(wx.Panel):

View File

@@ -19,7 +19,6 @@
import wx
import bitmapLoader
import gui.fittingView
import gui.mainFrame
import gui.graphFrame
@@ -91,7 +90,7 @@ class MainMenuBar(wx.MenuBar):
self.mainFrame.Bind(gui.fittingView.FIT_CHANGED, self.fitChanged)
self.mainFrame.Bind(gui.builtinViews.fittingView.FIT_CHANGED, self.fitChanged)
def fitChanged(self, event):
enable = event.fitID is not None

View File

@@ -19,7 +19,7 @@
import wx
import gui.display as d
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
import service
import gui.droneView
from gui.builtinViewColumns.state import State

View File

@@ -2,7 +2,7 @@ import wx
import copy
from gui import bitmapLoader
import gui.mainFrame
import gui.fittingView
import gui.builtinViews.fittingView
import service
import time
import os
@@ -79,7 +79,7 @@ class ShipBrowser(wx.Panel):
self.Bind(EVT_SB_STAGE3_SEL, self.stage3)
self.Bind(EVT_SB_SEARCH_SEL, self.searchStage)
self.mainFrame.Bind(gui.fittingView.FIT_CHANGED, self.RefreshList)
self.mainFrame.Bind(gui.builtinViews.fittingView.FIT_CHANGED, self.RefreshList)
self.stage1(None)

View File

@@ -23,7 +23,7 @@ import service
from gui.pyfatogglepanel import TogglePanel
import gui.builtinStatsViews
from gui.contextMenu import ContextMenu
import gui.fittingView as fv
import gui.builtinViews.fittingView as fv
import gui.mainFrame
class StatsPane(wx.Panel):

View File

@@ -4,3 +4,4 @@ from service.attribute import Attribute
from service.character import Character
from service.damagePattern import DamagePattern
from service.settings import SettingsProvider
from service.fleet import Fleet

View File

@@ -18,6 +18,8 @@
#===============================================================================
import eos.db
from eos.types import Fit, Ship, Character
from eos.types import Fleet as Fleet_
class Fleet(object):
instance = None
@@ -38,3 +40,13 @@ class Fleet(object):
fleetList.append(fleet.ID, fleet.name, fleet.count())
return fleetList
def getFleet(self, ID):
f = Fleet_()
f.name = "Test"
f.leader = Fit()
f.leader.name = "FC"
f.leader.ship = Ship(eos.db.getItem("Damnation"))
f.character = Character("Moo")
f.calculateModifiedAttributes()
return f