OMNIORB_IDL = @OMNIORB_IDL@
OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@
OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ -I$(top_srcdir)/idl -I$(top_builddir)/salome/idl \
- -I$(KERNEL_ROOT_DIR)/idl/salome
+ -I$(KERNEL_ROOT_DIR)/idl/salome -I$(MED_ROOT_DIR)/idl/salome
OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@
OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@
CORBA_CXXFLAGS = @CORBA_CXXFLAGS@
IDLCXXFLAGS = -bcxx @IDLCXXFLAGS@ -I$(top_srcdir)/idl -I$(top_builddir)/idl/salome \
- -I$(KERNEL_ROOT_DIR)/idl/salome
+ -I$(KERNEL_ROOT_DIR)/idl/salome -I$(MED_ROOT_DIR)/idl/salome
IDLPYFLAGS = @IDLPYFLAGS@
IDL = @IDL@
-THIS IS SAMPLE LIGHT (NO-CORBA-ENGINE) MODULE : VERSION: 0.1
+THIS IS SAMPLE LIGHT (NO-CORBA-ENGINE) MODULE : VERSION: 0.2
CHECK_HDF5
+echo
+echo ---------------------------------------------
+echo testing MED2
+echo ---------------------------------------------
+echo
+
+CHECK_MED2
+
echo
echo ---------------------------------------------
echo Testing OpenCascade
echo
echo Configure
-variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok SalomeGUI_ok"
+variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok med2_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok SalomeGUI_ok"
for var in $variables
do
#include "LIGHTGUI_Selection.h"
#include "LIGHTGUI_DataModel.h"
-#include "LightApp_DataOwner.h"
+#include "LIGHTGUI_OBSelector.h"
+#include "LIGHTGUI_DataOwner.h"
#include <SUIT_MessageBox.h>
-#include <LightApp_Application.h>
-#include <LightApp_SelectionMgr.h>
-#include "LightApp_Selection.h"
+#include <SalomeApp_Application.h>
+#include <SalomeApp_SelectionMgr.h>
#include <qinputdialog.h>
#include <qstringlist.h>
-#include <LIGHTGUI_TextPrs.hxx>
-#include <OCCViewer_ViewManager.h>
-#include <SOCC_ViewModel.h>
-#include <SOCC_Prs.h>
-
//=================================================================================
// function : LIGHTGUI()
// purpose : Constructor : sets the default name for the module
//=================================================================================
LIGHTGUI::LIGHTGUI()
- : LightApp_Module( "LIGHTGUI" )
+ : SalomeApp_Module( "LIGHTGUI" )
{
}
//=================================================================================
void LIGHTGUI::initialize ( CAM_Application* app )
{
- LightApp_Module::initialize( app );
+ SalomeApp_Module::initialize( app );
QWidget* parent = application()->desktop();
tr( "STB_LOAD_FILE" ), 0, parent, false, this, SLOT( onLoadFile() ) );
createAction( lgSaveFile, tr( "TOP_SAVE_FILE" ), QIconSet(), tr( "MEN_SAVE_FILE" ),
tr( "STB_SAVE_FILE" ), 0, parent, false, this, SLOT( onSaveFile() ) );
- createAction( lgDisplayLine, tr( "TOP_DISPLAY_LINE" ), QIconSet(), tr( "MEN_DISPLAY_LINE" ),
- tr( "STB_DISPLAY_LINE" ), 0, parent, false, this, SLOT( onDisplayLine() ) );
createAction( lgEditLine, tr( "TOP_EDIT_LINE" ), QIconSet(), tr( "MEN_EDIT_LINE" ),
tr( "STB_EDIT_LINE" ), 0, parent, false, this, SLOT( onEditLine() ) );
createAction( lgAddLine, tr( "TOP_ADD_LINE" ), QIconSet(), tr( "MEN_ADD_LINE" ),
createMenu( lgSaveFile, aFileMnu, 10 );
int aLightMnu = createMenu( tr( "MEN_LIGHT" ), -1, -1, 50 );
- createMenu( lgDisplayLine, aLightMnu, 10 );
createMenu( lgEditLine, aLightMnu, 10 );
createMenu( lgAddLine, aLightMnu, 10 );
createMenu( separator(), aLightMnu, -1, 10 );
int parentId = -1;
QString rule = "client='ObjectBrowser' and selcount=1 and type='TextLine'";
- popupMgr()->insert ( action( lgDisplayLine ), parentId, 0 );
- popupMgr()->setRule( action( lgDisplayLine ), rule, true );
-
popupMgr()->insert ( action( lgEditLine ), parentId, 0 );
popupMgr()->setRule( action( lgEditLine ), rule, true );
// function : contextMenuPopup()
// purpose : defines context popup menu
//=================================================================================
-void LIGHTGUI::contextMenuPopup ( const QString& client, QPopupMenu* menu, QString& str)
+void LIGHTGUI::contextMenuPopup ( const QString& client, QPopupMenu* menu, QString& )
{
- LIGHTGUI_Selection* sel = new LIGHTGUI_Selection();
- sel->init( client, getApp()->selectionMgr() );
- popupMgr()->updatePopup( menu, sel );
- delete sel;
+ LIGHTGUI_Selection sel ( client, getApp()->selectionMgr() );
+ popupMgr()->updatePopup( menu, &sel );
}
//=================================================================================
//=================================================================================
void LIGHTGUI::windows ( QMap<int, int>& aMap ) const
{
- aMap.insert( LightApp_Application::WT_ObjectBrowser, Qt::DockLeft );
- aMap.insert( LightApp_Application::WT_PyConsole, Qt::DockBottom );
+ aMap.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::DockLeft );
+ aMap.insert( SalomeApp_Application::WT_PyConsole, Qt::DockBottom );
+}
+
+//=================================================================================
+// function : engineIOR()
+// purpose : Returns empty string. It means that this module
+// should use default engine for its persistence.
+//=================================================================================
+QString LIGHTGUI::engineIOR() const
+{
+ return QString( "" );
}
//=================================================================================
int aPosition = 0; // bad value
// Look for selected lines
- LightApp_Application* app = getApp();
- LightApp_SelectionMgr* mgr = app ? app->selectionMgr() : NULL;
+ SalomeApp_Application* app = getApp();
+ SalomeApp_SelectionMgr* mgr = app ? app->selectionMgr() : NULL;
if ( mgr ) {
SUIT_DataOwnerPtrList anOwnersList;
mgr->selected( anOwnersList );
// Get index of the single selected line
if ( anOwnersList.size() == 1 ) {
- const LightApp_DataOwner* owner =
- dynamic_cast<const LightApp_DataOwner*>( anOwnersList[0].get() );
- QString anEntry = owner->entry();
- int anIndex = anEntry.find("_");
- aPosition = (anEntry.mid(anIndex+1, anEntry.length() - anIndex)).toInt();//lineNb();
+ const LIGHTGUI_DataOwner* owner =
+ dynamic_cast<const LIGHTGUI_DataOwner*>( anOwnersList[0].get() );
+ aPosition = owner->lineNb();
}
}
return aPosition;
//=================================================================================
bool LIGHTGUI::activateModule ( SUIT_Study* study )
{
- bool isDone = LightApp_Module::activateModule( study );
+ bool isDone = SalomeApp_Module::activateModule( study );
if ( !isDone ) return false;
setMenuShown( true );
+ // enable own ObjectBrowser selector an disable another ones
+ bool isOwnSelector = false;
+ QPtrList<SUIT_Selector> lst;
+ getApp()->selectionMgr()->selectors( lst );
+ for ( QPtrListIterator<SUIT_Selector> it( lst ); it.current(); ++it ) {
+ if ( it.current()->type() == "ObjectBrowser" ) {
+ LIGHTGUI_OBSelector* anOwnSelector = dynamic_cast<LIGHTGUI_OBSelector*>( it.current() );
+ // restore own selector
+ if ( anOwnSelector ) {
+ // enable own
+ anOwnSelector->setEnabled( true );
+ isOwnSelector = true;
+ }
+ else {
+ // disable other
+ it.current()->setEnabled( false );
+ }
+ }
+ }
+
+ // create own selector, if it was not found in selection manager
+ if ( !isOwnSelector ) {
+ new LIGHTGUI_OBSelector ( getApp()->objectBrowser(), getApp()->selectionMgr() );
+ }
+
return isDone;
}
// hide menus
setMenuShown( false );
- return LightApp_Module::deactivateModule( study );
+ // disable own ObjectBrowser selector an enable another ones
+ QPtrList<SUIT_Selector> lst;
+ getApp()->selectionMgr()->selectors( lst );
+ for ( QPtrListIterator<SUIT_Selector> it( lst ); it.current(); ++it ) {
+ if ( it.current()->type() == "ObjectBrowser" ) {
+ LIGHTGUI_OBSelector* anOwnSelector = dynamic_cast<LIGHTGUI_OBSelector*>( it.current() );
+ if ( anOwnSelector ) {
+ // disable own selector
+ anOwnSelector->setEnabled( false );
+ }
+ else {
+ // enable other
+ it.current()->setEnabled( true );
+ }
+ }
+ }
+
+ return SalomeApp_Module::deactivateModule( study );
}
//=================================================================================
}
}
}
-//=================================================================================
-// function : onDisplayLine()
-// purpose : "Display Line" action slot
-//=================================================================================
-void LIGHTGUI::onDisplayLine()
-{
- OCCViewer_ViewManager* aMgr = (OCCViewer_ViewManager*)getApp()->getViewManager("OCCViewer", true);
- SOCC_Viewer* aViewer = (SOCC_Viewer*)aMgr->getViewModel();
- if ( !aViewer )
- return;
-
- LIGHTGUI_DataModel* dm = dynamic_cast<LIGHTGUI_DataModel*>( dataModel() );
- if ( !dm ) return;
- int aPosition = selectedLine();
- QString aLine = dm->getLineText( aPosition );
- double aX = 0, aY = 0, aZ = 0;
- QString aStrId = QString("LIGHTGUI_%1").arg(aPosition);
-
- Handle(LIGHTGUI_TextPrs) aPrs = new LIGHTGUI_TextPrs( aLine, gp_Pnt( aX, aY, aZ ) );
- aPrs->SetOwner(new SALOME_InteractiveObject( aStrId, "" ) );
- SOCC_Prs* prs = dynamic_cast<SOCC_Prs*>( aViewer->CreatePrs() ); // aStringID is an "entry"
- if ( prs ) {
- aViewer->EraseAll();
- prs->AddObject( aPrs );
- aViewer->Display( prs );
- aViewer->Repaint();
- getApp()->updateObjectBrowser();
- }
-}
//=================================================================================
// function : onEditLine()
#ifndef LIGHTGUI_H
#define LIGHTGUI_H
-#include <LightApp_Module.h>
+#include <SalomeApp_Module.h>
-class LIGHTGUI: public LightApp_Module
+class LIGHTGUI: public SalomeApp_Module
{
Q_OBJECT
- enum { lgLoadFile = 931, lgSaveFile, lgDisplayLine, lgEditLine, lgAddLine, lgDelLine, lgClear };
+ enum { lgLoadFile = 931, lgSaveFile, lgEditLine, lgAddLine, lgDelLine, lgClear };
public:
LIGHTGUI();
virtual void contextMenuPopup ( const QString&, QPopupMenu*, QString& );
virtual void windows ( QMap<int, int>& ) const;
+ virtual QString engineIOR() const;
+
protected:
virtual CAM_DataModel* createDataModel();
int selectedLine();
private slots:
void onLoadFile();
void onSaveFile();
- void onDisplayLine();
void onEditLine();
void onAddLine ();
void onDelLine ();
void onClear ();
-
-private:
- int anIndex;
};
#endif // LIGHTGUI_H
#include "LIGHTGUI_DataModel.h"
#include "LIGHTGUI_DataObject.h"
-#include <LightApp_Study.h>
+#include <SalomeApp_Study.h>
#include <SUIT_Tools.h>
#include <SUIT_DataObjectIterator.h>
-#include <CAM_Module.h>
-#include <CAM_Application.h>
#include <qstring.h>
#include <qfile.h>
-#include <vector.h>
-#include <string.h>
-
//=================================================================================
// function : LIGHTGUI_DataModel()
// purpose : constructor
//=================================================================================
LIGHTGUI_DataModel::LIGHTGUI_DataModel ( CAM_Module* theModule )
- : LightApp_DataModel( theModule ),
+ : SalomeApp_DataModel( theModule ),
myFileName( "" ),
myStudyURL( "" )
{
//=================================================================================
bool LIGHTGUI_DataModel::open ( const QString& theURL, CAM_Study* study )
{
- LightApp_Study* aDoc = dynamic_cast<LightApp_Study*>( study );
+ SalomeApp_Study* aDoc = dynamic_cast<SalomeApp_Study*>( study );
if ( !aDoc )
return false;
- LightApp_DataModel::open( theURL, aDoc );
+ SalomeApp_DataModel::open( theURL, study );
- // Get list of files, created for this module by LightApp_Engine_i::Load().
- std::vector<std::string> aListOfFiles = aDoc->GetListOfFiles();
+ // Get list of files, created for this module by SalomeApp_Engine_i::Load().
+ std::vector<std::string> aListOfFiles = GetListOfFiles();
// The first list item contains path to a temporary
// directory, where the persistent files was placed
QString aTmpDir ( aListOfFiles[0] );
// This module operates with a single persistent file
- if ( aListOfFiles.size() == 2 ) {
- myStudyURL = theURL;
- QString aFileName ( aListOfFiles[1] );
- QString aFullPath = SUIT_Tools::addSlash( aTmpDir ) + aFileName;
+ if ( aListOfFiles.size() == 2 ) {
+ myStudyURL = theURL;
+ QString aFileName ( aListOfFiles[1] );
+ QString aFullPath = SUIT_Tools::addSlash( aTmpDir ) + aFileName;
- loadFile( aFullPath, aDoc );
- }
+ loadFile( aFullPath, study );
+ }
// Remove the files and temporary directory, created
- // for this module by LightApp_Engine_i::Load()
+ // for this module by SalomeApp_Engine_i::Load()
bool isMultiFile = false; // TODO: decide, how to access this parameter
- aDoc->RemoveTemporaryFiles( isMultiFile );
+ RemoveTemporaryFiles( isMultiFile );
}
return true;
// 1. Save data to temporary files
bool isMultiFile = false; // TODO: decide, how to access this parameter
- LightApp_DataModel::save();
-
- LightApp_Study* study = dynamic_cast<LightApp_Study*>( module()->application()->activeStudy() );
-
- QString aTmpDir = study->GetTmpDir( myStudyURL.latin1(), isMultiFile );
+ QString aTmpDir ( SalomeApp_DataModel::GetTmpDir( myStudyURL.latin1(), isMultiFile ) );
QString aFileName = SUIT_Tools::file( myStudyURL, false ) + "_LIGHTGUI.txt";
QString aFullPath = aTmpDir + aFileName;
dumpFile( aFullPath );
std::vector<std::string> aListOfFiles ( 2 );
aListOfFiles[0] = aTmpDir.latin1();
aListOfFiles[1] = aFileName.latin1();
- study->SetListOfFiles( aListOfFiles );
+ SetListOfFiles( aListOfFiles );
return true;
}
//=================================================================================
bool LIGHTGUI_DataModel::close()
{
- LightApp_DataModel::close();
return true;
}
// function : update()
// purpose : updates data model
//=================================================================================
-void LIGHTGUI_DataModel::update ( LightApp_DataObject*, LightApp_Study* )
+void LIGHTGUI_DataModel::update ( SalomeApp_DataObject*, SalomeApp_Study* )
{
// Nothing to do here: we always keep the data tree in the up-to-date state
- // The only goal of this method is to hide default behavior from LightApp_DataModel
+ // The only goal of this method is to hide default behavior from SalomApp_DataModel
return;
}
{
if ( !studyRoot )
return;
-
+
LIGHTGUI_ModuleObject* modelRoot = new LIGHTGUI_ModuleObject( this, studyRoot );
- LIGHTGUI_DataObject* aParaObject;
- LIGHTGUI_DataObject* aLineObject;
+ CAM_DataObject* aParaObject, aLineObject;
aParaObject = new LIGHTGUI_DataObject ( "", modelRoot );
for ( ; it1 != it2; ++it1 ) {
if ( (*it1).stripWhiteSpace().isEmpty() ) {
aParaObject = new LIGHTGUI_DataObject ( *it1, modelRoot );
- }
+ }
else {
aLineObject = new LIGHTGUI_DataObject ( *it1, aParaObject );
}
#pragma once
#endif // _MSC_VER > 1000
-#include <LightApp_DataModel.h>
+#include <SalomeApp_DataModel.h>
class CAM_Module;
-class LightApp_Study;
-class LightApp_DataObject;
+class SalomeApp_Study;
class LIGHTGUI_DataObject;
-class LIGHTGUI_DataModel : public LightApp_DataModel
+class LIGHTGUI_DataModel : public SalomeApp_DataModel
{
Q_OBJECT
virtual bool isModified () const;
virtual bool isSaved () const;
- virtual void update ( LightApp_DataObject* = 0, LightApp_Study* = 0 );
+ virtual void update ( SalomeApp_DataObject* = 0, SalomeApp_Study* = 0 );
bool loadFile ( const QString&, CAM_Study* study = 0 );
bool dumpFile ( const QString& = QString::null );
// purpose : default constructor
//=================================================================================
LIGHTGUI_DataObject::LIGHTGUI_DataObject ( SUIT_DataObject* parent )
-: LightApp_DataObject( parent ),
- CAM_DataObject( parent )
+ : CAM_DataObject( parent )
{
}
// purpose : constructor
//=================================================================================
LIGHTGUI_DataObject::LIGHTGUI_DataObject ( const QString& line_text, SUIT_DataObject* parent )
-: LightApp_DataObject( parent ),
- myLineTxt( line_text ),
- CAM_DataObject( parent)
+ : CAM_DataObject( parent ),
+ myLineTxt( line_text )
{
}
{
}
-/*!Gets object ID.
- *\retval QString
- */
-QString LIGHTGUI_DataObject::entry() const
-{
- QString aStr = QString("LIGHTGUI_%1").arg(lineNb());
- return aStr;
-}
-
//=================================================================================
// function : name()
// purpose : gets an name of the object
// purpose : one more constructor
//=================================================================================
LIGHTGUI_ModuleObject::LIGHTGUI_ModuleObject ( CAM_DataModel* dm, SUIT_DataObject* parent )
-: LIGHTGUI_DataObject( parent ),
- CAM_RootObject( dm, parent ),
- CAM_DataObject( parent )
+ : LIGHTGUI_DataObject( parent ),
+ CAM_RootObject( dm, parent ),
+ CAM_DataObject( parent )
{
}
#ifndef LIGHTGUI_DATAOBJECT_H
#define LIGHTGUI_DATAOBJECT_H
-#include <LightApp_DataObject.h>
-#include <LightApp_RootObject.h>
+#include <CAM_DataObject.h>
+#include <CAM_RootObject.h>
#include <qstring.h>
/*!
* LIGHTGUI_DataObject - LIGHT module's data object class
*/
-class LIGHTGUI_DataObject : public virtual LightApp_DataObject
+class LIGHTGUI_DataObject : public virtual CAM_DataObject
{
public:
LIGHTGUI_DataObject ( SUIT_DataObject* = 0 );
LIGHTGUI_DataObject ( const QString&, SUIT_DataObject* = 0 );
virtual ~LIGHTGUI_DataObject();
- virtual QString entry() const;
-
QString name() const;
QPixmap icon() const;
QString toolTip() const;
* LIGHTGUI_ModuleObject - LIGHT module's root data object class
*/
-class LIGHTGUI_ModuleObject : public LIGHTGUI_DataObject,
- public CAM_RootObject
+class LIGHTGUI_ModuleObject : public LIGHTGUI_DataObject,
+ public CAM_RootObject
{
public:
LIGHTGUI_ModuleObject ( CAM_DataModel*, SUIT_DataObject* = 0 );
--- /dev/null
+// LIGHT : sample (no-corba-engine) SALOME module
+//
+// Copyright (C) 2003 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+// Author : Julia DOROVSKIKH
+// Date : 01/01/2005
+// $Header$
+
+#include "LIGHTGUI_DataOwner.h"
+
+//=================================================================================
+// function : LIGHTGUI_DataOwner()
+// purpose : constructor
+//=================================================================================
+LIGHTGUI_DataOwner::LIGHTGUI_DataOwner ( const int theLineNb )
+ : myLineNb( theLineNb )
+{
+}
+
+//=================================================================================
+// function : ~LIGHTGUI_DataOwner()
+// purpose : destructor
+//=================================================================================
+LIGHTGUI_DataOwner::~LIGHTGUI_DataOwner()
+{
+}
+
+//=================================================================================
+// function : isEqual()
+// purpose : compares two owners
+//=================================================================================
+bool LIGHTGUI_DataOwner::isEqual ( const SUIT_DataOwner& obj ) const
+{
+ const LIGHTGUI_DataOwner* other =
+ dynamic_cast<const LIGHTGUI_DataOwner*>( &obj );
+
+ return other && lineNb() == other->lineNb();
+}
+
+//=================================================================================
+// function : lineNb()
+// purpose : returns owner id
+//=================================================================================
+int LIGHTGUI_DataOwner::lineNb() const
+{
+ return myLineNb;
+}
--- /dev/null
+// LIGHT : sample (no-corba-engine) SALOME module
+//
+// Copyright (C) 2003 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+// Author : Julia DOROVSKIKH
+// Date : 01/01/2005
+// $Header$
+
+#ifndef LIGHTGUI_DATAOWNER_H
+#define LIGHTGUI_DATAOWNER_H
+
+#include <SUIT_DataOwner.h>
+
+class LIGHTGUI_DataOwner : public SUIT_DataOwner
+{
+public:
+ LIGHTGUI_DataOwner ( const int );
+ virtual ~LIGHTGUI_DataOwner ();
+
+ virtual bool isEqual ( const SUIT_DataOwner& ) const;
+ int lineNb () const;
+
+private:
+ int myLineNb;
+};
+
+#endif // LIGHTGUI_DATAOWNER_H
--- /dev/null
+// LIGHT : sample (no-corba-engine) SALOME module
+//
+// Copyright (C) 2003 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+// Author : Julia DOROVSKIKH
+// Date : 01/01/2005
+// $Header$
+
+#include "LIGHTGUI_OBSelector.h"
+#include "LIGHTGUI_DataOwner.h"
+#include "LIGHTGUI_DataObject.h"
+
+#include <OB_Browser.h>
+
+#include <SUIT_DataObjectIterator.h>
+
+//=================================================================================
+// function : LIGHTGUI_OBSelector()
+// purpose : constructor
+//=================================================================================
+LIGHTGUI_OBSelector::LIGHTGUI_OBSelector ( OB_Browser* ob, SUIT_SelectionMgr* mgr )
+ : SUIT_Selector( mgr, ob ),
+ myBrowser( ob )
+{
+ if ( myBrowser ) {
+ connect( myBrowser, SIGNAL( selectionChanged() ), this, SLOT( onSelectionChanged() ) );
+ }
+}
+
+//=================================================================================
+// function : ~LIGHTGUI_OBSelector()
+// purpose : destructor
+//=================================================================================
+LIGHTGUI_OBSelector::~LIGHTGUI_OBSelector()
+{
+}
+
+//=================================================================================
+// function : browser()
+// purpose : gets object browser
+//=================================================================================
+OB_Browser* LIGHTGUI_OBSelector::browser() const
+{
+ return myBrowser;
+}
+
+//=================================================================================
+// function : getSelection()
+// purpose : gets selection
+//=================================================================================
+void LIGHTGUI_OBSelector::getSelection ( SUIT_DataOwnerPtrList& aList ) const
+{
+ if ( !myBrowser )
+ return;
+
+ DataObjectList objlist;
+ myBrowser->getSelected( objlist );
+ for ( DataObjectListIterator it ( objlist ); it.current(); ++it )
+ {
+ LIGHTGUI_DataObject* obj = dynamic_cast<LIGHTGUI_DataObject*>( it.current() );
+ if ( obj )
+ aList.append( SUIT_DataOwnerPtr( new LIGHTGUI_DataOwner( obj->lineNb() ) ) );
+ }
+}
+
+//=================================================================================
+// function : setSelection()
+// purpose : sets selection
+//=================================================================================
+void LIGHTGUI_OBSelector::setSelection ( const SUIT_DataOwnerPtrList& aList )
+{
+ if ( !myBrowser )
+ return;
+
+ // Fill map of all data objects
+ QMap<int, LIGHTGUI_DataObject*> aMap;
+
+ SUIT_DataObjectIterator objit ( myBrowser->getRootObject(),
+ SUIT_DataObjectIterator::DepthLeft );
+ for ( ; objit.current(); ++objit )
+ {
+ LIGHTGUI_DataObject* obj = dynamic_cast<LIGHTGUI_DataObject*>( objit.current() );
+ if ( obj )
+ aMap.insert( obj->lineNb(), obj );
+ }
+
+ // Fill list with all selected data objects
+ DataObjectList objList;
+ SUIT_DataOwnerPtrList::const_iterator ownit = aList.begin();
+ for ( ; ownit != aList.end(); ++ownit )
+ {
+ const LIGHTGUI_DataOwner* owner =
+ dynamic_cast<const LIGHTGUI_DataOwner*>( (*ownit).get() );
+ if ( owner && aMap.contains( owner->lineNb() ) )
+ objList.append( aMap[owner->lineNb()] );
+ }
+
+ myBrowser->setSelected( objList );
+}
+
+//=================================================================================
+// function : onSelectionChanged()
+// purpose : called when selection is changed in the Object Browser
+//=================================================================================
+void LIGHTGUI_OBSelector::onSelectionChanged()
+{
+ selectionChanged();
+}
--- /dev/null
+// LIGHT : sample (no-corba-engine) SALOME module
+//
+// Copyright (C) 2003 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+// Author : Julia DOROVSKIKH
+// Date : 01/01/2005
+// $Header$
+
+#ifndef LIGHTGUI_OBSELECTOR_H
+#define LIGHTGUI_OBSELECTOR_H
+
+#include <SUIT_Selector.h>
+
+class OB_Browser;
+
+class LIGHTGUI_OBSelector : public SUIT_Selector
+{
+ Q_OBJECT
+
+public:
+ LIGHTGUI_OBSelector ( OB_Browser*, SUIT_SelectionMgr* );
+ virtual ~LIGHTGUI_OBSelector ();
+
+ OB_Browser* browser () const;
+
+ virtual QString type () const { return "ObjectBrowser"; }
+
+private slots:
+ void onSelectionChanged ();
+
+protected:
+ virtual void getSelection ( SUIT_DataOwnerPtrList& ) const;
+ virtual void setSelection ( const SUIT_DataOwnerPtrList& );
+
+private:
+ OB_Browser* myBrowser;
+};
+
+#endif // LIGHTGUI_OBSELECTOR_H
// $Header$
#include "LIGHTGUI_Selection.h"
-#include "LightApp_DataOwner.h"
+#include "LIGHTGUI_DataOwner.h"
-#include <LightApp_SelectionMgr.h>
+#include <SalomeApp_SelectionMgr.h>
//=================================================================================
// function : LIGHTGUI_Selection()
// purpose : constructor
//=================================================================================
-LIGHTGUI_Selection::LIGHTGUI_Selection ()
-: LightApp_Selection()
+LIGHTGUI_Selection::LIGHTGUI_Selection ( const QString& client,
+ SalomeApp_SelectionMgr* mgr )
{
-}
-
-//=================================================================================
-// function : ~LIGHTGUI_Selection()
-// purpose : destructor
-//=================================================================================
-LIGHTGUI_Selection::~LIGHTGUI_Selection()
-{
-}
+ myPopupClient = client;
-//=================================================================================
-// function : init()
-// purpose : initialization
-//=================================================================================
-void LIGHTGUI_Selection::init( const QString& client, LightApp_SelectionMgr* mgr)
-{
if ( mgr ) {
SUIT_DataOwnerPtrList sel;
mgr->selected( sel);
aLast = sel.end();
for ( ; anIt != aLast; anIt++ ) {
SUIT_DataOwner* owner = (SUIT_DataOwner*)( (*anIt).get() );
- LightApp_DataOwner* sowner = dynamic_cast<LightApp_DataOwner*>( owner );
- QString anEntry = sowner->entry();
- int anIndex = anEntry.find("_");
- int aPosition = (anEntry.mid(anIndex+1, anEntry.length() - anIndex)).toInt();//lineNb();
- if ( sowner && aPosition > 0 )
+ LIGHTGUI_DataOwner* sowner = dynamic_cast<LIGHTGUI_DataOwner*>( owner );
+ if ( sowner && sowner->lineNb() > 0 )
myTypes.append( "TextLine" );
else
myTypes.append( "Unknown" );
}
}
- LightApp_Selection::init(client, mgr);
+}
+
+//=================================================================================
+// function : ~LIGHTGUI_Selection()
+// purpose : destructor
+//=================================================================================
+LIGHTGUI_Selection::~LIGHTGUI_Selection()
+{
}
//=================================================================================
#define LIGHTGUI_SELECTION_H
#include <QtxPopupMgr.h>
-#include <LightApp_Selection.h>
-class LightApp_SelectionMgr;
+class SalomeApp_SelectionMgr;
-class LIGHTGUI_Selection : public LightApp_Selection
+class LIGHTGUI_Selection : public QtxPopupMgr::Selection
{
public:
- LIGHTGUI_Selection ();
+ LIGHTGUI_Selection ( const QString&, SalomeApp_SelectionMgr* );
virtual ~LIGHTGUI_Selection ();
- virtual void init( const QString&, LightApp_SelectionMgr* );
virtual int count () const;
virtual QtxValue param ( const int, const QString& ) const;
private:
+ QString myPopupClient;
QStringList myTypes;
};
msgid "STB_SAVE_FILE"
msgstr "Save text file"
-msgid "TOP_DISPLAY_LINE"
-msgstr "Display line"
-
-msgid "MEN_DISPLAY_LINE"
-msgstr "Display selected line"
-
-msgid "STB_DISPLAY_LINE"
-msgstr "Display selected line"
msgid "TOP_EDIT_LINE"
msgstr "Edit line"
LIGHTGUI.cxx \
LIGHTGUI_Selection.cxx \
LIGHTGUI_DataObject.cxx \
+ LIGHTGUI_DataOwner.cxx \
LIGHTGUI_DataModel.cxx \
- LIGHTGUI_TextPrs.cxx
+ LIGHTGUI_OBSelector.cxx
-LIB_CLIENT_IDL = SALOME_Component.idl
+LIB_CLIENT_IDL = SALOME_Component.idl SALOME_Exception.idl
# MOC pre-processing
LIB_MOC = \
LIGHTGUI.h \
LIGHTGUI_DataModel.h \
+ LIGHTGUI_OBSelector.h
# additionnal compilation flags
-CPPFLAGS +=$(PYTHON_INCLUDES) $(QT_INCLUDES) $(VTK_INCLUDES) $(OCC_INCLUDES) -I${BOOSTDIR} \
+CPPFLAGS += \
+ $(QT_INCLUDES) $(VTK_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) -I${BOOSTDIR} \
+ -I${KERNEL_ROOT_DIR}/include/salome \
-I${GUI_ROOT_DIR}/include/salome
# additionnal linkage flags
-LDFLAGS +=$(PYTHON_LIBS) $(QT_MT_LIBS)\
- -lLightApp -L${GUI_ROOT_DIR}/lib/salome
+LDFLAGS += \
+ -lSalomeApp \
+ -L${KERNEL_ROOT_DIR}/lib/salome \
+ -L${GUI_ROOT_DIR}/lib/salome
@CONCLUDE@