Changeset 8425:c9e8fa6d9f89 in orange


Ignore:
Timestamp:
07/23/11 14:56:25 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
a1460cf120e28f35073aab9ce3c2630f8fa0a0f0
Message:

Use the new NetworkCurve and its items in the Python NxText

Files:
4 edited

Legend:

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

    r8420 r8425  
    1414from numpy import * 
    1515from plot.owplot import * 
     16from plot.owpoint import * 
    1617from orngScaleScatterPlotData import * 
    1718import orangeplot 
    1819 
    1920class NodeItem(orangeplot.NodeItem): 
    20     def __init__(self, index=-1): 
    21         orangeplot.NodeItem.__init__(self) 
    22         self.index = index 
    23         self.marked = False 
    24         self.show = True 
    25         self.highlight = False 
    26         self.selected = False 
    27         self.label = '' 
    28         self.tooltip = '' 
    29         self.uuid = 0 
    30          
    31         self.image = None 
    32         self.pen = QPen(Qt.blue, 1) 
    33         self.pen.setJoinStyle(Qt.RoundJoin) 
    34         self.nocolor = Qt.white 
    35         self.color = Qt.blue 
    36         self.size = 5 
    37         self.style = 1 
    38          
    39         self.x = random.random() 
    40         self.y = random.random() 
    41      
     21    def __init__(self, index, x, y, parent=None): 
     22        orangeplot.NodeItem.__init__(self, index, OWPoint.Ellipse, Qt.blue, 5, parent) 
     23        self.set_x(x) 
     24        self.set_y(y) 
     25         
    4226class EdgeItem(orangeplot.EdgeItem): 
    43     def __init__(self, u=None, v=None, weight=0, arrowu=0, arrowv=0,  
    44                  links_index=None, label=''): 
    45         orangeplot.EdgeItem.__init__(self) 
    46         self.u = u 
    47         self.v = v 
    48         self.links_index = int(links_index) if links_index is not None else -1 
    49         self.arrowu = arrowu 
    50         self.arrowv = arrowv 
    51         self.weight = weight 
    52         self.label = label 
    53  
    54         self.pen = QPen(Qt.lightGray, 1) 
    55         self.pen.setCapStyle(Qt.RoundCap) 
     27    def __init__(self, u=None, v=None, weight=1, links_index=0, label='', parent=None): 
     28        orangeplot.EdgeItem.__init__(self, u, v, parent) 
     29        self.set_u(u) 
     30        self.set_v(v) 
     31        self.set_weight(weight) 
     32        self.set_links_index(links_index) 
    5633 
    5734class NetworkCurve(orangeplot.NetworkCurve): 
     
    6138      self.showEdgeLabels = 0 
    6239       
    63       self.nodes = {} 
    64       self.edges = [] 
    65        
    66   def get_nodes(self): 
    67       return self.nodes 
    68          
    69   def get_edges(self): 
    70       return self.edges 
    71    
    72   def get_nodes_2(self): 
    73       return self.nodes 
    74          
    75   def get_edges_2(self): 
    76       return self.edges 
    77  
    7840  def move_selected_nodes(self, dx, dy): 
    7941    selected = self.get_selected_nodes() 
  • orange/OrangeWidgets/Prototypes/OWNxTestQt.py

    r8385 r8425  
    2424        curve = self.canvas.networkCurve 
    2525         
    26         for i in range(100): 
    27             n = NodeItem(i) 
    28             n.x = random.random() 
    29             n.y = random.random() 
    30             qDebug('Adding node ' + str(n.x) + ' ' + str(n.y)) 
    31             curve.nodes[i] = n 
    32              
    33         qDebug(str(len(curve.nodes))) 
    34              
    35         for i in range(0, 100, 5): 
    36             for j in range(0, 100, 7): 
    37                 if j == i: 
    38                     continue 
    39                 else: 
    40                     e = EdgeItem() 
    41                     e.u = curve.nodes[i] 
    42                     e.v = curve.nodes[j] 
    43                     curve.edges.append(e) 
     26         
     27        nodes_to_add = dict((i, NodeItem(i, random.random(), random.random(), parent=curve)) for i in range(30)) 
     28        curve.set_nodes(nodes_to_add) 
     29         
     30        edges_to_add = [ EdgeItem(nodes_to_add[2*i], nodes_to_add[3*i], parent=curve) for i in range(10) ] 
     31        curve.set_edges(edges_to_add) 
     32 
    4433         
    4534        curve.updateProperties() 
  • source/orangeplot/networkcurve.cpp

    r8423 r8425  
    2929{ 
    3030    m_graph_transform = transform; 
     31    set_coordinates(m_x, m_y); 
    3132} 
    3233 
     
    206207    int m, n; 
    207208 
    208     Nodes::ConstIterator nit = m_nodes.constBegin(); 
    209     Nodes::ConstIterator nend = m_nodes.constEnd(); 
    210     for (; nit != nend; ++nit) 
    211     { 
    212         NodeItem* node = nit.value(); 
    213         node->setPos( t.map(QPointF(node->x(), node->y())) ); 
    214     } 
     209    updateItems(m_nodes, NodeUpdater(t), UpdatePosition); 
    215210     
    216211    QLineF line; 
  • source/orangeplot/networkcurve.h

    r8423 r8425  
    9797}; 
    9898 
     99class NodeUpdater 
     100{ 
     101public: 
     102    NodeUpdater(const QTransform& t) : m_t(t) {} 
     103    void operator()(NodeItem* item) { item->set_graph_transform(m_t); } 
     104private: 
     105    QTransform m_t; 
     106}; 
     107 
    99108class NetworkCurve : public Curve 
    100109{ 
Note: See TracChangeset for help on using the changeset viewer.