summaryrefslogtreecommitdiff
path: root/Tools/Python/Fd.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Python/Fd.py')
-rwxr-xr-xTools/Python/Fd.py582
1 files changed, 0 insertions, 582 deletions
diff --git a/Tools/Python/Fd.py b/Tools/Python/Fd.py
deleted file mode 100755
index f8b26059e7..0000000000
--- a/Tools/Python/Fd.py
+++ /dev/null
@@ -1,582 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2007, Intel Corporation
-# All rights reserved. This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-"""An EDK II Build System Framework Database Utility maintains
-FrameworkDatabase.db settings in an EDK II Workspace."""
-
-import wx, os, sys, copy
-from EdkIIWorkspace import *
-
-class FrameworkDatabaseModel(EdkIIWorkspace):
- def __init__(self):
- self.WorkspaceStatus = EdkIIWorkspace.__init__(self)
- self.Database = {}
- self.OriginalDatabase = {}
-
- def AddFile (self, DirName, FileName, FileType, Enabled):
- if DirName != '':
- FileName = os.path.join(DirName,FileName)
- if FileType == 'Package':
- Header = self.XmlParseFileSection (FileName, 'SpdHeader')
- Name = XmlElement (Header, '/SpdHeader/PackageName')
- Version = XmlElement (Header, '/SpdHeader/Version')
- elif FileType == 'Platform':
- Header = self.XmlParseFileSection (FileName, 'PlatformHeader')
- Name = XmlElement (Header, '/PlatformHeader/PlatformName')
- Version = XmlElement (Header, '/PlatformHeader/Version')
- else:
- return
- FileName = FileName.replace('\\','/')
- if Name == '' and Version == '':
- ValidType = 'Invalid'
- OtherType = 'Valid'
- UiName = FileName
- else:
- ValidType = 'Valid'
- OtherType = 'Invalid'
- UiName = Name + ' [' + Version + ']'
- self.Database[FileType][OtherType]['PossibleSettings'].pop(FileName, None)
- self.Database[FileType][OtherType]['EnabledSettings'].pop(FileName, None)
- self.Database[FileType][ValidType]['PossibleSettings'][FileName] = UiName
- if Enabled:
- self.Database[FileType][ValidType]['EnabledSettings'][FileName] = UiName
- return
-
- def NewModel(self):
- self.Database['Platform'] = {'Valid': {'PossibleSettings':{}, 'EnabledSettings':{}},'Invalid': {'PossibleSettings':{}, 'EnabledSettings':{}}}
- self.Database['Package'] = {'Valid': {'PossibleSettings':{}, 'EnabledSettings':{}},'Invalid': {'PossibleSettings':{}, 'EnabledSettings':{}}}
-
- def RevertModel(self):
- self.Database = copy.deepcopy(self.OriginalDatabase)
-
- def RescanModel(self):
- self.NewModel()
- self.Fd = self.XmlParseFile ('Tools/Conf/FrameworkDatabase.db')
- PackageList = XmlList (self.Fd, '/FrameworkDatabase/PackageList/Filename')
- for File in PackageList:
- SpdFileName = XmlElementData(File)
- self.AddFile ('', SpdFileName, 'Package', True)
- PlatformList = XmlList (self.Fd, '/FrameworkDatabase/PlatformList/Filename')
- for File in PlatformList:
- FpdFileName = XmlElementData(File)
- self.AddFile ('', FpdFileName, 'Platform', True)
- self.OriginalDatabase = copy.deepcopy(self.Database)
-
- def RefreshModel(self):
- Temp = copy.deepcopy(self.Database)
- for FileType in ['Package','Platform']:
- for Valid in ['Valid','Invalid']:
- for Item in Temp[FileType][Valid]['PossibleSettings']:
- self.AddFile('',Item, FileType, Item in Temp[FileType][Valid]['EnabledSettings'])
- return True
-
- def ModelModified(self):
- if self.Database['Package']['Valid']['EnabledSettings'] != self.OriginalDatabase['Package']['Valid']['EnabledSettings']:
- return True
- if self.Database['Package']['Invalid']['EnabledSettings'] != self.OriginalDatabase['Package']['Invalid']['EnabledSettings']:
- return True
- if self.Database['Platform']['Valid']['EnabledSettings'] != self.OriginalDatabase['Platform']['Valid']['EnabledSettings']:
- return True
- if self.Database['Platform']['Invalid']['EnabledSettings'] != self.OriginalDatabase['Platform']['Invalid']['EnabledSettings']:
- return True
- return False
-
- def SaveModel(self, Filename='Tools/Conf/FrameworkDatabase.db'):
- EnabledList = self.Database['Package']['Valid']['EnabledSettings'].keys()
- EnabledList += self.Database['Package']['Invalid']['EnabledSettings'].keys()
- PackageList = XmlList (self.Fd, '/FrameworkDatabase/PackageList/Filename')
- for File in PackageList:
- SpdFileName = XmlElementData(File)
- if SpdFileName in EnabledList:
- EnabledList.remove(SpdFileName)
- continue
- XmlRemoveElement(File)
-
- ParentNode = XmlList (self.Fd, '/FrameworkDatabase/PackageList')[0]
- for SpdFileName in EnabledList:
- XmlAppendChildElement(ParentNode, u'Filename', SpdFileName)
-
- EnabledList = self.Database['Platform']['Valid']['EnabledSettings'].keys()
- EnabledList += self.Database['Platform']['Invalid']['EnabledSettings'].keys()
- PlatformList = XmlList (self.Fd, '/FrameworkDatabase/PlatformList/Filename')
- for File in PlatformList:
- FpdFileName = XmlElementData(File)
- if FpdFileName in EnabledList:
- EnabledList.remove(FpdFileName)
- continue
- XmlRemoveElement(File)
-
- ParentNode = XmlList (self.Fd, '/FrameworkDatabase/PlatformList')[0]
- for FpdFileName in EnabledList:
- XmlAppendChildElement(ParentNode, u'Filename', FpdFileName)
-
- self.XmlSaveFile (self.Fd, Filename)
- self.OriginalDatabase = copy.deepcopy(self.Database)
-
- def CloseModel(self):
- pass
-
-class Frame(wx.Frame):
- def __init__(self):
- wx.Frame.__init__(self,None,-1,'EDK II Build System Framework Database Utility')
- panel = wx.Panel(self, style=wx.SUNKEN_BORDER | wx.TAB_TRAVERSAL)
- wx.HelpProvider_Set(wx.SimpleHelpProvider())
-
- self.Model = FrameworkDatabaseModel()
-
- #
- # Help text
- #
- PackagesHelpText = (
- "The set of packages that are active in the current WORKSPACE."
- )
-
- PlatformsHelpText = (
- "The set of platforms that are active in the current WORKSPACE."
- )
-
- InvalidPackagesHelpText = (
- "The set of packages that are in Framework Database, but not in the current WORKSPACE."
- )
-
- InvalidPlatformsHelpText = (
- "The set of platforms that are in Framework Database, but not in the current WORKSPACE."
- )
-
- #
- # Status Bar
- #
- self.StatusBar = self.CreateStatusBar()
-
- #
- # Build Menus
- #
- MenuBar = wx.MenuBar()
-
- FileMenu = wx.Menu()
- NewMenuItem = FileMenu.Append(-1, "&New\tCtrl+N", "New FrameworkDatabase.db")
- SaveMenuItem = FileMenu.Append(-1, "&Save\tCtrl+S", "Save FramdworkDatabase.db")
- SaveAsMenuItem = FileMenu.Append(-1, "Save &As...", "Save FrameworkDatabase.db as...")
- RevertMenuItem = FileMenu.Append(-1, "&Revert", "Revert to the original FrameworkDatabase.db")
- ScanMenuItem = FileMenu.Append(-1, "Scan &WORKSPACE\tCtrl+W", "Scan WORKSPACE for additional packages and platforms")
- ScanAndSyncMenuItem = FileMenu.Append(-1, "Scan &WORKSPACE and Sync\tCtrl+W", "Scan WORKSPACE for additional packages and platforms and sync FramdworkDatabase.db")
- ExitMenuItem = FileMenu.Append(-1, "E&xit\tAlt+F4", "Exit Framework Database Tool")
- MenuBar.Append(FileMenu, "&File")
- self.Bind(wx.EVT_MENU, self.OnSaveClick, SaveMenuItem)
- self.Bind(wx.EVT_MENU, self.OnSaveAsClick, SaveAsMenuItem)
- self.Bind(wx.EVT_MENU, self.OnRevertClick, RevertMenuItem)
- self.Bind(wx.EVT_MENU, self.OnScanClick, ScanMenuItem)
- self.Bind(wx.EVT_MENU, self.OnScanAndSyncClick, ScanAndSyncMenuItem)
- self.Bind(wx.EVT_MENU, self.OnExitClick, ExitMenuItem)
-
- EditMenu = wx.Menu()
- SelectAllPlatformsMenuItem = EditMenu.Append (-1, "Select All Platforms", "Select all platforms")
- ClearAllPlatformsMenuItem = EditMenu.Append (-1, "Clear All Platforms", "Clear all platforms")
- SelectAllPackagesMenuItem = EditMenu.Append (-1, "Select All Packages", "Select all packages")
- ClearAllPackagesMenuItem = EditMenu.Append (-1, "Clear All Packages", "Clear all packages")
- SelectAllInvalidPlatformsMenuItem = EditMenu.Append (-1, "Select All Invalid Platforms", "Select all invalid platforms")
- ClearAllInvalidPlatformsMenuItem = EditMenu.Append (-1, "Clear All Invalid Platforms", "Clear all invalid platforms")
- SelectAllInvalidPackagesMenuItem = EditMenu.Append (-1, "Select All Invalid Packages", "Select all invalid packages")
- ClearAllInvalidPackagesMenuItem = EditMenu.Append (-1, "Clear All Invalid Packages", "Clear all invalid packages")
- MenuBar.Append(EditMenu, "&Edit")
- self.Bind(wx.EVT_MENU, self.OnSelectAllPlatformsClick, SelectAllPlatformsMenuItem)
- self.Bind(wx.EVT_MENU, self.OnClearAllPlatformsClick, ClearAllPlatformsMenuItem)
- self.Bind(wx.EVT_MENU, self.OnSelectAllPackagesClick, SelectAllPackagesMenuItem)
- self.Bind(wx.EVT_MENU, self.OnClearAllPackagesClick, ClearAllPackagesMenuItem)
- self.Bind(wx.EVT_MENU, self.OnSelectAllInvalidPlatformsClick, SelectAllInvalidPlatformsMenuItem)
- self.Bind(wx.EVT_MENU, self.OnClearAllInvalidPlatformsClick, ClearAllInvalidPlatformsMenuItem)
- self.Bind(wx.EVT_MENU, self.OnSelectAllInvalidPackagesClick, SelectAllInvalidPackagesMenuItem)
- self.Bind(wx.EVT_MENU, self.OnClearAllInvalidPackagesClick, ClearAllInvalidPackagesMenuItem)
-
- ViewMenu = wx.Menu()
- RefreshMenuItem = ViewMenu.Append (-1, "&Refresh\tF5", "Rescan FrameworkDatabase.db")
- ShowToolBarMenuItem = ViewMenu.AppendCheckItem (-1, "Show &Toolbar", "Shows or hides the toolbar")
- ShowToolBarMenuItem.Check(True)
- MenuBar.Append(ViewMenu, "&View")
- self.Bind(wx.EVT_MENU, self.OnViewRefreshClick, RefreshMenuItem)
- self.Bind(wx.EVT_MENU, self.OnShowToolBarClick, ShowToolBarMenuItem)
-
- HelpMenu = wx.Menu()
- AboutMenuItem = HelpMenu.Append (-1, "&About...", "About")
- MenuBar.Append(HelpMenu, "&Help")
- self.Bind(wx.EVT_MENU, self.OnAboutClick, AboutMenuItem)
-
- self.SetMenuBar (MenuBar)
-
- #
- # Build Toolbar
- #
- self.ShowToolBar = False
- self.OnShowToolBarClick(self)
-
- #
- # Target, ToolChain, and Arch Check List Boxes
- #
- PackagesLabel = wx.StaticText(panel, -1, 'Packages')
- PackagesLabel.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD))
- PackagesLabel.SetHelpText(PackagesHelpText)
-
- PlatformsLabel = wx.StaticText(panel, -1, 'Platforms')
- PlatformsLabel.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD))
- PlatformsLabel.SetHelpText(PlatformsHelpText)
-
- #
- # Buttons
- #
- self.SelectAllPackagesButton = wx.Button(panel, -1, 'Select All')
- self.ClearAllPackagesButton = wx.Button(panel, -1, 'Clear All')
- self.SelectAllPackagesButton.Bind (wx.EVT_BUTTON, self.OnSelectAllPackagesClick)
- self.ClearAllPackagesButton.Bind (wx.EVT_BUTTON, self.OnClearAllPackagesClick)
-
- self.PackagesCheckListBox = wx.CheckListBox(panel, -1)
- self.PackagesCheckListBox.Bind(wx.EVT_CHECKLISTBOX, self.OnPackagesCheckListClick)
- self.PackagesCheckListBox.Bind(wx.EVT_SET_FOCUS, self.OnPackagesSetFocus)
- self.PackagesCheckListBox.Bind(wx.EVT_KILL_FOCUS, self.OnPackagesKillFocus)
- self.PackagesCheckListBox.SetHelpText(PackagesHelpText)
-
-
- self.SelectAllPlatformsButton = wx.Button(panel, -1, 'Select All')
- self.ClearAllPlatformsButton = wx.Button(panel, -1, 'Clear All')
- self.SelectAllPlatformsButton.Bind(wx.EVT_BUTTON, self.OnSelectAllPlatformsClick)
- self.ClearAllPlatformsButton.Bind (wx.EVT_BUTTON, self.OnClearAllPlatformsClick)
-
- self.PlatformsCheckListBox = wx.CheckListBox(panel, -1)
- self.PlatformsCheckListBox.Bind(wx.EVT_CHECKLISTBOX, self.OnPlatformsCheckListClick)
- self.PlatformsCheckListBox.Bind(wx.EVT_SET_FOCUS, self.OnPlatformsSetFocus)
- self.PlatformsCheckListBox.Bind(wx.EVT_KILL_FOCUS, self.OnPlatformsKillFocus)
- self.PlatformsCheckListBox.SetHelpText(PlatformsHelpText)
-
- InvalidPackagesLabel = wx.StaticText(panel, -1, 'Invalid Packages')
- InvalidPackagesLabel.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD))
- InvalidPackagesLabel.SetHelpText(InvalidPackagesHelpText)
-
- InvalidPlatformsLabel = wx.StaticText(panel, -1, 'Invalid Platforms')
- InvalidPlatformsLabel.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD))
- InvalidPlatformsLabel.SetHelpText(InvalidPlatformsHelpText)
-
- self.SelectAllInvalidPackagesButton = wx.Button(panel, -1, 'Select All')
- self.ClearAllInvalidPackagesButton = wx.Button(panel, -1, 'Clear All')
- self.SelectAllInvalidPackagesButton.Bind (wx.EVT_BUTTON, self.OnSelectAllInvalidPackagesClick)
- self.ClearAllInvalidPackagesButton.Bind (wx.EVT_BUTTON, self.OnClearAllInvalidPackagesClick)
-
- self.InvalidPackagesCheckListBox = wx.CheckListBox(panel, -1)
- self.InvalidPackagesCheckListBox.Bind(wx.EVT_CHECKLISTBOX, self.OnInvalidPackagesCheckListClick)
- self.InvalidPackagesCheckListBox.Bind(wx.EVT_SET_FOCUS, self.OnInvalidPackagesSetFocus)
- self.InvalidPackagesCheckListBox.Bind(wx.EVT_KILL_FOCUS, self.OnInvalidPackagesKillFocus)
- self.InvalidPackagesCheckListBox.SetHelpText(PackagesHelpText)
-
- self.SelectAllInvalidPlatformsButton = wx.Button(panel, -1, 'Select All')
- self.ClearAllInvalidPlatformsButton = wx.Button(panel, -1, 'Clear All')
- self.SelectAllInvalidPlatformsButton.Bind(wx.EVT_BUTTON, self.OnSelectAllInvalidPlatformsClick)
- self.ClearAllInvalidPlatformsButton.Bind (wx.EVT_BUTTON, self.OnClearAllInvalidPlatformsClick)
-
- self.InvalidPlatformsCheckListBox = wx.CheckListBox(panel, -1)
- self.InvalidPlatformsCheckListBox.Bind(wx.EVT_CHECKLISTBOX, self.OnInvalidPlatformsCheckListClick)
- self.InvalidPlatformsCheckListBox.Bind(wx.EVT_SET_FOCUS, self.OnInvalidPlatformsSetFocus)
- self.InvalidPlatformsCheckListBox.Bind(wx.EVT_KILL_FOCUS, self.OnInvalidPlatformsKillFocus)
- self.InvalidPlatformsCheckListBox.SetHelpText(PlatformsHelpText)
-
- #
- # Define layout using sizers
- #
- self.mainSizer = wx.BoxSizer(wx.VERTICAL)
-
- listSizer = wx.GridBagSizer(hgap=5, vgap=5)
- listSizer.Add(PackagesLabel, pos=(0,0), span=(1,2), flag=wx.ALIGN_CENTER)
- listSizer.Add(PlatformsLabel, pos=(0,2), span=(1,2), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.SelectAllPackagesButton, pos=(1,0), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.ClearAllPackagesButton, pos=(1,1), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.SelectAllPlatformsButton, pos=(1,2), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.ClearAllPlatformsButton, pos=(1,3), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.PackagesCheckListBox, pos=(2,0), span=(1,2), flag=wx.ALL | wx.EXPAND)
- listSizer.Add(self.PlatformsCheckListBox, pos=(2,2), span=(1,2), flag=wx.ALL | wx.EXPAND)
-
- listSizer.Add(InvalidPackagesLabel, pos=(3,0), span=(1,2), flag=wx.ALIGN_CENTER)
- listSizer.Add(InvalidPlatformsLabel, pos=(3,2), span=(1,2), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.SelectAllInvalidPackagesButton, pos=(4,0), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.ClearAllInvalidPackagesButton, pos=(4,1), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.SelectAllInvalidPlatformsButton, pos=(4,2), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.ClearAllInvalidPlatformsButton, pos=(4,3), flag=wx.ALIGN_CENTER)
- listSizer.Add(self.InvalidPackagesCheckListBox, pos=(5,0), span=(1,2), flag=wx.ALL | wx.EXPAND)
- listSizer.Add(self.InvalidPlatformsCheckListBox, pos=(5,2), span=(1,2), flag=wx.ALL | wx.EXPAND)
-
- listSizer.AddGrowableRow(2)
- listSizer.AddGrowableRow(5)
- listSizer.AddGrowableCol(0)
- listSizer.AddGrowableCol(1)
- listSizer.AddGrowableCol(2)
- listSizer.AddGrowableCol(3)
-
- self.mainSizer.Add (listSizer, wx.EXPAND | wx.ALL, wx.EXPAND | wx.ALL, 10)
-
- panel.SetSizer (self.mainSizer)
-
- self.OnViewRefreshClick(self)
-
- def CheckListFocus(self, CheckListBox, Set):
- Index = 0
- while Index < CheckListBox.GetCount():
- CheckListBox.SetSelection(Index, False)
- Index += 1
- if Set and CheckListBox.GetCount() > 0:
- CheckListBox.SetSelection(0, True)
-
- def CheckListClick(self, CheckListBox, Database):
- Index = 0
- Database['EnabledSettings'] = {}
- while Index < CheckListBox.GetCount():
- if CheckListBox.IsChecked(Index):
- for Item in Database['PossibleSettings']:
- if Database['PossibleSettings'][Item] == CheckListBox.GetString(Index):
- Database['EnabledSettings'][Item] = Database['PossibleSettings'][Item]
- Index += 1
-
- def OnPackagesCheckListClick(self, event):
- self.CheckListClick(self.PackagesCheckListBox, self.Model.Database['Package']['Valid'])
-
- def OnPackagesSetFocus(self, event):
- self.CheckListFocus(self.PackagesCheckListBox, True)
-
- def OnPackagesKillFocus(self, event):
- self.CheckListFocus(self.PackagesCheckListBox, False)
-
- def OnPlatformsCheckListClick(self, event):
- self.CheckListClick(self.PlatformsCheckListBox, self.Model.Database['Platform']['Valid'])
-
- def OnPlatformsSetFocus(self, event):
- self.CheckListFocus(self.PlatformsCheckListBox, True)
-
- def OnPlatformsKillFocus(self, event):
- self.CheckListFocus(self.PlatformsCheckListBox, False)
-
- def OnInvalidPackagesCheckListClick(self, event):
- self.CheckListClick(self.InvalidPackagesCheckListBox, self.Model.Database['Package']['Invalid'])
-
- def OnInvalidPackagesSetFocus(self, event):
- self.CheckListFocus(self.InvalidPackagesCheckListBox, True)
-
- def OnInvalidPackagesKillFocus(self, event):
- self.CheckListFocus(self.InvalidPackagesCheckListBox, False)
-
- def OnInvalidPlatformsCheckListClick(self, event):
- self.CheckListClick(self.InvalidPlatformsCheckListBox, self.Model.Database['Platform']['Invalid'])
-
- def OnInvalidPlatformsSetFocus(self, event):
- self.CheckListFocus(self.InvalidPlatformsCheckListBox, True)
-
- def OnInvalidPlatformsKillFocus(self, event):
- self.CheckListFocus(self.InvalidPlatformsCheckListBox, False)
-
- def OnRevertClick(self, event):
- self.Model.RevertModel()
- self.StatusBar.SetFocus()
- self.OnRefreshClick(self)
-
- def RefreshCheckListBox(self, CheckListBox, SelectAllButton, ClearAllButton, Database):
- NameList = []
- for Item in Database['PossibleSettings']:
- NameList.append(Database['PossibleSettings'][Item])
- NameList.sort()
- CheckListBox.Set(NameList)
- Index = 0
- MaximumString = '.'
- while Index < CheckListBox.GetCount():
- String = CheckListBox.GetString(Index)
- if len(String) > len(MaximumString):
- MaximumString = String
- Enabled = False
- for Item in Database['EnabledSettings']:
- if String == Database['EnabledSettings'][Item]:
- Enabled = True
- if Enabled:
- CheckListBox.Check(Index, True)
- else:
- CheckListBox.Check(Index, False)
- Index += 1
- Extents = CheckListBox.GetFullTextExtent (MaximumString)
- CheckListBox.SetMinSize((Extents[0] + 30,(CheckListBox.GetCount()+2) * (Extents[1]+Extents[2])))
- if NameList == []:
- CheckListBox.Disable()
- SelectAllButton.Disable()
- ClearAllButton.Disable()
- else:
- CheckListBox.Enable()
- SelectAllButton.Enable()
- ClearAllButton.Enable()
-
- def OnRefreshClick(self, event):
- self.Model.RefreshModel()
- self.RefreshCheckListBox (self.PackagesCheckListBox, self.SelectAllPackagesButton, self.ClearAllPackagesButton, self.Model.Database['Package']['Valid'])
- self.RefreshCheckListBox (self.PlatformsCheckListBox, self.SelectAllPlatformsButton, self.ClearAllPlatformsButton, self.Model.Database['Platform']['Valid'])
- self.RefreshCheckListBox (self.InvalidPackagesCheckListBox, self.SelectAllInvalidPackagesButton, self.ClearAllInvalidPackagesButton, self.Model.Database['Package']['Invalid'])
- self.RefreshCheckListBox (self.InvalidPlatformsCheckListBox, self.SelectAllInvalidPlatformsButton, self.ClearAllInvalidPlatformsButton, self.Model.Database['Platform']['Invalid'])
- self.mainSizer.SetSizeHints(self)
- self.mainSizer.Fit(self)
- self.Update()
-
- def OnViewRefreshClick(self, event):
- self.Model.RescanModel()
- self.StatusBar.SetFocus()
- self.OnRefreshClick(self)
-
- def AddTool (self, Handler, ArtId, Label, HelpText):
- Tool = self.ToolBar.AddSimpleTool(
- -1,
- wx.ArtProvider.GetBitmap(ArtId, wx.ART_TOOLBAR, self.ToolSize),
- Label,
- HelpText
- )
- self.Bind(wx.EVT_MENU, Handler, Tool)
-
- def OnShowToolBarClick(self, event):
- if self.ShowToolBar:
- self.ShowToolBar = False
- self.ToolBar.Destroy()
- else:
- self.ShowToolBar = True
- self.ToolBar = self.CreateToolBar()
- self.ToolSize = (24,24)
- self.ToolBar.SetToolBitmapSize(self.ToolSize)
- self.AddTool (self.OnNewClick, wx.ART_NEW, "New", "New FrameworkDatabase.db")
- self.AddTool (self.OnScanAndSyncClick, wx.ART_HARDDISK, "Scan WORKSPACE and Sync", "Scan WORKSPACE for new Packages and Platforms and sync FrameworkDatabase.db")
- self.AddTool (self.OnSaveClick, wx.ART_FILE_SAVE, "Save", "Save FrameworkDatabase.db")
- self.AddTool (self.OnSaveAsClick, wx.ART_FILE_SAVE_AS, "Save As...", "Save FrameworkDatabase.db as...")
- self.AddTool (self.OnRevertClick, wx.ART_UNDO, "Revert", "Revert to original FrameworkDatabase.db")
- self.AddTool (self.OnHelpClick, wx.ART_HELP, "Help", "Context Sensitive Help")
- self.AddTool (self.OnExitClick, wx.ART_QUIT, "Exit", "Exit EDK II Build System Framework Database Utility")
- self.ToolBar.Realize()
-
- def OnNewClick(self, event):
- self.Model.NewModel()
- self.OnRefreshClick(self)
-
- def ScanDirectory(self, Data, DirName, FilesInDir):
- WorkspaceDirName = self.Model.WorkspaceRelativePath(DirName)
- self.StatusBar.SetStatusText('Scanning: ' + WorkspaceDirName)
- RemoveList = []
- for File in FilesInDir:
- if File[0] == '.':
- RemoveList.insert(0, File)
- for File in RemoveList:
- FilesInDir.remove(File)
- for File in FilesInDir:
- if os.path.splitext(File)[1].lower() == '.spd':
- self.Model.AddFile (WorkspaceDirName, File, 'Package', False)
- self.OnRefreshClick(self)
- if os.path.splitext(File)[1].lower() == '.fpd':
- self.Model.AddFile (WorkspaceDirName, File, 'Platform', False)
- self.OnRefreshClick(self)
-
- def OnScanClick(self, event):
- os.path.walk(self.Model.WorkspaceFile(''), self.ScanDirectory, None)
- self.StatusBar.SetStatusText('Scanning: Complete')
- self.StatusBar.SetFocus()
- self.OnRefreshClick(self)
-
- def OnScanAndSyncClick(self, event):
- self.OnSelectAllPackagesClick(self)
- self.OnSelectAllPlatformsClick(self)
- self.OnClearAllInvalidPackagesClick(self)
- self.OnClearAllInvalidPlatformsClick(self)
- self.OnScanClick(self)
- self.OnSelectAllPackagesClick(self)
- self.OnSelectAllPlatformsClick(self)
- self.OnClearAllInvalidPackagesClick(self)
- self.OnClearAllInvalidPlatformsClick(self)
-
- def OnSelectAllPackagesClick(self, event):
- self.Model.Database['Package']['Valid']['EnabledSettings'] = self.Model.Database['Package']['Valid']['PossibleSettings']
- self.OnRefreshClick(self)
-
- def OnClearAllPackagesClick(self, event):
- self.Model.Database['Package']['Valid']['EnabledSettings'] = {}
- self.OnRefreshClick(self)
-
- def OnSelectAllPlatformsClick(self, event):
- self.Model.Database['Platform']['Valid']['EnabledSettings'] = self.Model.Database['Platform']['Valid']['PossibleSettings']
- self.OnRefreshClick(self)
-
- def OnClearAllPlatformsClick(self, event):
- self.Model.Database['Platform']['Valid']['EnabledSettings'] = {}
- self.OnRefreshClick(self)
-
- def OnSelectAllInvalidPackagesClick(self, event):
- self.Model.Database['Package']['Invalid']['EnabledSettings'] = self.Model.Database['Package']['Invalid']['PossibleSettings']
- self.OnRefreshClick(self)
-
- def OnClearAllInvalidPackagesClick(self, event):
- self.Model.Database['Package']['Invalid']['EnabledSettings'] = {}
- self.OnRefreshClick(self)
-
- def OnSelectAllInvalidPlatformsClick(self, event):
- self.Model.Database['Platform']['Invalid']['EnabledSettings'] = self.Model.Database['Platform']['Invalid']['PossibleSettings']
- self.OnRefreshClick(self)
-
- def OnClearAllInvalidPlatformsClick(self, event):
- self.Model.Database['Platform']['Invalid']['EnabledSettings'] = {}
- self.OnRefreshClick(self)
-
- def OnSaveClick(self, event):
- self.Model.SaveModel()
-
- def OnSaveAsClick(self, event):
- wildcard = "Text Documents (*.db)|*.db|" \
- "All files (*.*)|*.*"
- dialog = wx.FileDialog (None, 'Save As', self.Model.WorkspaceFile('Tools/Conf'), '', wildcard, wx.SAVE | wx.OVERWRITE_PROMPT)
- if dialog.ShowModal() == wx.ID_OK:
- FrameworkDatabaseDbFile = self.Model.WorkspaceRelativePath(dialog.GetPath())
- if FrameworkDatabaseDbFile != '':
- self.Model.SaveModel(FrameworkDatabaseDbFile)
- dialog.Destroy()
-
- def OnExitClick(self, event):
- if self.Model.ModelModified():
- dialog = wx.MessageDialog(None, 'The contents have changed.\nDo you want to save changes?', 'EDK II Build System Framework Databsase Utility', style = wx.YES_NO | wx.YES_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION)
- Status = dialog.ShowModal()
- dialog.Destroy()
- if Status == wx.ID_YES:
- self.OnSaveClick (self)
- elif Status == wx.ID_CANCEL:
- return
- self.Model.CloseModel()
- self.Close()
-
- def OnHelpClick(self, event):
- wx.ContextHelp().BeginContextHelp()
-
- def OnAboutClick(self, event):
- AboutInfo = wx.AboutDialogInfo()
- AboutInfo.Name = 'EDK II Build System Framework Database Utility'
- AboutInfo.Version = '0.3'
- AboutInfo.Copyright = 'Copyright (c) 2006, Intel Corporation'
- AboutInfo.Description = """
- The EDK II Build System Framework Database Utility maintains FrameworkDatabase.db
- settings in an EDK II Workspace."""
- AboutInfo.WebSite = ("http://tianocore.org", "Tiano Core home page")
- AboutInfo.License = """
- All rights reserved. This program and the accompanying materials are
- licensed and made available under the terms and conditions of the BSD
- License which accompanies this distribution. The full text of the
- license may be found at http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
- BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
- EITHER EXPRESS OR IMPLIED."""
- if self.Model.Icon != None:
- AboutInfo.Icon = self.Model.Icon
- wx.AboutBox(AboutInfo)
-
-if __name__ == '__main__':
- app = wx.PySimpleApp()
- frame = Frame()
- frame.Show()
- app.MainLoop()
-