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)
23 #def doPaste(self,node_selected):
25 # objetACopier = self.item.get_copie_objet()
26 # child=self.append_brother(objetACopier)
30 class MACROTreeItem(compooper.EtapeTreeItem):
31 # """ Cette classe hérite d'une grande partie des comportements
32 # de la classe compooper.EtapeTreeItem
36 # ------------------------------------
37 # Classes necessaires à INCLUDE
38 # ------------------------------------
40 class INCLUDETreeItemBase(MACROTreeItem):
42 def __init__(self,appli, labeltext, object, setfunction):
43 MACROTreeItem.__init__(self,appli, labeltext, object, setfunction)
49 class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode):
51 from monIncludePanel import MonIncludePanel
52 return MonIncludePanel (self,parent=self.editor )
54 def createPopUpMenu(self):
55 typeNode.PopUpMenuNode.createPopUpMenu(self)
57 def makeEdit(self): #,appli,node
58 if self.item.object.text_converted == 0:
59 # Le texte du fichier inclus n'a pas pu etre converti par le module convert
60 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
61 msg=msg+self.item.object.text_error
64 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
65 #L'include n'est pas initialise
66 self.item.object.build_include(None,"")
68 # On cree un nouvel onglet dans le bureau
69 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom )
72 class INCLUDETreeItem(INCLUDETreeItemBase):
76 # ------------------------------------
77 # Classes necessaires à POURSUITE
78 # ------------------------------------
80 class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):
82 from monPoursuitePanel import MonPoursuitePanel
83 return MonPoursuitePanel (self,parent=self.editor )
85 def createPopUpMenu(self):
86 typeNode.PopUpMenuNode.createPopUpMenu(self)
88 def makeEdit(self): #,appli,node
89 if self.item.object.text_converted == 0:
90 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
91 msg=msg+self.item.object.text_error
94 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
97 self.object.build_poursuite(None,text)
99 # On cree un nouvel onglet dans le bureau
100 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom)
102 class POURSUITETreeItem(INCLUDETreeItemBase):
103 itemNode=POURSUITENode
106 # ----------------------------------------
107 # Classes necessaires à INCLUDE MATERIAU
108 # ----------------------------------------
111 class MATERIAUNode(MACRONode):
114 from monMacroPanel import MonMacroPanel
115 return MonMacroPanel (self,parent=self.editor )
117 def createPopUpMenu(self):
118 typeNode.PopUpMenuNode.createPopUpMenu(self)
121 if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
122 QMessageBox.information( self, "Include vide","L'include doit etre correctement initialisé pour etre visualisé")
124 f = open(self.item.object.fichier_ini, "rb")
127 from desVisu import DVisu
128 monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
129 monVisuDialg.TB.setText(texte)
133 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
134 itemNode=MATERIAUNode
136 # ------------------------------------
138 # ------------------------------------
141 def treeitem(appli, labeltext, object, setfunction=None):
142 """ Factory qui retourne l'item adapte au type de macro :
143 INCLUDE, POURSUITE, MACRO
145 if object.nom == "INCLUDE_MATERIAU":
146 return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction)
147 elif object.nom == "INCLUDE":
148 return INCLUDETreeItem(appli, labeltext, object, setfunction)
149 elif object.nom == "POURSUITE":
150 return POURSUITETreeItem(appli, labeltext, object, setfunction)
152 return MACROTreeItem(appli, labeltext, object, setfunction)
155 objet=Accas.MACRO_ETAPE