Changeset 7920:8ab330f97069 in orange


Ignore:
Timestamp:
05/19/11 13:30:16 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
1cf5e49913bec2b5d96e2dcbecf9c53638be93c7
Message:

New model type support.

Location:
orange/OrangeWidgets/Prototypes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Prototypes/OWModelEmbedder.py

    r7909 r7920  
    3737        self.model = None 
    3838         
    39         self.resize(800, 600) 
     39        self.loadSettings() 
     40         
    4041        self.widgets = {} 
    4142         
  • orange/OrangeWidgets/Prototypes/OWModelMap.py

    r7914 r7920  
    305305        self.networkCanvas.maxVertexSize = self.maxVertexSize 
    306306        self.networkCanvas.invertEdgeSize = 1 
     307        self.networkCanvas.callbackSelectVertex = self.sendNetworkSignals 
    307308         
    308309        # MARTIX CONTROLS 
     
    444445    def setVertexStyle(self): 
    445446        for v in self.networkCanvas.vertices: 
    446             auc = self.matrix.items[v.index]["AUC"].value 
     447            auc = self.matrix.items[v.index] 
    447448            v.style = 1 #auc             
    448449         
    449450    def sendNetworkSignals(self): 
    450         if self.graph != None and self.graph.items != None: 
    451             selection = self.networkCanvas.getSelectedVertices() 
    452              
    453             if len(selection) == 1: 
    454                 model = self.graph.items[selection[0]] 
    455                 uuid = model["uuid"].value 
    456                 method, vizr_result, projection_points, classifier, attrs = self.matrix.results[uuid] 
     451        self.warning() 
     452         
     453        if self.graph is None or self.graph.items is None or self.matrix is None: 
     454            self.send("Model", None) 
     455            self.send("Selected Models", None) 
     456            return 
     457         
     458        if len(self.graph.items) != self.matrix.dim: 
     459            self.warning('Network items and matrix results not of equal length.') 
     460            self.send("Model", None) 
     461            self.send("Selected Models", None) 
     462            return 
     463                     
     464        selection = self.networkCanvas.getSelectedVertices() 
     465         
     466        if len(selection) == 1: 
     467            modelInstance = self.graph.items[selection[0]] 
     468            # modelInfo - Python Dict; keys: method, classifier, probabilities, 
     469            # results, XAnchors, YAnchors, attributes 
     470            modelInfo = self.matrix.results[selection[0]] 
     471            uuid = modelInstance["uuid"].value 
     472            #method, vizr_result, projection_points, classifier, attrs = self.matrix.results[uuid] 
     473             
     474            if "YAnchors" in modelInfo and "XAnchors" in modelInfo: 
     475                if not modelInstance.domain.hasmeta("anchors"): 
     476                    modelInstance.domain.addmeta(orange.newmetaid(), orange.PythonVariable("anchors")) 
     477                modelInstance["anchors"] = (modelInfo["XAnchors"], modelInfo["YAnchors"]) 
    457478                 
    458                 if len(vizr_result) > 5 and type(vizr_result[5]) == type({}) and "YAnchors" in vizr_result[5] and "XAnchors" in vizr_result[5]: 
    459                     if not model.domain.hasmeta("anchors"): 
    460                         model.domain.addmeta(orange.newmetaid(), orange.PythonVariable("anchors")) 
    461                     model["anchors"] = (vizr_result[5]["XAnchors"], vizr_result[5]["YAnchors"]) 
    462                      
    463                 if classifier: 
    464                     if not model.domain.hasmeta("classifier"): 
    465                         model.domain.addmeta(orange.newmetaid(), orange.PythonVariable("classifier")) 
    466                     model["classifier"] = classifier 
    467                     self.send("Classifier", classifier) 
    468                      
    469                 self.send("Model", model) 
    470                 self.send("Selected Models", self.graph.items.getitems(selection)) 
    471             elif len(selection) > 1:  
    472                 self.send("Model", None) 
    473                 self.send("Selected Models", self.graph.items.getitems(selection)) 
    474             else: 
    475                 self.send("Model", None) 
    476                 self.send("Selected Models", None) 
     479            if 'classifier' in modelInfo and modelInfo['classifier'] is not None: 
     480                if not modelInstance.domain.hasmeta("classifier"): 
     481                    modelInstance.domain.addmeta(orange.newmetaid(), orange.PythonVariable("classifier")) 
     482                modelInstance["classifier"] = modelInfo['classifier'] 
     483                self.send("Classifier", modelInfo['classifier']) 
     484                 
     485            self.send("Model", modelInstance) 
     486            self.send("Selected Models", self.graph.items.getitems(selection)) 
     487        elif len(selection) > 1:  
     488            self.send("Model", None) 
     489            self.send("Selected Models", self.graph.items.getitems(selection)) 
    477490        else: 
    478491            self.send("Model", None) 
Note: See TracChangeset for help on using the changeset viewer.