1 # -*- coding: utf-8 -*-
9 from Editeur import Objecttreeitem
15 class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
17 from monMacroPanel import MonMacroPanel
18 return MonMacroPanel (self,parent=self.editor )
20 def createPopUpMenu(self):
21 typeNode.PopUpMenuNode.createPopUpMenu(self)
24 class MACROTreeItem(compooper.EtapeTreeItem):
25 # """ Cette classe hérite d'une grande partie des comportements
26 # de la classe compooper.EtapeTreeItem
30 # ------------------------------------
31 # Classes necessaires à INCLUDE
32 # ------------------------------------
34 class INCLUDETreeItemBase(MACROTreeItem):
36 def __init__(self,appli, labeltext, object, setfunction):
37 MACROTreeItem.__init__(self,appli, labeltext, object, setfunction)
43 class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):
45 from monIncludePanel import MonIncludePanel
46 return MonIncludePanel (self,parent=self.editor )
48 def createPopUpMenu(self):
49 typeNode.PopUpMenuNode.createPopUpMenu(self)
50 #self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
52 def makeEdit(self): #,appli,node
53 if self.item.object.text_converted == 0:
54 # Le texte du fichier inclus n'a pas pu etre converti par le module convert
55 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
56 msg=msg+self.item.object.text_error
59 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
60 #L'include n'est pas initialise
61 self.item.object.build_include(None,"")
63 # On cree un nouvel onglet dans le bureau
64 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom )
67 class INCLUDETreeItem(INCLUDETreeItemBase):
71 # ------------------------------------
72 # Classes necessaires à POURSUITE
73 # ------------------------------------
75 class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):
77 from monPoursuitePanel import MonPoursuitePanel
78 return MonPoursuitePanel (self,parent=self.editor )
80 def createPopUpMenu(self):
81 typeNode.PopUpMenuNode.createPopUpMenu(self)
82 self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
84 def makeEdit(self): #,appli,node
85 if self.item.object.text_converted == 0:
86 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
87 msg=msg+self.item.object.text_error
90 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
93 self.object.build_poursuite(None,text)
95 # On cree un nouvel onglet dans le bureau
96 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom)
98 class POURSUITETreeItem(INCLUDETreeItemBase):
99 itemNode=POURSUITENode
102 # ----------------------------------------
103 # Classes necessaires à INCLUDE MATERIAU
104 # ----------------------------------------
107 class MATERIAUNode(MACRONode):
110 from monMacroPanel import MonMacroPanel
111 return MonMacroPanel (self,parent=self.editor )
113 def createPopUpMenu(self):
114 typeNode.PopUpMenuNode.createPopUpMenu(self)
115 self.menu.insertItem( qApp.translate('Browser','View'), self.makeView )
118 if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
119 QMessageBox.information( self, "Include vide","L'include doit etre correctement initialisé pour etre visualisé")
121 f = open(self.item.object.fichier_ini, "rb")
124 from desVisu import DVisu
125 monVisu=DVisu(parent=self.editor,fl=Qt.WType_Dialog)
126 monVisu.TB.setText(texte)
129 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
130 itemNode=MATERIAUNode
132 # ------------------------------------
134 # ------------------------------------
137 def treeitem(appli, labeltext, object, setfunction=None):
138 """ Factory qui retourne l'item adapte au type de macro :
139 INCLUDE, POURSUITE, MACRO
141 if object.nom == "INCLUDE_MATERIAU":
142 return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction)
143 elif object.nom == "INCLUDE":
144 return INCLUDETreeItem(appli, labeltext, object, setfunction)
145 elif object.nom == "POURSUITE":
146 return POURSUITETreeItem(appli, labeltext, object, setfunction)
148 return MACROTreeItem(appli, labeltext, object, setfunction)
151 objet=Accas.MACRO_ETAPE