1 # -*- coding: utf-8 -*-
10 from Editeur import Objecttreeitem
16 class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
18 from monMacroPanel import MonMacroPanel
19 return MonMacroPanel (self,parent=self.editor )
21 def createPopUpMenu(self):
22 typeNode.PopUpMenuNode.createPopUpMenu(self)
25 class MACROTreeItem(compooper.EtapeTreeItem):
26 # """ Cette classe hérite d'une grande partie des comportements
27 # de la classe compooper.EtapeTreeItem
31 # ------------------------------------
32 # Classes necessaires à INCLUDE
33 # ------------------------------------
35 class INCLUDETreeItemBase(MACROTreeItem):
37 def __init__(self,appli, labeltext, object, setfunction):
38 MACROTreeItem.__init__(self,appli, labeltext, object, setfunction)
44 class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):
46 from monIncludePanel import MonIncludePanel
47 return MonIncludePanel (self,parent=self.editor )
49 def createPopUpMenu(self):
50 typeNode.PopUpMenuNode.createPopUpMenu(self)
51 self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
53 def makeEdit(self): #,appli,node
54 if self.item.object.text_converted == 0:
55 # Le texte du fichier inclus n'a pas pu etre converti par le module convert
56 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
57 msg=msg+self.item.object.text_error
60 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
61 #L'include n'est pas initialise
62 self.item.object.build_include(None,"")
64 # On cree un nouvel onglet dans le bureau
65 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom )
68 class INCLUDETreeItem(INCLUDETreeItemBase):
72 # ------------------------------------
73 # Classes necessaires à POURSUITE
74 # ------------------------------------
76 class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):
78 from monPoursuitePanel import MonPoursuitePanel
79 return MonPoursuitePanel (self,parent=self.editor )
81 def createPopUpMenu(self):
82 typeNode.PopUpMenuNode.createPopUpMenu(self)
83 self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
85 def makeEdit(self): #,appli,node
86 if self.item.object.text_converted == 0:
87 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
88 msg=msg+self.item.object.text_error
91 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
94 self.object.build_poursuite(None,text)
96 # On cree un nouvel onglet dans le bureau
97 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom)
99 class POURSUITETreeItem(INCLUDETreeItemBase):
100 itemNode=POURSUITENode
103 # ----------------------------------------
104 # Classes necessaires à INCLUDE MATERIAU
105 # ----------------------------------------
108 class MATERIAUNode(MACRONode):
111 from monMacroPanel import MonMacroPanel
112 return MonMacroPanel (self,parent=self.editor )
114 def createPopUpMenu(self):
115 typeNode.PopUpMenuNode.createPopUpMenu(self)
116 self.menu.insertItem( qApp.translate('Browser','View'), self.makeView )
119 if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
120 QMessageBox.information( self, "Include vide","L'include doit etre correctement initialisé pour etre visualisé")
122 f = open(self.item.object.fichier_ini, "rb")
125 from desVisu import DVisu
126 monVisu=DVisu(parent=self.editor,fl=Qt.WType_Dialog)
127 monVisu.TB.setText(texte)
130 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
131 itemNode=MATERIAUNode
133 # ------------------------------------
135 # ------------------------------------
138 def treeitem(appli, labeltext, object, setfunction=None):
139 """ Factory qui retourne l'item adapte au type de macro :
140 INCLUDE, POURSUITE, MACRO
142 if object.nom == "INCLUDE_MATERIAU":
143 return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction)
144 elif object.nom == "INCLUDE":
145 return INCLUDETreeItem(appli, labeltext, object, setfunction)
146 elif object.nom == "POURSUITE":
147 return POURSUITETreeItem(appli, labeltext, object, setfunction)
149 return MACROTreeItem(appli, labeltext, object, setfunction)
152 objet=Accas.MACRO_ETAPE