Пример #1
0
    def resetfunklet(self):
        if self.enable_multi.state():
            #change all selected
            for parmkey in self._parmlist:
                #      if not self._parmdict[parmkey]['publish']:
                if self.parmtable.isRowSelected(
                        self._parmdict[parmkey]['row']):
                    #set to 0
                    funklet = self._parmdict[parmkey]['funklet']
                    coeff = array([[0.]])
                    if funklet:
                        coeff = funklet.coeff
                    if is_scalar(coeff):
                        coeff = array([[0.]])
                    else:
                        if is_scalar(coeff[0]):
                            for i in range(len(coeff)):
                                coeff[i] = 0.
                        else:
                            for i in range(len(coeff)):
                                for j in range(len(coeff[0])):

                                    coeff[i][j] = 0.
                    funklet.coeff = coeff
                    self._parmdict[parmkey]['funklet'] = funklet
                    #            print "setting funklet ",funklet;
                    meqds.set_node_state(parmkey, funklet=funklet)
            self.reexecute()

        else:
            if not self._currentparm:
                return
            self._currentparm.resettozero()
Пример #2
0
    def resetfunklet(self):
        if self.enable_multi.state():
            # change all selected
            for parmkey in self._parmlist:
                #      if not self._parmdict[parmkey]['publish']:
                if self.parmtable.isRowSelected(self._parmdict[parmkey]["row"]):
                    # set to 0
                    funklet = self._parmdict[parmkey]["funklet"]
                    coeff = array([[0.0]])
                    if funklet:
                        coeff = funklet.coeff
                    if is_scalar(coeff):
                        coeff = array([[0.0]])
                    else:
                        if is_scalar(coeff[0]):
                            for i in range(len(coeff)):
                                coeff[i] = 0.0
                        else:
                            for i in range(len(coeff)):
                                for j in range(len(coeff[0])):

                                    coeff[i][j] = 0.0
                    funklet.coeff = coeff
                    self._parmdict[parmkey]["funklet"] = funklet
                    #            print "setting funklet ",funklet;
                    meqds.set_node_state(parmkey, funklet=funklet)
            self.reexecute()

        else:
            if not self._currentparm:
                return
            self._currentparm.resettozero()
Пример #3
0
 def update_default_selected(self, funklet):
     newfunkclass = "MeqPolc"
     if hasattr(funklet, "class"):
         newfunkclass = getattr(funklet, "class")
     for parmkey in self._parmlist:
         if self.parmtable.isRowSelected(self._parmdict[parmkey]["row"]):
             funkletclass = self._parmdict[parmkey]["defaultclass"]
             if not newfunkclass == funkletclass:
                 # cannot change class
                 continue
             #        print "setting def_funklet ",funklet;
             meqds.set_node_state(parmkey, default_funklet=funklet)
Пример #4
0
 def update_selected(self, funklet):
     newfunkclass = 'MeqPolc'
     if hasattr(funklet, 'class'):
         newfunkclass = getattr(funklet, 'class')
     for parmkey in self._parmlist:
         if self.parmtable.isRowSelected(self._parmdict[parmkey]['row']):
             funkletclass = self._parmdict[parmkey]['class']
             if not newfunkclass == funkletclass:
                 # cannot change class
                 continue
             self._parmdict[parmkey]['funklet'] = funklet
             #        print "setting funklet ",funklet;
             meqds.set_node_state(parmkey, funklet=funklet)
Пример #5
0
    def updateC00(self):
        ok = True
        change = self.c00Text.text().toDouble()[0]
        self.changeC00(change)

        if self.enable_multi.state():
            #change all selected
            for parmkey in self._parmlist:
                #      if not self._parmdict[parmkey]['publish']:
                if self.parmtable.isRowSelected(
                        self._parmdict[parmkey]['row']):
                    #set c00
                    funklet = self._parmdict[parmkey]['funklet']
                    coeff = array([[0.]])
                    if funklet:
                        coeff = funklet.coeff
                    if is_scalar(coeff):
                        coeff = array([[self.c00]])
                        #            coeff=[[coeff]];
                    else:
                        if is_scalar(coeff[0]):
                            #            ncoeff=[];
                            #            for i in range(len(coeff)):
                            #              ncoeff.append([coeff[i]]);
                            #            coeff=ncoeff;
                            coeff[0] = self.c00
                        else:
                            if is_scalar(coeff[0][0]):
                                coeff[0][0] = self.c00

                    funklet.coeff = coeff
                    self._parmdict[parmkey]['funklet'] = funklet

                    meqds.set_node_state(parmkey, funklet=funklet)
            self.reexecute()
        else:
            if not self._currentparm:
                return
            self._currentparm.setc00(self.c00)
Пример #6
0
    def updateC00(self):
        ok = True
        change = self.c00Text.text().toDouble()[0]
        self.changeC00(change)

        if self.enable_multi.state():
            # change all selected
            for parmkey in self._parmlist:
                #      if not self._parmdict[parmkey]['publish']:
                if self.parmtable.isRowSelected(self._parmdict[parmkey]["row"]):
                    # set c00
                    funklet = self._parmdict[parmkey]["funklet"]
                    coeff = array([[0.0]])
                    if funklet:
                        coeff = funklet.coeff
                    if is_scalar(coeff):
                        coeff = array([[self.c00]])
                        #            coeff=[[coeff]];
                    else:
                        if is_scalar(coeff[0]):
                            #            ncoeff=[];
                            #            for i in range(len(coeff)):
                            #              ncoeff.append([coeff[i]]);
                            #            coeff=ncoeff;
                            coeff[0] = self.c00
                        else:
                            if is_scalar(coeff[0][0]):
                                coeff[0][0] = self.c00

                    funklet.coeff = coeff
                    self._parmdict[parmkey]["funklet"] = funklet

                    meqds.set_node_state(parmkey, funklet=funklet)
            self.reexecute()
        else:
            if not self._currentparm:
                return
            self._currentparm.setc00(self.c00)
Пример #7
0
    def leftMouse(self, row, col):
        #check if solvable paramters are updated
        if row < 0 or row > len(self._parmlist) or col > len(
                list(self._solverdict.keys())) + solverstart:
            #nothing
            return
        if col < solverstart:
            if not row == self._parmindex:
                self.parmSetIndex()
            #nothing
            return
        checkbutton = self.parmtable.item(row, col)
        if not checkbutton:
            return
        parmkey = str(self.parmtable.text(row, 0))
        parm = self._parmdict[parmkey]['node']
        solver = str(self.parmtable.horizontalHeader().label(col))
        solvers = self._parmdict[parmkey]['solvers']
        if checkbutton.isChecked():
            checkbutton.setChecked(False)
        else:
            checkbutton.setChecked(True)

        updateneeded = False
        if solver in solvers:
            if solvers[solver] and not checkbutton.isChecked():
                solvers[solver] = 0
                self._parmdict[parmkey]['solvers'] = solvers
                updateneeded = True
            if not solvers[solver] and checkbutton.isChecked():
                solvers[solver] = 1
                self._parmdict[parmkey]['solvers'] = solvers
                updateneeded = True

        if updateneeded:
            nodegroups = []
            for solver in list(self._solverdict.keys()):
                group = self._solverdict[solver]['group']
                if solver in solvers:
                    if solvers[solver]:
                        nodegroups.append(group)
            dmigroups = make_hiid_list(nodegroups)
            if nodegroups:
                meqds.set_node_state(parm, node_groups=dmigroups)
            else:
                meqds.set_node_state(parm, node_groups=hiid(0))
                meqds.set_node_state(parm, solvable=False)
Пример #8
0
    def leftMouse(self, row, col):
        # check if solvable paramters are updated
        if row < 0 or row > len(self._parmlist) or col > len(self._solverdict.keys()) + solverstart:
            # nothing
            return
        if col < solverstart:
            if not row == self._parmindex:
                self.parmSetIndex()
            # nothing
            return
        checkbutton = self.parmtable.item(row, col)
        if not checkbutton:
            return
        parmkey = str(self.parmtable.text(row, 0))
        parm = self._parmdict[parmkey]["node"]
        solver = str(self.parmtable.horizontalHeader().label(col))
        solvers = self._parmdict[parmkey]["solvers"]
        if checkbutton.isChecked():
            checkbutton.setChecked(False)
        else:
            checkbutton.setChecked(True)

        updateneeded = False
        if solvers.has_key(solver):
            if solvers[solver] and not checkbutton.isChecked():
                solvers[solver] = 0
                self._parmdict[parmkey]["solvers"] = solvers
                updateneeded = True
            if not solvers[solver] and checkbutton.isChecked():
                solvers[solver] = 1
                self._parmdict[parmkey]["solvers"] = solvers
                updateneeded = True

        if updateneeded:
            nodegroups = []
            for solver in self._solverdict.keys():
                group = self._solverdict[solver]["group"]
                if solvers.has_key(solver):
                    if solvers[solver]:
                        nodegroups.append(group)
            dmigroups = make_hiid_list(nodegroups)
            if nodegroups:
                meqds.set_node_state(parm, node_groups=dmigroups)
            else:
                meqds.set_node_state(parm, node_groups=hiid(0))
                meqds.set_node_state(parm, solvable=False)