From: rnv
Date: Tue, 27 Jun 2017 16:07:30 +0000 (+0300)
Subject: Merge Python 3 porting: additional chnages.
X-Git-Tag: V9_0_0~24
X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=3e8cb819ece8ab264fe0c8d6d970387d2bfeb755;p=modules%2Fkernel.git
Merge Python 3 porting: additional chnages.
---
3e8cb819ece8ab264fe0c8d6d970387d2bfeb755
diff --cc idl/SALOMEDS.idl
index bc22b3d33,87a4f2df2..eb14c2fa0
--- a/idl/SALOMEDS.idl
+++ b/idl/SALOMEDS.idl
@@@ -41,7 -41,7 +41,7 @@@ module SALOMED
{
/*! \brief Name of the file in which the %Study is saved.
*/
- typedef string URLPath;
- typedef wstring URL;
++ typedef wstring URLPath;
/*! \brief Main identifier of an object in %SALOME application
*/
@@@ -55,6 -55,14 +55,8 @@@
*/
typedef string SalomeReference;
-/*! \brief List of the names of studies which are currently open in this %SALOME session.
-
-Since %SALOME is a multi-study application, it allows to open a lot of studies
-during each working session.
-*/
- typedef sequence ListOfOpenStudies;
+ //! List of file names
+ typedef sequence ListOfFileNames;
//! List of modification dates of a study
typedef sequence ListOfDates ;
//! An unbounded sequence of strings
@@@ -96,749 -105,899 +98,752 @@@
//! Exception indicating that this feature hasn't been implemented in %SALOME application.
exception NotImplemented {};
+ //==========================================================================
+/*! \brief %Study Builder Interface
- //===========================================================================
- /*! \brief %Study Interface
-
- The purpose of the %Study is to manage the data produced by various components of %SALOME platform.
- Most of the %Study operations are handled by the StudyManager and the StudyBuilder.
- What is left in the %Study interface are elementary inquiries.
- (Incidentally, we recall that a CORBA attribute is implemented as a pair of get
- and set methods.) A %Study is explored by a set of tools, mainly iterators
- , which are described further. Nevertheless, the %Study
- interface allows the search of an object by name or by ID.
- \note
-
The Path of an object in %SALOME application is much alike a standard path of a file.
- In general it's a string of names of directories divided by a slash '/'.
-
The Context is the current directory of an object.
+ The purpose of the Builder is to add and/or remove objects and attributes.
+ A %StudyBuilder is linked to a %Study. A
+ command management is provided for the undo/redo functionalities.
+ \note
+
The Tag of an item in %SALOME application is a symbolic description of
+ item's position in the tree-type structure of the browser. In general it has the following
+ form: 0:2:1:1
*/
+ //==========================================================================
- interface Study
+ interface StudyBuilder
{
+/*! \brief %LockProtection Exception
-//! Invalid study reference
- exception StudyInvalidReference {};
-//! Invalid study context
- exception StudyInvalidContext {};
-//! Invalid study component
- exception StudyInvalidComponent {};
-//! Invalid directory of the %study exception
- exception StudyInvalidDirectory {};
-//! Exception pointing that this name of the study has already been used.
- exception StudyNameAlreadyUsed {};
-//! study object already exists
- exception StudyObjectAlreadyExists {};
-//! Invalid name of the %study exception
- exception StudyNameError {};
-//! Invalid study comment
- exception StudyCommentError {};
-
-/*! \brief The name of the %Study
-
- This is equivalent to the methods setName() & getName()
+ This exception is raised while attempting to modify a locked %study.
*/
- attribute wstring Name; // equivalent to setName() & getName()
-/*! \brief The ID of the %Study
+ exception LockProtection {};
+/*! \brief Creation of a new %SComponent.
- This is equivalent to the methods setID() & getID()
-*/
- attribute short StudyId;
-//! Sequence containing %SObjects
- typedef sequence ListOfSObject;
-//! Get the persistent reference to the %Study.
- PersistentReference GetPersistentReference() raises(StudyInvalidReference);
-//! Get a transient reference to the %Study.
- SalomeReference GetTransientReference() raises(StudyInvalidReference);
+ Creates a new %SComponent
+ \param ComponentDataType Data type of the %SComponent which will be created.
-/*! \brief indicate whether the %Study is empty
+See \ref example17 for an example of this method usage in batchmode of %SALOME application.
- \return True if the %Study is empty
*/
- boolean IsEmpty() raises(StudyInvalidReference);
-/*! \brief Find a %SComponent by its name.
-
- \param aComponentName It's a string value in the Comment Attribute of the Component,
- which is looked for, defining the data type of this Component.
+ SComponent NewComponent(in string ComponentDataType) raises(LockProtection);
+
-See \ref example1 for an example of this method usage in batchmode of %SALOME application.
+/*! \brief Definition of the instance to the %SComponent
+ Defines the instance to the %SComponent.
*/
- SComponent FindComponent (in string aComponentName) raises(StudyInvalidReference);
+ void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR) raises(LockProtection);
-/*! \brief Find a %SComponent by ID of the according %SObject
+/*! \brief Deletion of a %SComponent
+
+ Removes a %SComponent.
*/
- SComponent FindComponentID(in ID aComponentID) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by the Name Attribute of this %SObject
+ void RemoveComponent(in SComponent aComponent) raises(LockProtection);
- \param anObjectName String parameter defining the name of the object
- \return The obtained %SObject
+/*! \brief Creation of a new %SObject
-See \ref example19 for an example of this method usage in batchmode of %SALOME application.
-*/
- SObject FindObject (in string anObjectName) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by its ID
+ Creates a new %SObject under a definite father %SObject.
- \param aObjectID This parameter defines the ID of the required object
- \return The obtained %SObject
-*/
- SObject FindObjectID (in ID aObjectID) raises(StudyInvalidReference);
-/*! \brief Create a %SObject by its ID
+ \param theFatherObject The father %SObject under which this one should be created.
+ \return New %SObject
- \param aObjectID This parameter defines the ID of the required object
- \return The created %SObject
-*/
- SObject CreateObjectID (in ID aObjectID) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by IOR of the object belonging to this %SObject.
+See \ref example18 for an example of this method usage in batchmode of %SALOME application.
- \param anObjectName This parameter defines the IOR of the object
- \return The obtained %SObject
*/
- SObject FindObjectIOR (in ID aObjectIOR) raises(StudyInvalidReference);
-/*! \brief Find in the study all %SObjects produced by a given %Component.
- \param anObjectName The Name Attribute of the searched %SObjects should correspond to anObjectName.
- \param aComponentName The name of the component, which objects are searched for.
-*/
- ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by the path to it.
+ SObject NewObject (in SObject theFatherObject) raises(LockProtection);
- \param thePath The path to the required %SObject.
- \return The obtained %SObject.
-*/
- SObject FindObjectByPath(in string thePath) raises(StudyInvalidReference);
-/*! \brief Get the path to the %SObject.
-*/
- string GetObjectPath(in Object theObject) raises(StudyInvalidReference);
+/*! \brief Creation of a new %SObject with a definite %tag
-/*! \brief Set the context of the %Study.
+ Creates a new %SObject with a definite %tag.
- \param thePath String parameter defining the context of the study.
+ \param atag Long value corresponding to the tag of the new %SObject.
+ \return New %SObject
-See \ref example23 for an example of this method usage in batchmode of %SALOME application.
*/
- void SetContext(in string thePath) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get the context of the %Study.
+ SObject NewObjectToTag (in SObject theFatherObject, in long atag) raises(LockProtection);
+/*! \brief Deletion of the %SObject
-See \ref example23 for an example of this method usage in batchmode of %SALOME application.
-*/
- string GetContext() raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of objects corresponding to the context.
+ Removes a %SObject from the %StudyBuilder.
- \note If the parameter theContext is empty, then the current context will be used.
+ \param anObject The %SObject to be deleted.
*/
- ListOfStrings GetObjectNames(in string theContext) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of directories and subdirectories corresponding to the context.
+ void RemoveObject (in SObject anObject) raises(LockProtection);
+/*! \brief Deletion of the %SObject with all his child objects.
- \note If the parameter theContext is empty, then the current context will be used.
-*/
- ListOfStrings GetDirectoryNames(in string theContext) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of Files corresponding to the context.
+ Removes the %SObject with all his child objects.
- \note If the parameter theContext is empty, then the current context will be used.
+ \param anObject The %SObject to be deleted with all child objects.
*/
- ListOfStrings GetFileNames(in string theContext) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of Components corresponding to the context.
+ void RemoveObjectWithChildren(in SObject anObject) raises(LockProtection);
- \note If the parameter theContext is empty, then the current context will be used.
-*/
- ListOfStrings GetComponentNames(in string theContext) raises(StudyInvalidReference);
-/*! \brief Create a new iterator of child levels of the given %SObject.
+/*!
+ Loads a %SComponent.
- \param aSO The given %SObject
- \return A new iterator of child levels of the given %SObject.
-*/
- ChildIterator NewChildIterator(in SObject aSO) raises(StudyInvalidReference);
+See \ref example19 for an example of this method usage in batchmode of %SALOME application.
-/*! \brief Create a new iterator of the %SComponents.
+*/
+ void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
+/*!
+ Loads a %SObject.
- \return A new iterator of the %SComponents.
+ \param sco %SObject to be loaded.
*/
- SComponentIterator NewComponentIterator() raises(StudyInvalidReference);
+ void Load (in SObject sco);
-/*! \brief Create a new %StudyBuilder to add or modify an object in the study.
+/*! \brief Looking for or creating an attribute assigned to the %SObject
- \return A new %StudyBuilder.
+ Allows to find or create an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
-See \ref example20 for an example of this method usage in batchmode of %SALOME application.
+See \ref example1 for an example of this method usage in batchmode of %SALOME application.
*/
- StudyBuilder NewBuilder() raises(StudyInvalidReference);
-/*! \brief Labels dependency
- Updates the map with IOR attribute. It's an inner method used for optimization.
-*/
- void UpdateIORLabelMap(in string anIOR, in string anEntry) raises(StudyInvalidReference);
+ GenericAttribute FindOrCreateAttribute(in SObject anObject,
+ in string aTypeOfAttribute) raises(LockProtection);
-/*! \brief Getting properties of the study
+/*! \brief Looking for an attribute assigned to a %SObject
- Returns the attribute, which contains the properties of this study.
+ Allows to find an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+ \param anAttribute Where the attribute is placed if it's found.
+ \return True if it finds an attribute.
+ */
-See \ref example20 for an example of this method usage in batchmode of %SALOME application.
+ boolean FindAttribute(in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+/*! \brief Deleting the attribute assigned to the %SObject
-*/
- AttributeStudyProperties GetProperties() raises(StudyInvalidReference);
-/*! \brief Indicate whether the %study has been saved
-*/
- attribute boolean IsSaved;
-/*! \brief Indicate whether the %study has been modified and not saved.
+ Removes the attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute.
+ \param aTypeOfAttribute Type of the attribute.
- Returns True if the %study has been modified and not saved.
+See \ref example17 for an example of this method usage in batchmode of %SALOME application.
*/
- boolean IsModified() raises(StudyInvalidReference);
-
-/*! \brief Mark the %study as being modified and not saved.
+ void RemoveAttribute(in SObject anObject,
+ in string aTypeOfAttribute) raises(LockProtection);
+/*!
+ Adds a reference between %anObject and %theReferencedObject.
+ \param anObject The %SObject which will get a reference
+ \param theReferencedObject The %SObject having a reference
*/
- void Modified() raises(StudyInvalidReference);
-/*! \brief Indicate the file where the %study has been saved
+ void Addreference(in SObject anObject,
+ in SObject theReferencedObject) ;
+
+/*!
+ Removes a reference from %anObject to another object.
+ \param anObject The %SObject which contains a reference
*/
- attribute wstring URL;
-/*! \brief List of %SObjects
+ void RemoveReference(in SObject anObject) ;
- Returns the list of %SObjects which refers to %anObject.
-*/
- ListOfSObject FindDependances(in SObject anObject) raises(StudyInvalidReference);
+/*! \brief Identification of the %SObject's substructure.
-/*! \brief The date of the last saving of the study
+ Identification of the %SObject's substructure by GUID.
- Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
-*/
- string GetLastModificationDate() raises(StudyInvalidReference);
-/*! \brief The list of modification dates of the study
- Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
- Note : the first modification begins the list.
+ \param anObject The %SObject which will be identified
+ \param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
*/
-
- void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection);
- ListOfDates GetModificationsDate() raises(StudyInvalidReference);
-/*! \brief Object conversion.
++ void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection);
+/*!
+Searches for a definite %SObject with a definite GUID and returns True if it finds it.
- Converts an object into IOR.
- \return IOR
+\param anObject A definite %SObject which will be identified
+\param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
*/
- string ConvertObjectToIOR(in Object theObject);
-/*! \brief Object conversion.
+ boolean IsGUID(in SObject anObject, in string theGUID);
- Converts IOR into an object.
- \return An object
-*/
- Object ConvertIORToObject(in string theIOR);
+/*! \brief Creation of a new command
-/*! \brief Get a new %UseCaseBuilder.
-*/
- UseCaseBuilder GetUseCaseBuilder() raises(StudyInvalidReference);
+ Creates a new command which can contain several different actions.
-/*! \brief Close the components in the study, remove itself from the %StudyManager.
-*/
- void Close() raises(StudyInvalidReference);
+See \ref example3 for an example of this method usage in batchmode of %SALOME application.
-/*! \brief Enable (if isEnabled = True)/disable automatic addition of new %SObjects to the use case.
*/
- void EnableUseCaseAutoFilling(in boolean isEnabled) raises(StudyInvalidReference);
+ void NewCommand(); // command management
+/*! \brief Execution of the command
-/*!
- Functions for internal usage only
-*/
- void AddPostponed(in string theIOR) raises(StudyInvalidReference);
+ Commits all actions declared within this command.
- void AddCreatedPostponed(in string theIOR) raises(StudyInvalidReference);
+ \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
- void RemovePostponed(in long theUndoLimit) raises(StudyInvalidReference);
+See \ref example16 for an example of this method usage in batchmode of %SALOME application.
- void UndoPostponed(in long theWay) raises(StudyInvalidReference);
-
- boolean DumpStudy(in string thePath,
- in string theBaseName,
- in boolean isPublished,
- in boolean isMultiFile) raises(StudyInvalidReference);
-
-/*! \brief Get an AttributeParameter used to store common parameters for given %theSavePoint.
-
- \param theID identifies a common parameters set (Example: "Interface Applicative")
- \param theSavePoint is number of a set of parameters as there can be several sets
-*/
- AttributeParameter GetCommonParameters(in string theID, in long theSavePoint) raises(StudyInvalidReference);
-
-/*! \brief Get an AttributeParameter used to store parameters for given %theModuleName.
-
- \param theID identifies a common parameters set (Example: "Interface Applicative")
- \param theModuleName is a name of the module (Example: "Geometry")
- \param theSavePoint is number of a set of parameters as there can be several sets
*/
- AttributeParameter GetModuleParameters(in string theID, in string theModuleName, in long theSavePoint) raises(StudyInvalidReference);
-
-
-/*! \brief Get a default Python script to restore visual parameters for given %theModuleName.
-
- \param theModuleName is a name of the module (Example: "Geometry")
- \param indent is a string to use for script indentation
-*/
- string GetDefaultScript(in string theModuleName, in string indent) raises(StudyInvalidReference);
-
+ void CommitCommand() raises(LockProtection); // command management
/*!
- Private method, returns an implementation of this Study.
- \param theHostname is a hostname of the caller
- \param thePID is a process ID of the caller
- \param isLocal is set True if the Study is launched locally with the caller
-*/
- long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
-
-
-/*! \brief Mark this Study as being locked by the given locker.
-
- The lock status can be checked by method IsStudyLocked
- \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that locks the study.
-*/
- void SetStudyLock(in string theLockerID) raises(StudyInvalidReference);
-
-/*! \brief Indicate if the Study is locked
-
- Returns True if the Study was marked locked.
+ Returns True if at this moment there is a command under execution.
*/
- boolean IsStudyLocked() raises(StudyInvalidReference);
+ boolean HasOpenCommand();
+/*! \brief Cancelation of the command
-/*! \brief Mark this Study as being unlocked by the given locker.
+ Cancels all actions declared within the command.
- The lock status can be checked by method IsStudyLocked
- \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that unlocks the study.
+See \ref example17 for an example of this method usage in batchmode of %SALOME application.
*/
- void UnLockStudy(in string theLockerID) raises(StudyInvalidReference);
+ void AbortCommand(); // command management
+/*! \brief Undolimit
-/*! \brief Get the list of IDs of the Study's lockers.
+ The number of actions which can be undone
*/
- ListOfStrings GetLockerID() raises(StudyInvalidReference);
+ attribute long UndoLimit;
+/*! \brief Undo method
-/*! \brief Create real variable with Name theVarName and value theValue
+ Cancels all actions of the last command.
- (or set if variable value into theValue already exists)
- \param theVarName is a name of the variable
- \param theVarName is a value of the variable.
-*/
- void SetReal( in string theVarName, in double theValue ) raises(StudyInvalidReference);
+ \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
-/*! \brief Create integer variable with Name theVarName and value theValue
+See \ref example16 for an example of this method usage in batchmode of %SALOME application.
- (or set if variable value into theValue already exists)
- \param theVarName is a name of the variable
- \param theVarName is a value of the variable.
*/
- void SetInteger( in string theVarName, in long theValue ) raises(StudyInvalidReference);
-/*! \brief Create boolean variable with Name theVarName and value theValue
+ void Undo() raises (LockProtection);
+/*! \brief Redo method
- (or set if variable value into theValue already exists)
- \param theVarName is a name of the variable
- \param theVarName is a value of the variable.
-*/
- void SetBoolean( in string theVarName, in boolean theValue ) raises(StudyInvalidReference);
+ Redoes all actions of the last command.
-/*! \brief Create string variable with Name theVarName and value theValue
+\exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
- (or set if variable value into theValue already exists)
- \param theVarName is a name of the variable
- \param theVarName is a value of the variable.
-*/
- void SetString( in string theVarName, in string theValue ) raises(StudyInvalidReference);
+See \ref example16 for an example of this method usage in batchmode of %SALOME application.
-/*! \brief Set current value as double for string variable
*/
- void SetStringAsDouble( in string theVarName, in double theValue ) raises(StudyInvalidReference);
+ void Redo() raises (LockProtection);
+/*!
+ Returns True if at this moment there are any actions which can be canceled.
-/*! \brief Get value of a real variable
+See \ref example16 for an example of this method usage in batchmode of %SALOME application.
- \param theVarName is a name of the variable.
*/
- double GetReal( in string theVarName ) raises(StudyInvalidReference);
+ boolean GetAvailableUndos();
+/*!
+ Returns True if at this moment there are any actions which can be redone.
-/*! \brief Get value of an integer variable
+See \ref example3 for an example of this method usage in batchmode of %SALOME application.
- \param theVarName is a name of the variable.
*/
- long GetInteger( in string theVarName ) raises(StudyInvalidReference);
-
-/*! \brief Get value of a boolean variable
+ boolean GetAvailableRedos();
+/*!
+ Puts name attribute with the given string value to the given %SObject
- \param theVarName is a name of the variable.
+ \param theSO Existing SObject to set name attribute.
+ \param theValue The value to be set to the name attribute.
*/
- boolean GetBoolean( in string theVarName ) raises(StudyInvalidReference);
+ void SetName(in SObject theSO, in string theValue) raises (LockProtection);
-/*! \brief Get value of a string variable
+/*!
+ Puts comment attribute with the given string value to the given %SObject
- \param theVarName is a name of the variable.
+ \param theSO Existing SObject to set comment attribute.
+ \param theValue The value to be set to the comment attribute.
*/
- string GetString( in string theVarName ) raises(StudyInvalidReference);
-
+ void SetComment(in SObject theSO, in string theValue) raises (LockProtection);
-/*! \brief Indicate if a variable is real
+/*!
+ Puts IOR attribute with the given string value to the given %SObject
- Return true if variable is real otherwise return false.
- \param theVarName is a name of the variable.
+ \param theSO Existing SObject to set IOR attribute.
+ \param theValue The value to be set to the IOR attribute.
*/
- boolean IsReal( in string theVarName ) raises(StudyInvalidReference);
+ void SetIOR(in SObject theSO, in string theValue) raises (LockProtection);
+ };
-/*! \brief Indicate if a variable is integer
+ //===========================================================================
+ /*! \brief %Study Interface
- Return true if variable is integer otherwise return false.
- \param theVarName is a name of the variable.
+ The purpose of the %Study is to manage the data produced by various components of %SALOME platform.
+ Most of the %Study operations are handled by the StudyBuilder.
+ What is left in the %Study interface are elementary inquiries.
+ (Incidentally, we recall that a CORBA attribute is implemented as a pair of get
+ and set methods.) A %Study is explored by a set of tools, mainly iterators
+ , which are described further. Nevertheless, the %Study
+ interface allows the search of an object by name or by ID.
+ \note
+
The Path of an object in %SALOME application is much alike a standard path of a file.
+ In general it's a string of names of directories divided by a slash '/'.
+
The Context is the current directory of an object.
*/
- boolean IsInteger( in string theVarName ) raises(StudyInvalidReference);
-/*! \brief Indicate if a variable is boolean
+ interface Study
+ {
- Return true if variable is boolean otherwise return false.
- \param theVarName is a name of the variable.
+//! Invalid study reference
+ exception StudyInvalidReference {};
+//! Invalid study component
+ exception StudyInvalidComponent {};
+//! Invalid directory of the %study exception
+ exception StudyInvalidDirectory {};
+//! Exception pointing that this name of the study has already been used.
+ exception StudyNameAlreadyUsed {};
+//! study object already exists
+ exception StudyObjectAlreadyExists {};
+//! Invalid name of the %study exception
+ exception StudyNameError {};
+//! Invalid study comment
+ exception StudyCommentError {};
+
+/*!
+ Determines whether the server has already been loaded or not.
*/
- boolean IsBoolean( in string theVarName ) raises(StudyInvalidReference);
-
-/*! \brief Indicate if a variable is string
+ void ping();
+ void Shutdown();
+/*!
+ Returns the PID of the server
+*/
+ long getPID();
- Return true if variable is string otherwise return false.
- \param theVarName is a name of the variable.
+/*!
+ Shutdown the Study process.
*/
- boolean IsString( in string theVarName ) raises(StudyInvalidReference);
+ oneway void ShutdownWithExit();
-/*! \brief Indicate if a variable exists in the study
+/*! \brief The name of the %Study
- Return true if variable exists in the study,
- otherwise return false.
- \param theVarName is a name of the variable.
+ This is equivalent to the methods setName() & getName()
*/
- readonly attribute string Name; // equivalent to getName()
- boolean IsVariable( in string theVarName ) raises(StudyInvalidReference);
++ attribute wstring Name; // equivalent to getName()
+
-/*! \brief Get names of all variables from the study.
++/*! \brief Indicate the file where the %study has been saved
+ */
- ListOfStrings GetVariableNames() raises(StudyInvalidReference);
-/*! \brief Remove a variable
+//! Sequence containing %SObjects
+ typedef sequence ListOfSObject;
+//! Get the persistent reference to the %Study.
+ PersistentReference GetPersistentReference() raises(StudyInvalidReference);
- Remove variable with the specified name from the study with substitution of its value.
+/*! \brief indicate whether the %Study is empty
- \param theVarName Name of the variable.
- \return Status of operation.
+ \return True if the %Study is empty
*/
- boolean RemoveVariable( in string theVarName ) raises(StudyInvalidReference);
+ boolean IsEmpty() raises(StudyInvalidReference);
+/*! \brief Find a %SComponent by its name.
-/*! \brief Rename a variable
+ \param aComponentName It's a string value in the Comment Attribute of the Component,
+ which is looked for, defining the data type of this Component.
- Rename variable with the specified name within the study.
+See \ref example1 for an example of this method usage in batchmode of %SALOME application.
- \param theVarName Name of the variable.
- \param theNewVarName New name for the variable.
- \return Status of operation.
*/
- boolean RenameVariable( in string theVarName, in string theNewVarName ) raises(StudyInvalidReference);
-
-/*! \brief Indicate whether variable is used
-
- Check that variable is used in the study.
+ SComponent FindComponent (in string aComponentName) raises(StudyInvalidReference);
- \param theVarName Name of the variable.
- \return Variable usage.
+/*! \brief Find a %SComponent by ID of the according %SObject
*/
- boolean IsVariableUsed( in string theVarName ) raises(StudyInvalidReference);
+ SComponent FindComponentID(in ID aComponentID) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by the Name Attribute of this %SObject
-/*! \brief Parse variables used for object creation
+ \param anObjectName String parameter defining the name of the object
+ \return The obtained %SObject
- \param string with variables, separated by special symbol.
- \return Variables list.
+See \ref example19 for an example of this method usage in batchmode of %SALOME application.
*/
- ListOfListOfStrings ParseVariables( in string theVars ) raises(StudyInvalidReference);
-
-/*!
- Attach an observer to the Study
+ SObject FindObject (in string anObjectName) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by its ID
- \param theObserver observer being attached
- \param modify when \c true, observer receives any object's modification events;
- otherwise observer receives object's creation events only
+ \param aObjectID This parameter defines the ID of the required object
+ \return The obtained %SObject
*/
- void attach(in SALOMEDS::Observer theObserver, in boolean modify);
-/*!
- Detach an observer from the Study
+ SObject FindObjectID (in ID aObjectID) raises(StudyInvalidReference);
+/*! \brief Create a %SObject by its ID
- \param theObserver observer to be detached
+ \param aObjectID This parameter defines the ID of the required object
+ \return The created %SObject
*/
- void detach(in SALOMEDS::Observer theObserver);
- };
-
- //==========================================================================
-/*! \brief %Study Builder Interface
+ SObject CreateObjectID (in ID aObjectID) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by IOR of the object belonging to this %SObject.
- The purpose of the Builder is to add and/or remove objects and attributes.
- A %StudyBuilder is linked to a %Study. A
- command management is provided for the undo/redo functionalities.
- \note
-
The Tag of an item in %SALOME application is a symbolic description of
- item's position in the tree-type structure of the browser. In general it has the following
- form: 0:2:1:1
+ \param anObjectName This parameter defines the IOR of the object
+ \return The obtained %SObject
*/
- //==========================================================================
-
- interface StudyBuilder
- {
-/*! \brief %LockProtection Exception
+ SObject FindObjectIOR (in ID aObjectIOR) raises(StudyInvalidReference);
+/*! \brief Find in the study all %SObjects produced by a given %Component.
- This exception is raised while attempting to modify a locked %study.
+ \param anObjectName The Name Attribute of the searched %SObjects should correspond to anObjectName.
+ \param aComponentName The name of the component, which objects are searched for.
*/
- exception LockProtection {};
-/*! \brief Creation of a new %SComponent.
-
- Creates a new %SComponent
- \param ComponentDataType Data type of the %SComponent which will be created.
-
-See \ref example17 for an example of this method usage in batchmode of %SALOME application.
+ ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by the path to it.
+ \param thePath The path to the required %SObject.
+ \return The obtained %SObject.
*/
- SComponent NewComponent(in string ComponentDataType) raises(LockProtection);
-/*! \brief Definition of the instance to the %SComponent
-
- Defines the instance to the %SComponent.
+ SObject FindObjectByPath(in string thePath) raises(StudyInvalidReference);
+/*! \brief Get the path to the %SObject.
*/
- void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR) raises(LockProtection);
+ string GetObjectPath(in Object theObject) raises(StudyInvalidReference);
-/*! \brief Deletion of a %SComponent
+/*! \brief Create a new iterator of child levels of the given %SObject.
- Removes a %SComponent.
+ \param aSO The given %SObject
+ \return A new iterator of child levels of the given %SObject.
*/
- void RemoveComponent(in SComponent aComponent) raises(LockProtection);
+ ChildIterator NewChildIterator(in SObject aSO) raises(StudyInvalidReference);
-/*! \brief Creation of a new %SObject
+/*! \brief Create a new iterator of the %SComponents.
- Creates a new %SObject under a definite father %SObject.
+ \return A new iterator of the %SComponents.
+*/
+ SComponentIterator NewComponentIterator() raises(StudyInvalidReference);
- \param theFatherObject The father %SObject under which this one should be created.
- \return New %SObject
+/*! \brief Create a new %StudyBuilder to add or modify an object in the study.
-See \ref example18 for an example of this method usage in batchmode of %SALOME application.
+ \return A new %StudyBuilder.
+See \ref example20 for an example of this method usage in batchmode of %SALOME application.
*/
+ StudyBuilder NewBuilder() raises(StudyInvalidReference);
+/*! \brief Labels dependency
- SObject NewObject (in SObject theFatherObject) raises(LockProtection);
+ Updates the map with IOR attribute. It's an inner method used for optimization.
+*/
+ void UpdateIORLabelMap(in string anIOR, in string anEntry) raises(StudyInvalidReference);
-/*! \brief Creation of a new %SObject with a definite %tag
+/*! \brief Getting properties of the study
- Creates a new %SObject with a definite %tag.
+ Returns the attribute, which contains the properties of this study.
- \param atag Long value corresponding to the tag of the new %SObject.
- \return New %SObject
+See \ref example20 for an example of this method usage in batchmode of %SALOME application.
*/
- SObject NewObjectToTag (in SObject theFatherObject, in long atag) raises(LockProtection);
-/*! \brief Deletion of the %SObject
-
- Removes a %SObject from the %StudyBuilder.
-
- \param anObject The %SObject to be deleted.
+ AttributeStudyProperties GetProperties() raises(StudyInvalidReference);
+/*! \brief Indicate whether the %study has been saved
*/
- void RemoveObject (in SObject anObject) raises(LockProtection);
-/*! \brief Deletion of the %SObject with all his child objects.
-
- Removes the %SObject with all his child objects.
+ attribute boolean IsSaved;
+/*! \brief Indicate whether the %study has been modified and not saved.
- \param anObject The %SObject to be deleted with all child objects.
+ Returns True if the %study has been modified and not saved.
*/
- void RemoveObjectWithChildren(in SObject anObject) raises(LockProtection);
-
-/*!
- Loads a %SComponent.
-
-See \ref example19 for an example of this method usage in batchmode of %SALOME application.
+ boolean IsModified() raises(StudyInvalidReference);
+/*! \brief Mark the %study as being modified and not saved.
*/
- void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
-/*!
- Loads a %SObject.
+ void Modified() raises(StudyInvalidReference);
- \param sco %SObject to be loaded.
+/*! \brief Indicate the file where the %study has been saved
*/
- attribute string URL;
- void Load (in SObject sco);
-
-/*! \brief Looking for or creating an attribute assigned to the %SObject
++ attribute wstring URL;
- Allows to find or create an attribute of a specific type which is assigned to the object.
- \param anObject The %SObject corresponding to the attribute which is looked for.
- \param aTypeOfAttribute Type of the attribute.
+/*! \brief List of %SObjects
-See \ref example1 for an example of this method usage in batchmode of %SALOME application.
+ Returns the list of %SObjects which refers to %anObject.
*/
+ ListOfSObject FindDependances(in SObject anObject) raises(StudyInvalidReference);
- GenericAttribute FindOrCreateAttribute(in SObject anObject,
- in string aTypeOfAttribute) raises(LockProtection);
+/*! \brief The date of the last saving of the study
-/*! \brief Looking for an attribute assigned to a %SObject
+ Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
+*/
+ string GetLastModificationDate() raises(StudyInvalidReference);
+/*! \brief The list of modification dates of the study
- Allows to find an attribute of a specific type which is assigned to the object.
- \param anObject The %SObject corresponding to the attribute which is looked for.
- \param aTypeOfAttribute Type of the attribute.
- \param anAttribute Where the attribute is placed if it's found.
- \return True if it finds an attribute.
- */
+ Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
+ Note : the first modification begins the list.
+*/
+ ListOfDates GetModificationsDate() raises(StudyInvalidReference);
+/*! \brief Object conversion.
- boolean FindAttribute(in SObject anObject,
- out GenericAttribute anAttribute,
- in string aTypeOfAttribute);
-/*! \brief Deleting the attribute assigned to the %SObject
+ Converts an object into IOR.
+ \return IOR
+*/
+ string ConvertObjectToIOR(in Object theObject);
+/*! \brief Object conversion.
- Removes the attribute of a specific type which is assigned to the object.
- \param anObject The %SObject corresponding to the attribute.
- \param aTypeOfAttribute Type of the attribute.
+ Converts IOR into an object.
+ \return An object
+*/
+ Object ConvertIORToObject(in string theIOR);
-See \ref example17 for an example of this method usage in batchmode of %SALOME application.
+/*! \brief Get a new %UseCaseBuilder.
*/
- void RemoveAttribute(in SObject anObject,
- in string aTypeOfAttribute) raises(LockProtection);
-/*!
- Adds a reference between %anObject and %theReferencedObject.
- \param anObject The %SObject which will get a reference
- \param theReferencedObject The %SObject having a reference
+ UseCaseBuilder GetUseCaseBuilder() raises(StudyInvalidReference);
+
+/*! \brief Clear a study object
*/
+ void Clear() raises(StudyInvalidReference);
- void Addreference(in SObject anObject,
- in SObject theReferencedObject) ;
-
-/*!
- Removes a reference from %anObject to another object.
- \param anObject The %SObject which contains a reference
+/*! \brief Initialization a study object
*/
+ void Init() raises(StudyInvalidReference);
+
+/*! \brief Open a study by url
- void RemoveReference(in SObject anObject) ;
-
-/*!
- Adds a directory in the %Study.
- \param theName String parameter defining the name of the directory.
-
-See \ref example23 for an example of this method usage in batchmode of %SALOME application.
-
+ Reads and activates the structure of the study %Objects.
+ \param aStudyUrl The path to the study
*/
- void AddDirectory(in string theName) raises(LockProtection);
-
-/*! \brief Identification of the %SObject's substructure.
+ boolean Open (in URLPath aStudyUrl) raises (SALOME::SALOME_Exception);
+
+/*! \brief Saving the study in a file (or files).
- Identification of the %SObject's substructure by GUID.
+ Saves a study.
+ \param theMultiFile If this parameter is True the study will be saved in several files.
+ \param theASCII If this parameter is True the study will be saved in ASCII format, otherwise in HDF format.
+*/
+ boolean Save(in boolean theMultiFile, in boolean theASCII) raises(StudyInvalidReference);
+
+/*! \brief Saving the study in a specified file (or files).
+ Saves the study in a specified file (or files).
+ \param aUrl The path to the definite file in whcih the study will be saved
+ \param theMultiFile If this parameter is True the study will be saved in several files.
+ \param theASCII If this parameter is True the study will be saved in ASCII format, otherwise in HDF format.
- \param anObject The %SObject which will be identified
- \param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
+See \ref example1 for an example of this method usage in batchmode of %SALOME application.
*/
-
- void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection);
+ boolean SaveAs(in URLPath aUrl, // if the file already exists
+ in boolean theMultiFile, // overwrite (as option)
+ in boolean theASCII)
+ raises(StudyInvalidReference);
/*!
-Searches for a definite %SObject with a definite GUID and returns True if it finds it.
-
-\param anObject A definite %SObject which will be identified
-\param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
+ Returns True, if the given %SObject can be copied to the clipboard.
*/
- boolean IsGUID(in SObject anObject, in string theGUID);
-
-/*! \brief Creation of a new command
-
- Creates a new command which can contain several different actions.
-
-See \ref example3 for an example of this method usage in batchmode of %SALOME application.
-
+ boolean CanCopy(in SObject theObject) raises(StudyInvalidReference);
+/*!
+ Returns True, if the given %SObject is copied to the clipboard.
+ \param theObject The %SObject which will be copied
*/
- void NewCommand(); // command management
-/*! \brief Execution of the command
-
- Commits all actions declared within this command.
-
- \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
-
-See \ref example16 for an example of this method usage in batchmode of %SALOME application.
-
+ boolean Copy(in SObject theObject) raises(StudyInvalidReference);
+/*!
+ Returns True, if the object from the clipboard can be pasted to the given %SObject.
+ \param theObject The %SObject stored in the clipboard.
*/
- void CommitCommand() raises(LockProtection); // command management
+ boolean CanPaste(in SObject theObject) raises(StudyInvalidReference);
/*!
- Returns True if at this moment there is a command under execution.
+ Returns the %SObject in which the object from the clipboard was pasted to.
+ \param theObject The %SObject which will be pasted
+ \exception SALOMEDS::StudyBuilder::LockProtection This exception is raised, when trying to paste
+ an object into a study, which is protected for modifications.
*/
- boolean HasOpenCommand();
-/*! \brief Cancelation of the command
-
- Cancels all actions declared within the command.
+ SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
-See \ref example17 for an example of this method usage in batchmode of %SALOME application.
+/*! \brief Enable (if isEnabled = True)/disable automatic addition of new %SObjects to the use case.
*/
- void AbortCommand(); // command management
-/*! \brief Undolimit
+ void EnableUseCaseAutoFilling(in boolean isEnabled) raises(StudyInvalidReference);
- The number of actions which can be undone
+/*!
+ Functions for internal usage only
*/
- attribute long UndoLimit;
-/*! \brief Undo method
+ void AddPostponed(in string theIOR) raises(StudyInvalidReference);
- Cancels all actions of the last command.
+ void AddCreatedPostponed(in string theIOR) raises(StudyInvalidReference);
- \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
+ void RemovePostponed(in long theUndoLimit) raises(StudyInvalidReference);
-See \ref example16 for an example of this method usage in batchmode of %SALOME application.
+ void UndoPostponed(in long theWay) raises(StudyInvalidReference);
-*/
- void Undo() raises (LockProtection);
-/*! \brief Redo method
+ boolean DumpStudy(in string thePath,
+ in string theBaseName,
+ in boolean isPublished,
+ in boolean isMultiFile) raises(StudyInvalidReference);
- Redoes all actions of the last command.
+/*! \brief Get an AttributeParameter used to store common parameters for given %theSavePoint.
-\exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
+ \param theID identifies a common parameters set (Example: "Interface Applicative")
+ \param theSavePoint is number of a set of parameters as there can be several sets
+*/
+ AttributeParameter GetCommonParameters(in string theID, in long theSavePoint) raises(StudyInvalidReference);
-See \ref example16 for an example of this method usage in batchmode of %SALOME application.
+/*! \brief Get an AttributeParameter used to store parameters for given %theModuleName.
+ \param theID identifies a common parameters set (Example: "Interface Applicative")
+ \param theModuleName is a name of the module (Example: "Geometry")
+ \param theSavePoint is number of a set of parameters as there can be several sets
*/
- void Redo() raises (LockProtection);
-/*!
- Returns True if at this moment there are any actions which can be canceled.
+ AttributeParameter GetModuleParameters(in string theID, in string theModuleName, in long theSavePoint) raises(StudyInvalidReference);
-See \ref example16 for an example of this method usage in batchmode of %SALOME application.
+/*! \brief Get a default Python script to restore visual parameters for given %theModuleName.
+
+ \param theModuleName is a name of the module (Example: "Geometry")
+ \param indent is a string to use for script indentation
*/
- boolean GetAvailableUndos();
+ string GetDefaultScript(in string theModuleName, in string indent) raises(StudyInvalidReference);
+
/*!
- Returns True if at this moment there are any actions which can be redone.
+ Private method, returns an implementation of this Study.
+ \param theHostname is a hostname of the caller
+ \param thePID is a process ID of the caller
+ \param isLocal is set True if the Study is launched locally with the caller
+*/
+ long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
-See \ref example3 for an example of this method usage in batchmode of %SALOME application.
-*/
- boolean GetAvailableRedos();
-/*!
- Puts name attribute with the given string value to the given %SObject
+/*! \brief Mark this Study as being locked by the given locker.
- \param theSO Existing SObject to set name attribute.
- \param theValue The value to be set to the name attribute.
+ The lock status can be checked by method IsStudyLocked
+ \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that locks the study.
*/
- void SetName(in SObject theSO, in string theValue) raises (LockProtection);
+ void SetStudyLock(in string theLockerID) raises(StudyInvalidReference);
-/*!
- Puts comment attribute with the given string value to the given %SObject
+/*! \brief Indicate if the Study is locked
- \param theSO Existing SObject to set comment attribute.
- \param theValue The value to be set to the comment attribute.
+ Returns True if the Study was marked locked.
*/
- void SetComment(in SObject theSO, in string theValue) raises (LockProtection);
+ boolean IsStudyLocked() raises(StudyInvalidReference);
-/*!
- Puts IOR attribute with the given string value to the given %SObject
+/*! \brief Mark this Study as being unlocked by the given locker.
- \param theSO Existing SObject to set IOR attribute.
- \param theValue The value to be set to the IOR attribute.
+ The lock status can be checked by method IsStudyLocked
+ \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that unlocks the study.
*/
- void SetIOR(in SObject theSO, in string theValue) raises (LockProtection);
- };
-
- //==========================================================================
-/*! \brief %Study Manager interface
+ void UnLockStudy(in string theLockerID) raises(StudyInvalidReference);
- The purpose of the Manager is to manipulate the %Studies. You will find in this
- interface the methods to create, open,
- close, and save a %Study. Since a %SALOME session is multi-document, you will
- also find the methods allowing to navigate
- through the collection of studies present in a session.
+/*! \brief Get the list of IDs of the Study's lockers.
*/
- //==========================================================================
+ ListOfStrings GetLockerID() raises(StudyInvalidReference);
- interface StudyManager
- {
-/*!
- Determines whether the server has already been loaded or not.
+/*! \brief Create real variable with Name theVarName and value theValue
+
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
*/
- void ping();
+ void SetReal( in string theVarName, in double theValue ) raises(StudyInvalidReference);
- void Shutdown();
+/*! \brief Create integer variable with Name theVarName and value theValue
-/*!
- Returns the PID of the server
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
*/
- long getPID();
+ void SetInteger( in string theVarName, in long theValue ) raises(StudyInvalidReference);
+/*! \brief Create boolean variable with Name theVarName and value theValue
-/*!
- Shutdown the StudyManager process.
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
*/
- oneway void ShutdownWithExit();
+ void SetBoolean( in string theVarName, in boolean theValue ) raises(StudyInvalidReference);
-/*! \brief Creation of a new study
+/*! \brief Create string variable with Name theVarName and value theValue
- Creates a new study with a definite name.
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
+*/
+ void SetString( in string theVarName, in string theValue ) raises(StudyInvalidReference);
- \param study_name String parameter defining the name of the study
+/*! \brief Set current value as double for string variable
+*/
+ void SetStringAsDouble( in string theVarName, in double theValue ) raises(StudyInvalidReference);
-See \ref example17 for an example of this method usage in batchmode of %SALOME application.
+/*! \brief Get value of a real variable
+ \param theVarName is a name of the variable.
*/
- Study NewStudy(in wstring study_name) raises (SALOME::SALOME_Exception);
-
-/*! \brief Open a study
+ double GetReal( in string theVarName ) raises(StudyInvalidReference);
- Reads and activates the structure of the study %Objects.
- \param aStudyUrl The path to the study
- \warning This method doesn't activate the corba objects. Only a component can do it.
+/*! \brief Get value of an integer variable
-See \ref example1 for an example of this method usage in batchmode of %SALOME application.
+ \param theVarName is a name of the variable.
*/
- Study Open (in URL aStudyUrl) raises (SALOME::SALOME_Exception);
+ long GetInteger( in string theVarName ) raises(StudyInvalidReference);
-/*! \brief Closing the study
+/*! \brief Get value of a boolean variable
- Closes a study.
+ \param theVarName is a name of the variable.
*/
- void Close(in Study aStudy);
-/*! \brief Saving the study in a HDF file (or files).
+ boolean GetBoolean( in string theVarName ) raises(StudyInvalidReference);
- Saves a study.
+/*! \brief Get value of a string variable
- \param theMultiFile If this parameter is True the study will be saved in several files.
+ \param theVarName is a name of the variable.
+*/
+ string GetString( in string theVarName ) raises(StudyInvalidReference);
-See \ref example19 for an example of this method usage in batchmode of %SALOME application.
-*/
- boolean Save(in Study aStudy, in boolean theMultiFile);
-/*! \brief Saving a study in a ASCII file (or files).
+/*! \brief Indicate if a variable is real
- Saves a study in an ASCII format file (or files).
- \param theMultiFile If this parameter is True the study will be saved in several files.
+ Return true if variable is real otherwise return false.
+ \param theVarName is a name of the variable.
*/
- boolean SaveASCII(in Study aStudy, in boolean theMultiFile);
-/*! \brief Saving the study in a specified HDF file (or files).
+ boolean IsReal( in string theVarName ) raises(StudyInvalidReference);
- Saves the study in a specified file (or files).
- \param aUrl The path to the definite file in whcih the study will be saved
- \param aStudy The study which will be saved
- \param theMultiFile If this parameter is True the study will be saved in several files.
+/*! \brief Indicate if a variable is integer
-See \ref example1 for an example of this method usage in batchmode of %SALOME application.
+ Return true if variable is integer otherwise return false.
+ \param theVarName is a name of the variable.
*/
- boolean SaveAs(in URL aUrl, // if the file already exists
- in Study aStudy,
- in boolean theMultiFile); // overwrite (as option)
-/*! \brief Saving the study in a specified ASCII file (or files).
+ boolean IsInteger( in string theVarName ) raises(StudyInvalidReference);
- Saves the study in a specified ASCII file (or files).
+/*! \brief Indicate if a variable is boolean
- \param aUrl The path to the definite file in whcih the study will be saved
- \param aStudy The study which will be saved
- \param theMultiFile If this parameter is True the study will be saved in several files.
+ Return true if variable is boolean otherwise return false.
+ \param theVarName is a name of the variable.
*/
- boolean SaveAsASCII(in URL aUrl, // if the file already exists
- in Study aStudy,
- in boolean theMultiFile); // overwrite (as option)
+ boolean IsBoolean( in string theVarName ) raises(StudyInvalidReference);
+/*! \brief Indicate if a variable is string
-/*! \brief List of open studies.
+ Return true if variable is string otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsString( in string theVarName ) raises(StudyInvalidReference);
-Gets the list of open studies
+/*! \brief Indicate if a variable exists in the study
- \return A list of open studies in the current session.
+ Return true if variable exists in the study,
+ otherwise return false.
+ \param theVarName is a name of the variable.
*/
- ListOfOpenStudies GetOpenStudies();
-
-/*! \brief Getting a particular %Study picked by name
+ boolean IsVariable( in string theVarName ) raises(StudyInvalidReference);
- Activates a particular %Study
- among the session collection picking it by name.
- \param aStudyName The name of the study
+/*! \brief Get names of all variables from the study.
*/
- Study GetStudyByName (in URL aStudyName);
+ ListOfStrings GetVariableNames() raises(StudyInvalidReference);
-/*! \brief Getting a particular %Study picked by ID
+/*! \brief Remove a variable
+
+ Remove variable with the specified name from the study with substitution of its value.
- Activates a particular %Study
- among the session collection picking it by ID.
- \param aStudyID The ID of the study
+ \param theVarName Name of the variable.
+ \return Status of operation.
*/
- Study GetStudyByID (in short aStudyID);
+ boolean RemoveVariable( in string theVarName ) raises(StudyInvalidReference);
- // copy/paste methods
+/*! \brief Rename a variable
-/*!
- Returns True, if the given %SObject can be copied to the clipboard.
-*/
- boolean CanCopy(in SObject theObject);
-/*!
- Returns True, if the given %SObject is copied to the clipboard.
- \param theObject The %SObject which will be copied
-*/
- boolean Copy(in SObject theObject);
-/*!
- Returns True, if the object from the clipboard can be pasted to the given %SObject.
- \param theObject The %SObject stored in the clipboard.
-*/
- boolean CanPaste(in SObject theObject);
-/*!
- Returns the %SObject in which the object from the clipboard was pasted to.
- \param theObject The %SObject which will be pasted
- \exception SALOMEDS::StudyBuilder::LockProtection This exception is raised, when trying to paste
- an object into a study, which is protected for modifications.
+ Rename variable with the specified name within the study.
+
+ \param theVarName Name of the variable.
+ \param theNewVarName New name for the variable.
+ \return Status of operation.
*/
- SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
+ boolean RenameVariable( in string theVarName, in string theNewVarName ) raises(StudyInvalidReference);
-/*! \brief Object conversion.
+/*! \brief Indicate whether variable is used
- Converts an object into IOR.
- \return IOR
+ Check that variable is used in the study.
+
+ \param theVarName Name of the variable.
+ \return Variable usage.
*/
- string ConvertObjectToIOR(in Object theObject);
-/*! \brief Object conversion.
+ boolean IsVariableUsed( in string theVarName ) raises(StudyInvalidReference);
- Converts IOR into an object.
- \return An object
+/*! \brief Parse variables used for object creation
+
+ \param string with variables, separated by special symbol.
+ \return Variables list.
*/
- Object ConvertIORToObject(in string theIOR);
+ ListOfListOfStrings ParseVariables( in string theVars ) raises(StudyInvalidReference);
/*!
- Private method, returns an implementation of this StudyManager.
- \param theHostname is a hostname of the caller
- \param thePID is a process ID of the caller
- \param isLocal is set True if the StudyManager is launched locally with the caller
+ Attach an observer to the Study
+
+ \param theObserver observer being attached
+ \param modify when \c true, observer receives any object's modification events;
+ otherwise observer receives object's creation events only
*/
- long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
+ void attach(in SALOMEDS::Observer theObserver, in boolean modify);
+/*!
+ Detach an observer from the Study
+ \param theObserver observer to be detached
+*/
+ void detach(in SALOMEDS::Observer theObserver);
};
-
//==========================================================================
/*! \brief %SObject interface
diff --cc src/KERNEL_PY/salome_study.py
index be6d72f29,4f62a4139..5626aecdf
--- a/src/KERNEL_PY/salome_study.py
+++ b/src/KERNEL_PY/salome_study.py
@@@ -291,20 -386,37 +291,22 @@@ def salome_study_init(theStudyPath=None
global orb, lcc, naming_service, cm
if verbose(): print("theStudyPath:", theStudyPath)
- if not myStudyManager:
+ if not myStudy:
orb, lcc, naming_service, cm = salome_kernel.salome_kernel_init()
- # get Study Manager reference
- if verbose(): print("looking for studyManager ...")
- obj = naming_service.Resolve('myStudyManager')
- myStudyManager = obj._narrow(SALOMEDS.StudyManager)
- if verbose(): print("studyManager found")
+ # get Study reference
+ if verbose(): print("looking for study...")
+ obj = naming_service.Resolve('/Study')
+ myStudy = obj._narrow(SALOMEDS.Study)
+ if verbose(): print("Study found")
pass
- # get active study Id, ref and name
- myStudy = None
- myStudyId = getActiveStudy()
- if myStudyId == None :
- if theStudyPath and isinstance(theStudyPath, (str, bytes)):
- if isinstance(theStudyPath, bytes):
- theStudyPath = str(theStudyPath, 'UTF8')
- myStudyId = openStudy(theStudyPath)
- else:
- myStudyId = createNewStudy()
- if verbose(): print("myStudyId", myStudyId)
-
- if myStudy == None:
- myStudy = myStudyManager.GetStudyByID(myStudyId)
- myStudyName = myStudy._get_Name()
+ import types
- if theStudyPath and type(theStudyPath) == types.StringType:
++ if theStudyPath and isinstance(theStudyPath, (str, bytes)):
++ if isinstance(theStudyPath, bytes):
++ theStudyPath = str(theStudyPath, 'UTF8')
+ openStudy(theStudyPath)
- return myStudyManager, myStudyId, myStudy, myStudyName
+ myStudyName = myStudy._get_Name()
-def salome_study_close():
- global salome_study_ID
- global myStudyId, myStudy, myStudyName
- salome_study_ID = -1
- myStudyId, myStudy, myStudyName = None, None, None
- pass
+ return myStudy, myStudyName
diff --cc src/SALOMEDS/SALOMEDS_Client.cxx
index 12662b5f1,31fe34be3..db0f0e245
--- a/src/SALOMEDS/SALOMEDS_Client.cxx
+++ b/src/SALOMEDS/SALOMEDS_Client.cxx
@@@ -28,8 -28,9 +28,9 @@@
//
#include
#include CORBA_SERVER_HEADER(SALOMEDS)
-#include "SALOMEDS_StudyManager_i.hxx"
#include "SALOMEDS_AttributeName_i.hxx"
+#include "SALOME_KernelServices.hxx"
+ #include "Basics_Utils.hxx"
#include "utilities.h"
#include "HDFOI.hxx"
@@@ -189,17 -195,39 +190,17 @@@ static void Test(
StudyBuild->Undo();
// Study should have no trace of object mesh_cylinder
- DumpStudy(myStudy);
-
-
- //myStudyMgr->Open ((char*)name);
- //MESSAGE("Name " << name);
-
- // GetOpenStudies
- MESSAGE("GetOpenStudies list");
- SALOMEDS::ListOfOpenStudies_var _list_open_studies = myStudyMgr->GetOpenStudies();
-
- for (unsigned int ind = 0; ind < _list_open_studies->length();ind++)
- {
- MESSAGE("Open studies list : " << Kernel_Utils::encode(_list_open_studies[ind]));
- }
-
-
- // GetStudyByName
- SALOMEDS::Study_var myStudy1 =myStudyMgr->GetStudyByName(_list_open_studies[0]);
- MESSAGE("GetStudyByName done");
+ DumpStudy();
// Save as
- myStudy->SaveAs("/home/edeville/Study1.hdf", false, false);
- myStudyMgr->SaveAs(L"/home/edeville/Study1.hdf",myStudy1, false);
++ myStudy->SaveAs(Kernel_Utils::decode("/home/edeville/Study1.hdf"), false, false);
// Get Persistent Reference of the study test
- name = myStudy1->GetPersistentReference();
+ name = myStudy->GetPersistentReference();
MESSAGE("Persitent Reference of the study " << name);
- // Get Transient Reference of the study test
- name = myStudy1->GetTransientReference();
- MESSAGE("Transient Reference of the study " << name);
-
// FindComponent Test
- SALOMEDS::SComponent_var compo = myStudy1->FindComponent("GEOM");
+ SALOMEDS::SComponent_var compo = myStudy->FindComponent("GEOM");
// Get ComponentDataType test
MESSAGE("Find ComponentDataType of compo");
name = compo->ComponentDataType();
diff --cc src/SALOMEDS/SALOMEDS_Study.cxx
index 0583c10ca,9a1f7a16e..86629e271
--- a/src/SALOMEDS/SALOMEDS_Study.cxx
+++ b/src/SALOMEDS/SALOMEDS_Study.cxx
@@@ -98,156 -96,18 +98,157 @@@ SALOMEDS_Study::~SALOMEDS_Study(
{
}
-std::string SALOMEDS_Study::GetPersistentReference()
+void SALOMEDS_Study::InitORB()
{
- std::string aRef;
+ ORB_INIT &init = *SINGLETON_::Instance();
+ ASSERT(SINGLETON_::IsAlreadyExisting());
+ _orb = init(0 , 0 ) ;
+}
+
+void SALOMEDS_Study::Init()
+{
+ if(CORBA::is_nil(_corba_impl))
+ return;
+
+ _corba_impl->Init();
+}
+
+void SALOMEDS_Study::Clear()
+{
+ if(CORBA::is_nil(_corba_impl))
+ return;
+
+ _corba_impl->Clear();
+}
+
+bool SALOMEDS_Study::Open(const std::string& theStudyUrl)
+{
+ if(CORBA::is_nil(_corba_impl))
+ return false;
-
- if (!_corba_impl->Open(theStudyUrl.c_str()))
++ std::wstring wtheStudyUrl = std::wstring(theStudyUrl.begin(), theStudyUrl.end());
++
++ if (!_corba_impl->Open( (wchar_t*)wtheStudyUrl.c_str() ) )
+ return false;
+
+ return true;
+}
+
+bool SALOMEDS_Study::Save(bool theMultiFile, bool theASCII)
+{
+ if(CORBA::is_nil(_corba_impl))
+ return false;
+
+ return _corba_impl->Save(theMultiFile, theASCII);
+}
+
+bool SALOMEDS_Study::SaveAs(const std::string& theUrl, bool theMultiFile, bool theASCII)
+{
+ if(CORBA::is_nil(_corba_impl))
+ return false;
+
- return _corba_impl->SaveAs((char*)theUrl.c_str(), theMultiFile, theASCII);
++ return _corba_impl->SaveAs(Kernel_Utils::decode_s(theUrl), theMultiFile, theASCII);
+}
+
+SALOMEDS_Driver_i* GetDriver(const SALOMEDSImpl_SObject& theObject, CORBA::ORB_ptr orb)
+{
+ SALOMEDS_Driver_i* driver = NULL;
+
+ SALOMEDSImpl_SComponent aSCO = theObject.GetFatherComponent();
+ if(!aSCO.IsNull()) {
+ std::string IOREngine = aSCO.GetIOR();
+ if(!IOREngine.empty()) {
+ CORBA::Object_var obj = orb->string_to_object(IOREngine.c_str());
+ Engines::EngineComponent_var Engine = Engines::EngineComponent::_narrow(obj) ;
+ driver = new SALOMEDS_Driver_i(Engine, orb);
+ }
+ }
+
+ return driver;
+}
+
+bool SALOMEDS_Study::CanCopy(const _PTR(SObject)& theSO)
+{
+ SALOMEDS_SObject* aSO = dynamic_cast(theSO.get());
+ bool ret;
+
if (_isLocal) {
SALOMEDS::Locker lock;
- aRef = _local_impl->GetPersistentReference();
+
+ SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl());
+ SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb);
+ ret = _local_impl->CanCopy(aSO_impl, aDriver);
+ delete aDriver;
}
- else aRef = (CORBA::String_var)_corba_impl->GetPersistentReference();
- return aRef;
+ else {
+ ret = _corba_impl->CanCopy(aSO->GetCORBAImpl());
+ }
+
+ return ret;
}
-std::string SALOMEDS_Study::GetTransientReference()
+bool SALOMEDS_Study::Copy(const _PTR(SObject)& theSO)
+{
+ SALOMEDS_SObject* aSO = dynamic_cast(theSO.get());
+ bool ret;
+ if (_isLocal) {
+ SALOMEDS::Locker lock;
+
+ SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl());
+ SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb);
+ ret = _local_impl->Copy(aSO_impl, aDriver);
+ delete aDriver;
+ }
+ else {
+ ret = _corba_impl->Copy(aSO->GetCORBAImpl());
+ }
+ return ret;
+}
+
+bool SALOMEDS_Study::CanPaste(const _PTR(SObject)& theSO)
+{
+ SALOMEDS_SObject* aSO = dynamic_cast(theSO.get());
+ bool ret;
+
+ if (_isLocal) {
+ SALOMEDS::Locker lock;
+
+ SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl());
+ SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb);
+ ret = _local_impl->CanPaste(aSO_impl, aDriver);
+ delete aDriver;
+ }
+ else {
+ ret = _corba_impl->CanPaste(aSO->GetCORBAImpl());
+ }
+
+ return ret;
+}
+
+_PTR(SObject) SALOMEDS_Study::Paste(const _PTR(SObject)& theSO)
+{
+ SALOMEDS_SObject* aSO = dynamic_cast(theSO.get());
+ SALOMEDSClient_SObject* aResult = NULL;
+
+ if (_isLocal) {
+ SALOMEDS::Locker lock;
+
+ SALOMEDSImpl_SObject aSO_impl = *(aSO->GetLocalImpl());
+ SALOMEDS_Driver_i* aDriver = GetDriver(aSO_impl, _orb);
+ SALOMEDSImpl_SObject aNewSO = _local_impl->Paste(aSO_impl, aDriver);
+ delete aDriver;
+ if(aNewSO.IsNull()) return _PTR(SObject)(aResult);
+ aResult = new SALOMEDS_SObject(aNewSO);
+ }
+ else {
+ SALOMEDS::SObject_ptr aNewSO = _corba_impl->Paste(aSO->GetCORBAImpl());
+ if(CORBA::is_nil(aNewSO)) return _PTR(SObject)(aResult);
+ aResult = new SALOMEDS_SObject(aNewSO);
+ }
+
+ return _PTR(SObject)(aResult);
+}
+
+std::string SALOMEDS_Study::GetPersistentReference()
{
std::string aRef;
if (_isLocal) {
@@@ -559,9 -514,29 +570,9 @@@ void SALOMEDS_Study::URL(const std::str
SALOMEDS::Locker lock;
_local_impl->URL(url);
}
- else _corba_impl->URL((char*)url.c_str());
+ else _corba_impl->URL(Kernel_Utils::decode_s(url));
}
-int SALOMEDS_Study::StudyId()
-{
- int anID;
- if (_isLocal) {
- SALOMEDS::Locker lock;
- anID = _local_impl->StudyId();
- }
- else anID = _corba_impl->StudyId();
- return anID;
-}
-
-void SALOMEDS_Study::StudyId(int id)
-{
- if (_isLocal) {
- SALOMEDS::Locker lock;
- _local_impl->StudyId(id);
- }
- else _corba_impl->StudyId(id);
-}
-
std::vector<_PTR(SObject)> SALOMEDS_Study::FindDependances(const _PTR(SObject)& theSO)
{
std::vector<_PTR(SObject)> aVector;
diff --cc src/SALOMEDS/SALOMEDS_Study_i.cxx
index 1ac5ee0a3,8b23183ff..19abf1b64
--- a/src/SALOMEDS/SALOMEDS_Study_i.cxx
+++ b/src/SALOMEDS/SALOMEDS_Study_i.cxx
@@@ -362,175 -269,29 +362,178 @@@ void SALOMEDS_Study_i::Clear(
_impl->setNotifier(0);
delete _notifier;
delete _genObjRegister;
- //delete implementation
- delete _impl;
- _mapOfStudies.erase(_impl);
-}
+ _notifier = NULL;
+
+ _closed = true;
+}
//============================================================================
-/*! Function : GetPersistentReference
- * Purpose : Get persistent reference of study (idem URL())
+/*! Function : Open
+ * Purpose : Open a Study from it's persistent reference
*/
//============================================================================
- bool SALOMEDS_Study_i::Open(const char* aUrl)
-char* SALOMEDS_Study_i::GetPersistentReference()
++bool SALOMEDS_Study_i::Open(const wchar_t* aWUrl)
+ throw(SALOME::SALOME_Exception)
{
- SALOMEDS::Locker lock;
+ if (!_closed)
+ Clear();
+ Init();
+ SALOMEDS::Locker lock;
+
+ Unexpect aCatch(SalomeException);
+ MESSAGE("Begin of SALOMEDS_Study_i::Open");
-
++
++ std::string aUrl = Kernel_Utils::encode_s(aWUrl);
+ bool res = _impl->Open(std::string(aUrl));
+
+ // update desktop title with new study name
+ NameChanged();
+
+ if ( !res )
+ THROW_SALOME_CORBA_EXCEPTION("Impossible to Open study from file", SALOME::BAD_PARAM)
+ return res;
+}
+
+//============================================================================
+/*! Function : Save
+ * Purpose : Save a Study to it's persistent reference
+ */
+//============================================================================
+CORBA::Boolean SALOMEDS_Study_i::Save(CORBA::Boolean theMultiFile, CORBA::Boolean theASCII)
+{
+ SALOMEDS::Locker lock;
if (_closed)
- throw SALOMEDS::Study::StudyInvalidReference();
- return CORBA::string_dup(_impl->GetPersistentReference().c_str());
+ throw SALOMEDS::Study::StudyInvalidReference();
+ return _impl->Save(_factory, theMultiFile, theASCII);
+}
+
+//=============================================================================
+/*! Function : SaveAs
+ * Purpose : Save a study to the persistent reference aUrl
+ */
+//============================================================================
- CORBA::Boolean SALOMEDS_Study_i::SaveAs(const char* aUrl, CORBA::Boolean theMultiFile, CORBA::Boolean theASCII)
++CORBA::Boolean SALOMEDS_Study_i::SaveAs(const wchar_t* aWUrl, CORBA::Boolean theMultiFile, CORBA::Boolean theASCII)
+{
+ SALOMEDS::Locker lock;
+ if (_closed)
+ throw SALOMEDS::Study::StudyInvalidReference();
++
++ std::string aUrl = Kernel_Utils::encode_s(aWUrl);
+ return _impl->SaveAs(std::string(aUrl), _factory, theMultiFile, theASCII);
+}
+
+//============================================================================
+/*! Function : CanCopy
+ * Purpose :
+ */
+//============================================================================
+CORBA::Boolean SALOMEDS_Study_i::CanCopy(SALOMEDS::SObject_ptr theObject)
+{
+ SALOMEDS::Locker lock;
+ if (_closed)
+ throw SALOMEDS::Study::StudyInvalidReference();
+
+ CORBA::String_var anID = theObject->GetID();
+ SALOMEDSImpl_SObject anObject = _impl->GetSObject(anID.in());
+
+ SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb);
+ bool ret = _impl->CanCopy(anObject, aDriver);
+ delete aDriver;
+ return ret;
+}
+
+//============================================================================
+/*! Function : Copy
+ * Purpose :
+ */
+//============================================================================
+CORBA::Boolean SALOMEDS_Study_i::Copy(SALOMEDS::SObject_ptr theObject)
+{
+ SALOMEDS::Locker lock;
+ if (_closed)
+ throw SALOMEDS::Study::StudyInvalidReference();
+
+ CORBA::String_var anID = theObject->GetID();
+ SALOMEDSImpl_SObject anObject = _impl->GetSObject(anID.in());
+
+ SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb);
+ bool ret = _impl->Copy(anObject, aDriver);
+ delete aDriver;
+ return ret;
+}
+
+//============================================================================
+/*! Function : CanPaste
+ * Purpose :
+ */
+//============================================================================
+CORBA::Boolean SALOMEDS_Study_i::CanPaste(SALOMEDS::SObject_ptr theObject)
+{
+ SALOMEDS::Locker lock;
+ if (_closed)
+ throw SALOMEDS::Study::StudyInvalidReference();
+
+ CORBA::String_var anID = theObject->GetID();
+ SALOMEDSImpl_SObject anObject = _impl->GetSObject(anID.in());
+
+ SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb);
+ bool ret = _impl->CanPaste(anObject, aDriver);
+ delete aDriver;
+ return ret;
+}
+
+//============================================================================
+/*! Function : Paste
+ * Purpose :
+ */
+//============================================================================
+SALOMEDS::SObject_ptr SALOMEDS_Study_i::Paste(SALOMEDS::SObject_ptr theObject)
+ throw(SALOMEDS::StudyBuilder::LockProtection)
+{
+ SALOMEDS::Locker lock;
+
+ Unexpect aCatch(LockProtection);
+
+ CORBA::String_var anID = theObject->GetID();
+ SALOMEDSImpl_SObject anObject = _impl->GetSObject(anID.in());
+ SALOMEDSImpl_SObject aNewSO;
+
+ try {
+ SALOMEDS_Driver_i* aDriver = GetDriver(anObject, _orb);
+ aNewSO = _impl->Paste(anObject, aDriver);
+ delete aDriver;
+ }
+ catch (...) {
+ throw SALOMEDS::StudyBuilder::LockProtection();
+ }
+
+ SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aNewSO, _orb);
+ return so._retn();
}
+
+SALOMEDS_Driver_i* GetDriver(const SALOMEDSImpl_SObject& theObject, CORBA::ORB_ptr orb)
+{
+ SALOMEDS_Driver_i* driver = NULL;
+
+ SALOMEDSImpl_SComponent aSCO = theObject.GetFatherComponent();
+ if(!aSCO.IsNull()) {
+ std::string IOREngine = aSCO.GetIOR();
+ if(!IOREngine.empty()) {
+ CORBA::Object_var obj = orb->string_to_object(IOREngine.c_str());
+ Engines::EngineComponent_var Engine = Engines::EngineComponent::_narrow(obj) ;
+ driver = new SALOMEDS_Driver_i(Engine, orb);
+ }
+ }
+
+ return driver;
+}
+
//============================================================================
-/*! Function : GetTransientReference
- * Purpose : Get IOR of the Study (registred in OCAF document in doc->Root)
+/*! Function : GetPersistentReference
+ * Purpose : Get persistent reference of study (idem URL())
*/
//============================================================================
-char* SALOMEDS_Study_i::GetTransientReference()
+char* SALOMEDS_Study_i::GetPersistentReference()
{
SALOMEDS::Locker lock;
if (_closed)
@@@ -915,10 -839,21 +930,10 @@@ void SALOMEDS_Study_i::URL(const wchar_
{
SALOMEDS::Locker lock;
// URL is specified as IDL attribute: user exception cannot be raised
- _impl->URL(std::string((char*)url));
+ _impl->URL(Kernel_Utils::encode_s(wurl));
-}
-CORBA::Short SALOMEDS_Study_i::StudyId()
-{
- SALOMEDS::Locker lock;
- // StudyId is specified as IDL attribute: user exception cannot be raised
- return _impl->StudyId();
-}
-
-void SALOMEDS_Study_i::StudyId(CORBA::Short id)
-{
- SALOMEDS::Locker lock;
- // StudyId is specified as IDL attribute: user exception cannot be raised
- _impl->StudyId(id);
+ // update desktop title with new study name
+ NameChanged();
}
void SALOMEDS_Study_i::UpdateIORLabelMap(const char* anIOR, const char* anEntry)
diff --cc src/SALOMEDS/SALOMEDS_Study_i.hxx
index 232b0fb4c,2edf83825..d1c3d7f22
--- a/src/SALOMEDS/SALOMEDS_Study_i.hxx
+++ b/src/SALOMEDS/SALOMEDS_Study_i.hxx
@@@ -63,43 -60,11 +63,43 @@@ private
public:
//! standard constructor
- SALOMEDS_Study_i(SALOMEDSImpl_Study*, CORBA::ORB_ptr);
+ SALOMEDS_Study_i(CORBA::ORB_ptr);
//! standard destructor
- virtual ~SALOMEDS_Study_i();
+ virtual ~SALOMEDS_Study_i();
+ virtual void Init();
+ virtual void Clear();
+
+ //! method to Open a Study
+ /*!
+ \param char* arguments, the study URL
+ \return Study_ptr arguments
+ */
- virtual bool Open(const char* aStudyUrl) throw (SALOME::SALOME_Exception);
++ virtual bool Open(const wchar_t* aStudyUrl) throw (SALOME::SALOME_Exception);
+
+ //! method to save a Study
+ virtual CORBA::Boolean Save(CORBA::Boolean theMultiFile, CORBA::Boolean theASCII);
+
+ //! method to save a Study to the persistent reference aUrl
+ /*!
+ \param char* arguments, the new URL of the study
+ */
- virtual CORBA::Boolean SaveAs(const char* aUrl, CORBA::Boolean theMultiFile, CORBA::Boolean theASCII);
++ virtual CORBA::Boolean SaveAs(const wchar_t* aUrl, CORBA::Boolean theMultiFile, CORBA::Boolean theASCII);
+
+ //! method to copy the object
+ /*!
+ \param theObject object to copy
+ */
+ virtual CORBA::Boolean Copy(SALOMEDS::SObject_ptr theObject);
+ virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
+ //! method to paste the object in study
+ /*!
+ \param theObject object to paste
+ */
+ virtual SALOMEDS::SObject_ptr Paste(SALOMEDS::SObject_ptr theObject) throw(SALOMEDS::StudyBuilder::LockProtection);
+ virtual CORBA::Boolean CanPaste(SALOMEDS::SObject_ptr theObject);
+
//! method to Get persistent reference of study (idem URL())
/*!
\sa URL()
@@@ -202,7 -204,13 +202,13 @@@
/*!
\return char* arguments, the study name
*/
- virtual char* Name();
+ virtual wchar_t* Name();
+
+ //! method to set study name
+ /*!
+ \param name char* arguments, the study name
+ */
- virtual void Name(const wchar_t* name);
++ virtual void Name(const wchar_t* name);
//! method to get if study has been saved
/*!
@@@ -235,7 -243,13 +241,7 @@@
/*!
\param url char* arguments, the study URL
*/
- virtual void URL(const char* url);
- virtual void URL(const wchar_t* url);
-
- virtual CORBA::Short StudyId();
- virtual void StudyId(CORBA::Short id);
-
- static SALOMEDS::Study_ptr GetStudy(const DF_Label& theLabel, CORBA::ORB_ptr orb);
- static SALOMEDS_Study_i* GetStudyServant(SALOMEDSImpl_Study*, CORBA::ORB_ptr orb);
++ virtual void URL(const wchar_t* url);
static void IORUpdated(SALOMEDSImpl_AttributeIOR* theAttribute);
diff --cc src/SALOMEDS/Test/SALOMEDSTest_AttributeComment.cxx
index 455bde6b1,9c57a7d10..07f9e976b
--- a/src/SALOMEDS/Test/SALOMEDSTest_AttributeComment.cxx
+++ b/src/SALOMEDS/Test/SALOMEDSTest_AttributeComment.cxx
@@@ -25,10 -25,23 +25,12 @@@
* Use code of SALOMEDS_AttributeComment.cxx
*/
+ //#include "Basics_Utils.hxx"
+
void SALOMEDSTest::testAttributeComment()
{
- //Create or find the Study manager
- _PTR(StudyManager) sm(new SALOMEDS_StudyManager(_sm));
-
- CPPUNIT_ASSERT(sm);
-
- //Create a new study
- std::vector ost(sm->GetOpenStudies());
- _PTR(Study) study;
- if(ost.empty())
- study = sm->NewStudy("Test");
- else
- study = sm->GetStudyByName(ost[0]);
-// study = sm->GetStudyByName(Kernel_Utils::decode_s(ost[0]));
+ //Create Study
+ _PTR(Study) study(new SALOMEDS_Study(_study));
CPPUNIT_ASSERT(study);
diff --cc src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx
index c76daf908,c04961aa2..773f16e5f
--- a/src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx
+++ b/src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx
@@@ -1580,9 -733,20 +1580,20 @@@ SALOMEDSImpl_StudyBuilder* SALOMEDSImpl
std::string SALOMEDSImpl_Study::Name()
{
_errorCode = "";
- return _name;
+ return Kernel_Utils::GetBaseName( _name, false );
}
+ //============================================================================
+ /*! Function : Name
+ * Purpose : set study name
+ */
+ //============================================================================
+ void SALOMEDSImpl_Study::Name(const std::string& name)
+ {
+ _errorCode = "";
+ _name = name;
+ }
+
//============================================================================
/*! Function : IsSaved
* Purpose : get if study has been saved