1.1 --- a/examples/Common/QtConfigurator/__init__.py Thu Oct 27 16:33:53 2005 +0000
1.2 +++ b/examples/Common/QtConfigurator/__init__.py Thu Oct 27 16:34:36 2005 +0000
1.3 @@ -33,28 +33,32 @@
1.4 # Initialisation.
1.5
1.6 def __init__(self, *args, **kw):
1.7 + pass
1.8
1.9 - # Get field data.
1.10 + def form_init(self):
1.11 +
1.12 # NOTE: This would be done for whole page updates in a Web application.
1.13
1.14 - self.populate_list(self.base_system, self.get_elements("base-system"))
1.15 - self.populate_list(self.keyboard, self.get_elements("keyboard"))
1.16 - self.populate_list(self.mouse, self.get_elements("mouse"))
1.17 - self.populate_list(self.screen, self.get_elements("screen"))
1.18 - self.reset_collection(self.hard_disks)
1.19 - self.reset_collection(self.memory_units)
1.20 - self.reset_collection(self.storage_units)
1.21 + # Get field data.
1.22 +
1.23 + self.populate_list(self.child("base_system"), self.get_elements("base-system"))
1.24 + self.populate_list(self.child("keyboard"), self.get_elements("keyboard"))
1.25 + self.populate_list(self.child("mouse"), self.get_elements("mouse"))
1.26 + self.populate_list(self.child("screen"), self.get_elements("screen"))
1.27 + self.reset_collection(self.child("hard_disks"))
1.28 + self.reset_collection(self.child("memory_units"))
1.29 + self.reset_collection(self.child("storage_units"))
1.30
1.31 # General functionality.
1.32
1.33 - def refresh(self, current_text=None):
1.34 + def form_refresh(self, current_text=None):
1.35
1.36 # Ensure consistency.
1.37 # NOTE: This would be done for whole page updates in a Web application.
1.38 # NOTE: This would also be done for page updates where the information
1.39 # NOTE: involved was important.
1.40
1.41 - current_text = current_text or self.base_system.currentText()
1.42 + current_text = current_text or self.child("base_system").currentText()
1.43
1.44 # Find the CPU socket and the interface of the current base system.
1.45 cpu_socket = None
1.46 @@ -70,7 +74,7 @@
1.47 for element in self.get_elements("cpu"):
1.48 if not element.hasAttribute("cpu-socket") or element.getAttribute("cpu-socket") == cpu_socket:
1.49 valid.append(element)
1.50 - self.populate_list(self.cpu, valid)
1.51 + self.populate_list(self.child("cpu"), valid)
1.52
1.53 # Find all valid hard disks.
1.54 valid = []
1.55 @@ -83,55 +87,55 @@
1.56 # Slots.
1.57
1.58 def baseSystemChanged(self, current_text):
1.59 - self.refresh(current_text)
1.60 + self.form_refresh(current_text)
1.61
1.62 def addHardDisk(self):
1.63 #hard_disks = self.prepare_widget("configuration", "hard-disks")
1.64 #tab_pages = hard_disks.child("tab pages")
1.65 #tab = tab_pages.child("tab")
1.66 - #self.hard_disks.addTab(tab, hard_disks.tabLabel(tab))
1.67 + #self.child("hard_disks").addTab(tab, hard_disks.tabLabel(tab))
1.68 #self.factory.connect(tab, self)
1.69 - hard_disk = self.prepare_widget("configuration", "hard-disk", self.hard_disks)
1.70 - self.hard_disks.layout().add(hard_disk)
1.71 + hard_disk = self.prepare_widget("configuration", "hard-disk", self.child("hard_disks"))
1.72 + self.child("hard_disks").layout().add(hard_disk)
1.73 hard_disk.show()
1.74 self.factory.connect(hard_disk, self)
1.75
1.76 # Perform the consistency check.
1.77 # NOTE: This is not as efficient as it could be since the general check
1.78 # NOTE: refreshes all fields, not just newly added ones.
1.79 - self.refresh()
1.80 + self.form_refresh()
1.81
1.82 def addMemoryUnit(self):
1.83 #memory_units = self.prepare_widget("configuration", "memory-units")
1.84 #tab_pages = memory_units.child("tab pages")
1.85 #tab = tab_pages.child("tab")
1.86 - #self.memory_units.addTab(tab, memory_units.tabLabel(tab))
1.87 + #self.child("memory_units").addTab(tab, memory_units.tabLabel(tab))
1.88 #self.factory.connect(tab, self)
1.89 - memory_unit = self.prepare_widget("configuration", "memory-unit", self.memory_units)
1.90 - self.memory_units.layout().add(memory_unit)
1.91 + memory_unit = self.prepare_widget("configuration", "memory-unit", self.child("memory_units"))
1.92 + self.child("memory_units").layout().add(memory_unit)
1.93 memory_unit.show()
1.94 self.factory.connect(memory_unit, self)
1.95
1.96 # Perform the consistency check.
1.97 # NOTE: This is not as efficient as it could be since the general check
1.98 # NOTE: refreshes all fields, not just newly added ones.
1.99 - self.refresh()
1.100 + self.form_refresh()
1.101
1.102 def addStorageUnit(self):
1.103 #storage_units = self.prepare_widget("configuration", "storage-units")
1.104 #tab_pages = storage_units.child("tab pages")
1.105 #tab = tab_pages.child("tab")
1.106 - #self.storage_units.addTab(tab, storage_units.tabLabel(tab))
1.107 + #self.child("storage_units").addTab(tab, storage_units.tabLabel(tab))
1.108 #self.factory.connect(tab, self)
1.109 - storage_unit = self.prepare_widget("configuration", "storage-unit", self.storage_units)
1.110 - self.storage_units.layout().add(storage_unit)
1.111 + storage_unit = self.prepare_widget("configuration", "storage-unit", self.child("storage_units"))
1.112 + self.child("storage_units").layout().add(storage_unit)
1.113 storage_unit.show()
1.114 self.factory.connect(storage_unit, self)
1.115
1.116 # Perform the consistency check.
1.117 # NOTE: This is not as efficient as it could be since the general check
1.118 # NOTE: refreshes all fields, not just newly added ones.
1.119 - self.refresh()
1.120 + self.form_refresh()
1.121
1.122 def removeHardDisk(self):
1.123 #page = self.hard_disks.currentPage()
1.124 @@ -139,7 +143,7 @@
1.125 #page.deleteLater()
1.126 remove_hard_disk = self.sender()
1.127 hard_disk = remove_hard_disk.parent()
1.128 - self.hard_disks.layout().remove(hard_disk)
1.129 + self.child("hard_disks").layout().remove(hard_disk)
1.130 hard_disk.deleteLater()
1.131
1.132 def removeMemoryUnit(self):
1.133 @@ -148,7 +152,7 @@
1.134 #page.deleteLater()
1.135 remove_memory_unit = self.sender()
1.136 memory_unit = remove_memory_unit.parent()
1.137 - self.memory_units.layout().remove(memory_unit)
1.138 + self.child("memory_units").layout().remove(memory_unit)
1.139 memory_unit.deleteLater()
1.140
1.141 def removeStorageUnit(self):
1.142 @@ -157,16 +161,16 @@
1.143 #page.deleteLater()
1.144 remove_storage_unit = self.sender()
1.145 storage_unit = remove_storage_unit.parent()
1.146 - self.storage_units.layout().remove(storage_unit)
1.147 + self.child("storage_units").layout().remove(storage_unit)
1.148 storage_unit.deleteLater()
1.149
1.150 def updateConfig(self):
1.151 - self.refresh()
1.152 + self.form_refresh()
1.153
1.154 def exportConfig(self):
1.155 print "configuration.exportConfig(): Not implemented yet"
1.156
1.157 -def get_resource_class(resource_type):
1.158 +def get_resource(resource_type, *args, **kw):
1.159
1.160 if resource_type == "PyQt":
1.161 import XSLForms.Resources.PyQtResources
1.162 @@ -174,14 +178,21 @@
1.163 class Configurator(ConfiguratorResource, QtConfigurator.Forms.Configurator, XSLForms.Resources.PyQtResources.XSLFormsResource):
1.164 def __init__(self, *args, **kw):
1.165 QtConfigurator.Forms.Configurator.__init__(self, *args, **kw)
1.166 - self.factory = XSLForms.Resources.PyQtResources.Factory(self.prepare_design("configuration"))
1.167 + XSLForms.Resources.PyQtResources.XSLFormsResource.__init__(self, "configuration")
1.168 ConfiguratorResource.__init__(self, *args, **kw)
1.169 + resource = Configurator(*args, **kw)
1.170 + resource.form_init()
1.171 +
1.172 else:
1.173 import XSLForms.Resources.PyQtWebResources
1.174 class Configurator(ConfiguratorResource, XSLForms.Resources.PyQtWebResources.XSLFormsResource):
1.175 def __init__(self, *args, **kw):
1.176 + XSLForms.Resources.PyQtWebResources.XSLFormsResource.__init__(self, "configuration")
1.177 ConfiguratorResource.__init__(self, *args, **kw)
1.178 + resource = Configurator(*args, **kw)
1.179 + # Do not initialise the resource here - it happens when a Web request is
1.180 + # received.
1.181
1.182 - return Configurator
1.183 + return resource
1.184
1.185 # vim: tabstop=4 expandtab shiftwidth=4