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)
56 #self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
58 def makeEdit(self): #,appli,node
59 if self.item.object.text_converted == 0:
60 # Le texte du fichier inclus n'a pas pu etre converti par le module convert
61 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
62 msg=msg+self.item.object.text_error
65 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
66 #L'include n'est pas initialise
67 self.item.object.build_include(None,"")
69 # On cree un nouvel onglet dans le bureau
70 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom )
73 class INCLUDETreeItem(INCLUDETreeItemBase):
77 # ------------------------------------
78 # Classes necessaires à POURSUITE
79 # ------------------------------------
81 class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode):
83 from monPoursuitePanel import MonPoursuitePanel
84 return MonPoursuitePanel (self,parent=self.editor )
86 def createPopUpMenu(self):
87 typeNode.PopUpMenuNode.createPopUpMenu(self)
88 self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
90 def makeEdit(self): #,appli,node
91 if self.item.object.text_converted == 0:
92 msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
93 msg=msg+self.item.object.text_error
96 if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
99 self.object.build_poursuite(None,text)
101 # On cree un nouvel onglet dans le bureau
102 self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom)
104 class POURSUITETreeItem(INCLUDETreeItemBase):
105 itemNode=POURSUITENode
108 # ----------------------------------------
109 # Classes necessaires à INCLUDE MATERIAU
110 # ----------------------------------------
113 class MATERIAUNode(MACRONode):
116 from monMacroPanel import MonMacroPanel
117 return MonMacroPanel (self,parent=self.editor )
119 def createPopUpMenu(self):
120 typeNode.PopUpMenuNode.createPopUpMenu(self)
121 self.menu.insertItem( qApp.translate('Browser','View'), self.makeView )
124 if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None:
125 QMessageBox.information( self, "Include vide","L'include doit etre correctement initialisé pour etre visualisé")
127 f = open(self.item.object.fichier_ini, "rb")
130 from desVisu import DVisu
131 monVisuDialg=DVisu(parent=self.editor.appliEficas,fl=0)
132 monVisuDialg.TB.setText(texte)
136 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
137 itemNode=MATERIAUNode
139 # ------------------------------------
141 # ------------------------------------
144 def treeitem(appli, labeltext, object, setfunction=None):
145 """ Factory qui retourne l'item adapte au type de macro :
146 INCLUDE, POURSUITE, MACRO
148 if object.nom == "INCLUDE_MATERIAU":
149 return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction)
150 elif object.nom == "INCLUDE":
151 return INCLUDETreeItem(appli, labeltext, object, setfunction)
152 elif object.nom == "POURSUITE":
153 return POURSUITETreeItem(appli, labeltext, object, setfunction)
155 return MACROTreeItem(appli, labeltext, object, setfunction)
158 objet=Accas.MACRO_ETAPE