Changeset 7912:1f5512e0b589 in orange


Ignore:
Timestamp:
05/19/11 11:20:18 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
6b3eba8a34cd95324ec47821671bec7d19884b8e
Message:

new architecture of Model Map Widget

Location:
orange/OrangeWidgets/Unsupervised
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Unsupervised/OWNetExplorer.py

    r7362 r7912  
    3131class OWNetExplorer(OWWidget): 
    3232    settingsList = ["autoSendSelection", "spinExplicit", "spinPercentage", 
    33     "maxLinkSize", "maxVertexSize", "renderAntialiased", "labelsOnMarkedOnly", 
     33    "maxLinkSize", "minVertexSize", "maxVertexSize", "renderAntialiased", 
    3434    "invertSize", "optMethod", "lastVertexSizeColumn", "lastColorColumn", 
    3535    "lastNameComponentAttribute", "lastLabelColumns", "lastTooltipColumns", 
     
    3939    "mdsSteps", "mdsRefresh", "mdsStressDelta", "organism","showTextMiningInfo",  
    4040    "toolbarSelection", "minComponentEdgeWidth", "maxComponentEdgeWidth", 
    41     "mdsFromCurrentPos"]  
     41    "mdsFromCurrentPos", "labelsOnMarkedOnly", "tabIndex"]  
    4242     
    43     def __init__(self, parent=None, signalManager=None): 
    44         OWWidget.__init__(self, parent, signalManager, 'Net Explorer') 
     43    def __init__(self, parent=None, signalManager=None, name = 'Net Explorer',  
     44                 NetworkCanvas=OWNetworkCanvas): 
     45        OWWidget.__init__(self, parent, signalManager, name) 
    4546        #self.contextHandlers = {"": DomainContextHandler("", [ContextField("attributes", selected="markerAttributes"), ContextField("attributes", selected="tooltipAttributes"), "color"])} 
    4647        self.inputs = [("Network", orngNetwork.Network, self.setGraph, Default),  
     
    8081        self.maxLinkSize = 3 
    8182        self.maxVertexSize = 5 
     83        self.minVertexSize = 5 
    8284        self.renderAntialiased = 1 
    8385        self.labelsOnMarkedOnly = 0 
     
    111113        self.maxComponentEdgeWidth = 0 
    112114        self.mdsFromCurrentPos = 0 
     115        self.tabIndex = 0 
    113116         
    114117        self.loadSettings() 
     
    120123        self.controlArea.layout().setContentsMargins(4,4,0,4) 
    121124         
    122         self.graph = OWNetworkCanvas(self, self.mainArea, "Net Explorer") 
    123         self.graph.showMissingValues = self.showMissingValues 
    124         self.mainArea.layout().addWidget(self.graph) 
    125          
    126         self.graph.maxLinkSize = self.maxLinkSize 
    127         self.graph.maxVertexSize = self.maxVertexSize 
     125        self.networkCanvas = NetworkCanvas(self, self.mainArea, "Net Explorer") 
     126        self.networkCanvas.showMissingValues = self.showMissingValues 
     127        self.mainArea.layout().addWidget(self.networkCanvas) 
     128         
     129        self.networkCanvas.maxLinkSize = self.maxLinkSize 
     130        self.networkCanvas.minVertexSize = self.minVertexSize 
     131        self.networkCanvas.maxVertexSize = self.maxVertexSize 
    128132         
    129133        self.hcontroArea = OWGUI.widgetBox(self.controlArea, orientation='horizontal') 
    130134         
    131135        self.tabs = OWGUI.tabWidget(self.hcontroArea) 
     136        self.connect(self.tabs, SIGNAL("currentChanged(int)"), self.currentTabChanged) 
     137         
    132138        self.verticesTab = OWGUI.createTabPage(self.tabs, "Vertices") 
    133139        self.edgesTab = OWGUI.createTabPage(self.tabs, "Edges") 
    134140        self.markTab = OWGUI.createTabPage(self.tabs, "Mark") 
    135141        self.infoTab = OWGUI.createTabPage(self.tabs, "Info") 
    136         self.editTab = OWGUI.createTabPage(self.tabs, "Edit") 
     142        #self.editTab = OWGUI.createTabPage(self.tabs, "Edit") 
    137143         
    138144 
     
    163169        self.vertexSizeCombo.addItem("(none)") 
    164170         
     171        OWGUI.spin(self.vertexSizeCombo.box, self, "minVertexSize", 5, 200, 1, label="Min vertex size:", callback = self.setVertexSize) 
    165172        OWGUI.spin(self.vertexSizeCombo.box, self, "maxVertexSize", 5, 200, 1, label="Max vertex size:", callback = self.setVertexSize) 
    166173        OWGUI.checkBox(self.vertexSizeCombo.box, self, "invertSize", "Invert vertex size", callback = self.setVertexSize) 
     
    235242         
    236243        T = OWToolbars.NavigateSelectToolbar 
    237         self.zoomSelectToolbar = T(self, self.hcontroArea, self.graph, self.autoSendSelection, 
     244        self.zoomSelectToolbar = T(self, self.hcontroArea, self.networkCanvas, self.autoSendSelection, 
    238245                                  buttons = (T.IconZoom,  
    239246                                             T.IconZoomExtent,  
     
    268275        OWGUI.button(ib, self, "Degree distribution", callback=self.showDegreeDistribution, debuggingEnabled=False) 
    269276        OWGUI.button(ib, self, "Save network", callback=self.saveNetwork, debuggingEnabled=False) 
    270         OWGUI.button(ib, self, "Save image", callback=self.graph.saveToFile, debuggingEnabled=False) 
     277        OWGUI.button(ib, self, "Save image", callback=self.networkCanvas.saveToFile, debuggingEnabled=False) 
    271278         
    272279        #OWGUI.button(self.edgesTab, self, "Clustering", callback=self.clustering) 
     
    323330         
    324331        self.editAttribute = 0 
    325         self.editCombo = OWGUI.comboBox(self.editTab, self, "editAttribute", label="Edit attribute:", orientation="horizontal") 
     332        self.editCombo = OWGUI.comboBox(self.infoTab, self, "editAttribute", label="Edit attribute:", orientation="horizontal") 
    326333        self.editCombo.addItem("Select attribute") 
    327334        self.editValue = '' 
    328         OWGUI.lineEdit(self.editTab, self, "editValue", "Value:", orientation='horizontal') 
    329         OWGUI.button(self.editTab, self, "Edit", callback=self.edit) 
     335        OWGUI.lineEdit(self.infoTab, self, "editValue", "Value:", orientation='horizontal') 
     336        OWGUI.button(self.infoTab, self, "Edit", callback=self.edit) 
    330337         
    331338        self.verticesTab.layout().addStretch(1) 
     
    333340        self.markTab.layout().addStretch(1) 
    334341        self.infoTab.layout().addStretch(1) 
    335         self.editTab.layout().addStretch(1) 
    336342         
    337343        dlg = self.createColorDialog(self.colorSettings, self.selectedSchemaIndex) 
    338         self.graph.contPalette = dlg.getContinuousPalette("contPalette") 
    339         self.graph.discPalette = dlg.getDiscretePalette("discPalette") 
     344        self.networkCanvas.contPalette = dlg.getContinuousPalette("contPalette") 
     345        self.networkCanvas.discPalette = dlg.getDiscretePalette("discPalette") 
    340346         
    341347        dlg = self.createColorDialog(self.edgeColorSettings, self.selectedEdgeSchemaIndex) 
    342         self.graph.contEdgePalette = dlg.getContinuousPalette("contPalette") 
    343         self.graph.discEdgePalette = dlg.getDiscretePalette("discPalette") 
     348        self.networkCanvas.contEdgePalette = dlg.getContinuousPalette("contPalette") 
     349        self.networkCanvas.discEdgePalette = dlg.getDiscretePalette("discPalette") 
    344350         
    345351        self.setOptMethod() 
    346352        self.setFontSize() 
    347          
    348         self.resize(1000, 600) 
     353        self.tabs.setCurrentIndex(self.tabIndex) 
    349354        self.setGraph(None) 
     355        self.setMinimumWidth(900) 
     356         
     357        #self.resize(1000, 600) 
    350358        #self.controlArea.setEnabled(False) 
    351359         
     360    def currentTabChanged(self, index):  
     361        self.tabIndex = index 
     362         
    352363    def setComponentEdgeWidth(self): 
    353         self.graph.minComponentEdgeWidth = self.minComponentEdgeWidth 
    354         self.graph.maxComponentEdgeWidth = self.maxComponentEdgeWidth 
     364        self.networkCanvas.minComponentEdgeWidth = self.minComponentEdgeWidth 
     365        self.networkCanvas.maxComponentEdgeWidth = self.maxComponentEdgeWidth 
    355366        self.updateCanvas() 
    356367     
    357368    def setAutoSendAttributes(self): 
    358369        if self.autoSendAttributes: 
    359             self.graph.callbackSelectVertex = self.sendAttSelectionList 
    360         else: 
    361             self.graph.callbackSelectVertex = None 
     370            self.networkCanvas.callbackSelectVertex = self.sendAttSelectionList 
     371        else: 
     372            self.networkCanvas.callbackSelectVertex = None 
    362373 
    363374    def sendAttSelectionList(self): 
     
    367378                return 
    368379            att = str(self.comboAttSelection.currentText()) 
    369             vertices = self.graph.networkCurve.getSelectedVertices() 
     380            vertices = self.networkCanvas.networkCurve.getSelectedVertices() 
    370381             
    371382            if len(vertices) != 1: 
     
    385396            return 
    386397        att = str(self.editCombo.currentText()) 
    387         vertices = self.graph.networkCurve.getSelectedVertices() 
     398        vertices = self.networkCanvas.networkCurve.getSelectedVertices() 
    388399         
    389400        if len(vertices) == 0: 
     
    401412    def drawForce(self): 
    402413        if self.btnForce.isChecked() and self.optimization is not None: 
    403             self.graph.forceVectors = self.optimization._computeForces()  
    404         else: 
    405             self.graph.forceVectors = None 
     414            self.networkCanvas.forceVectors = self.optimization._computeForces()  
     415        else: 
     416            self.networkCanvas.forceVectors = None 
    406417             
    407418        self.updateCanvas() 
     
    413424    def rotateComponentsMDS(self): 
    414425        print "rotate" 
    415         if self.vertexDistance == None: 
     426        if self.vertexDistance is None: 
    416427            self.information('Set distance matrix to input signal') 
    417428            self.btnRotateMDS.setChecked(False) 
    418429            return 
    419430         
    420         if self.optimization == None: 
     431        if self.optimization is None: 
    421432            self.information('No network found') 
    422433            self.btnRotateMDS.setChecked(False) 
     
    446457     
    447458    def rotateComponents(self): 
    448         if self.vertexDistance == None: 
     459        if self.vertexDistance is None: 
    449460            self.information('Set distance matrix to input signal') 
    450461            self.btnRotate.setChecked(False) 
    451462            return 
    452463         
    453         if self.optimization == None: 
     464        if self.optimization is None: 
    454465            self.information('No network found') 
    455466            self.btnRotate.setChecked(False) 
     
    493504        btnCaption = btn.text() 
    494505         
    495         if self.vertexDistance == None: 
     506        if self.vertexDistance is None: 
    496507            self.information('Set distance matrix to input signal') 
    497508            btn.setChecked(False) 
    498509            return 
    499510         
    500         if self.optimization == None: 
     511        if self.optimization is None: 
    501512            self.information('No network found') 
    502513            btn.setChecked(False) 
     
    539550        self.information('') 
    540551         
    541         if matrix == None or self.optimization == None or self.optimization.graph == None: 
     552        if matrix is None or self.optimization is None or self.optimization.graph is None: 
    542553            self.vertexDistance = None 
    543554            if self.optimization: self.optimization.vertexDistance = None 
    544             if self.graph: self.graph.vertexDistance = None 
     555            if self.networkCanvas: self.networkCanvas.vertexDistance = None 
    545556            return 
    546557 
     
    549560            self.vertexDistance = None 
    550561            if self.optimization: self.optimization.vertexDistance = None 
    551             if self.graph: self.graph.vertexDistance = None 
     562            if self.networkCanvas: self.networkCanvas.vertexDistance = None 
    552563            return 
    553564         
    554565        self.vertexDistance = matrix 
    555566        if self.optimization: self.optimization.vertexDistance = matrix 
    556         if self.graph: self.graph.vertexDistance = matrix 
     567        if self.networkCanvas: self.networkCanvas.vertexDistance = matrix 
    557568         
    558569        self.updateCanvas() 
     
    560571    def setSendMarkedNodes(self): 
    561572        if self.checkSendMarkedNodes: 
    562             self.graph.sendMarkedNodes = self.sendMarkedNodes 
    563             self.sendMarkedNodes(self.graph.getMarkedVertices()) 
     573            self.networkCanvas.sendMarkedNodes = self.sendMarkedNodes 
     574            self.sendMarkedNodes(self.networkCanvas.getMarkedVertices()) 
    564575        else: 
    565576            self.send("Marked Examples", None) 
    566             self.graph.sendMarkedNodes = None 
     577            self.networkCanvas.sendMarkedNodes = None 
    567578         
    568579    def sendMarkedNodes(self, markedNodes):         
     
    581592        #print "collapse" 
    582593        self.optimization.collapse() 
    583         self.graph.addVisualizer(self.optimization) 
     594        self.networkCanvas.addVisualizer(self.optimization) 
    584595        #if not nodes is None: 
    585         #    self.graph.updateData() 
    586         #    self.graph.addSelection(nodes, False) 
     596        #    self.networkCanvas.updateData() 
     597        #    self.networkCanvas.addSelection(nodes, False) 
    587598        self.updateCanvas() 
    588599         
     
    592603         
    593604    def insideviewneighbours(self): 
    594         if self.graph.insideview == 1: 
    595             self.graph.insideviewNeighbours = self.insideViewNeighbours 
     605        if self.networkCanvas.insideview == 1: 
     606            self.networkCanvas.insideviewNeighbours = self.insideViewNeighbours 
    596607            self.optButton.setChecked(True) 
    597608            self.fr(False) 
    598609         
    599610    def insideview(self): 
    600         print self.graph.getSelectedVertices() 
    601         if len(self.graph.getSelectedVertices()) == 1: 
    602             if self.graph.insideview == 1: 
     611        print self.networkCanvas.getSelectedVertices() 
     612        if len(self.networkCanvas.getSelectedVertices()) == 1: 
     613            if self.networkCanvas.insideview == 1: 
    603614                print "insideview: 1" 
    604                 self.graph.insideview = 0 
    605                 self.graph.showAllVertices() 
     615                self.networkCanvas.insideview = 0 
     616                self.networkCanvas.showAllVertices() 
    606617                self.updateCanvas() 
    607618            else: 
    608619                print "insideview: 0" 
    609                 self.graph.insideview = 1 
    610                 self.graph.insideviewNeighbors = self.insideViewNeighbours 
     620                self.networkCanvas.insideview = 1 
     621                self.networkCanvas.insideviewNeighbors = self.insideViewNeighbours 
    611622                self.optButton.setChecked(True) 
    612623                self.fr(False) 
     
    616627         
    617628    def showComponents(self): 
    618         if self.optimization == None or self.optimization.graph == None or self.optimization.graph.items == None: 
     629        if self.optimization is None or self.optimization.graph is None or self.optimization.graph.items is None: 
    619630            return 
    620631         
     
    622633         
    623634        if not self.showComponentCombo.currentText() in vars: 
    624             self.graph.showComponentAttribute = None 
     635            self.networkCanvas.showComponentAttribute = None 
    625636            self.lastNameComponentAttribute = '' 
    626637        else: 
    627             self.graph.showComponentAttribute = self.showComponentCombo.currentText()      
    628              
    629         self.graph.drawPlotItems() 
     638            self.networkCanvas.showComponentAttribute = self.showComponentCombo.currentText()      
     639             
     640        self.networkCanvas.drawPlotItems() 
    630641         
    631642    def nameComponents(self): 
     
    634645        self.lastNameComponentAttribute = None 
    635646         
    636         if self.optimization == None or self.optimization.graph == None or self.optimization.graph.items == None: 
     647        if self.optimization is None or self.optimization.graph is None or self.optimization.graph.items is None: 
    637648            return 
    638649         
     
    766777         
    767778    def nameComponents_old(self): 
    768         if self.optimization == None or self.optimization.graph == None or self.optimization.graph.items == None: 
     779        if self.optimization is None or self.optimization.graph is None or self.optimization.graph.items is None: 
    769780            return 
    770781         
     
    981992                         
    982993    def showIndexLabels(self): 
    983         self.graph.showIndexes = self.showIndexes 
    984         self.graph.updateData() 
    985         self.graph.replot() 
     994        self.networkCanvas.showIndexes = self.showIndexes 
     995        self.networkCanvas.updateData() 
     996        self.networkCanvas.replot() 
    986997         
    987998    def showWeightLabels(self): 
    988         self.graph.showWeights = self.showWeights 
    989         self.graph.updateData() 
    990         self.graph.replot() 
     999        self.networkCanvas.showWeights = self.showWeights 
     1000        self.networkCanvas.updateData() 
     1001        self.networkCanvas.replot() 
    9911002         
    9921003    def showDistancesClick(self): 
    993         if self.visualize and self.visualize.vertexDistance == None: 
     1004        if self.visualize and self.visualize.vertexDistance is None: 
    9941005            self.warning("Vertex distance signal is not set. Distances are not known.") 
    995         self.graph.showDistances = self.showDistances 
     1006        self.networkCanvas.showDistances = self.showDistances 
    9961007         
    9971008    def showEdgeLabelsClick(self): 
    998         self.graph.showEdgeLabels = self.showEdgeLabels 
    999         self.graph.updateData() 
    1000         self.graph.replot() 
     1009        self.networkCanvas.showEdgeLabels = self.showEdgeLabels 
     1010        self.networkCanvas.updateData() 
     1011        self.networkCanvas.replot() 
    10011012         
    10021013    def labelsOnMarked(self): 
    1003         self.graph.labelsOnMarkedOnly = self.labelsOnMarkedOnly 
    1004         self.graph.updateData() 
    1005         self.graph.replot() 
     1014        self.networkCanvas.labelsOnMarkedOnly = self.labelsOnMarkedOnly 
     1015        self.networkCanvas.updateData() 
     1016        self.networkCanvas.replot() 
    10061017     
    10071018    def setSearchStringTimer(self): 
     
    10161027         
    10171028        #print self.hubs 
    1018         self.graph.tooltipNeighbours = self.hubs == 2 and self.markDistance or 0 
    1019         self.graph.markWithRed = False 
     1029        self.networkCanvas.tooltipNeighbours = self.hubs == 2 and self.markDistance or 0 
     1030        self.networkCanvas.markWithRed = False 
    10201031 
    10211032        if not self.optimization or not self.optimization.graph: 
     
    10261037 
    10271038        if hubs == 0: 
    1028             self.graph.setMarkedVertices([]) 
    1029             self.graph.replot() 
     1039            self.networkCanvas.setMarkedVertices([]) 
     1040            self.networkCanvas.replot() 
    10301041            return 
    10311042         
     
    10331044            #print "mark on given label" 
    10341045            txt = self.markSearchString 
    1035             labelText = self.graph.labelText 
    1036             self.graph.markWithRed = self.graph.nVertices > 200 
     1046            labelText = self.networkCanvas.labelText 
     1047            self.networkCanvas.markWithRed = self.networkCanvas.nVertices > 200 
    10371048             
    10381049            toMark = [i for i, values in enumerate(vgraph.items) if txt.lower() in " ".join([str(values[ndx]).decode("ascii", "ignore").lower() for ndx in range(len(vgraph.items.domain)) + vgraph.items.domain.getmetas().keys()])] 
    1039             self.graph.setMarkedVertices(toMark) 
    1040             self.graph.replot() 
     1050            self.networkCanvas.setMarkedVertices(toMark) 
     1051            self.networkCanvas.replot() 
    10411052            return 
    10421053         
    10431054        elif hubs == 2: 
    10441055            #print "mark on focus" 
    1045             self.graph.unMark() 
    1046             self.graph.tooltipNeighbours = self.markDistance 
     1056            self.networkCanvas.unMark() 
     1057            self.networkCanvas.tooltipNeighbours = self.markDistance 
    10471058            return 
    10481059 
    10491060        elif hubs == 3: 
    10501061            #print "mark selected" 
    1051             self.graph.unMark() 
    1052             self.graph.selectionNeighbours = self.markDistance 
    1053             self.graph.markSelectionNeighbours() 
    1054             return 
    1055          
    1056         self.graph.tooltipNeighbours = self.graph.selectionNeighbours = 0 
     1062            self.networkCanvas.unMark() 
     1063            self.networkCanvas.selectionNeighbours = self.markDistance 
     1064            self.networkCanvas.markSelectionNeighbours() 
     1065            return 
     1066         
     1067        self.networkCanvas.tooltipNeighbours = self.networkCanvas.selectionNeighbours = 0 
    10571068        powers = vgraph.getDegrees() 
    10581069         
     
    10601071            #print "mark at least N connections" 
    10611072            N = self.markNConnections 
    1062             self.graph.setMarkedVertices([i for i, power in enumerate(powers) if power >= N]) 
    1063             self.graph.replot() 
     1073            self.networkCanvas.setMarkedVertices([i for i, power in enumerate(powers) if power >= N]) 
     1074            self.networkCanvas.replot() 
    10641075        elif hubs == 5: 
    10651076            #print "mark at most N connections" 
    10661077            N = self.markNConnections 
    1067             self.graph.setMarkedVertices([i for i, power in enumerate(powers) if power <= N]) 
    1068             self.graph.replot() 
     1078            self.networkCanvas.setMarkedVertices([i for i, power in enumerate(powers) if power <= N]) 
     1079            self.networkCanvas.replot() 
    10691080        elif hubs == 6: 
    10701081            #print "mark more than any" 
    1071             self.graph.setMarkedVertices([i for i, power in enumerate(powers) if power > max([0]+[powers[nn] for nn in vgraph.getNeighbours(i)])]) 
    1072             self.graph.replot() 
     1082            self.networkCanvas.setMarkedVertices([i for i, power in enumerate(powers) if power > max([0]+[powers[nn] for nn in vgraph.getNeighbours(i)])]) 
     1083            self.networkCanvas.replot() 
    10731084        elif hubs == 7: 
    10741085            #print "mark more than avg" 
    1075             self.graph.setMarkedVertices([i for i, power in enumerate(powers) if power > mean([0]+[powers[nn] for nn in vgraph.getNeighbours(i)])]) 
    1076             self.graph.replot() 
     1086            self.networkCanvas.setMarkedVertices([i for i, power in enumerate(powers) if power > mean([0]+[powers[nn] for nn in vgraph.getNeighbours(i)])]) 
     1087            self.networkCanvas.replot() 
    10771088        elif hubs == 8: 
    10781089            #print "mark most" 
     
    10831094            while cutP < len(powers) and powers[sortedIdx[cutP]] == cutPower: 
    10841095                cutP += 1 
    1085             self.graph.setMarkedVertices(sortedIdx[:cutP]) 
    1086             self.graph.replot() 
     1096            self.networkCanvas.setMarkedVertices(sortedIdx[:cutP]) 
     1097            self.networkCanvas.replot() 
    10871098        elif hubs == 9: 
    10881099            self.setMarkInput() 
     
    10901101    def testRefresh(self): 
    10911102        start = time() 
    1092         self.graph.replot() 
     1103        self.networkCanvas.replot() 
    10931104        stop = time()     
    10941105        print "replot in " + str(stop - start) 
    10951106         
    10961107    def saveNetwork(self): 
    1097         if self.graph == None or self.graph.visualizer == None: 
     1108        if self.networkCanvas is None or self.networkCanvas.visualizer is None: 
    10981109            return 
    10991110         
     
    11101121                     
    11111122    def sendData(self): 
    1112         graph = self.graph.getSelectedGraph() 
    1113         vertices = self.graph.getSelectedVertices() 
     1123        graph = self.networkCanvas.getSelectedGraph() 
     1124        vertices = self.networkCanvas.getSelectedVertices() 
    11141125         
    11151126        if graph != None: 
     
    11171128                self.send("Selected Examples", graph.items) 
    11181129            else: 
    1119                 self.send("Selected Examples", self.graph.getSelectedExamples()) 
     1130                self.send("Selected Examples", self.networkCanvas.getSelectedExamples()) 
    11201131             
    11211132            #print "sendData:", self.visualize.graph.items.domain 
    1122             self.send("Unselected Examples", self.graph.getUnselectedExamples())     
     1133            self.send("Unselected Examples", self.networkCanvas.getUnselectedExamples())     
    11231134            self.send("Selected Network", graph) 
    11241135        else: 
    1125             items = self.graph.getSelectedExamples() 
     1136            items = self.networkCanvas.getSelectedExamples() 
    11261137            self.send("Selected Examples", items) 
    11271138                 
    1128             items = self.graph.getUnselectedExamples() 
     1139            items = self.networkCanvas.getUnselectedExamples() 
    11291140            self.send("Unselected Examples", items) 
    11301141         
     
    12191230       
    12201231    def setGraph(self, graph):       
    1221         if graph == None: 
     1232        if graph is None: 
    12221233            self.optimization = None 
    1223             self.graph.addVisualizer(self.optimization) 
     1234            self.networkCanvas.addVisualizer(self.optimization) 
    12241235            self.clearCombos() 
    12251236            return 
     
    12271238        #print "OWNetwork/setGraph: new visualizer..." 
    12281239        self.optimization = orngNetwork.NetworkOptimization(graph) 
    1229         self.graph.addVisualizer(self.optimization) 
    1230         self.graph.renderAntialiased = self.renderAntialiased 
    1231         self.graph.showEdgeLabels = self.showEdgeLabels 
    1232         self.graph.maxVertexSize = self.maxVertexSize 
    1233         self.graph.maxEdgeSize = self.maxLinkSize 
     1240        self.networkCanvas.addVisualizer(self.optimization) 
     1241        self.networkCanvas.renderAntialiased = self.renderAntialiased 
     1242        self.networkCanvas.showEdgeLabels = self.showEdgeLabels 
     1243        self.networkCanvas.minVertexSize = self.minVertexSize 
     1244        self.networkCanvas.maxVertexSize = self.maxVertexSize 
     1245        self.networkCanvas.maxEdgeSize = self.maxLinkSize 
    12341246        self.lastVertexSizeColumn = self.vertexSizeCombo.currentText() 
    12351247        self.lastColorColumn = self.colorCombo.currentText() 
    1236         self.graph.minComponentEdgeWidth = self.minComponentEdgeWidth 
    1237         self.graph.maxComponentEdgeWidth = self.maxComponentEdgeWidth 
     1248        self.networkCanvas.minComponentEdgeWidth = self.minComponentEdgeWidth 
     1249        self.networkCanvas.maxComponentEdgeWidth = self.maxComponentEdgeWidth 
    12381250         
    12391251         
     
    12871299        if self.frSteps > 1500: self.frSteps = 1500; 
    12881300         
    1289         self.graph.labelsOnMarkedOnly = self.labelsOnMarkedOnly 
    1290         self.graph.showWeights = self.showWeights 
    1291         self.graph.showIndexes = self.showIndexes 
     1301        self.networkCanvas.labelsOnMarkedOnly = self.labelsOnMarkedOnly 
     1302        self.networkCanvas.showWeights = self.showWeights 
     1303        self.networkCanvas.showIndexes = self.showIndexes 
    12921304        # if graph is large, set random layout, min vertex size, min edge size 
    12931305        if self.frSteps < 10: 
    12941306            self.renderAntialiased = 0 
     1307            self.minVertexSize = 5 
    12951308            self.maxVertexSize = 5 
    12961309            self.maxLinkSize = 1 
     
    12991312             
    13001313        if self.vertexSize > 0: 
    1301             self.graph.setVerticesSize(self.vertexSizeCombo.currentText(), self.invertSize) 
    1302         else: 
    1303             self.graph.setVerticesSize() 
     1314            self.networkCanvas.setVerticesSize(self.vertexSizeCombo.currentText(), self.invertSize) 
     1315        else: 
     1316            self.networkCanvas.setVerticesSize() 
    13041317             
    13051318        self.setVertexColor() 
    13061319        self.setEdgeColor() 
    13071320             
    1308         self.graph.setEdgesSize() 
     1321        self.networkCanvas.setEdgesSize() 
    13091322        self.clickedAttLstBox() 
    13101323        self.clickedTooltipLstBox() 
     
    13201333        self.error('') 
    13211334         
    1322         if self.optimization == None or self.optimization.graph == None or items == None: 
     1335        if self.optimization is None or self.optimization.graph is None or items is None: 
    13231336            return 
    13241337         
     
    13351348         
    13361349        self.setCombos() 
    1337         self.graph.updateData() 
     1350        self.networkCanvas.updateData() 
    13381351         
    13391352    def setMarkInput(self): 
     
    13441357            toMark = [i for (i,x) in enumerate(self.optimization.graph.items) if str(x[var]).strip().upper() in values] 
    13451358            #print "mark:", toMark 
    1346             self.graph.setMarkedVertices(list(toMark)) 
    1347             self.graph.replot() 
    1348              
    1349         else: 
    1350             self.graph.setMarkedVertices([]) 
    1351             self.graph.replot()             
     1359            self.networkCanvas.setMarkedVertices(list(toMark)) 
     1360            self.networkCanvas.replot() 
     1361             
     1362        else: 
     1363            self.networkCanvas.setMarkedVertices([]) 
     1364            self.networkCanvas.replot()             
    13521365     
    13531366    def markItems(self, items): 
     
    13561369        self.markInputItems = items 
    13571370         
    1358         if self.optimization == None or self.optimization.graph == None or self.optimization.graph.items == None or items == None: 
     1371        if self.optimization is None or self.optimization.graph is None or self.optimization.graph.items is None or items is None: 
    13591372            return 
    13601373         
     
    13761389               
    13771390    def setExampleSubset(self, subset): 
    1378         if self.graph == None: 
     1391        if self.networkCanvas is None: 
    13791392            return 
    13801393         
     
    13931406                        expected += 1 
    13941407                         
    1395                 hiddenNodes += range(expected-1, self.graph.nVertices) 
    1396                  
    1397                 self.graph.setHiddenNodes(hiddenNodes) 
     1408                hiddenNodes += range(expected-1, self.networkCanvas.nVertices) 
     1409                 
     1410                self.networkCanvas.setHiddenNodes(hiddenNodes) 
    13981411            except: 
    13991412                self.warning('"index" attribute does not exist in "items" table.') 
     
    14021415        # if network exists 
    14031416        if self.optimization != None: 
    1404             self.graph.updateCanvas() 
     1417            self.networkCanvas.updateCanvas() 
    14051418 
    14061419    def showDegreeDistribution(self): 
    1407         if self.optimization == None: 
     1420        if self.optimization is None: 
    14081421            return 
    14091422         
     
    14311444            self.colorSettings = dlg.getColorSchemas() 
    14321445            self.selectedSchemaIndex = dlg.selectedSchemaIndex 
    1433             self.graph.contPalette = dlg.getContinuousPalette("contPalette") 
    1434             self.graph.discPalette = dlg.getDiscretePalette("discPalette") 
     1446            self.networkCanvas.contPalette = dlg.getContinuousPalette("contPalette") 
     1447            self.networkCanvas.discPalette = dlg.getDiscretePalette("discPalette") 
    14351448             
    14361449            self.setVertexColor() 
     
    14411454            self.edgeColorSettings = dlg.getColorSchemas() 
    14421455            self.selectedEdgeSchemaIndex = dlg.selectedSchemaIndex 
    1443             self.graph.contEdgePalette = dlg.getContinuousPalette("contPalette") 
    1444             self.graph.discEdgePalette = dlg.getDiscretePalette("discPalette") 
     1456            self.networkCanvas.contEdgePalette = dlg.getContinuousPalette("contPalette") 
     1457            self.networkCanvas.discEdgePalette = dlg.getDiscretePalette("discPalette") 
    14451458             
    14461459            self.setEdgeColor() 
     
    14561469    """ 
    14571470    def optLayout(self): 
    1458         if self.optimization == None:   #grafa se ni 
     1471        if self.optimization is None:   #grafa se ni 
    14591472            self.optButton.setChecked(False) 
    14601473            return 
     
    15091522    def random(self): 
    15101523        #print "OWNetwork/random.." 
    1511         if self.optimization == None:   #grafa se ni 
     1524        if self.optimization is None:   #grafa se ni 
    15121525            return     
    15131526             
     
    15181531         
    15191532    def fr(self, weighted): 
    1520         if self.optimization == None:   #grafa se ni 
     1533        if self.optimization is None:   #grafa se ni 
    15211534            return 
    15221535               
     
    15441557                if self.stopOptimization: 
    15451558                    return 
    1546                 initTemp = self.optimization.fruchtermanReingold(k, initTemp, coolFactor, self.graph.hiddenNodes, weighted) 
     1559                initTemp = self.optimization.fruchtermanReingold(k, initTemp, coolFactor, self.networkCanvas.hiddenNodes, weighted) 
    15471560                iteration += 1 
    15481561                qApp.processEvents() 
     
    15521565            if self.stopOptimization: 
    15531566                    return 
    1554             initTemp = self.optimization.fruchtermanReingold(o, initTemp, coolFactor, self.graph.hiddenNodes, weighted) 
     1567            initTemp = self.optimization.fruchtermanReingold(o, initTemp, coolFactor, self.networkCanvas.hiddenNodes, weighted) 
    15551568            qApp.processEvents() 
    15561569            self.updateCanvas() 
     
    15601573                if self.stopOptimization: 
    15611574                    return 
    1562                 initTemp = self.optimization.fruchtermanReingold(1, initTemp, coolFactor, self.graph.hiddenNodes, weighted) 
     1575                initTemp = self.optimization.fruchtermanReingold(1, initTemp, coolFactor, self.networkCanvas.hiddenNodes, weighted) 
    15631576                iteration += 1 
    15641577                qApp.processEvents() 
     
    15691582         
    15701583    def frSpecial(self): 
    1571         if self.optimization == None:   #grafa se ni 
     1584        if self.optimization is None:   #grafa se ni 
    15721585            return 
    15731586         
     
    15791592            oldXY.append([rec[0], rec[1]]) 
    15801593        #print oldXY 
    1581         initTemp = self.optimization.fruchtermanReingold(steps, initTemp, coolFactor, self.graph.hiddenNodes) 
     1594        initTemp = self.optimization.fruchtermanReingold(steps, initTemp, coolFactor, self.networkCanvas.hiddenNodes) 
    15821595        #print oldXY 
    1583         self.graph.updateDataSpecial(oldXY) 
    1584         self.graph.replot() 
     1596        self.networkCanvas.updateDataSpecial(oldXY) 
     1597        self.networkCanvas.replot() 
    15851598                 
    15861599    def frRadial(self): 
    1587         if self.optimization == None:   #grafa se ni 
     1600        if self.optimization is None:   #grafa se ni 
    15881601            return 
    15891602         
     
    16011614        centerNdx = 0 
    16021615         
    1603         selection = self.graph.getSelection() 
     1616        selection = self.networkCanvas.getSelection() 
    16041617        if len(selection) > 0: 
    16051618            centerNdx = selection[0] 
     
    16071620        #print "center ndx: " + str(centerNdx) 
    16081621        initTemp = self.optimization.radialFruchtermanReingold(centerNdx, refreshRate, initTemp) 
    1609         self.graph.circles = [10000 / 12, 10000/12*2, 10000/12*3]#, 10000/12*4, 10000/12*5] 
    1610         #self.graph.circles = [100, 200, 300] 
     1622        self.networkCanvas.circles = [10000 / 12, 10000/12*2, 10000/12*3]#, 10000/12*4, 10000/12*5] 
     1623        #self.networkCanvas.circles = [100, 200, 300] 
    16111624        self.updateCanvas() 
    1612         self.graph.circles = [] 
     1625        self.networkCanvas.circles = [] 
    16131626         
    16141627    def circularOriginal(self): 
     
    16311644             
    16321645    def pivotMDS(self): 
    1633         if self.vertexDistance == None: 
     1646        if self.vertexDistance is None: 
    16341647            self.information('Set distance matrix to input signal') 
    16351648            return 
    16361649         
    1637         if self.optimization == None: 
     1650        if self.optimization is None: 
    16381651            self.information('No network found') 
    16391652            return 
     
    16571670        
    16581671    def clickedAttLstBox(self): 
    1659         if self.optimization == None: 
     1672        if self.optimization is None: 
    16601673            return 
    16611674         
    16621675        self.lastLabelColumns = set([self.attributes[i][0] for i in self.markerAttributes]) 
    1663         self.graph.setLabelText(self.lastLabelColumns) 
    1664         self.graph.updateData() 
    1665         self.graph.replot() 
     1676        self.networkCanvas.setLabelText(self.lastLabelColumns) 
     1677        self.networkCanvas.updateData() 
     1678        self.networkCanvas.replot() 
    16661679   
    16671680    def clickedTooltipLstBox(self): 
    1668         if self.optimization == None: 
     1681        if self.optimization is None: 
    16691682            return 
    16701683         
    16711684        self.lastTooltipColumns = set([self.attributes[i][0] for i in self.tooltipAttributes]) 
    1672         self.graph.setTooltipText(self.lastTooltipColumns) 
    1673         self.graph.updateData() 
    1674         self.graph.replot() 
     1685        self.networkCanvas.setTooltipText(self.lastTooltipColumns) 
     1686        self.networkCanvas.updateData() 
     1687        self.networkCanvas.replot() 
    16751688         
    16761689    def clickedEdgeLabelListBox(self): 
    1677         if self.optimization == None: 
     1690        if self.optimization is None: 
    16781691            return 
    16791692         
    16801693        self.lastEdgeLabelAttributes = set([self.edgeAttributes[i][0] for i in self.edgeLabelAttributes]) 
    1681         self.graph.setEdgeLabelText(self.lastEdgeLabelAttributes) 
    1682         self.graph.updateData() 
    1683         self.graph.replot() 
     1694        self.networkCanvas.setEdgeLabelText(self.lastEdgeLabelAttributes) 
     1695        self.networkCanvas.updateData() 
     1696        self.networkCanvas.replot() 
    16841697 
    16851698    def setVertexColor(self): 
    1686         if self.optimization == None: 
    1687             return 
    1688          
    1689         self.graph.setVertexColor(self.colorCombo.currentText()) 
     1699        if self.optimization is None: 
     1700            return 
     1701         
     1702        self.networkCanvas.setVertexColor(self.colorCombo.currentText()) 
    16901703        self.lastColorColumn = self.colorCombo.currentText() 
    1691         self.graph.updateData() 
    1692         self.graph.replot() 
     1704        self.networkCanvas.updateData() 
     1705        self.networkCanvas.replot() 
    16931706         
    16941707    def setEdgeColor(self): 
    1695         if self.optimization == None: 
    1696             return 
    1697          
    1698         self.graph.setEdgeColor(self.edgeColorCombo.currentText()) 
     1708        if self.optimization is None: 
     1709            return 
     1710         
     1711        self.networkCanvas.setEdgeColor(self.edgeColorCombo.currentText()) 
    16991712        self.lastEdgeColorColumn = self.edgeColorCombo.currentText() 
    1700         self.graph.updateData() 
    1701         self.graph.replot() 
     1713        self.networkCanvas.updateData() 
     1714        self.networkCanvas.replot() 
    17021715                   
    17031716    def setGraphGrid(self): 
    1704         self.graph.enableGridY(self.graphShowGrid) 
    1705         self.graph.enableGridX(self.graphShowGrid) 
     1717        self.networkCanvas.enableGridY(self.networkCanvasShowGrid) 
     1718        self.networkCanvas.enableGridX(self.networkCanvasShowGrid) 
    17061719     
    17071720    def selectAllConnectedNodes(self): 
    1708         self.graph.selectConnectedNodes(1000000) 
     1721        self.networkCanvas.selectConnectedNodes(1000000) 
    17091722         
    17101723    def setShowMissingValues(self): 
    1711         self.graph.showMissingValues = self.showMissingValues 
    1712         self.graph.updateData() 
    1713         self.graph.replot() 
     1724        self.networkCanvas.showMissingValues = self.showMissingValues 
     1725        self.networkCanvas.updateData() 
     1726        self.networkCanvas.replot() 
    17141727         
    17151728    def setMaxLinkSize(self): 
    1716         if self.optimization == None: 
    1717             return 
    1718          
    1719         self.graph.maxEdgeSize = self.maxLinkSize 
    1720         self.graph.setEdgesSize() 
    1721         self.graph.replot() 
     1729        if self.optimization is None: 
     1730            return 
     1731         
     1732        self.networkCanvas.maxEdgeSize = self.maxLinkSize 
     1733        self.networkCanvas.setEdgesSize() 
     1734        self.networkCanvas.replot() 
    17221735     
    17231736    def setVertexSize(self): 
    1724         if self.optimization == None: 
    1725             return 
    1726          
    1727         self.graph.maxVertexSize = self.maxVertexSize 
     1737        if self.optimization is None or self.networkCanvas is None: 
     1738            return 
     1739         
     1740        if self.minVertexSize > self.maxVertexSize: 
     1741            self.maxVertexSize = self.minVertexSize 
     1742         
     1743        self.networkCanvas.minVertexSize = self.minVertexSize 
     1744        self.networkCanvas.maxVertexSize = self.maxVertexSize 
    17281745        self.lastVertexSizeColumn = self.vertexSizeCombo.currentText() 
    17291746         
    17301747        if self.vertexSize > 0: 
    1731             self.graph.setVerticesSize(self.lastVertexSizeColumn, self.invertSize) 
    1732         else: 
    1733             self.graph.setVerticesSize() 
    1734              
    1735         self.graph.replot() 
     1748            self.networkCanvas.setVerticesSize(self.lastVertexSizeColumn, self.invertSize) 
     1749        else: 
     1750            self.networkCanvas.setVerticesSize() 
     1751             
     1752        self.networkCanvas.replot() 
    17361753         
    17371754    def setFontSize(self): 
    1738         if self.graph == None: 
    1739             return 
    1740          
    1741         self.graph.fontSize = self.fontSize 
    1742         self.graph.drawPlotItems() 
     1755        if self.networkCanvas is None: 
     1756            return 
     1757         
     1758        self.networkCanvas.fontSize = self.fontSize 
     1759        self.networkCanvas.drawPlotItems() 
    17431760         
    17441761    def setRenderAntialiased(self): 
    1745         self.graph.renderAntialiased = self.renderAntialiased 
    1746         self.graph.updateData() 
    1747         self.graph.replot() 
     1762        self.networkCanvas.renderAntialiased = self.renderAntialiased 
     1763        self.networkCanvas.updateData() 
     1764        self.networkCanvas.replot() 
    17481765         
    17491766    def sendReport(self): 
     
    17671784                             ("Iterations", self.frSteps)]) 
    17681785        self.reportSection("Graph") 
    1769         self.reportImage(self.graph.saveToFileDirect)         
     1786        self.reportImage(self.networkCanvas.saveToFileDirect)         
    17701787         
    17711788         
  • orange/OrangeWidgets/Unsupervised/OWNetworkCanvas.py

    r7892 r7912  
    12541254      self.updateData() 
    12551255      self.replot()   
    1256       print "update" 
    12571256   
    12581257  def zoomExtent(self): 
Note: See TracChangeset for help on using the changeset viewer.