]> SALOME platform Git repositories - modules/kernel.git/blobdiff - doc/salome/tui/KERNEL/sources/static/overview_Study.html
Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/kernel.git] / doc / salome / tui / KERNEL / sources / static / overview_Study.html
index f4c27836371aea91a316d68f8af45358576341ed..0526536e95c55a8e4b8c73e9735ca3924fc8f70c 100755 (executable)
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">\r
-<html>\r
-<head>\r
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">\r
-   <title>Main Page</title>\r
-<link href="doxygen.css" rel="stylesheet" type="text/css">\r
-</head>\r
-<body>\r
-&nbsp;\r
-<center><table WIDTH="96%" >\r
-<tr>\r
-<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>\r
-\r
-\r
-<td>\r
-<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>\r
-</td>\r
-</tr>\r
-</table></center>\r
-\r
-\r
-<h1><a name="page2">General overview</a>\r
-</h1>\r
-<br>\r
-<h2><a name="cont"></a>Table of contents</h2>\r
-<ul>\r
-  <li><i><b><a href="#1">1. Introduction</a></b></i></li>\r
-  <li><i><b><a href="#2">2. Representation of the study</a></b></i></li>\r
-  <ul>\r
-    <li><i><b><a href="#2_1">2.1 Study in transient format</a></b></i></li>\r
-    <li><i><b><a href="#2_2">2.2 Study in persistent format</a></b></i></li>\r
-    <li><i><b><a href="#2_3">2.3 Link between transient and persistent formats</a></b></i></li>\r
-  </ul>\r
-  <li><i><b><a href="#3">3. Services and features of the study</a></b></i></li>\r
-  <ul>\r
-  <li><i><b><a href="#3_1">3.1 Study class </a></b></i></li>\r
-  <li><i><b><a href="#3_2">3.2 StudyBuilder class </a></b></i></li>\r
-  <li><i><b><a href="#3_3">3.3 StudyManager class </a></b></i></li>\r
-  <li><i><b><a href="#3_4">3.4 SObject class </a></b></i></li>\r
-  <li><i><b><a href="#3_5">3.5 SComponent class </a></b></i></li>\r
-  <li><i><b><a href="#3_6">3.6 ChildIterator class </a></b></i></li>\r
-  <li><i><b><a href="#3_7">3.7 SComponentIterator </a></b></i></li>\r
-  <li><i><b><a href="#3_8">3.8 GenericAttribute class  </a></b></i></li>\r
-  <li><i><b><a href="#3_9">3.9 UseCaseBuilder class </a></b></i></li>\r
-  <li><i><b><a href="#3_10">3.10 UseCaseIterator </a></b></i></li>\r
-  <li><i><b><a href="#3_12">3.11 Callback class </a></b></i></li>\r
-  <li><i><b><a href="#3_12">3.12 Driver class </a></b></i></li>\r
-  </ul>\r
-</ul> \r
-<h2><a name="1"></a>1. Introduction</h2>\r
-<p>In SALOME application the Study module is used for management (creation, saving \r
-  etc.) of studies. In the framework of the platform, a study represents a working \r
-  document allowing to manage the data produced by various components which are \r
-  integarted into SALOME.<br>\r
-</p>\r
-<h2><a name="2"></a>2. Representation of the study</h2>\r
-<p>The study represents a set of objects that we will call Study Objects or SObjects. \r
-  The study can be represented as a tree, every node of that tree containing a \r
-  SObject. SObjects in the study can be values or references towards data of calculation, \r
-  graphs of calculation, trees of construction of detail(room), results. Every \r
-  SOject of the study is characterised by a unique identifier in the study.</p>\r
-<p>The study allows to describe the following relations:</p>\r
-<ul>\r
-  <li>The link between the transient and persistent values of an SObject.</li>\r
-  <li>The relations between the SObjects produced by different components.</li>\r
-  <li>The relations between the SObjects produced by the same component.</li>\r
-  <li>The link between an object and its user name.</li>\r
-  <li>The access to the definition of the component which produce an object of \r
-    the study.</li>\r
-  <li>The access to instance of the component (if this one exists) which has produced \r
-    this SObject of the study.</li>\r
-</ul>\r
-\r
-<p>Every SObject in the study contains a set of attributes. These attributes represent \r
-  a set of definitions associated to that object, they can contain values or corba \r
-  references towards the data contained in the internal data structure of a component.</p>\r
-<p>As the structure of the study is tree-like it is possible to associate sub-objects \r
-  to objects.</p>\r
-<p>As particular object, the study contains Component Data which are labels associated to the component\r
-which produce data in the study. It is to this object that we can associate attributes containing ID which\r
-we shall allow to identify the type of the component and also its instance. Objects produced by a\r
-component will be sub-objects of the coresponding Data Component.</p>\r
-<p>For example Component Data GEOM will contain the data produced by the component \r
-  Geom.</p>\r
-<table width="100%" border="0">\r
-  <tr>\r
-    <td><img src="Study_Struct.gif"></td>\r
-    <td>GEOM contains the data produced by the component GEOM. The component MESH \r
-      contains a SObject Mesh_1 wich refers to the SObject identified \r
-      by ID4 corresponding to Geometrie_1.</td>\r
-  </tr>\r
-</table>\r
-<p>We distinguish two forms of the study, the study opened in a session SALOME and the study in the\r
-persistent format. These two formats are described in the following sections</p>\r
-<h3><a name="2_1"></a>2.1 Study in transient format</h3>\r
-<p>The representation of the study in memory will be based on the document OCAF (supplied by OCC).\r
-The document OCAF can be seen as a tree, every node of that tree is identified by <i>a tag</i> representing an integer value.</p>\r
-<p>The exploration of the tree from the root to a node supplies a sequence of tags which establishes a\r
-unique identifier <i>ID</i>. ID represents a character string containing the sequence of tags separated by\r
-one ':'.</p> \r
-<p>For example  0:1:12:4 </p>\r
-<p>To every node we can associate a set of attributes.</p>\r
-<p>The attributes which the study can contain can be of the following types:</p>\r
-<ul>\r
-<li>All standard attributes supplied by OCC (package TdataStd) which allow to define (integers,\r
-real, strings, identifiers, references etc.)</li>\r
-<li>Attributes which contain CORBA references.</li>\r
-<li>Attributes which contain the path HDF to reach the persistent datum. (Cf. the following chapter)</li>\r
-</ul>\r
-<p><b>Remark</b>: it is the study which takes care to build the attributes from the values which are passed to it, so\r
-an attribute is always in a study, and it knows the study object to which it is attached.</p>\r
-<p>Example of a Study Object as a set of various attributes.</p>\r
-<img src="SObject.gif"> \r
-<h3><a name="2_2"></a>2.2 Study in persistent format</h3>\r
-<p>To store a study HDF format is used, this tool allows to represent persistent data in the form of a tree.</p>\r
-<p>Under the root of the persistent document, you can find a set of nodes:</p>\r
-<ul>\r
-<li>The first node contains the skeleton of the study. The skeleton consists of the identifiers of the\r
-objects, as well as the references among them.</li>\r
-<li>There is also one node for every component which has produced data during this SALOME session. Under each of these\r
-node there are values of the data produced by this component.</li>\r
-</ul>\r
-<h3><a name="2_3"></a>2.3 Link between transient and persistent formats</h3>\r
-<p>It will be possible to complete the definition of one object in the study by associating to it an attribute\r
-<i>HDFPath</i> which will contain the path to the persistent data.</p>\r
-<img src="Link.gif"> \r
-<p><a href="#cont"><b><i>Back to the contents</i></b></a></p>\r
-<h2><a name="3"></a>3. Services and features of the study</h2>\r
-<p>The Study in SALOME application possess a wide functionality. This functionality is provided by a set of classes which are described\r
-below.\r
-<h3><a name="3_1"></a>3.1 Study class</h3>\r
-<p>The purpose of the Study class is to manage the data produced by various components \r
-  of SALOME platform. Most of the Study operations are handled by the <a href="#3_3">StudyManager</a> \r
-  and the <a href="#3_2">StudyBuilder</a>. What \r
-  is left in the Study class are elementary inquiries. A Study is explored by \r
-  a set of tools, mainly iterators , which are described further.</p> \r
-  <p>Nevertheless, the Study class contains a set of methods providing: </p>\r
-  \r
-<ul>\r
-  <li>management of study properties \r
-  <li> search for SObjects. \r
-  <li>search for SComponents\r
-  <li>creation of a new StudyBuilder, ComponentIterator, ChildIterator etc.\r
-</ul>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1Study.html">here</a>.</p>\r
-<h3><a name="3_2"></a>3.2 StudyBuilder class</h3>\r
-<p>StudyBuilder supplies basic services to edit the study. The edition of the study is made by the\r
-component. Every component will use the basic services of the StudyBuilder allowing to write and publish objects.</p>\r
-<p>StudyBulder provides the following functionality:</p>\r
-<ul>\r
-  <li>creation, modification or deletetion of SObjects in the study</li>\r
-  <li>creation or removal of SComponents </li>\r
-  <li>undo/redo functionality. For that purpose it supplies the methods NewCommand, \r
-    CommitCommand, AbortCommand. </li>\r
-</ul>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1StudyBuilder.html">here</a>.</p>\r
-<h3><a name="3_3"></a>3.3 StudyManager class</h3>\r
-<p>The purpose of the Manager is to manipulate Studies. Since SALOME is a multi-document \r
-  application during a working session you can operate as many stadies as you \r
-  wishes to create. </p>\r
-<p>For that purpose StudyManager provides the following functionality:</p>\r
-<ul>\r
-  <li>creation, opening, closing and saving studies</li>\r
-  <li>navigation through a set of studies present in the current working session</li>\r
-  <li> copy/paste of the objects in the study functionality.</li>\r
-</ul>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1StudyManager.html">here</a>.</p>\r
-<h3><a name="3_4"></a>3.4 SObject class</h3>\r
-<p>The objects in the study are built by the StudyBuilder. \r
-The SObject class provides methods for elementary inquiries, like getting an object ID or its attribuites. </p>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1SObject.html">here</a>.</p>\r
-<h3><a name="3_5"></a>3.5 SComponent class</h3>\r
-<p>The SComponent class establishes in the study a permanent assocition to the components \r
-integrated into SALOME platform. The SComponent interface is a specialization of the SObject\r
- class. It inherits the most of its methods from the SObject class which are used for management of the SComponents.</p>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1SComponent.html">here</a>.</p>\r
-<h3><a name="3_6"></a>3.6 ChildIterator class</h3>\r
-<p>It is one of the tools destined for exploration of the study. This class contains a set of methods allowing to get \r
-the access to all identified objects which are sons of another identifiedobject.</p>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1ChildIterator.html">here</a>.</p>\r
-<h3><a name="3_7"></a>3.7 SComponentIterator</h3>\r
-<p>This is the second tool destined for exploration of the study. This interface contains the methods allowing to iterate over all SComponents in the list.\r
- The search is started from the first SComponent in the list. </p>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1SComponentIterator.html">here</a>.</p> \r
\r
-<h3><a name="3_8"></a>3.8 GenericAttribute class </h3>\r
- <p>GenericAttribute represents a base class for all attributes which can be assigned to the SObjects created in the study. All attribute classes \r
- derive from this classe and inherit its methods. </p>\r
- <p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1GenericAttribute.html">here</a>.</p> \r
\r
-<p>In SALOME application a SObject can possess the following attributes:</p>\r
-<table width="48%" border="0">\r
-  <tr>\r
-    <td width="44%" height="241"> \r
-      <ul>\r
-       <li><a href="interfaceSALOMEDS_1_1AttributeName.html">AttributeName</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeComment.html">AttributeComment</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeIOR.html">AttributeIOR</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeReal.html">AttributeReal</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeInteger.html">AttributeInteger</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeSequenceOfReal.html">AttributeSequenceOfReal</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeSequenceOfInteger.html">AttributeSequenceOfInteger</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributePersistentRef.html">AttributePersistentRef</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeDrawable.html">AttributeDrawable</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeSelectable.html">AttributeSelectable</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeExpandable.html">AttributeExpandable</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeOpened.html">AttributeOpened</a></li>\r
- </ul></td>\r
-    <td width="56%" height="241"> \r
-      <ul>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTextColor.html">AttributeTextColor </a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTextHighlightColor.html">AttributeTextHighlightColor</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributePixMap.html">AttributePixMap</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTreeNode.html">AttributeTreeNode</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeLocalID.html">AttributeLocalID</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeUserID.html">AttributeUserID</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTarget.html">AttributeTarget</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTableOfInteger.html">AttributeTableOfInteger</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTableOfReal.html">AttributeTableOfReal</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeTableOfString.html">AttributeTableOfString</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributeStudyProperties.html">AttributeStudyProperties</a></li>\r
- <li><a href="interfaceSALOMEDS_1_1AttributePythonObject.html">AttributePythonObject</a></li>  \r
- </ul></td>\r
-  </tr>\r
-</table>\r
-<h3><a name="3_9"></a>3.9 UseCaseBuilder class</h3>\r
-<p>UseCase in the study represents a user-defined subtree, containing all or some of the objects which currently exist \r
-in the study. The UseCaseBuilder class contains a set of methods used for management (creation, deletion etc) of this sub-tree in the study. </p>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1UseCaseBuilder.html">here</a>.</p>\r
\r
-<h3><a name="3_10"></a>3.10 UseCaseIterator</h3>\r
- <p>This class represents an exploration tool for the UseCase. It contains a set of methods used for iteration over the objects in the UseCase.</p> \r
- <p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1UseCaseIterator.html">here</a>.</p>\r
\r
-<h3><a name="3_11"></a>3.11 Callback class</h3>\r
- <p>The StudyBuilder can be created with the method NewBuilder. While invocation of this method a new object of the class \r
- Callback is created and this object is assigned to the newly created Builder as callback which should be called \r
- when <i>adding</i> and <i>removing</i> the objects. </p>\r
- <p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1Callback.html">here</a>.</p>\r
\r
-<h3><a name="3_12"></a>3.12 Driver class</h3>\r
\r
-<p>This class represents a common tool for all components integrated into SALOME \r
-  application, that allows them to communicate with the study. It contains a set \r
-  of methods which can be called by any component and which provide the following \r
-  functionality:\r
-<ul>\r
-  <li>publishing in the study of the objects created by a definite component </li>\r
-  <li>saving/loading of the data created by a definite component. These methods \r
-    are called by the StudyManager when loading/saving a study containing the \r
-    data created by a definite component.</li>\r
-  <li>transforming of the transient references into persistant references (or \r
-    vice versa) of the SObjects when saving (or loading) a study</li>\r
-  <li>copy/paste common functionality. These methods can be called by any component \r
-    in order to copy/paste its object created in the study</li>\r
-</ul>\r
-<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1Driver.html">here</a>.</p>\r
-<p><a href="#cont"><b><i>Back to the contents</i></b></a></p>\r
-</body>\r
-</html>\r
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+<center><table WIDTH="96%" >
+<tr>
+<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
+
+
+<td>
+<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
+</td>
+</tr>
+</table></center>
+
+
+<h1><a name="page2">General overview</a>
+</h1>
+<br>
+<h2><a name="cont"></a>Table of contents</h2>
+<ul>
+  <li><i><b><a href="#1">1. Introduction</a></b></i></li>
+  <li><i><b><a href="#2">2. Representation of the study</a></b></i></li>
+  <ul>
+    <li><i><b><a href="#2_1">2.1 Study in transient format</a></b></i></li>
+    <li><i><b><a href="#2_2">2.2 Study in persistent format</a></b></i></li>
+    <li><i><b><a href="#2_3">2.3 Link between transient and persistent formats</a></b></i></li>
+  </ul>
+  <li><i><b><a href="#3">3. Services and features of the study</a></b></i></li>
+  <ul>
+  <li><i><b><a href="#3_1">3.1 Study class </a></b></i></li>
+  <li><i><b><a href="#3_2">3.2 StudyBuilder class </a></b></i></li>
+  <li><i><b><a href="#3_3">3.3 StudyManager class </a></b></i></li>
+  <li><i><b><a href="#3_4">3.4 SObject class </a></b></i></li>
+  <li><i><b><a href="#3_5">3.5 SComponent class </a></b></i></li>
+  <li><i><b><a href="#3_6">3.6 ChildIterator class </a></b></i></li>
+  <li><i><b><a href="#3_7">3.7 SComponentIterator </a></b></i></li>
+  <li><i><b><a href="#3_8">3.8 GenericAttribute class  </a></b></i></li>
+  <li><i><b><a href="#3_9">3.9 UseCaseBuilder class </a></b></i></li>
+  <li><i><b><a href="#3_10">3.10 UseCaseIterator </a></b></i></li>
+  <li><i><b><a href="#3_12">3.11 Callback class </a></b></i></li>
+  <li><i><b><a href="#3_12">3.12 Driver class </a></b></i></li>
+  </ul>
+</ul> 
+<h2><a name="1"></a>1. Introduction</h2>
+<p>In SALOME application the Study module is used for management (creation, saving 
+  etc.) of studies. In the framework of the platform, a study represents a working 
+  document allowing to manage the data produced by various components which are 
+  integarted into SALOME.<br>
+</p>
+<h2><a name="2"></a>2. Representation of the study</h2>
+<p>The study represents a set of objects that we will call Study Objects or SObjects. 
+  The study can be represented as a tree, every node of that tree containing a 
+  SObject. SObjects in the study can be values or references towards data of calculation, 
+  graphs of calculation, trees of construction of detail(room), results. Every 
+  SOject of the study is characterised by a unique identifier in the study.</p>
+<p>The study allows to describe the following relations:</p>
+<ul>
+  <li>The link between the transient and persistent values of an SObject.</li>
+  <li>The relations between the SObjects produced by different components.</li>
+  <li>The relations between the SObjects produced by the same component.</li>
+  <li>The link between an object and its user name.</li>
+  <li>The access to the definition of the component which produce an object of 
+    the study.</li>
+  <li>The access to instance of the component (if this one exists) which has produced 
+    this SObject of the study.</li>
+</ul>
+
+<p>Every SObject in the study contains a set of attributes. These attributes represent 
+  a set of definitions associated to that object, they can contain values or corba 
+  references towards the data contained in the internal data structure of a component.</p>
+<p>As the structure of the study is tree-like it is possible to associate sub-objects 
+  to objects.</p>
+<p>As particular object, the study contains Component Data which are labels associated to the component
+which produce data in the study. It is to this object that we can associate attributes containing ID which
+we shall allow to identify the type of the component and also its instance. Objects produced by a
+component will be sub-objects of the coresponding Data Component.</p>
+<p>For example Component Data GEOM will contain the data produced by the component 
+  Geom.</p>
+<table width="100%" border="0">
+  <tr>
+    <td><img src="Study_Struct.gif"></td>
+    <td>GEOM contains the data produced by the component GEOM. The component MESH 
+      contains a SObject Mesh_1 wich refers to the SObject identified 
+      by ID4 corresponding to Geometrie_1.</td>
+  </tr>
+</table>
+<p>We distinguish two forms of the study, the study opened in a session SALOME and the study in the
+persistent format. These two formats are described in the following sections</p>
+<h3><a name="2_1"></a>2.1 Study in transient format</h3>
+<p>The representation of the study in memory will be based on the document OCAF (supplied by OCC).
+The document OCAF can be seen as a tree, every node of that tree is identified by <i>a tag</i> representing an integer value.</p>
+<p>The exploration of the tree from the root to a node supplies a sequence of tags which establishes a
+unique identifier <i>ID</i>. ID represents a character string containing the sequence of tags separated by
+one ':'.</p> 
+<p>For example  0:1:12:4 </p>
+<p>To every node we can associate a set of attributes.</p>
+<p>The attributes which the study can contain can be of the following types:</p>
+<ul>
+<li>All standard attributes supplied by OCC (package TdataStd) which allow to define (integers,
+real, strings, identifiers, references etc.)</li>
+<li>Attributes which contain CORBA references.</li>
+<li>Attributes which contain the path HDF to reach the persistent datum. (Cf. the following chapter)</li>
+</ul>
+<p><b>Remark</b>: it is the study which takes care to build the attributes from the values which are passed to it, so
+an attribute is always in a study, and it knows the study object to which it is attached.</p>
+<p>Example of a Study Object as a set of various attributes.</p>
+<img src="SObject.gif"> 
+<h3><a name="2_2"></a>2.2 Study in persistent format</h3>
+<p>To store a study HDF format is used, this tool allows to represent persistent data in the form of a tree.</p>
+<p>Under the root of the persistent document, you can find a set of nodes:</p>
+<ul>
+<li>The first node contains the skeleton of the study. The skeleton consists of the identifiers of the
+objects, as well as the references among them.</li>
+<li>There is also one node for every component which has produced data during this SALOME session. Under each of these
+node there are values of the data produced by this component.</li>
+</ul>
+<h3><a name="2_3"></a>2.3 Link between transient and persistent formats</h3>
+<p>It will be possible to complete the definition of one object in the study by associating to it an attribute
+<i>HDFPath</i> which will contain the path to the persistent data.</p>
+<img src="Link.gif"> 
+<p><a href="#cont"><b><i>Back to the contents</i></b></a></p>
+<h2><a name="3"></a>3. Services and features of the study</h2>
+<p>The Study in SALOME application possess a wide functionality. This functionality is provided by a set of classes which are described
+below.
+<h3><a name="3_1"></a>3.1 Study class</h3>
+<p>The purpose of the Study class is to manage the data produced by various components 
+  of SALOME platform. Most of the Study operations are handled by the <a href="#3_3">StudyManager</a> 
+  and the <a href="#3_2">StudyBuilder</a>. What 
+  is left in the Study class are elementary inquiries. A Study is explored by 
+  a set of tools, mainly iterators , which are described further.</p> 
+  <p>Nevertheless, the Study class contains a set of methods providing: </p>
+  
+<ul>
+  <li>management of study properties 
+  <li> search for SObjects. 
+  <li>search for SComponents
+  <li>creation of a new StudyBuilder, ComponentIterator, ChildIterator etc.
+</ul>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1Study.html">here</a>.</p>
+<h3><a name="3_2"></a>3.2 StudyBuilder class</h3>
+<p>StudyBuilder supplies basic services to edit the study. The edition of the study is made by the
+component. Every component will use the basic services of the StudyBuilder allowing to write and publish objects.</p>
+<p>StudyBulder provides the following functionality:</p>
+<ul>
+  <li>creation, modification or deletetion of SObjects in the study</li>
+  <li>creation or removal of SComponents </li>
+  <li>undo/redo functionality. For that purpose it supplies the methods NewCommand, 
+    CommitCommand, AbortCommand. </li>
+</ul>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1StudyBuilder.html">here</a>.</p>
+<h3><a name="3_3"></a>3.3 StudyManager class</h3>
+<p>The purpose of the Manager is to manipulate Studies. Since SALOME is a multi-document 
+  application during a working session you can operate as many stadies as you 
+  wishes to create. </p>
+<p>For that purpose StudyManager provides the following functionality:</p>
+<ul>
+  <li>creation, opening, closing and saving studies</li>
+  <li>navigation through a set of studies present in the current working session</li>
+  <li> copy/paste of the objects in the study functionality.</li>
+</ul>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1StudyManager.html">here</a>.</p>
+<h3><a name="3_4"></a>3.4 SObject class</h3>
+<p>The objects in the study are built by the StudyBuilder. 
+The SObject class provides methods for elementary inquiries, like getting an object ID or its attribuites. </p>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1SObject.html">here</a>.</p>
+<h3><a name="3_5"></a>3.5 SComponent class</h3>
+<p>The SComponent class establishes in the study a permanent assocition to the components 
+integrated into SALOME platform. The SComponent interface is a specialization of the SObject
+ class. It inherits the most of its methods from the SObject class which are used for management of the SComponents.</p>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1SComponent.html">here</a>.</p>
+<h3><a name="3_6"></a>3.6 ChildIterator class</h3>
+<p>It is one of the tools destined for exploration of the study. This class contains a set of methods allowing to get 
+the access to all identified objects which are sons of another identifiedobject.</p>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1ChildIterator.html">here</a>.</p>
+<h3><a name="3_7"></a>3.7 SComponentIterator</h3>
+<p>This is the second tool destined for exploration of the study. This interface contains the methods allowing to iterate over all SComponents in the list.
+ The search is started from the first SComponent in the list. </p>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1SComponentIterator.html">here</a>.</p> 
+<h3><a name="3_8"></a>3.8 GenericAttribute class </h3>
+ <p>GenericAttribute represents a base class for all attributes which can be assigned to the SObjects created in the study. All attribute classes 
+ derive from this classe and inherit its methods. </p>
+ <p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1GenericAttribute.html">here</a>.</p> 
+<p>In SALOME application a SObject can possess the following attributes:</p>
+<table width="48%" border="0">
+  <tr>
+    <td width="44%" height="241"> 
+      <ul>
+       <li><a href="interfaceSALOMEDS_1_1AttributeName.html">AttributeName</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeComment.html">AttributeComment</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeIOR.html">AttributeIOR</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeReal.html">AttributeReal</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeInteger.html">AttributeInteger</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeSequenceOfReal.html">AttributeSequenceOfReal</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeSequenceOfInteger.html">AttributeSequenceOfInteger</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributePersistentRef.html">AttributePersistentRef</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeDrawable.html">AttributeDrawable</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeSelectable.html">AttributeSelectable</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeExpandable.html">AttributeExpandable</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeOpened.html">AttributeOpened</a></li>
+ </ul></td>
+    <td width="56%" height="241"> 
+      <ul>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTextColor.html">AttributeTextColor </a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTextHighlightColor.html">AttributeTextHighlightColor</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributePixMap.html">AttributePixMap</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTreeNode.html">AttributeTreeNode</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeLocalID.html">AttributeLocalID</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeUserID.html">AttributeUserID</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTarget.html">AttributeTarget</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTableOfInteger.html">AttributeTableOfInteger</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTableOfReal.html">AttributeTableOfReal</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeTableOfString.html">AttributeTableOfString</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributeStudyProperties.html">AttributeStudyProperties</a></li>
+ <li><a href="interfaceSALOMEDS_1_1AttributePythonObject.html">AttributePythonObject</a></li>  
+ </ul></td>
+  </tr>
+</table>
+<h3><a name="3_9"></a>3.9 UseCaseBuilder class</h3>
+<p>UseCase in the study represents a user-defined subtree, containing all or some of the objects which currently exist 
+in the study. The UseCaseBuilder class contains a set of methods used for management (creation, deletion etc) of this sub-tree in the study. </p>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1UseCaseBuilder.html">here</a>.</p>
+<h3><a name="3_10"></a>3.10 UseCaseIterator</h3>
+ <p>This class represents an exploration tool for the UseCase. It contains a set of methods used for iteration over the objects in the UseCase.</p> 
+ <p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1UseCaseIterator.html">here</a>.</p>
+<h3><a name="3_11"></a>3.11 Callback class</h3>
+ <p>The StudyBuilder can be created with the method NewBuilder. While invocation of this method a new object of the class 
+ Callback is created and this object is assigned to the newly created Builder as callback which should be called 
+ when <i>adding</i> and <i>removing</i> the objects. </p>
+ <p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1Callback.html">here</a>.</p>
+<h3><a name="3_12"></a>3.12 Driver class</h3>
+<p>This class represents a common tool for all components integrated into SALOME 
+  application, that allows them to communicate with the study. It contains a set 
+  of methods which can be called by any component and which provide the following 
+  functionality:
+<ul>
+  <li>publishing in the study of the objects created by a definite component </li>
+  <li>saving/loading of the data created by a definite component. These methods 
+    are called by the StudyManager when loading/saving a study containing the 
+    data created by a definite component.</li>
+  <li>transforming of the transient references into persistant references (or 
+    vice versa) of the SObjects when saving (or loading) a study</li>
+  <li>copy/paste common functionality. These methods can be called by any component 
+    in order to copy/paste its object created in the study</li>
+</ul>
+<p>The API reference for this class can be found <a href="interfaceSALOMEDS_1_1Driver.html">here</a>.</p>
+<p><a href="#cont"><b><i>Back to the contents</i></b></a></p>
+</body>
+</html>