Salome HOME
This commit was generated by cvs2git to track changes on a CVS vendor
[modules/superv.git] / idl / SALOMEDS_Attributes.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : SALOMEDS.idl
23 //  Author : Yves FRICAUD
24 //  $Header$
25
26 /*! \file SALOMEDS_Attributes.idl This file contains a set of interfaces
27     for the attributes which can be assigned to %SObject
28 */
29 #ifndef _SALOMEDS_AttributesIDL_
30 #define _SALOMEDS_AttributesIDL_
31
32 #include "SALOMEDS.idl"
33
34 module SALOMEDS
35 {
36 /*! Sequence of double values
37 */
38   typedef sequence <double> DoubleSeq;
39 /*! Sequence of long values
40 */
41   typedef sequence <long>   LongSeq;
42 /*! Sequence of string values
43 */
44   typedef sequence <string> StringSeq;
45 /*! \struct Color 
46    This structure stores a set of elements defining the color based on RGB.
47 */
48   struct Color {
49 /*! Red color
50 */  
51    double R;
52 /*! Green color
53 */ 
54    double G;
55 /*! Blue color
56 */ 
57    double B;
58   };
59   //==========================================================================
60 /*! \brief Attribute allowing to store a real value
61
62     Attribute allowing to store a real value
63 */
64  //==========================================================================
65   interface AttributeReal : GenericAttribute
66   {
67 /*!
68     Returns the value of this attribute.
69 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
70 */
71     double Value();
72 /*!
73    Sets the value of this attribute.
74 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
75 */
76     void   SetValue(in double value);
77   };
78   //==========================================================================
79 /*! \brief Attribute allowing to store an integer value
80
81    Attribute allowing to store an integer value
82 */
83   //==========================================================================
84   interface AttributeInteger : GenericAttribute
85   {
86 /*!
87     Returns the value of this attribute
88 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
89 */
90     long   Value();
91 /*!
92    Sets the value of this attribute
93 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
94 */
95     void   SetValue(in long value);
96   };
97   //==========================================================================
98 /*! \brief Attribute - sequence of real values
99
100   Attribute - sequence of real values, indexing from 1 (like in CASCADE).
101 */
102   //==========================================================================
103   interface AttributeSequenceOfReal : GenericAttribute
104   {
105 /*!
106    Initialization of the attribute with initial data.
107    \param other    Initially assigned sequence of real numbers.
108 */
109     void      Assign (in DoubleSeq other);
110 /*!
111    Returns the sequence of real numbers stored in the attribute.
112 */
113     DoubleSeq CorbaSequence();
114 /*!
115    Adds to the end of the sequence a real number.
116    \param value    A real number added to the sequence.
117
118 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
119 */
120     void      Add (in double value);
121 /*!
122     Removes a real number with a definite index
123     from the sequence of real numbers stored in the Attribute.
124 */
125     void      Remove(in long index);
126 /*!
127     Substitutes a real number with a definite index for another real number.
128 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
129
130 */
131     void      ChangeValue(in long index, in double value);
132 /*!
133   Returns a real number with a definite index
134     in the sequence of real numbers stored in the Attribute.
135 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
136 */
137     double    Value(in short index);
138 /*!
139     Returns the length of the sequence of real numbers stored in the Attribute.
140 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
141
142 */
143     long      Length();
144   };
145   //==========================================================================
146 /*! \brief Attribute - sequence of integer
147
148   Attribute - sequence of integer, indexing from 1 (like in CASCADE)
149 */
150   //==========================================================================
151   interface AttributeSequenceOfInteger : GenericAttribute
152   {
153 /*!
154    Initialization of the attribute with initial data.
155    \param other    Initially assigned sequence of integer numbers.
156 */
157     void      Assign (in LongSeq other);
158 /*!
159    Returns the sequence of integer numbers stored in the Attribute.
160 */
161     LongSeq CorbaSequence();
162 /*!
163    Adds to the end of the sequence an integer number.
164    \param value    An integer number added to the sequence.
165
166 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
167
168 */
169     void      Add (in long value);
170 /*!
171     Removes an integer number with a definite index
172     from the sequence of integer numbers stored in the Attribute.
173 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
174
175 */
176     void      Remove(in long index);
177 /*!
178     Substitutes an integer number with a definite index for another integer number.
179 */
180     void      ChangeValue(in long index, in long value);
181 /*!
182    Returns an integer number with a definite index
183     in the sequence of integer numbers stored in the Attribute.
184 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
185 */
186     long      Value(in short index);
187 /*!
188     Returns the length of the sequence of integer numbers stored in the Attribute.
189 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
190
191 */
192     long      Length();
193   };
194
195   //==========================================================================
196 /*! \brief Name attribute
197
198    This attribute stores a string value, which corresponds to the name of the %SObject
199    or to the name of corresponding object.
200 */
201   //==========================================================================
202
203   interface AttributeName : GenericAttribute
204   {
205 /*!
206     Returns the value of this attribute
207 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
208 */
209     string Value();
210 /*!
211    Sets the value of this attribute
212 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
213 */
214     void   SetValue(in string value);
215   };
216
217   //==========================================================================
218 /*! \brief Comment attribute
219
220     This attribute stores a string value containing supplementary information about
221     the %SObject. In particular it contains the data type of the %SComponent.
222 */
223   //==========================================================================
224   interface AttributeComment : GenericAttribute
225   {
226 /*!
227     Returns the value of this attribute
228 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
229 */
230     string Value();
231 /*!
232    Sets the value of this attribute
233 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
234 */
235     void   SetValue(in string value);
236   };
237   //==========================================================================
238 /*! \brief IOR attribute
239
240     This attribute stores a string value identifying a runtime object.In particular
241     it contains CORBA Interoperable Object Reference.
242 */
243  //==========================================================================
244   interface AttributeIOR : GenericAttribute
245   {
246 /*!
247     Returns the value of this attribute
248 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
249 */
250     string Value();
251 /*!
252    Sets the value of this attribute
253 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
254 */
255     void   SetValue(in string value);
256   };
257
258   //==========================================================================
259 /*! \brief Persistent reference attribute
260
261      This attribute stores a persistent identifier of the object.
262 */
263   //==========================================================================
264   interface AttributePersistentRef : GenericAttribute
265   {
266 /*!
267     Returns the value of this attribute
268 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
269 */
270     string Value();
271 /*!
272    Sets the value of this attribute
273 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
274 */
275     void   SetValue(in string value);
276   };
277
278   //==========================================================================
279   //Below the list of presentation attributes for display study tree in browser
280   //==========================================================================
281
282
283   //==========================================================================
284 /*! \brief Drawable flag Attribute.
285
286    This is a presentation attribute necessary for display of the study tree in the browser.
287    The item associated to SObject is created/displayed if TRUE.
288 */
289   //==========================================================================
290   interface AttributeDrawable : GenericAttribute
291   {
292 /*!
293    Returns TRUE if the item is drawable (as it is by default) and FALSE if it isn't.
294 <BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
295
296 */
297     boolean IsDrawable();
298 /*!
299 Sets the items to be drawable if <VAR>value</VAR> is TRUE (the default) or not to be selectable if <VAR>value</VAR>is FALSE.
300 <BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
301
302 */
303     void   SetDrawable(in boolean value);
304   };
305
306   //==========================================================================
307 /*! \brief Selectable flag Attribute.
308
309   This is a presentation attribute necessary for display of the study tree in the browser.
310   The item is selectable by %SALOME selection mechanism if TRUE.
311 */
312   //==========================================================================
313   interface AttributeSelectable : GenericAttribute
314   {
315 /*!
316    Returns TRUE if the item is selectable (as it is by default) and FALSE if it isn't.
317 <BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
318
319 */
320     boolean IsSelectable();
321 /*!
322 Sets the items to be selectable if <VAR>value</VAR> is TRUE (the default) or not to be selectable if <VAR>value</VAR>is FALSE.
323 <BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
324
325 */
326     void   SetSelectable(in boolean value);
327   };
328
329   //==========================================================================
330 /*! \brief Expandable flag Attribute.
331
332  This is a presentation attribute necessary for display of the study tree in the browser.
333  It sets this item to be expandable even if it has no children if value is TRUE. If value is FALSE
334  expandable only if it has children.
335 */
336   //==========================================================================
337   interface AttributeExpandable : GenericAttribute
338   {
339 /*!
340     Returns TRUE if this item is expandable even when it has no children.
341 <BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
342
343 */
344     boolean IsExpandable();
345 /*!
346    Sets this item to be expandable even if it has no children if <VAR>value</VAR> is TRUE, and to be
347    expandable only if it has children if <VAR>value</VAR> is FALSE (the default).
348 <BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
349
350 */
351     void   SetExpandable(in boolean value);
352   };
353
354   //==========================================================================
355 /*! \brief Opened flag Attribute.
356
357    This is a presentation attribute necessary for display of the study tree in the browser.
358    It sets this item to be open (its children are visible) if bool is TRUE, and to be closed (its children
359    are not visible) if bool is FALSE.
360 */
361   //==========================================================================
362   interface AttributeOpened : GenericAttribute
363   {
364 /*!
365     Returns TRUE if this item is open (its children are visible) and FALSE if it isn't.
366 <BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
367
368 */
369     boolean IsOpened();
370 /*!
371    Sets this item to be open (its children are visible) if <VAR>value</VAR> is TRUE, and to be closed
372 (its children are not visible) if <VAR>value</VAR> is FALSE.
373 <BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
374
375 */
376     void   SetOpened(in boolean value);
377   };
378   //==========================================================================
379 /*! \brief TextColorAttribute.
380
381      This attribute sets the color of an item.
382 */
383   //==========================================================================
384   interface AttributeTextColor : GenericAttribute
385   {
386 /*!
387    Returns the color of an item.
388 <BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
389
390 */
391     Color TextColor();
392 /*!
393    Sets the color of an item.
394 <BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
395
396 */
397     void   SetTextColor(in Color value);
398   };
399
400   //==========================================================================
401   /*! \brief TextHighlightColorAttribute.
402
403      This attribute sets the highlight color of an item.
404 */
405   //==========================================================================
406   interface AttributeTextHighlightColor : GenericAttribute
407   {
408 /*!
409    Returns the highlight color of an item.
410 <BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
411
412 */
413     Color TextHighlightColor();
414 /*!
415    Sets the highlight color of an item.
416 <BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
417
418 */
419     void   SetTextHighlightColor(in Color value);
420   };
421   //==========================================================================
422 /*! \brief PixMapAttribute.
423
424     This attribute stores an icon which is put before the name of an item.
425 */
426   //==========================================================================
427   interface AttributePixMap : GenericAttribute
428   {
429 /*!
430    Returns True if there is an icon before the name of the item.
431 */
432     boolean HasPixMap();
433 /*!
434    Returns the name of the icon.
435 <BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
436
437 */
438     string  GetPixMap();
439 /*!
440    Sets the name of the icon.
441 <BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
442
443 */
444     void    SetPixMap(in string value);
445   };
446
447   //==========================================================================
448 /*! \brief TreeNodeAttribute.
449
450    A set of these attributes on the %SObjects of the %study forms an inner auxiliary
451    tree whith its own structure and identifier. The quantity of such trees with different
452    identifiers can be arbitrary.
453 <BR><VAR>See also <A href=exemple/Example18.html> an example </A> of usage of the methods of this interface in batchmode of %SALOME application.</VAR>
454
455 */
456   //==========================================================================
457   interface AttributeTreeNode : GenericAttribute
458   {
459 /*!
460   Sets the father TreeNode to this TreeNode.
461 */
462     void              SetFather(in AttributeTreeNode value);
463 /*!
464   Returns True if there is the father TreeNode of this TreeNode.
465 */
466     boolean           HasFather();
467 /*!
468   Returns the father Treenode of this TreeNode.
469 */
470     AttributeTreeNode GetFather();
471 /*!
472   Sets the previous brother TreeNode to this treeNode.
473 */
474     void              SetPrevious(in AttributeTreeNode value);
475 /*!
476   Returns True if there is the previous brother TreeNode of this TreeNode.
477 */
478     boolean           HasPrevious();
479 /*!
480   Returns the previous brother TreeNode of this TreeNode.
481 */
482     AttributeTreeNode GetPrevious();
483 /*!
484   Sets the next brother TreeNode to this treeNode.
485 */
486     void              SetNext(in AttributeTreeNode value);
487 /*!
488   Returns True if there is the next brother TreeNode of this TreeNode.
489 */
490     boolean           HasNext();
491 /*!
492   Returns the previous brother TreeNode of this TreeNode.
493 */
494     AttributeTreeNode GetNext();
495 /*!
496   Sets the first child TreeNode to this treeNode.
497 */
498     void              SetFirst(in AttributeTreeNode value);
499 /*!
500   Returns True if there is the first child TreeNode of this TreeNode.
501 */
502     boolean           HasFirst();
503 /*!
504   Returns the first child TreeNode of this TreeNode.
505 */
506     AttributeTreeNode GetFirst();
507 /*!
508   Sets ID of the tree. TreeNodes of one tree have the same ID.
509 */
510     void              SetTreeID(in string value);
511 /*!
512   Gets ID of the tree.
513 */
514     string            GetTreeID();
515
516 /*!
517    Adds a child TreeNode to the end of the list of children of this Treenode.
518 */
519     void              Append(in AttributeTreeNode value);
520 /*!
521    Adds a child TreeNode to the beginning of the list of children of this Treenode.
522
523 */
524     void              Prepend(in AttributeTreeNode value);
525 /*!
526    Adds a brother TreeNode before this Treenode.
527     In this case the both TreeNodes will belong to the same father.
528 */
529     void              InsertBefore(in AttributeTreeNode value);
530 /*!
531    Adds a brother TreeNode after this Treenode.
532     In this case the both TreeNodes will belong to the same father.
533 */
534     void              InsertAfter(in AttributeTreeNode value);
535 /*!
536    Deletes a TreeNode.
537 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
538
539 */
540     void              Remove();
541
542 /*!
543    Returns  the  depth  of the TreeNode in the
544    structure, it means the  number of  fathers of the given TreeNode.
545    (i.e.: the depth of the root TreeNode is 0).
546 */
547     long              Depth();
548 /*!
549     Returns True if it is a root TreeNode.
550 */
551     boolean           IsRoot();
552 /*!
553     Returns True if this TreeNode is a descendant of the TreeNode.
554 */
555     boolean           IsDescendant(in AttributeTreeNode value);
556 /*!
557     Returns True if this TreeNode is the father of the TreeNode.
558 */
559     boolean           IsFather(in AttributeTreeNode value);
560 /*!
561     Returns True if this TreeNode is a child of the TreeNode.
562 */
563     boolean           IsChild(in AttributeTreeNode value);
564 /*!
565    Returns ID of the according %SObject.
566 */
567     string            Label();
568   };
569   //==========================================================================
570 /*! \brief LocalID attribute
571
572    Attribute describing the link between a %SObject and a local object in the component.
573 */
574   //==========================================================================
575   interface AttributeLocalID : GenericAttribute
576   {
577 /*!
578    Returns the value of this attribute.
579 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
580 */
581     long   Value();
582 /*!
583    Sets the value of this attribute.
584 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
585 */
586     void   SetValue(in long value);
587   };
588
589   //==========================================================================
590 /*! \brief Attribute storing GUID
591
592     Attribute allowing to store GUID
593 */
594   //==========================================================================
595   interface AttributeUserID : GenericAttribute
596   {
597 /*!
598    Returns the value of this attribute
599 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
600 */
601     string Value();
602 /*!
603    Sets the value of this attribute
604 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
605 */
606     void   SetValue(in string value);
607   };
608
609   //==========================================================================
610 /*! \brief %AttributeTarget iterface
611
612    This attribute stores the list of all %SObjects that refer
613    to this %SObject. This attribute is used for inner purposes of the application.
614    It is also needed for optimization.
615 */
616   //==========================================================================
617
618   interface AttributeTarget : GenericAttribute
619   {
620 /*!
621     Adds a %SObject to the list of %SObjects which refer to this %SObject.
622
623 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
624
625 */
626     void          Add(in SObject anObject);
627 /*!
628     Returns the list of %SObjects which refer to this %SObject.
629 */
630     SALOMEDS::Study::ListOfSObject Get();
631 /*!
632     Deletes a %SObject from the list of %SObjects which refer to this %SObject.
633
634 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
635
636 */
637     void          Remove(in SObject anObject);
638   };
639   //==========================================================================
640   /*! \brief %AttributeTableOfInteger interface
641
642    This attribute allows to store a table of integers (indexing from 1 like in CASCADE)
643     and string titles of this table, of each row, of each column.
644 <BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
645
646 */
647   //==========================================================================
648
649   interface AttributeTableOfInteger : GenericAttribute
650   {
651 /*!
652    This exception is raised when an incorrect index is passed as parameter.
653 */
654     exception IncorrectIndex {};
655 /*!
656    This exception is raised when an incorrect length of the argument is passed as parameter.
657 */
658     exception IncorrectArgumentLength {};
659
660     // titles: for table, for each row, for each column
661 /*!
662    Sets the title of the table.
663 */
664     void SetTitle(in string theTitle);
665 /*!
666   Returns the title of the table.
667 */
668     string GetTitle();
669 /*!
670    Sets the title of a row with a definite index.
671 */
672     void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
673 /*!
674    Sets the titles for all rows of the table.
675 */
676     void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
677 /*!
678    Returns the titles of all rows of the table.
679 */
680     StringSeq GetRowTitles();
681 /*!
682    Sets the title of a column with a definite index.
683 */
684     void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
685 /*!
686    Sets the titles for all columns of the table.
687 */
688     void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
689 /*!
690    Returns the titles of all columns of the table.
691 */
692     StringSeq GetColumnTitles();
693
694     //Rows units
695 /*!
696    Sets the unit of a row with a definite index.
697 */
698     void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
699 /*!
700    Sets the units for all rows of the table.
701 */
702     void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
703 /*!
704    Returns the units of all rows of the table.
705 */
706     StringSeq GetRowUnits();
707
708     // table information
709 /*!
710    Returns the number of rows of the table.
711 */
712     long GetNbRows();
713 /*!
714    Returns the number of columns of the table.
715 */
716     long GetNbColumns();
717
718     // operations with rows
719 /*!
720    Adds a row to the end of the table.
721 */
722     void AddRow(in LongSeq theData) raises(IncorrectArgumentLength);
723 /*!
724    Sets the values of all elements of the row.
725 */
726     void SetRow(in long theRow, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
727 /*!
728    Returns the row of the table.
729 */
730     LongSeq GetRow(in long theRow) raises(IncorrectIndex);
731
732     // operations with columns
733 /*!
734    Adds a column to the end of the table.
735 */
736     void AddColumn(in LongSeq theData) raises(IncorrectArgumentLength);
737 /*!
738    Sets the values of all elements of the column.
739 */
740     void SetColumn(in long theColumn, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
741 /*!
742    Returns the column of the table.
743 */
744     LongSeq GetColumn(in long theColumn) raises(IncorrectIndex);
745
746     // operations with elements
747 /*!
748     Puts a value in the table.
749     \param theRow      The row, where the value will be placed.
750     \param theColumn   The column, where the value will be placed.
751 */
752     void PutValue(in long theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
753 /*!
754     Returns True if there is a value in the table.
755     \param theRow      The row containing the value
756     \param theColumn   The column containing the value
757 */
758     boolean HasValue(in long theRow, in long theColumn);
759 /*!
760     Returns the value from the table.
761     \param theRow      The row containing the value
762     \param theColumn   The column containing the value
763 */
764     long GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
765
766 /*!
767     Sets the max number of colums in the table.
768     \note It'd better to set it before filling the table.
769 */
770     void SetNbColumns(in long theNbColumns);
771
772 /*!
773     Returns the indices of the row where the values are defined.
774 */
775     LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
776     // operations with files
777 /*!
778    Reads a table from a file.
779 */
780     boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
781 /*!
782    Saves a table into a file.
783 */
784     SALOMEDS::TMPFile SaveToFile();
785   };
786
787   //==========================================================================
788 /*! \brief %AttributeTableOfReal interface
789
790    This attribute allows to store a table of reals (indexing from 1 like in CASCADE)
791     and string titles of this table, of each row, of each column.
792 <BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
793
794 */
795   //==========================================================================
796
797   interface AttributeTableOfReal : GenericAttribute
798   {
799 /*!
800    This exception is raised when an incorrect index is passed as parameter.
801 */
802     exception IncorrectIndex {};
803 /*!
804    This exception is raised when an incorrect length of the argument is passed as parameter.
805 */
806     exception IncorrectArgumentLength {};
807
808     // titles: for table, for each row, for each column
809 /*!
810    Sets the title of the table.
811 */
812     void SetTitle(in string theTitle);
813 /*!
814   Returns the title of the table.
815 */
816     string GetTitle();
817 /*!
818    Sets the title of a row with a definite index.
819 */
820     void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
821 /*!
822    Sets the titles for all rows of the table.
823 */
824     void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
825 /*!
826    Returns the titles of all rows of the table.
827 */
828     StringSeq GetRowTitles();
829 /*!
830    Sets the title of a column with a definite index.
831 */
832     void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
833 /*!
834    Sets the titles for all columns of the table.
835 */
836     void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
837 /*!
838    Returns the titles of all columns of the table.
839 */
840     StringSeq GetColumnTitles();
841
842     //Rows units
843 /*!
844    Sets the unit of a row with a definite index.
845 */
846     void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
847 /*!
848    Sets the units for all rows of the table.
849 */
850     void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
851 /*!
852    Returns the units of all rows of the table.
853 */
854     StringSeq GetRowUnits();
855
856     // table information
857 /*!
858    Returns the number of rows of the table.
859 */
860     long GetNbRows();
861 /*!
862    Returns the number of columns of the table.
863 */
864     long GetNbColumns();
865
866     // operations with rows
867 /*!
868    Adds a row to the end of the table.
869 */
870     void AddRow(in DoubleSeq theData) raises(IncorrectArgumentLength);
871 /*!
872    Sets the values of all elements of the row.
873 */
874     void SetRow(in long theRow, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
875 /*!
876    Returns the row of the table.
877 */
878     DoubleSeq GetRow(in long theRow) raises(IncorrectIndex);
879
880     // operations with columns
881 /*!
882    Adds a column to the end of the table.
883 */
884     void AddColumn(in DoubleSeq theData) raises(IncorrectArgumentLength);
885 /*!
886    Sets the values of all elements of the column.
887 */
888     void SetColumn(in long theColumn, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
889 /*!
890    Returns the column of the table.
891 */
892     DoubleSeq GetColumn(in long theColumn) raises(IncorrectIndex);
893
894     // operations with elements
895 /*!
896     Puts a value in the table.
897     \param theRow      The row, where the value will be placed.
898     \param theColumn   The column, where the value will be placed.
899 */
900     void PutValue(in double theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
901 /*!
902     Returns True if there is a value in the table.
903     \param theRow      The row containing the value
904     \param theColumn   The column containing the value
905 */
906     boolean HasValue(in long theRow, in long theColumn);
907 /*!
908     Returns the value from the table.
909     \param theRow      The row containing the value
910     \param theColumn   The column containing the value
911 */
912     double GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
913
914 /*!
915     Sets the max number of colums in the table.
916     \note It'd better to set it before filling the table.
917 */
918     void SetNbColumns(in long theNbColumns);
919
920 /*!
921     Returns the indices of the row where the values are defined.
922 */
923     LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
924     // operations with files
925 /*!
926    Reads a table from a file.
927 */
928     boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
929 /*!
930    Saves a table into a file.
931 */
932     SALOMEDS::TMPFile SaveToFile();
933   };
934
935
936
937   //==========================================================================
938 /*! \brief %AttributeTableOfString interface
939
940    This attribute allows to store a table of strings (indexing from 1 like in CASCADE)
941     and string titles of this table, of each row, of each column.
942 <BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
943
944 */
945   //==========================================================================
946
947   interface AttributeTableOfString : GenericAttribute
948   {
949 /*!
950    This exception is raised when an incorrect index is passed as parameter.
951 */
952     exception IncorrectIndex {};
953 /*!
954    This exception is raised when an incorrect length of the argument is passed as parameter.
955 */
956     exception IncorrectArgumentLength {};
957
958     // titles: for table, for each row, for each column
959 /*!
960    Sets the title of the table.
961 */
962     void SetTitle(in string theTitle);
963 /*!
964   Returns the title of the table.
965 */
966     string GetTitle();
967 /*!
968    Sets the title of a row with a definite index.
969 */
970     void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
971 /*!
972    Sets the titles for all rows of the table.
973 */
974     void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
975 /*!
976    Returns the titles of all rows of the table.
977 */
978     StringSeq GetRowTitles();
979 /*!
980    Sets the title of a column with a definite index.
981 */
982     void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
983 /*!
984    Sets the titles for all columns of the table.
985 */
986     void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
987 /*!
988    Returns the titles of all columns of the table.
989 */
990     StringSeq GetColumnTitles();
991
992     //Rows units
993 /*!
994    Sets the unit of a row with a definite index.
995 */
996     void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
997 /*!
998    Sets the units for all rows of the table.
999 */
1000     void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
1001 /*!
1002    Returns the units of all rows of the table.
1003 */
1004     StringSeq GetRowUnits();
1005
1006     // table information
1007 /*!
1008    Returns the number of rows of the table.
1009 */
1010     long GetNbRows();
1011 /*!
1012    Returns the number of columns of the table.
1013 */
1014     long GetNbColumns();
1015
1016     // operations with rows
1017 /*!
1018    Adds a row to the end of the table.
1019 */
1020     void AddRow(in StringSeq theData) raises(IncorrectArgumentLength);
1021 /*!
1022    Sets the values of all elements of the row.
1023 */
1024     void SetRow(in long theRow, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
1025 /*!
1026    Returns the row of the table.
1027 */
1028     StringSeq GetRow(in long theRow) raises(IncorrectIndex);
1029
1030     // operations with columns
1031 /*!
1032    Adds a column to the end of the table.
1033 */
1034     void AddColumn(in StringSeq theData) raises(IncorrectArgumentLength);
1035 /*!
1036    Sets the values of all elements of the column.
1037 */
1038     void SetColumn(in long theColumn, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
1039 /*!
1040    Returns the column of the table.
1041 */
1042     StringSeq GetColumn(in long theColumn) raises(IncorrectIndex);
1043
1044     // operations with elements
1045 /*!
1046     Puts a value in the table.
1047     \param theRow      The row, where the value will be placed.
1048     \param theColumn   The column, where the value will be placed.
1049 */
1050     void PutValue(in string theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
1051 /*!
1052     Returns True if there is a value in the table.
1053     \param theRow      The row containing the value
1054     \param theColumn   The column containing the value
1055 */
1056     boolean HasValue(in long theRow, in long theColumn);
1057 /*!
1058     Returns the value from the table.
1059     \param theRow      The row containing the value
1060     \param theColumn   The column containing the value
1061 */
1062     string GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
1063
1064 /*!
1065     Sets the max number of colums in the table.
1066     \note It'd better to set it before filling the table.
1067 */
1068     void SetNbColumns(in long theNbColumns);
1069
1070 /*!
1071     Returns the indices of the row where the values are defined.
1072 */
1073     LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
1074     // operations with files
1075 /*!
1076    Reads a table from a file.
1077 */
1078     boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
1079 /*!
1080    Saves a table into a file.
1081 */
1082     SALOMEDS::TMPFile SaveToFile();
1083   };
1084
1085
1086   //==========================================================================
1087 /*! \brief %AttributeStudyProperties interface
1088
1089    This attribute allows to store study properties: user name, creation date, creation
1090    mode, modified flag, locked flag.
1091 <BR><VAR>See also <A href=exemple/Example20.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
1092
1093 */
1094   //==========================================================================
1095
1096   interface AttributeStudyProperties : GenericAttribute
1097   {
1098 /*!
1099    Sets the name of the author of the %Study
1100 */
1101     void SetUserName(in string theName);
1102 /*!
1103      Returns the name of the user of the %Study.
1104     \note <BR>It returns a null string, if user name is not set
1105 */
1106     string GetUserName();
1107 /*!
1108    Sets creation date of the %Study.
1109 */
1110     void SetCreationDate(in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
1111 /*!
1112      Returns creation date of the %Study and True if creation date is set.
1113 */
1114     boolean GetCreationDate(out long theMinute, out long theHour, out long theDay, out long theMonth, out long theYear);
1115 /*!
1116    Sets creation mode of the %Study.
1117    \note <BR>Creation mode must be: "from scratch" or "copy from".
1118 */
1119     void SetCreationMode(in string theMode);
1120 /*!
1121    Returns creation mode: "from scratch", "copy from", or null string
1122    if creation mode is not set
1123 */
1124     string GetCreationMode();
1125 /*!
1126    Sets the number of transactions executed after the last saving of the document.
1127 */
1128     void SetModified(in long theModified);
1129 /*!
1130     Returns True, if the document has been modified and not saved.
1131 */
1132     boolean IsModified();
1133 /*!
1134   Returns the number of transactions executed after the last saving of the document.
1135 */
1136     long GetModified();
1137 /*!
1138     Sets the document locked for modifications if <VAR>theLocked</VAR> is True.
1139 */
1140     void SetLocked(in boolean theLocked);
1141 /*!
1142     Returns True if the document is locked for modifications.
1143 */
1144     boolean IsLocked();
1145 /*!
1146    Appends modification parameters to the modifications list.
1147 */
1148     void SetModification(in string theName, in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
1149 /*!
1150    Returns a list of mosdifiers user names, modification dates.
1151    /note <BR>If <VAR>theWithCreator</VAR> is True, then the output list will also contain the name of the author and the date of creation.
1152 */
1153     void GetModificationsList(out StringSeq theNames, out LongSeq theMinutes, out LongSeq theHours, out LongSeq theDays, out LongSeq theMonths, out LongSeq theYears, in boolean theWithCreator);
1154   };
1155   //==========================================================================
1156 /*! \brief %AttributePythonObject interface
1157
1158     Attribute allowing to store pyton objects as a sequence of chars.
1159 */
1160   //==========================================================================
1161
1162   interface AttributePythonObject : GenericAttribute
1163   {
1164 /*!
1165    Sets in the attribute a Python object converted into a sequence of chars.
1166    \param theSequence    A sequence of chars.
1167    \param IsScript       Defines (if True) whether this sequence of chars is a Python script.
1168 */
1169     void SetObject(in string theSequence, in boolean IsScript);
1170 /*!
1171     Returns a Python object stored in the attribute as a sequence of chars.
1172 */
1173     string GetObject();
1174 /*!
1175     Returns True if the sequence of bytes stored in the attribute corresponds
1176     to a Python script.
1177 */
1178     boolean IsScript();
1179   };
1180 };
1181 #endif