+++ /dev/null
-# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-# 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
-#
-
-# ---
-# File : :sat:{PYCMP}GUI.py
-# Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
-# ---
-#
-import traceback
-import string
-import os
-import sys
-from qtsalome import *
-
-#from :sat:{PYCMP}_utils import *
-
-import salome
-from Controller import Controller
-from TreeWidget import TreeWidget
-from :sat:{PYCMP}Desktop import :sat:{PYCMP}Desktop
-
-# Get SALOME PyQt interface
-import SalomePyQt
-import libSALOME_Swig
-
-########################################################
-# Global variables
-########################################################
-
-sgPyQt = SalomePyQt.SalomePyQt()
-sg = libSALOME_Swig.SALOMEGUI_Swig()
-sgDesktop = sgPyQt.getDesktop()
-widgetDialogBox = None
-
-objectsManager = Controller( None )
-moduleDesktop = {}
-currentDesktop = None
-
-CURVE_MENU_ID = 1000
-ADVANCED_MENU_ID = 1001
-POLYLINE_ID = 1002
-CIRCLE_ID = 1003
-DEL_ALL_ID = 1004
-
-########################################################
-# Internal methods
-########################################################
-
-def getStudyId():
- """This method returns the active study ID"""
- return sgPyQt.getStudyId()
-
-def getStudy():
- """This method returns the active study"""
-
- studyId = _getStudyId()
- study = getStudyManager().GetStudyByID( studyId )
- return study
-
-def getDesktop():
- """This method returns the current :sat:{PYCMP} desktop"""
-
- global currentDesktop
- return currentDesktop
-
-def setDesktop( studyID ):
- """This method sets and returns :sat:{PYCMP} desktop"""
-
- global moduleDesktop, currentDesktop, objectsManager
-
- if not moduleDesktop.has_key( studyID ):
- moduleDesktop[studyID] = :sat:{PYCMP}Desktop( sgPyQt, sg )
- objectsManager = Controller( moduleDesktop[studyID] )
- moduleDesktop[studyID].setController( objectsManager )
- pass
- currentDesktop = moduleDesktop[studyID]
- return currentDesktop
-
-def incObjToMap( m, id ):
- """This method incrementes the object counter in the map"""
-
- if id not in m: m[id] = 0
- m[id] += 1
- pass
-
-def getSelection():
- """This method analyses selection"""
-
- selcount = sg.SelectedCount()
- seltypes = {}
- for i in range( selcount ):
- incObjToMap( seltypes, getObjectID( getStudy(), sg.getSelected( i ) ) )
- pass
- return selcount, seltypes
-
-################################################
-# Callback functions
-################################################
-
-def initialize():
- """This method is called when module is initialized. It performs initialization actions"""
-
- setDesktop( getStudyId() )
- pass
-
-def windows():
- """This method is called when module is initialized. It returns a map of popup windows to be used by the module"""
-
- wm = {}
- wm[SalomePyQt.WT_ObjectBrowser] = Qt.LeftDockWidgetArea
- wm[SalomePyQt.WT_PyConsole] = Qt.BottomDockWidgetArea
- return wm
-
-def views():
- """This method is called when module is initialized. It returns a list of 2D/3D views to be used by the module"""
- return []
-
-def createPreferences():
- """This method is called when module is initialized. It exports module preferences"""
- pass
-
-def activate():
- """This method is called when module is initialized. It returns True if activating is successfull, False otherwise"""
-
- global moduleDesktop, sgPyQt, widgetDialogBox
-
- widgetDialogBox = QDockWidget( sgDesktop )
- moduleDesktop[getStudyId()].createActions()
- moduleDesktop[getStudyId()].createMenus()
- moduleDesktop[getStudyId()].createToolBars()
- moduleDesktop[getStudyId()].createPopups()
- moduleDesktop[getStudyId()].getDockGlobalTree().show()
- moduleDesktop[getStudyId()].getGlobalGraphicsView().show()
- sgPyQt.activateView( moduleDesktop[getStudyId()].getGlobalGraphicsViewID() )
- return True
-
-def viewTryClose( wid ):
- sgPyQt.setViewClosable(wid, True)
- pass
-
-def deactivate():
- """This method is called when module is deactivated"""
-
- global moduleDesktop, widgetDialogBox
-
- widgetDialogBox.close()
- moduleDesktop[getStudyId()].getDockGlobalTree().hide()
- moduleDesktop[getStudyId()].updateGlobalGraphicsView( None )
- moduleDesktop[getStudyId()].getGlobalGraphicsView().hide()
- pass
-
-def activeStudyChanged( studyID ):
- """This method is called when active study is changed"""
-
- setDesktop( getStudyId() )
- pass
-
-def createPopupMenu( popup, context ):
- """This method is called when popup menu is invocked"""
- pass
-
-def OnGUIEvent( commandID ):
- """This method is called when a GUI action is activated"""
-
- if dict_command.has_key( commandID ):
- dict_command[commandID]()
- pass
- pass
-
-def preferenceChanged( section, setting ):
- """This method is called when module's preferences are changed"""
- pass
-
-def activeViewChanged( viewID ):
- """This method is called when active view is changed"""
- pass
-
-def viewCloned( viewID ):
- """This method is called when active view is cloned"""
- pass
-
-def viewClosed( viewID ):
- """This method is called when active view viewClosed"""
- pass
-
-def engineIOR():
- """This method is called when study is opened. It returns engine IOR"""
- return getEngineIOR()
-
-
-################################################
-# GUI actions implementation
-################################################
-
-def showCreatePolylineDialog() :
- from CreatePolylineDialog import CreatePolylineDialog
-
- global widgetDialogBox
- widgetDialogBox = QDockWidget( sgDesktop )
- myDialog = CreatePolylineDialog( "www.cea.fr", objectsManager, widgetDialogBox )
- widgetDialogBox.setWidget( myDialog )
- widgetDialogBox.setWindowTitle( "Polyline definition" )
- sgDesktop.addDockWidget(Qt.LeftDockWidgetArea, widgetDialogBox)
- pass
-
-def showCreateCircleDialog() :
- from CreateCircleDialog import CreateCircleDialog
-
- global widgetDialogBox
- widgetDialogBox = QDockWidget( sgDesktop )
- myDialog = CreateCircleDialog( "www.cea.fr", objectsManager, widgetDialogBox )
- widgetDialogBox.setWidget( myDialog )
- widgetDialogBox.setWindowTitle( "Circle definition" )
- sgDesktop.addDockWidget(Qt.LeftDockWidgetArea, widgetDialogBox)
- pass
-
-def deleteAll() :
- models = moduleDesktop[getStudyId()].getController().getModels()
- if len( models ) == 0 : return
- answer = QMessageBox.question( moduleDesktop[getStudyId()], 'Confirmation', 'Do you really want to delete all the existing objects ?' , QMessageBox.Yes | QMessageBox.No )
- if answer == QMessageBox.Yes :
- for model in models :
- moduleDesktop[getStudyId()].getController().removeModel( model )
- pass
- pass
- pass
-
-########################################################
-# Commands dictionary
-########################################################
-
-dict_command = { POLYLINE_ID : showCreatePolylineDialog,
- CIRCLE_ID : showCreateCircleDialog,
- DEL_ALL_ID : deleteAll
- }
-
-########################################################