def GenerateRequests(self):
     generator = self.generators[self.sender()]
     data = generator.GetSettings()
     d = ParamsDialog(data, self,
                      generator.GetName() == "Tightly coupled",
                      generator.GetName() == "Tightly coupled")
     d.exec_()
     if d.result() == QDialog.Accepted:
         generator.UpdateSettings(d.data)
         #TODO: populate the table with new demands
         self.project.demands = generator.Generate(self.project.resources)
         self.ui.demands.clear()
         self.demands = {}
         for demand in self.project.demands:
             it = QTreeWidgetItem(
                 self.ui.demands,
                 QStringList([
                     demand.id,
                     str(demand.startTime),
                     str(demand.endTime),
                     self.tr("No"),
                     self.tr("No")
                 ]))
             cb = QComboBox()
             cb.addItems([self.tr("No"), self.tr("Yes")])
             self.ui.demands.setItemWidget(it, 3, cb)
             QObject.connect(cb, SIGNAL("currentIndexChanged(int)"),
                             it.emitDataChanged)
             it.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled
                         | Qt.ItemIsSelectable)
             self.demands[it] = demand
 def GenerateRequests(self):
     generator = self.generators[self.sender()]
     data = generator.GetSettings()
     d = ParamsDialog(data, self, generator.GetName()=="Tightly coupled", generator.GetName()=="Tightly coupled")
     d.exec_()
     if d.result() == QDialog.Accepted:
         generator.UpdateSettings(d.data)
         #TODO: populate the table with new demands
         self.project.demands = generator.Generate(self.project.resources)
         self.ui.demands.clear()
         self.demands = {}
         for demand in self.project.demands:
             it = QTreeWidgetItem(self.ui.demands, QStringList([demand.id, str(demand.startTime), str(demand.endTime), self.tr("No"), self.tr("No")]))
             cb = QComboBox()
             cb.addItems([self.tr("No"),self.tr("Yes")])
             self.ui.demands.setItemWidget(it,3,cb)
             QObject.connect(cb, SIGNAL("currentIndexChanged(int)"), it.emitDataChanged)
             it.setFlags(Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable)
             self.demands[it] = demand
示例#3
0
 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
示例#4
0
 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