mirror of https://gitlab.com/pamhyr/pamhyr2
network: Minor change and delete dead code.
parent
892798bcb2
commit
21e936bf6a
|
|
@ -3,7 +3,9 @@
|
|||
from model.network.Node import Node
|
||||
|
||||
class Edge(object):
|
||||
def __init__(self, id:str, name:str, node1:Node = None, node2:Node = None):
|
||||
def __init__(self, id:str, name:str,
|
||||
node1:Node = None,
|
||||
node2:Node = None):
|
||||
super(Edge, self).__init__()
|
||||
|
||||
self.id = id
|
||||
|
|
@ -14,9 +16,6 @@ class Edge(object):
|
|||
|
||||
self.enable = True
|
||||
|
||||
def __repr__(self):
|
||||
return f"Edge {{id: {self.id}, enable: {self.enable}, name: {self.name}, self.node1: {self.node1}, self.node2: {self.node2},}}"
|
||||
|
||||
def __getitem__(self, name):
|
||||
ret = None
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,12 @@ class Graph(object):
|
|||
)
|
||||
|
||||
def node(self, node_name:str):
|
||||
return list(filter(lambda n: n.name == node_name, self._nodes))[0]
|
||||
return list(
|
||||
filter(
|
||||
lambda n: n.name == node_name,
|
||||
self._nodes
|
||||
)
|
||||
)[0]
|
||||
|
||||
def add_node(self, x:float = 0.0, y:float = 0.0):
|
||||
node = Node(
|
||||
|
|
@ -62,7 +67,9 @@ class Graph(object):
|
|||
|
||||
def add_edge(self, n1:Node, n2:Node):
|
||||
# This edge already exists ?
|
||||
if list(filter(lambda e: e.node1 == n1 and e.node2 == n2, self._edges)):
|
||||
if list(filter(lambda e: (e.node1 == n1 and
|
||||
e.node2 == n2),
|
||||
self._edges)):
|
||||
return None
|
||||
|
||||
edge = Edge(self._edges_ids, "", n1, n2)
|
||||
|
|
@ -71,10 +78,20 @@ class Graph(object):
|
|||
return edge
|
||||
|
||||
def remove_node(self, node_name:str):
|
||||
self._nodes = list(filter(lambda n: n.name != node_name, self._nodes))
|
||||
self._nodes = list(
|
||||
filter(
|
||||
lambda n: n.name != node_name,
|
||||
self._nodes
|
||||
)
|
||||
)
|
||||
|
||||
def remove_edge(self, edge_name:str):
|
||||
self._edges = list(filter(lambda e: e.name != edge_name, self._edges))
|
||||
self._edges = list(
|
||||
filter(
|
||||
lambda e: e.name != edge_name,
|
||||
self._edges
|
||||
)
|
||||
)
|
||||
|
||||
def is_upstream_node(self, node):
|
||||
return reduce(
|
||||
|
|
@ -94,7 +111,8 @@ class Graph(object):
|
|||
return reduce(
|
||||
lambda acc, e: (
|
||||
acc or (
|
||||
(e.node1 == node or e.node2 == node)
|
||||
(e.node1 == node or
|
||||
e.node2 == node)
|
||||
and e.enable
|
||||
)
|
||||
),
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ class Node(object):
|
|||
self.name = name
|
||||
self.pos = Point(x, y)
|
||||
|
||||
def __repr__(self):
|
||||
return f"Node {{id: {self.id}, name: {self.name}}}"
|
||||
|
||||
def __getitem__(self, name):
|
||||
ret = None
|
||||
|
||||
|
|
|
|||
|
|
@ -2,24 +2,23 @@
|
|||
|
||||
import math
|
||||
|
||||
from PyQt5.QtCore import (
|
||||
Qt, QPoint, QPointF, QSizeF, QLineF, QRectF,
|
||||
pyqtSlot, pyqtSignal,
|
||||
)
|
||||
from PyQt5.QtGui import (
|
||||
QPainter, QColor, QBrush, QPen, QPainterPath,
|
||||
QPolygonF,
|
||||
)
|
||||
from PyQt5.QtWidgets import (
|
||||
QApplication,QGraphicsScene, QGraphicsView,
|
||||
QGraphicsItem, QGraphicsTextItem,
|
||||
)
|
||||
|
||||
from model.network.Node import Node
|
||||
from model.network.Edge import Edge
|
||||
from model.network.Graph import Graph
|
||||
|
||||
from PyQt5.QtCore import (
|
||||
qAbs, QLineF, QPointF, QPoint, qrand, QRectF, QSizeF, qsrand,
|
||||
Qt, QTime, pyqtSlot, pyqtSignal,
|
||||
)
|
||||
from PyQt5.QtGui import (
|
||||
QBrush, QColor, QLinearGradient, QPainter,
|
||||
QPainterPath, QPen, QPolygonF, QRadialGradient,
|
||||
QFont,
|
||||
)
|
||||
from PyQt5.QtWidgets import (
|
||||
QApplication, QGraphicsItem, QGraphicsScene,
|
||||
QGraphicsView, QStyle, QGraphicsTextItem,
|
||||
)
|
||||
|
||||
class NodeItem(QGraphicsItem):
|
||||
Type = QGraphicsItem.UserType + 1
|
||||
|
||||
|
|
@ -51,7 +50,8 @@ class NodeItem(QGraphicsItem):
|
|||
def paint(self, painter, option, widget):
|
||||
painter.setPen(Qt.NoPen)
|
||||
|
||||
# Select in function of node position in graph or status
|
||||
# Select color in function of node position in graph and
|
||||
# status
|
||||
color = Qt.yellow
|
||||
if self.graph.selected_new_edge_src_node() == self:
|
||||
color = Qt.darkRed
|
||||
|
|
@ -85,7 +85,8 @@ class NodeItem(QGraphicsItem):
|
|||
class EdgeItem(QGraphicsItem):
|
||||
Type = QGraphicsItem.UserType + 2
|
||||
|
||||
def __init__(self, src_node_item, dest_node_item, edge, graph_widget):
|
||||
def __init__(self, src_node_item, dest_node_item,
|
||||
edge, graph_widget):
|
||||
super(EdgeItem, self).__init__()
|
||||
|
||||
self.src_node = src_node_item
|
||||
|
|
@ -95,21 +96,12 @@ class EdgeItem(QGraphicsItem):
|
|||
self.graph = graph_widget
|
||||
|
||||
self.setAcceptedMouseButtons(Qt.NoButton)
|
||||
self.adjust()
|
||||
|
||||
def type(self):
|
||||
return Edge.Type
|
||||
|
||||
def adjust(self):
|
||||
line = QLineF(
|
||||
self.mapFromItem(self.src_node, 0, 0),
|
||||
self.mapFromItem(self.dest_node, 0, 0)
|
||||
)
|
||||
length = line.length()
|
||||
|
||||
self.prepareGeometryChange()
|
||||
|
||||
def boundingRect(self):
|
||||
# Rectangle of edge for display update
|
||||
pen_width = 2.0
|
||||
extra = (pen_width + 5) / 2.0
|
||||
|
||||
|
|
@ -122,6 +114,7 @@ class EdgeItem(QGraphicsItem):
|
|||
).normalized().adjusted(-extra, -extra, extra, extra)
|
||||
|
||||
def shape(self):
|
||||
# Shape around edge for mouse selection
|
||||
vec = self.dest_node.pos() - self.src_node.pos()
|
||||
vec = vec * (5 / math.sqrt(QPointF.dotProduct(vec, vec)))
|
||||
extra = QPointF(vec.y(), -vec.x())
|
||||
|
|
@ -135,9 +128,9 @@ class EdgeItem(QGraphicsItem):
|
|||
return result
|
||||
|
||||
def paint(self, painter, option, widget):
|
||||
# Draw shape of the edge
|
||||
# color = QColor(Qt.white)
|
||||
# color.setAlpha(128)
|
||||
|
||||
# painter.setBrush(color)
|
||||
# painter.drawPath(self.shape())
|
||||
|
||||
|
|
@ -371,7 +364,8 @@ class GraphWidget(QGraphicsView):
|
|||
node = item.node
|
||||
edges = list(
|
||||
filter(
|
||||
lambda ie: ie.edge.node1 == node or ie.edge.node2 == node,
|
||||
lambda ie: (ie.edge.node1 == node or
|
||||
ie.edge.node2 == node),
|
||||
self.edge_items
|
||||
)
|
||||
)
|
||||
|
|
@ -463,7 +457,8 @@ class GraphWidget(QGraphicsView):
|
|||
"""
|
||||
edges = list(
|
||||
filter(
|
||||
lambda ie: ie.edge.node1 == node.node or ie.edge.node2 == node.node,
|
||||
lambda ie: (ie.edge.node1 == node.node or
|
||||
ie.edge.node2 == node.node),
|
||||
self.edge_items
|
||||
)
|
||||
)
|
||||
|
|
@ -583,7 +578,10 @@ class GraphWidget(QGraphicsView):
|
|||
|
||||
def drawBackground(self, painter, rect):
|
||||
sceneRect = self.sceneRect()
|
||||
painter.fillRect(rect.intersected(sceneRect), QBrush(Qt.lightGray))
|
||||
painter.fillRect(
|
||||
rect.intersected(sceneRect),
|
||||
QBrush(Qt.lightGray)
|
||||
)
|
||||
painter.setBrush(Qt.NoBrush)
|
||||
painter.drawRect(sceneRect)
|
||||
|
||||
|
|
@ -598,8 +596,6 @@ class GraphWidget(QGraphicsView):
|
|||
if factor < 0.05 or factor > 1.5:
|
||||
return
|
||||
|
||||
# print(f"{scaleFactor} : {factor}")
|
||||
|
||||
self.scale(scaleFactor, scaleFactor)
|
||||
|
||||
def mousePressEvent(self, event):
|
||||
|
|
@ -663,7 +659,8 @@ class GraphWidget(QGraphicsView):
|
|||
items = self.items(event.pos())
|
||||
selectable_items = list(
|
||||
filter(
|
||||
lambda i: type(i) == NodeItem or type(i) == EdgeItem,
|
||||
lambda i: (type(i) == NodeItem or
|
||||
type(i) == EdgeItem),
|
||||
items
|
||||
)
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue