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