-# -*- coding: utf-8 -*-
-import traceback
-import string
-from PyQt4 import *
-from PyQt4.QtGui import *
-from PyQt4.QtCore import *
-
+#-*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2013 EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+import os
+import tempfile
+from PyQt4.QtGui import QMessageBox, QAction, QApplication, QCursor
+from PyQt4.QtGui import *
+from PyQt4.QtCore import Qt, SIGNAL, QVariant
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
from Editeur import Objecttreeitem
import browser
import typeNode
class Node(browser.JDCNode, typeNode.PopUpMenuNode):
- def getPanel( self ):
- """
- """
- from monCommandePanel import MonCommandePanel
- return MonCommandePanel(self,parent=self.editor)
+
+
+ def select(self):
+ browser.JDCNode.select(self)
+ #self.treeParent.tree.openPersistentEditor(self,1)
+ #self.monWidgetNom=self.treeParent.tree.itemWidget(self,1)
+ #self.treeParent.tree.connect(self.monWidgetNom,SIGNAL("returnPressed()"), self.nomme)
+ #if self.item.GetIconName() == "ast-red-square" : self.monWidgetNom.setDisabled(True)
+ #else : self.monWidgetNom.setFocus() ;self.monWidgetNom.setDisabled(False)
+
+ def nomme(self):
+ nom=str(self.monWidgetNom.text())
+ self.editor.init_modif()
+ test,mess = self.item.nomme_sd(nom)
+ if (test== 0):
+ self.editor.affiche_infos(mess,Qt.red)
+ old=self.item.GetText()
+ self.monWidgetNom.setText(old)
+ else :
+ self.editor.affiche_commentaire(tr("Nommage du concept effectue"))
+ self.onValid()
+ try :
+ self.editor.panel.LENomConcept.setText(nom)
+ except :
+ pass
+
+
+ def getPanel(self):
+ from monWidgetCommande import MonWidgetCommande
+ return MonWidgetCommande(self,self.editor,self.item.object)
def createPopUpMenu(self):
typeNode.PopUpMenuNode.createPopUpMenu(self)
if ("AFFE_CARA_ELEM" in self.item.get_genealogie()) and self.editor.salome:
- self.menu.insertItem( 'View3D', self.view3D )
-
- def doPaste(self,node_selected):
- """
- Déclenche la copie de l'objet item avec pour cible
- l'objet passé en argument : node_selected
- """
- objet_a_copier = self.item.get_copie_objet()
- child=node_selected.doPasteCommande(objet_a_copier)
- return child
-
- def doPasteCommande(self,objet_a_copier):
- """
- Réalise la copie de l'objet passé en argument qui est nécessairement
- une commande
- """
- parent=self.parent
- #child = parent.item.append_child(objet_a_copier,self.item.getObject())
- child = self.append_brother(objet_a_copier)
- #if child is None:return 0
- return child
-
- def doPasteMCF(self,objet_a_copier):
- """
- Réalise la copie de l'objet passé en argument (objet_a_copier)
- Il s'agit forcément d'un mot clé facteur
- """
- child = self.append_child(objet_a_copier,pos='first',retour='oui')
- return child
+ self.ViewElt = QAction(tr('View3D'),self.tree)
+ self.tree.connect(self.ViewElt,SIGNAL("triggered()"),self.view3D)
+ self.ViewElt.setStatusTip(tr("affiche dans Geom les elements de structure"))
+ self.menu.addAction(self.ViewElt)
+ if self.item.isvalid() :
+ self.ViewElt.setEnabled(1)
+ else:
+ self.ViewElt.setEnabled(0)
+ if self.item.get_nom() == "DISTRIBUTION" :
+ self.Graphe = QAction(tr('Graphique'),self.tree)
+ self.tree.connect(self.Graphe,SIGNAL("triggered()"),self.viewPng)
+ self.Graphe.setStatusTip(tr("affiche la distribution "))
+ self.menu.addAction(self.Graphe)
+ if self.item.isvalid() :
+ self.Graphe.setEnabled(1)
+ else:
+ self.Graphe.setEnabled(0)
def view3D(self) :
from Editeur import TroisDPal
- troisD=TroisDPal.TroisDPilote(self.item,self.editor.parent.appliEficas)
+ troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
troisD.envoievisu()
+ def viewPng(self) :
+ from monPixmap import MonLabelPixmap
+ import generator
+ try:
+ QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
+ g = generator.plugins[self.appliEficas.format_fichier]()
+ g.gener(self.item.object, format='beautifie')
+ stdGener = g.getGenerateur()
+ loi = g.dictMCLois.keys()[0]
+ nomLoi = loi.get_name()
+ (fd, fichier) = tempfile.mkstemp(prefix = "openturns_graph_", suffix = ".png")
+ os.close(fd)
+ chemin = os.path.dirname(fichier)
+ base = os.path.splitext(os.path.basename(fichier))[0]
+ script = stdGener.GraphiquePDF(loi, chemin, base)
+ #print script
+ d = {}
+ exec script in d
+ widgetPng=MonLabelPixmap(self.appliEficas,fichier,nomLoi)
+ os.remove(fichier)
+ QApplication.restoreOverrideCursor()
+ widgetPng.show()
+ except:
+ QApplication.restoreOverrideCursor()
+ QMessageBox.warning(
+ self.appliEficas,
+ tr("Erreur interne"),
+ tr("La PDF de la loi ne peut pas etre affichee."),
+ tr("&Annuler"))
class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
""" La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau
def GetIconName(self):
"""
Retourne le nom de l'icone a afficher dans l'arbre
- Ce nom dépend de la validité de l'objet
+ Ce nom depend de la validite de l'objet
"""
if not self.object.isactif():
return "ast-white-square"
- la fonte dans laquelle afficher ce texte
- la couleur du texte
"""
- if self.object.isactif():
+ return self.labeltext,None,None
+ #if self.object.isactif():
# None --> fonte et couleur par défaut
- return self.labeltext,None,None
- else:
- return self.labeltext, None, None #CS_pbruno todo
+ # return self.labeltext,None,None
+ #else:
+ # return self.labeltext, None, None #CS_pbruno todo
def get_objet(self,name) :
for v in self.object.mc_liste:
# item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList
itemobject=item.getObject()
if itemobject.isoblig() :
- self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
- return 0
+ #self.editor.affiche_infos(tr('Impossible de supprimer un mot-clef obligatoire '),Qt.red)
+ return (0,tr('Impossible de supprimer un mot-clef obligatoire '))
if self.object.suppentite(itemobject):
- message = "Mot-clé " + itemobject.nom + " supprimé"
- self.appli.affiche_infos(message)
- return 1
+ message = tr("Mot-clef %s supprime " , itemobject.nom)
+ #self.editor.affiche_commentaire(message)
+ return (1,message)
else :
- self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé')
- return 0
+ #self.editor.affiche_commentaire(tr('Pb interne : impossible de supprimer ce mot-clef'),Qt.red)
+ return (0,tr('Pb interne : impossible de supprimer ce mot-clef'))
def GetText(self):
try:
"""
return 1
+ def updateDeplace(self,item):
+ if item.sd and item.sd.nom:
+ self.object.sd=item.sd
+ self.object.sd.nom=item.sd.nom
+
def update(self,item):
if item.sd and item.sd.nom:
self.nomme_sd(item.sd.nom)
représentatif de self.object
"""
# Format de fichier utilisé
- format=self.appli.format_fichier
+ format=self.appli.appliEficas.format_fichier
return self.object.get_objet_commentarise(format)
def get_objet_commentarise_BAK(self):
"""
import generator,string,Accas
# Format de fichier utilisé
- format=self.appli.format_fichier
+ format=self.appli.appliEficas.format_fichier
g=generator.plugins[format]()
texte_commande = g.gener(self.object,format='beautifie')
# Il faut enlever la premiere ligne vide de texte_commande que