Skip to content

Commit 889dab1

Browse files
committed
Inclusão do Nó de Carga. Criação dos novos Dialogs para Linha e Religador. Dialog do religador armazena as informações inseridas e repassa ao XML em CIM.
1 parent 3e94c8d commit 889dab1

File tree

2 files changed

+98
-20
lines changed

2 files changed

+98
-20
lines changed

graphics.py

+79-20
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from rede import Chave
88
# import models
99

10-
from DialogReligador import RecloserDialog
10+
from DialogRecloser import RecloserDialog
11+
from DialogLine import LineDialog
1112

1213

1314
class GhostR(QtGui.QGraphicsRectItem):
@@ -84,6 +85,8 @@ def __init__(self, w1, w2, edge_menu, parent=None, scene=None):
8485

8586
self.myEdgeMenu = edge_menu
8687

88+
89+
8790
line = QtCore.QLineF(self.w1.pos(), self.w2.pos())
8891
self.setLine(line)
8992
self.setZValue(-1)
@@ -183,7 +186,7 @@ def update_ret(self):
183186

184187

185188
self.GhostRet.setRect(xbase + 40, ybase + (delta_y / 2) - 5, comp, 50)
186-
if self.w1.myItemType == 4 or self.w2.myItemType == 4:
189+
if self.w1.myItemType == Node.NoConectivo or self.w2.myItemType == Node.NoConectivo:
187190
self.GhostRet.setRect(xbase + 40, ybase + (delta_y / 2) - 5, comp, 50)
188191
if self.isFixed:
189192
self.GhostRet.adjust(-20, -20, -20, -20)
@@ -197,12 +200,12 @@ def update_ret(self):
197200
QtGui.QTransform().translate(x, y).rotate(-angle).translate(
198201
-x, -y))
199202
# if self.GhostRetItem.collidesWithItem(self.w1):
200-
# if self.w1.myItemType == 4:
203+
# if self.w1.myItemType == Node.NoConectivo:
201204
# print "bateu no nó"
202205
# self.GhostRetItem.setRect(self.GhostRetItem.rect().adjusted(-10,-10,-10,-10))
203206

204207
# if self.GhostRetItem.collidesWithItem(self.w2):
205-
# if self.w2.myItemType == 4:
208+
# if self.w2.myItemType == Node.NoConectivo:
206209
# print "bateu no nó"
207210
# self.GhostRetItem.setRect(self.GhostRetItem.rect().adjusted(-10,-10,-10,-10))
208211

@@ -412,7 +415,7 @@ class Node(QtGui.QGraphicsRectItem):
412415
Classe que implementa o objeto Node Genérico.
413416
'''
414417
# tipos de itens possiveis
415-
Subestacao, Religador, Barra, Agent, NoConectivo = range(5)
418+
Subestacao, Religador, Barra, Agent, NoDeCarga, NoConectivo = range(6)
416419

417420
def __init__(self, item_type, node_menu, parent=None, scene=None):
418421
'''
@@ -440,7 +443,7 @@ def __init__(self, item_type, node_menu, parent=None, scene=None):
440443
elif self.myItemType == self.Religador:
441444
rect = QtCore.QRectF(0, 0, 40.0, 40.0)
442445
# Cria o objeto abstrato chave referente ao religador
443-
self.chave = Chave('religador1', 400, 0.01, 1000, 3)
446+
self.chave = Chave(str(self.id))
444447
# definine e ajusta a posicao do label do item grafico
445448
self.text = Text('Religador', self, self.scene())
446449
self.text.setPos(self.mapFromItem(self.text, 0, rect.height()))
@@ -460,6 +463,11 @@ def __init__(self, item_type, node_menu, parent=None, scene=None):
460463
elif self.myItemType == self.NoConectivo:
461464
rect = QtCore.QRectF(0, 0, 7, 7)
462465

466+
elif self.myItemType == self.NoDeCarga:
467+
rect = QtCore.QRectF(0, 0, 10, 10)
468+
self.text = Text('Carga', self, self.scene())
469+
self.text.setPos(self.mapFromItem(self.text, 0, rect.height()))
470+
463471
self.setRect(rect)
464472
self.myNodeMenu = node_menu
465473

@@ -569,6 +577,11 @@ def paint(self, painter, option, widget):
569577
painter.setBrush(QtCore.Qt.black)
570578
painter.drawEllipse(self.rect())
571579

580+
elif self.myItemType == self.NoDeCarga:
581+
painter.setPen(QtGui.QPen(QtCore.Qt.black, 1.5))
582+
painter.setBrush(QtCore.Qt.black)
583+
painter.drawEllipse(self.rect())
584+
572585
if self.isSelected():
573586
painter.setPen(QtGui.QPen(QtCore.Qt.red, 2, QtCore.Qt.DashLine))
574587
painter.setBrush(QtCore.Qt.NoBrush)
@@ -586,7 +599,7 @@ def itemChange(self, change, value):
586599
return QtGui.QGraphicsItem.itemChange(self, change, value)
587600

588601
def mousePressEvent(self, mouse_event):
589-
print len(self.edges)
602+
print "Id:", self.chave.nome, ",", "Corrente Nominal:", self.chave.ratedCurrent, ",", "Breaking Capacity:", self.chave.breakingCapacity, ",", "Seq de Religamento", self.chave.recloseSequences
590603
self.setSelected(True)
591604
super(Node, self).mousePressEvent(mouse_event)
592605
return
@@ -603,7 +616,7 @@ def mouseReleaseEvent(self, mouse_event):
603616
new_obj = edge.w2
604617
if edge.w2 == self:
605618
new_obj = edge.w1
606-
if self.myItemType == 4:
619+
if self.myItemType == Node.NoConectivo:
607620
for item in self.scene().items():
608621
if isinstance(item, Node):
609622

@@ -680,13 +693,14 @@ def mousePressEvent(self, mouse_event):
680693
else:
681694
self.removeItem(item_oculto)
682695
if self.myMode == self.InsertItem:
683-
684696
if self.myItemType == Node.Religador:
685697
item = Node(self.myItemType, self.myRecloserMenu)
686698
elif self.myItemType == Node.Barra:
687699
item = Node(self.myItemType, self.myBusMenu)
688700
elif self.myItemType == Node.Subestacao:
689701
item = Node(self.myItemType, self.mySubstationMenu)
702+
elif self.myItemType == Node.NoDeCarga:
703+
item = Node(self.myItemType, self.mySubstationMenu)
690704

691705
self.addItem(item)
692706
item.setPos(mouse_event.scenePos())
@@ -705,7 +719,7 @@ def mousePressEvent(self, mouse_event):
705719

706720
c_pos = (
707721
item.edge.line().p1() + item.edge.line().p2()) / 2
708-
self.no = Node(4, self.myLineMenu)
722+
self.no = Node(Node.NoConectivo, self.myLineMenu)
709723
self.addItem(self.no)
710724
self.no.setPos(c_pos - QtCore.QPointF(3.5, 3.5))
711725
item.no = self.no
@@ -718,7 +732,7 @@ def mousePressEvent(self, mouse_event):
718732
self.l0 = c_pos
719733
else:
720734
self.l0 = mouse_event.scenePos()
721-
self.no = Node(4, self.myLineMenu)
735+
self.no = Node(Node.NoConectivo, self.myLineMenu)
722736
if add is True:
723737
self.addItem(self.no)
724738
self.no.setPos(mouse_event.scenePos())
@@ -813,13 +827,13 @@ def mouseReleaseEvent(self, mouse_event):
813827
if len(start_items) == 0:
814828
if isinstance(start_pop, GhostR) and start_pop is not None:
815829
c_pos = (start_pop.edge.line().p1() + start_pop.edge.line().p2()) / 2
816-
start_item = Node(4, self.myLineMenu)
830+
start_item = Node(Node.NoConectivo, self.myLineMenu)
817831
self.addItem(start_item)
818832
start_item.setPos(c_pos)
819833
self.start_item_is_ghost = True
820834
else:
821835
print "checkpoint 1"
822-
start_item = Node(4, self.myLineMenu)
836+
start_item = Node(Node.NoConectivo, self.myLineMenu)
823837
self.addItem(start_item)
824838
start_item.setPos(self.pressPos)
825839

@@ -839,14 +853,14 @@ def mouseReleaseEvent(self, mouse_event):
839853

840854

841855
if len(end_items) == 0:
842-
end_item = Node(4, self.myLineMenu)
856+
end_item = Node(Node.NoConectivo, self.myLineMenu)
843857
self.addItem(end_item)
844858
end_item.setPos(mouse_event.scenePos())
845859

846860
if len(end_items):
847861
if isinstance(end_pop, GhostR):
848862
c_pos = (end_pop.edge.line().p1() + end_pop.edge.line().p2()) / 2
849-
end_item = Node(4, self.myLineMenu)
863+
end_item = Node(Node.NoConectivo, self.myLineMenu)
850864
self.addItem(end_item)
851865
end_item.setPos(c_pos)
852866
self.ghost = end_pop
@@ -914,11 +928,11 @@ def mouseReleaseEvent(self, mouse_event):
914928
if not permit1:
915929
print "permit 1 negado!"
916930
if isinstance(start_item, Node):
917-
if start_item.myItemType == 4 and len(start_item.edges) == 0:
931+
if start_item.myItemType == Node.NoConectivo and len(start_item.edges) == 0:
918932
self.removeItem(start_item)
919933
print "checkpoint 1"
920934
if isinstance(end_item, Node):
921-
if end_item.myItemType == 4 and len(end_item.edges) == 0:
935+
if end_item.myItemType == Node.NoConectivo and len(end_item.edges) == 0:
922936
self.removeItem(end_item)
923937
print "checkpoint 2"
924938

@@ -958,7 +972,7 @@ def mouseReleaseEvent(self, mouse_event):
958972
else:
959973
return
960974

961-
if edge.w1.myItemType == 4:
975+
if edge.w1.myItemType == Node.NoConectivo:
962976
aux = edge.w1
963977
edge.w1 = edge.w2
964978
edge.w2 = aux
@@ -994,7 +1008,7 @@ def mouseReleaseEvent(self, mouse_event):
9941008
# if inserted is False and self.no is not None:
9951009
# self.break_edge()
9961010
# print "oi 1"
997-
# new_node = Node(4, self.myLineMenu)
1011+
# new_node = Node(Node.NoConectivo, self.myLineMenu)
9981012
# self.addItem(new_node)
9991013
# new_node.setPos(mouse_event.scenePos())
10001014
# new_edge = Edge(self.no, new_node, self.myLineMenu)
@@ -1161,7 +1175,52 @@ def launch_dialog(self):
11611175
Este método inicia os diálogos de configuração de cada um dos itens
11621176
gráficos do diagrama.
11631177
'''
1164-
dialog = RecloserDialog()
1178+
for item in self.selectedItems():
1179+
if isinstance(item, Node):
1180+
if item.myItemType == Node.Religador:
1181+
dialog = RecloserDialog(item)
1182+
print dialog.dialog.result()
1183+
if dialog.dialog.result() == 1:
1184+
if dialog.identificaOLineEdit.text() == "":
1185+
pass
1186+
else:
1187+
item.chave.nome = dialog.identificaOLineEdit.text()
1188+
if dialog.correnteNominalLineEdit.text() == "":
1189+
pass
1190+
else:
1191+
item.chave.ratedCurrent = dialog.correnteNominalLineEdit.text()
1192+
if dialog.capacidadeDeInterrupOLineEdit.text() == "":
1193+
pass
1194+
else:
1195+
item.chave.breakingCapacity = dialog.capacidadeDeInterrupOLineEdit.text()
1196+
if dialog.nDeSequNciasDeReligamentoLineEdit.text() == "":
1197+
pass
1198+
else:
1199+
item.chave.recloseSequences = dialog.nDeSequNciasDeReligamentoLineEdit.text()
1200+
if item.myItemType == Node.Subestacao:
1201+
return
1202+
# dialog = SubstationDialog(item)
1203+
1204+
if isinstance(item, Edge):
1205+
dialog = LineDialog()
1206+
print dialog.dialog.result()
1207+
# if dialog.dialog.result() == 1:
1208+
# if dialog.identificaOLineEdit.text() == "":
1209+
# pass
1210+
# else:
1211+
# item.chave.nome = dialog.identificaOLineEdit.text()
1212+
# if dialog.correnteNominalLineEdit.text() == "":
1213+
# pass
1214+
# else:
1215+
# item.chave.ratedCurrent = dialog.correnteNominalLineEdit.text()
1216+
# if dialog.capacidadeDeInterrupOLineEdit.text() == "":
1217+
# pass
1218+
# else:
1219+
# item.chave.breakingCapacity = dialog.capacidadeDeInterrupOLineEdit.text()
1220+
# if dialog.nDeSequNciasDeReligamentoLineEdit.text() == "":
1221+
# pass
1222+
# else:
1223+
# item.chave.recloseSequences = dialog.nDeSequNciasDeReligamentoLineEdit.text()
11651224

11661225
def increase_bus(self, ):
11671226
'''

simulador.py

+19
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,17 @@ def inicializar_componentes(self, main_window):
127127
self.lineButton = QtGui.QPushButton(self.page_1)
128128
self.lineButton.setObjectName("lineButton")
129129
self.lineButton.setCheckable(True)
130+
self.noButton = QtGui.QPushButton(self.page_1)
131+
self.noButton.setObjectName("noButton")
132+
self.noButton.setCheckable(True)
130133

131134
# define o grupo de botoes da pagina 1 do notebook
132135
self.buttonGroup = QtGui.QButtonGroup()
133136
self.buttonGroup.addButton(self.substationButton, 0)
134137
self.buttonGroup.addButton(self.recloserButton, 1)
135138
self.buttonGroup.addButton(self.busButton, 2)
136139
self.buttonGroup.addButton(self.lineButton, 3)
140+
self.buttonGroup.addButton(self.noButton, 4)
137141
self.buttonGroup.setExclusive(False)
138142

139143
self.buttonGroup.buttonClicked[int].connect(self.buttonGroupClicked)
@@ -159,6 +163,11 @@ def inicializar_componentes(self, main_window):
159163
self.lineLabel.setSizePolicy(
160164
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
161165
self.lineLabel.setObjectName("lineLabel")
166+
self.noLabel = QtGui.QLabel('')
167+
self.noLabel.setAlignment(QtCore.Qt.AlignHCenter)
168+
self.noLabel.setSizePolicy(
169+
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
170+
self.noLabel.setObjectName("noLabel")
162171

163172
# adiciona os botoes ao gridLayout_3
164173
self.gridlayout_page_1.addWidget(self.substationButton, 0, 0)
@@ -169,6 +178,8 @@ def inicializar_componentes(self, main_window):
169178
self.gridlayout_page_1.addWidget(self.lineButton, 2, 1)
170179
self.gridlayout_page_1.addWidget(self.busLabel, 3, 0)
171180
self.gridlayout_page_1.addWidget(self.lineLabel, 3, 1)
181+
self.gridlayout_page_1.addWidget(self.noButton, 4, 0)
182+
self.gridlayout_page_1.addWidget(self.noLabel, 5, 0)
172183

173184
# adiciona o gridLayout_3 a pagina_1 do dockWidget
174185
self.page_1.setLayout(self.gridlayout_page_1)
@@ -374,6 +385,14 @@ def retranslateUi(self, main_window):
374385
QtGui.QApplication.translate(
375386
"main_window", "Linha", None, QtGui.QApplication.UnicodeUTF8))
376387

388+
self.noButton.setText(
389+
QtGui.QApplication.translate(
390+
"main_window", "Nó de Carga", None, QtGui.QApplication.UnicodeUTF8))
391+
392+
self.noLabel.setText(
393+
QtGui.QApplication.translate(
394+
"main_window", "Nó de Carga", None, QtGui.QApplication.UnicodeUTF8))
395+
377396
self.toolBox.setItemText(
378397
self.toolBox.indexOf(self.page_1),
379398
QtGui.QApplication.translate(

0 commit comments

Comments
 (0)