def Generate(self): d = FilesGenerator() for generator in self.parent().generators.values(): d.ui.generators.addItem(generator.GetName()) d.exec_() if not d.result(): return resources = ResourceGraph() if not d.result(): return if d.ui.topologies.currentIndex()==0: d1 = TreeDialog(1) elif d.ui.topologies.currentIndex()==1: d1 = TreeDialog(2) elif d.ui.topologies.currentIndex()==2: d1 = TreeDialog(3) d1.exec_() if not d1.result(): return dict = d1.GetResult() if dict["type"]==1: resources.GenerateCommonStructure(dict) elif dict["type"]==2: resources.GenerateTree2(dict) elif dict["type"]==3: resources.GenerateTree3(dict) generator = self.parent().generators.values()[d.ui.generators.currentIndex()] data = generator.GetSettings() d2 = ParamsDialog(data, self) d2.setWindowTitle("Demand Params Lower Bound") d2.exec_() if d2.result() != QDialog.Accepted: return lower = d2.data d3 = ParamsDialog(data, self) d3.setWindowTitle("Demand Params Upper Bound") d3.exec_() if d3.result() != QDialog.Accepted: return upper = d3.data count = int(d.ui.num.text()) for j in range(count): params = [v for v in lower] for i in range(len(params)): params[i][1] = lower[i][1] + (upper[i][1] - lower[i][1]) / count generator.UpdateSettings(params) project = Project() project.demands = generator.Generate(resources) project.resources = resources name = "Project" + str(j) + ".dcxml" project.Save(name) it = QTreeWidgetItem(self.ui.projects, [name]) self.projects[it] = name self.changed = True
def generateTopology(self): self.New() d = TopologyDialog() d.exec_() if not d.result(): return if d.ui.common.isChecked(): d1 = TreeDialog(1) elif d.ui.tree2.isChecked(): d1 = TreeDialog(2) elif d.ui.tree3.isChecked(): d1 = TreeDialog(3) d1.exec_() if not d1.result(): return dict = d1.GetResult() if dict["type"]==1: self.resources.GenerateCommonStructure(dict) elif dict["type"]==2: self.resources.GenerateTree2(dict) elif dict["type"]==3: self.resources.GenerateTree3(dict) self.setData(self.resources)