
------------------------------------------------------------------
Changes from 0.7.2 to 0.7.3 (2009/09/14) :
------------------------------------------------------------------

o Python kernel (src/XDATA directory):

  1. Bug: Fix an alliances bug which occur with list of
          strings with the value "x" and no other ...
          See test file sequencetest.py.
     Fix: The bug is due to a declaration of x at top
          level of xtypes.py.
          Modified file(s):
            o src/XDATA/xtypes.py
          Test file(s):
            o src/XDATA/tests/sequencetest.py

------------------------------------------------------------------
Changes from 0.7.1 to 0.7.2 (2009/07/07) :
------------------------------------------------------------------

o Python kernel (src/XDATA directory):

  1. Bug: In some very particuliar and no reproductible cases,
          there is an error in getCreationInformations in
          xutilities.py. I seems to comes from a bug in python
          2.4. To have references on that, check "f_lasti"
          on google.
     Fix: Just wrap the item = code.lasti2item[frame.f_lasti]
          into a try except ...
          Modified file(s):
            o src/XDATA/xutilities.py

------------------------------------------------------------------
Changes from 0.7.0 to 0.7.1 (2009/06/30) :
------------------------------------------------------------------

o xdata kernel:

  1. Bug: A old file copy.py is installed with xdata
          which replace the python one. This was done for
          python version <= 2.2.2 but the copy is always
          done due to a wrong test in Makefile.
     Fix: Nobody's got such an old python version so remove
          this copy.py file.
          Removed file(s):
            o src/XDATA/copy.py

------------------------------------------------------------------
Changes from 0.6.4 to 0.7.0 (2009/06/23) :
------------------------------------------------------------------

o xdata kernel:

  1. Bug: The detection of _omnipymodule fails with recent python.
     Fix: Remove this part of Makefile which is obsolete.
          Modified file(s):
            o adm/unix/make_end.am

o Salome interface (src/XDATA2SALOME directory):

  1. Imp: Give the possibility to install the resources
          of a module in any place.
          Modified file(s):
            o adm/unix/make_end.am

  2. Imp: Generate the YACS catalog.
          Modified file(s):
            o src/XDATA2SALOME/xdata2salome.py

o Salome GUI (src/XDATAGUI directory):

  1. Imp: When creating an object which requires an instance
          of A, if A is abstract, by-pass the "A subclasses ..."
          menu in "New" one.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

o templates:

  1. Imp: Modify the TECHOBJ module to check the "New" module.
          Modified file(s):
            o templates/TECHOBJ_ROOT/src/hydraulicmoduletest.py
            o templates/TECHOBJ_ROOT/src/menuxtypespurecorbatest.py
            o templates/TECHOBJ_ROOT/src/menuxtypeswrappercorbatest.py
            o templates/TECHOBJ_ROOT/src/shape.py
            o templates/TECHOBJ_ROOT/src/shape2D.py

  2. Bug: Fix a problem at make check in TECHOBJ

------------------------------------------------------------------
Changes from 0.6.3 to 0.6.4 (2009/03/20) :
------------------------------------------------------------------

o xdata kernel:

  1. Bug: The docstring is lost in methods of XObject instances.
     Fix: It is due to the interception in xinterceptor.py.
          Add a ref. to __doc__ in constructor.
          Modified file(s):
            o src/XDATA/xinterceptor.py
          Test file(s):
            o src/XDATA/tests/xobjectanddoctest.py

o Salome interface (src/XDATA2SALOME directory):

  1. Bug: "from xutilitites import verbose" was writen
          in one generated file by xdata2salome ...
     Fix: Replace by "from xutilities import verbose"
          Modified file(s):
            o src/XDATA2SALOME/xdata2salome.py

o Salome GUI (src/XDATAGUI directory):

  1. Imp: When creating an object which requires an instance
          of another object, add a menu "Existing ..." to refer
          the existing instances in the current document.
          Modified file(s):
            o src/XDATA/xtree.py
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xqt.py

  2. Imp: Implement the tooltips for qt4 in menu bar and
          in object editor (thanks to C. Caremoli)
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py
            o src/XDATAGUI/xdatapropertyeditor.py

  3. Bug: When creating an new object and editing an
          attribute, the displaying of the popup menu
          in the editor causes the application to
          crash with a segmentation fault.
     Fix: It seems to be a bug in the destruction
          of the object in qt. I've replace the ref.
          in menu by a ref. in the action and the
          problem disappeared.
          Modified file(s):
            o src/XDATAGUI/xqt.py

------------------------------------------------------------------
Changes from 0.6.2 to 0.6.3 (2008/11/07) :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Re-write build_configure files to clean them
          and to fix the "source" bug on ubuntu :)
          Modified file(s):
            o build_configure
            o templates/build_configure
            o templates/MEDFIELDCREATOR_SRC/build_configure
            o templates/TECHOBJ_ROOT/build_configure

o Salome interface (src/XDATA2SALOME directory):

  1. Imp: Now Salome5 can display empty menus, it is not
          necessary to put an action in the menu in xml files
          Modified file(s):
            o src/XDATA2SALOME/xdata2salome.py

o Salome GUI (src/XDATAGUI directory):

  1. Imp: Portability qt4 of edition views
          Modified file(s):
            o src/XDATAGUI/xdatapropertyeditor.py
            o src/XDATAGUI/xqt.py

  2. Imp: Now that Salome5 can give the qt action 
          corresponding to the item_id declared in
          module xml file, it is not necessary to
          use the name of the menu.
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py
            o src/XDATAGUI/xqt.py
            o src/XDATAGUI/xsalomegui.py

  3. Imp: Now that the bug on SalomePyQt.Tools
          and SalomePyQt.Preferences has been fixed
          in Salome5, it is not necessary to catch
          that in the menubar.
          Modified file(s):
            o src/XDATAGUI/xsalomegui.py

o templates:

  1. Imp: Portability of the MEDFIELDCREATOR template
          on the recent API of MEDMEM ...
          Modified file(s):
            o MEDFIELDCREATOR_SRC/src/medfieldcreator.py

  2. Imp: use pointe.med of MEDMEM module instead of
          fra.med of KERNEL which no longer exists.
          Modified file(s):
            o MEDFIELDCREATOR_SRC/src/MEDFIELDCREATORpurecorbatest.py
            o MEDFIELDCREATOR_SRC/src/MEDFIELDCREATORpurepythontest.py
            o MEDFIELDCREATOR_SRC/src/MEDFIELDCREATORwrappingcorbatest.py

------------------------------------------------------------------
Changes from 0.6.1 to 0.6.2 (2008/08/07) :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Improve the check pyqt to take into
          account pyqt4 (thanks Vadim !)
          Modified file(s):
            o adm/unix/config_files/check_pyqt.m4

o Salome GUI (src/XDATAGUI directory):

  1. Bug: Various bugs with salome 3.2.x with
          the disconnection of slots which have
          never been connected (thanks Vadim !)
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py
            o src/XDATAGUI/xsalomegui.py

  2. Imp: Some improvements for the PyQt4
          wrapping (thanks Vadim !)
          Modified file(s):
            o src/XDATAGUI/xqt.py

------------------------------------------------------------------
Changes from 0.6.0 to 0.6.1 (2008/08/06) :
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: For a list of string, the value
          '"[A+]", "[B-]"' must be accepted
          if entered in gui and transformed
          into ["[A+]", "[B-]"].
          Modified file(s):
            o src/XDATA/xtypes.py

o Salome GUI (src/XDATAGUI directory):

  1. Imp: Customize the study popup after the
          call to getPopupItems.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

  2. Imp: Customize what is written in the
          "Type" column in xdatagui.
          Modified file(s):
            o src/XDATAGUI/xdataobjectexplorer.py

  3. Imp: First implementation of the
          edition views.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xdatapropertyeditor.py
            o templates/TECHOBJ_ROOT/src/geometry.py

------------------------------------------------------------------
Changes from 0.5.53 to 0.6.0 (2008/06/20) :
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: Re-define the name which appear in the menu bar
          for a class. If a class has an attribute
          __xdata__name__, this name will appear in the
          menu bar of the gui's (xdatagui and salome)
          Modified file(s):
            o src/XDATA/xitem.py
          Remark : This point has been remove in the
                   TODO file.

  2. Imp: Portability qt4. Use "import xqt" instead of "qt"
          Modified file(s):
            o src/XDATA/xaccessor.py
            o src/XDATA/xmetaclass.py

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: When an attribute is a list of non xdata objects,
          for instance a list of shapes, the corba interface
          was not correct.
     Fix: Wrap the objects of the list in XString objects
          and do recursion.
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py
            o src/XDATA2SALOME/xsalome.py
          Test file(s):
            o src/XDATA2SALOME/tests/SAB_geom.py
            o src/XDATA2SALOME/tests/SAB_geomwrappingcorbatest.py

  2. Imp: Portability Salome5 (qt4). When a menu is empty, it
          is not displayed in the salome menubar. Waiting the
          correction, add an item to be remove after.
          Modified file(s):
            o src/XDATA2SALOME/xdata2salome.py

o Salome GUI (src/XDATAGUI directory):

  1. Imp: See point 1. of python kernel (src/XDATA  directory).
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py

  2. Imp: Portability qt4 and salome5.0.0 but compatibility
          qt3, salome3.X and salome4.X
          Modified file(s):
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xdataobjectexplorer.py
            o src/XDATAGUI/xdatapropertyeditor.py
            o src/XDATAGUI/xdataqlistview.py
            o src/XDATAGUI/xmainmenubar.py
            o src/XDATAGUI/xpythongui.py
            o src/XDATAGUI/xqt.py
            o src/XDATAGUI/xsalomegui.py

------------------------------------------------------------------
Changes from 0.5.52 to 0.5.53 (2008/01/25) :
------------------------------------------------------------------

o Salome GUI (src/XDATAGUI directory):

  1. Imp: When the XDATA_PUBLISH_IN_STUDY_WITHOUT_CONTENT variable
          is set to 1 in environnement, the main objects are
          published in Salome without their content. A popup
          "Publish content" or "Unpublish content" is available.
          CAUTION : The XDATA_PUBLISH_IN_STUDY_WITHOUT_CONTENT
          variable can be set at the beginning of a script but
          in that case, use os.environ and not os.putenv :
          # --
          from os import environ
          environ['XDATA_PUBLISH_IN_STUDY_WITHOUT_CONTENT'] = '1'
          # --
          Modified file(s):
            o src/XDATAGUI/xmainwindow.py

------------------------------------------------------------------
Changes from 0.5.51 to 0.5.52 (2008/01/16) :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Define SALOME_KERNEL_VERSION and
          SALOME_KERNEL_MAJOR_VERSION in check_salome_kernel.m4
          Modified file(s):
            o adm/unix/config_files/check_salome_kernel.m4

  2. Imp: Portability Salome4. The idl files must be compiled
          with the standard python back-end and not the one
          (pythonbe) which is still in salome kernel in 
          $(KERNEL_ROOT_DIR)/salome_adm/unix.
          Modified file(s):
            o adm/unix/make_end.am

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: In Salome4, the option '--standalone=pyContainer']
          seems to be buggy in batch.
     Fix: Remove this part which was unused anyway.
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

  2. Imp: Portability python2.5. The message for unsubscriptable
          object type errors has changed.
          Modified file(s):
            o src/XDATA2SALOME/tests/SAB_geomwrappingcorbatest.py

  3. Imp: Remove the test.hdf file at the end of a test.
          Modified file(s):
            o tests/studyreentrancewrappercorbatest.py

  4. Bug: Bug when a boolean go though corba bus
     Fix: Add a detection in corba2python
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py
          Test file(s):
            o src/XDATA2SALOME/tests/AL_parameters.py
            o src/XDATA2SALOME/tests/AL_parameterstest.py
            o src/XDATA2SALOME/tests/AL_xdata.py

------------------------------------------------------------------
Changes from 0.5.50 to 0.5.51 (2007/07/16) :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: The configure generated by the build_configure in templates
          must be standalone i.e. generated somewhere and used
          elsewhere ...
          Modified file(s):
            o templates/build_configure
            o adm/unix/config_files/check_xdata.m4

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: Regression in 0.5.50 when a xtype is a XMulTypes
          with a XSalomeReference and a XNone. The regression
          occured when fixing the item number 4 in Salom
          interface part of the 0.5.50 release notes
     Fix: Check this case in corba2python.
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py
          Test files(s):
            o tests/SAB_geomwrappingcorbatest.py

------------------------------------------------------------------
Changes from 0.5.49 to 0.5.50 (2007/06/11) :
------------------------------------------------------------------

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: When a xdata module is activated, then a script is
          imported, then an object is created, then the script
          is re-imported and then an object is created, its name
          in study is sometimes not correct :)
     Fix: The code of a string sequence must be dis-assembled
          each times.
          Modified file(s):
            o src/XDATA/xutilities.py

  2. Bug: When a tuple is created on client then goes though
          the corba bus, it arrives as a list. I create a
          bug when the original tuple was a key of a
          dictionnary !
     Fix: Implement a newXTupleXObjectValues method for
          xdata component to distinguish between tuples
          and lists.
          Modified file(s):
            o src/XDATA2SALOME/XDATA_Component.idl
            o src/XDATA2SALOME/XDATA_i.py
            o src/XDATA2SALOME/xsalome.py
          Test files(s):
            o tests/DATATEST1tuplemenu.py
            o tests/DATATEST1tuplemenuwrappercorbatest.py

  3. Bug: With salome 3.2.6, the are undefined references
          in the study when an object containing a list
          or a dict is published twice.
     Fix: Comes from a bug in FindObjectIOR in salome.
          Use my findObjectIOR and when the object is
          found, check its ior is correct for salome
          3.2.6
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py

  4. Bug: When a non-xdata corba object (for instance
          a geom shape) is contained in a list or a
          dictionnary, the passage trough corba bus
          fails.
     Fix: Indeed, the idl is restrictive to XObject's
          When it occurs, send the object by its
          ior in a XString and dispatch it at arrival.
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py
          Test files(s):
            o tests/SAB_geom.py
            o tests/SAB_geomwrappingcorbatest.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: When a dialog box creation is called via menubar
          or a popup is activated in study, the selected
          objects are automatically re-published in study.
          In general case, it is useful but sometimes, with
          big objects, it can become too slow ... So now, the
          list of objects to re-published is asked to the
          developper via the two functions :
          - popupActivatedGetModifiedSelection(parent, target, sel)
          - createDialogGetModifiedSelection(parent target, sel)
          If those functions return an empty list, the re-publishing
          in study is desactivated.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xmainmenubar.py

  2. Imp: When a menu is activated in menu bar, its content is
          computed by xdata, then the function
          customXDataItemsPopupMenu(parent, popup_menu)
          is called if defined in the script containing the
          __xdata__items__ list. It allows to dynamically
          desactivate items and many other things.
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py

  3. Imp: Improve the way than exception are displayed in gui.
          The dialog information contains now a "Details" button
          to show the full traceback even when the exception has
          been raised on server side. Use the displayException
          facility when calling popupactivated.
          Modified file(s):
            o src/XDATAGUI/xmainwindow.py
            o src/XDATAGUI/xdatagui.py

  4. Bug: Each time the application is focused, the menubar is
          connected to highlighted.
     Fix: Do a try: disconnect except RuntimeError: pass
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py

------------------------------------------------------------------
Changes from 0.5.48 to 0.5.49 (2007/05/11) :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Adding a COPYING file containing the LGPL license

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Adapt the XSalomeSession to the new arguments
          of runSalome (>= 3.2.6)
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

  2. Bug: With XMethods with more than one out_xattribute,
          the corba2python fails
     Fix: Add the case of tuple just after the list case
          in corba2python function
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

------------------------------------------------------------------
Changes from 0.5.47 to 0.5.48 (2007/03/28) :
------------------------------------------------------------------

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: Multiple bugs when using save/restore with the
          new way to get the SComponent (since 0.5.46).
     Fix: The getSComponent implementation has not been
          tought taking account the save/restore (sorry !).
          The implementation must only return
          study.FindComponent(self._get_interfaceName())
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py

  2. Imp: Make the publishInStudy re-entrant at least
          for simple objects.
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py
          Test file(s):
            o tests/studymenu.py
            o tests/studyreentrancewrappercorbatest.py

------------------------------------------------------------------
Changes from 0.5.46 to 0.5.47 (2007/03/21) :
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: Impossible to use "out_xattributes" of XMethod.
     Fix: Check that "out_xtype" is None and "out_xattributes"
          is None before testing the result is None.
          Modified file(s):
            o src/XDATA/xinterceptor.py

------------------------------------------------------------------
Changes from 0.5.45 to 0.5.46 (2007/03/21) :
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: Add a customPythonScript facility.
          The customPythonScript method is run
          for each "root" object when the user apply
          File --> Export. It allows to modify the
          python script which will be written
          on disk.
          Modified file(s):
            o src/XDATA/xobject.py
            o src/XDATA/xtree.py

  2. Bug: When a object contain a ref. to an item of a
          list contained in another object, the exported
          script is wrong, it contains attr.[0] instead
          of attr[0].
     Fix: Investigate this case in the XTree object.
          Modified file(s):
            o src/XDATA/xtree.py

  3. Bug: Very strange bug !!! Sometimes when using xdata
          with salome and when entering the message facility,
          the verbose object is not a function but None.
     Fix: I abandonned to understand why, so I replace
          level = verbose() by a try: ... except: ...
          Modified file(s):
            o src/XDATA/xutilities.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Define and implement a PublishInStudyWithoutContent
          interface for the XDATA component. It allows to push
          an object in a study without a recursion on its
          content.
          Modified file(s):
            o src/XDATA2SALOME/XDATA_Component.idl
            o src/XDATA2SALOME/XDATA_i.py

  2. Imp: Define and implement a isContentPublished interface
          to XObject corba object.
          Modified file(s):
            o src/XDATA2SALOME/XDATA_Description.idl
            o src/XDATA2SALOME/XDATA_i.py

  3. Imp: Improve the way than list and dictionnaries are
          published in study (go from a N*N algo. to a
          N one)
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py

  4. Imp: When an object is a ref. to another one in
          salome study, the attribute name is now the name
          of the target (works only with salome >= 3.2.6)
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: Implement a "Publish/Unpublish content" popup in salome
          study.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

  2. Imp: When an object is renamed in salome, we must
          taking account than it can be referenced by
          some other objects and we have to change the
          attribute name of those objects.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

------------------------------------------------------------------
Changes from 0.5.44 to 0.5.45 (2007/02/12) :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: The compilation and installation stages must be less verbose.
          Modified file(s):
            o adm/unix/make_end.am
            o src/XDATA2SALOME/xdata2salome.py
               
o Python kernel (src/XDATA  directory):

  1. Imp: The value returned by a xmethod without out_xtype
          must be None. It was not checked before !
          The reason is that, in salome, the errors are
          incomprehensive if the method does not return None.
          CAUTION : Please, read carrefully your code
          to see if you are in that case before sending
          a bug. 
          Modified file(s):
            o src/XDATA/xinterceptor.py

  2. Bug: Fix a copy bug about xmethods with default values
     Fix: Replace val = copy(val) by try: ... except: ...
          Modified file(s):
            o src/XDATA/xinterceptor.py

  3. Bug: XInt()(True) must return 1 and XInt(False) must
          return 0 ...
     Fix: It was not the case 'cause bool class inherit
          of int class. Code it directly in XInt.__call__
            o src/XDATA/xtypes.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Improve the messages when using supervision modules.
          Create an implementation for superv with try: ...
          except: print exception ; raise and so on ...
          Modified file(s):
            o src/XDATA/xinterceptor.py
            o src/XDATA2SALOME/xdata2salome.py

  2. Bug: When a salome session is launched, then batchmode_salome
          is imported, then xdata is imported ... bug qt !
     Fix: It comes from import_hook which is defined in
          batchmode_salome. So I have to use IN_SALOME_GUI to
          know if I am in IAPP ...
          Modified file(s):
            o src/XDATA/xdata.py

  3. Bug: The dictionnaries with float values keys were
          completely buggy 'cause not tested ...
     Fix: Add a complete test case and fix the bugs
          Modified file(s):
            o src/XDATA/XDATA_i.py
            o src/XDATA/xsalome.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: A popup in study can now contain separator.
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

  2. Bug: Problems at initialization when using 
          runSalome with --test options
     Fix: Check the the main window and the menu bar
          are well defined before doing something
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py
            o src/XDATAGUI/xmainwindow.py
            o src/XDATAGUI/xsalomegui.py

  3. Bug: Each time the mouse enter the application
          in salome 3, a new instance of selection object
          is created and connected to selectionChanged.
          It can render the execution very slow
     Fix: Disconnect the selection each tile and
          when user de-activate a xdata module.
          Modified file(s):
            o src/XDATAGUI/xsalomegui.py

------------------------------------------------------------------
Changes from 0.5.43 to 0.5.44 (2007/01/24) :
------------------------------------------------------------------

o xdata kernel:

  1. Bug: In the documentation, XFilename was used instead
          of XFileName.
     Fix: Modify xdata.tex for the doc. to be correct
          Modified file(s):
            o doc/xdata.tex
               
o Python kernel (src/XDATA  directory):

  1. Imp: First implementation of the '__xabstract__' keyword
          to define a class as abstract i.e. non instanciable
          (it is my definition).
          Modified file(s):
            o src/XDATA/xmetaclass.py
            o src/XDATA/xobject.py

  2. Imp: Improve the way the exceptions are catched in user code.
          Using try: ... finally: ... instead of try: ... except: ...
          Modified file(s):
            o src/XDATA/xaccessor.py
            o src/XDATA/xinterceptor.py

  3. Imp: Add a verbose_level_min to message utilities
          Modified file(s):
            o src/XDATA/xutilities.py

  4. Bug: Impossible to pass a XSalomeReference or None in a
          xtype 'cause the generated idl is wrong
     Fix: Improve XMulTypes.getIdlType in that case
          Modified file(s):
            o src/XDATA/xtype.py

  5. Bug: The test file xobjectanddestructortest.py fails
          with python 2.2.x ...
     Fix: It is complicated ... For the moment, comment it
          in that case. With python >= 2.3, it is ok !
          Modified file(s):
            o src/XDATA/tests/xobjectanddestructortest.py

  6. Bug: When pickle save and restore an object with python 2.2.x,
          the attribute __xcontext__ is not saved for a mysterious
          reason.
     Fix: try: ... except AttributeError: ... when access to it
          Modified file(s):
            o src/XDATA/xinterceptor.py

  7. Bug: Problem with pickle and __xconnect__ with python 2.2.x
          when the target contain a ref. to self !!??#?
     Fix: Replace self by "self" in this particuliar case.
          Modified file(s):
            o src/XDATA/xobject.py

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: When an object goes from something to None, we have
          to remove the IOR in salome object browser
     Fix: Add "IOR" to the list of attributes to remove
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py

  2. Imp: Write the component-impltype in the catalog for
          the supervision
          Modified file(s):
            o src/XDATA2SALOME/xdata2salome.py

  3. Imp: Use the verbose_level_min
          Modified file(s):
            o src/XDATA2SALOME/xdata2salome.py

  4. Imp: Use setSettingsForModule instead of setSettings
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

  5. Imp: Improve the XSalomeSession class to use
          it outside the scope of xdata
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

  6. Bug: When the same class is used in different
          module, it can create problem if the corba
          implementation is registered
     Fix: Not register for the class
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

  7. Imp: Implement the setComponentFromGUI when using
          salome and activating a particuliar module.
          Modified file(s):
            o src/XDATA2SALOME/xsalome.py

  8. Imp: Improve the way that exception raises on server
          part goes to client side on corba bus
          Modified file(s):
            o src/XDATA2SALOME/XDATA_i.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: A popup can now contain separator (thanks to A.G.)
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

  2. Imp: show the result of createDialog only if
          hasattr(result, "show") otherwise it can lead
          to attribute errors
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

  3. Imp: add an "Apply" button like in the geom
          dialog boxes.
          Modified file(s):
            o src/XDATAGUI/xdatapropertyeditor.py
           
  4. Imp: Use the verbose_level_min
          Modified file(s):
            o src/XDATAGUI/xmainmenubar.py
            o src/XDATAGUI/xmainwindow.py
            o src/XDATAGUI/xsalomegui.py

  5. Imp: Use the '__xabstract__' keyword to decide
          if a class appear in the "New --> ..."
          popup menus
          Modified file(s):
            o src/XDATAGUI/xdatagui.py

------------------------------------------------------------------
Changes from 0.5.42 to 0.5.43 (2006/11/28) :
------------------------------------------------------------------

o xdata kernel:

  1. Bug: The build_configure given with xdata templates
          generate a configure file which is not standalone
          (the XDATADIR is written in it)
     Fix: Recompute the XDATADIR in the configure file.
          Modified files:
            o templates/MEDFIELDCREATOR_SRC/build_configure
            o templates/TECHOBJ_ROOT/build_configure
     CAUTION: If you are using an application based on a xdata
              template, you should copy the new
              build_configure of templates/TECHOBJ_ROOT.
               
  2. Bug: When the idl compilation fails, the make procedure
          continue. This leads to uncomprehensive errors.
     Fix: Replace "$cmd" by "eval $$cmd || exit 1" for the
          idl compilation
          Modified file:
            o adm/unix/make_end.am

o Python kernel (src/XDATA  directory):

  1. Imp: Add a "out_xattributes" to XMethod
          Modified file:
            o src/XDATA/xmethod.py
            o src/XDATA/xinterceptor.py

  2. Imp: Improve the XSolver class
          Modified file:
            o src/XDATA/xsolver.py

  3. Imp: Add a 'sort_in_browser' attribute to XDict.
          The default value is 1, i.e. the dictionnaries
          are sorted in the browser
            o src/XDATA/xtypes.py
            o src/XDATA/xtree.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Implement the new specification of XSolver
          Modified files:
            o src/XDATA2SALOME/XDATA_Description.idl
            o src/XDATA2SALOME/XDATA_i.py

  2. Imp: Implement the 'sort_in_browser' attribute for XDict.
          Modified file:
            o src/XDATA2SALOME/XDATA_i.py

  3. Imp: Write "%s instance"%(cls.__name__) for the XObject
          instances in the Value field of salome study
          Modified file:
            o src/XDATA2SALOME/XDATA_i.py

  4. Imp: Implement the catch of exceptions when getting
          attribute trough corba
          Modified file:
            o src/XDATA2SALOME/XDATA_i.py

  5. Imp: Implement the "out_xattributes" for XMethod.
          Generate the supervision port taking account
          the "out_xattributes" value.
          Modified file:
            o src/XDATA2SALOME/XDATA_i.py
            o src/XDATA2SALOME/xdata2salome.py

  6. Imp: In XSalomeSession class, use the searchFreePort tool
          of salome if defined.
          Modified file:
            o src/XDATA2SALOME/xsalome.py

o Graphical interface (src/XDATAGUI directory):

  1. Bug: A xobject contained in a read-only xattribute
          is editable. Same problem with "Move"
     Fix: Begin the test by the object itself.
          Modified file:
            o src/XDATAGUI/xdatagui.py

  2. Imp: Simplify the separators in popups before
          displaying it (thanks to Vadim).
          Modified file:
            o src/XDATAGUI/xdataobjectexplorer.py

  3. Imp: Remove the "[", "]" and "['", "']" around
          list and dict items in xdatagui browser
          Modified file:
            o src/XDATAGUI/xdataobjectexplorer.py

  4. Imp: Implement the selectedXTrees method for
          the main window.
          Modified file:
            o src/XDATAGUI/xmainwindow.py

  5. Bug: Some unicode errors on scientific linux 4.3
     Fix: Replace str(fn) by fn.ascii()
          Modified file:
            o src/XDATAGUI/xsalomegui.py

  6. Imp: Improvement XSolverDialog class.
          Modified file:
            o src/XDATAGUI/xsolvergui.py

------------------------------------------------------------------
Changes from 0.5.41 to 0.5.42 :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Install the release notes with the documentation.
          Modified file:
            o Makefile.am

  2. Bug: getTooltip --> getToolTip in documentation
          Modified file:
            o doc/xdata.tex

o Graphical interface (src/XDATAGUI directory):

  1. Bug: Exception raised on __init__ok__ attribute
          after a save / restore.
     Fix: Check that the selected node is a XObject
          before checking the __init__ok__ attribute.
          Modified file:
            o src/XDATAGUI/xsalomegui.py

  2. Imp: Implementation of selectedNodes in the
          main window class. A call to
          getMainWindow().selectedNodes() return
          the current selected nodes.
          Modified file:
            o src/XDATAGUI/xmainwindow.py

  3. Imp: Update the selected nodes in the object
          browser after a call to createDialog.
          Modified file:
            o src/XDATAGUI/xmainmenubar.py

  4. Imp: List the options of xdatagui when a bad
          command line option is send.
          Modified file:
            o src/XDATAGUI/xdatagui.py

  5. Imp: Create a xqt.py file (not used for the moment)
          to initiate the PyQt4 portability.
          New file:
            o src/XDATAGUI/xqt.py

------------------------------------------------------------------
Changes from 0.5.40 to 0.5.41 :
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Update the documentation ... Add the XTypes which
          was not documented, add a chapter on gui features,
          correct the chapters on salome, remove all the
          images ... anyway it is quite impossible to keep
          the images up to date !
          Modified files:
            o doc/xdata.tex
            o doc/Makefile.am

o Graphical interface (src/XDATAGUI directory):

  1. Imp: CAUTION : the api of getPopupItems for non xdata
          objects has been modified (The api of XObject
          getPopupItems class method remains the same :
          getPopupItems(cls, parent, selection) ). For non
          xdata objects, it was getPopupItems(selection),
          it is now : getPopupItems(parent, selection) to
          be more compliant with the XObject one.
          Modified file:
            o src/XDATAGUI/xdatagui.py

  1. Bug: Objects are not correctly updated in study after
          a save / restore.
     Fix: After restore of an object, the __init__ok__ was
          not setted in IAPP so we have to add it when an
          object is selected in salome study.
          Modified file:
            o src/XDATAGUI/xsalomegui.py

  2. Bug: In salome3, when an object has to be updated in
          study, this operation is done a large number of
          times (which increase with the number of times
          the mouse enter the application).
     Fix: The reason is that each time the mouse enter the
          application, the same qt signal is connected.
          Indeed, it is the easiest way to treat the
          multi-study feature. So we have to disconnect
          the signal before connecting it to be sure that
          it will be called only once.
          Modified file:
            o src/XDATAGUI/xmainwindow.py

------------------------------------------------------------------
Changes from 0.5.39 to 0.5.40 (2006/09/25):
------------------------------------------------------------------

o xdata kernel:

  1. Imp: Add a ReleaseNotes file which contains
          all the release notes since the 0.0.0
          version !

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Implement a correct binding of the
          exceptions raised on factory server
          py to have human comprehensive errors.
          Modified files:
            o src/XDATA/xaccessor.py
            o src/XDATA/xinterceptor.py
            o src/XDATA2SALOME/XDATA_Description.idl
            o src/XDATA2SALOME/XDATA_i.py
            o src/XDATA2SALOME/xdata2salome.py
            o src/XDATA2SALOME/xsalome.py
          Test files:
            o src/XDATA2SALOME/tests/EXCEPTION_xdata.py
            o src/XDATA2SALOME/tests/exceptionmenu.py
            o src/XDATA2SALOME/tests/exceptionwrappercorbatest.py

------------------------------------------------------------------
Changes from 0.5.38 to 0.5.39 (2006/09/21):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: First implementation of the new XBoolean xtype.
          The XBoolean.__call__ method return False or
          True. If called with "True", return True, if
          called with "False", return False. In all other
          cases, return : not not value.
          Modified files:
            o src/XDATA/xdata.py
            o src/XDATA/xtypes.py
            o src/XDATA/xaccessor.py
            o src/XDATA/xinterceptor.py
          Test file:
            o src/XDATA/tests/xbooleantest.py

  2. Bug: xdata compilation fails when pyqt is not
          (or badly) installed.
     Fix: try: import qt except: ...
          Modified files:
            o src/XDATA/xaccessor.py
            o src/XDATA/xmetaclass.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Corba binding for the XBoolean values
          Modified files:
            o src/XDATA2SALOME/XDATA_i.py
            o src/XDATA2SALOME/xsalome.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: The command line arguments of xdatagui tool
          has been improved :
          . Qt command line arguments are now taking
            into account. You can define -style,
            -geometry, ... A full list of options is available at :
            http://doc.trolltech.com/3.3/qapplication.html#QApplication
          . The --with-splitter=yes/no option has been added.
            The default behaviour is yes. When selecting no,
            the splitter in main window is removed, so the
            main window show only the object editor.
          . The --with-menus and --without-menus options have
            been added. --with-menus option is useful to indicate
            the menus that you want show (for instance
            --with-menu=File,Edit,Preference).
            --without-menus option is useful to indicate the menus
            that you don't want (for instance :
            --without-menus=View,Modules,Tools,Window)
          You can test with the following :
          xdatagui -style platinum -geometry 500x600 --with-splitter=no --without-menus=View,Modules,Tools,Window --modules=TOTO

------------------------------------------------------------------
Changes from 0.5.37 to 0.5.38 (2006/07/24):
------------------------------------------------------------------

o XDATA kernel:

  1. Write an abstract in the documentation
     Modified file:
       o doc/xdata.tex


o Python kernel (src/XDATA  directory):

  1. Bug: Impossible to use XSalomeReference for med object.
     Fix: The verification in xtypes.py is too severe.
          It raises if trying to use that instead of
          libMedMemClient.
          Modified files:
            o src/XDATA/xtypes.py


o Salom interface (src/XDATA2SALOME directory):

  No modification


o Graphical interface (src/XDATAGUI directory):

  1. Bug: Bug at Rename after Save/Restore. The
          IAPP part is not saved at save action
          so the __instance__name__ attribute
          need to be re-construct if necessary.
          Modified files:
            o src/XDATAGUI/xsalomegui.py

  2. Imp: Catch the Rename action in GUI. Do do that,
          just implement a renameFromGUI(self, initial, final)
          class method in your class
          Modified files:
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xdatapropertyeditor.py

  3. Imp: The getDialogInitialValue is now called
          with the dialog box at third argument.
          The complete signature is now :
          getDialogInitialValue(cls, xattribute, values, dialog)
          Modified files:
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xdatapropertyeditor.py

------------------------------------------------------------------
Changes from 0.5.36 to 0.5.37 (2006/07/12):
------------------------------------------------------------------

o XDATA kernel:

  1. Adding a TODO file

o Python kernel (src/XDATA  directory):

  1. Bug: XFloat instances accept string which correspond
          to builtin keyword (for instance "file", "id" and
          so on)
     Fix: After going to eval, check if the result is a float
          Modified file:
            o src/XDATA/xtypes.py
          Test file:
            o src/XDATA/tests/xtypesandbuiltintest.py

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: When saving / restore a study with ref.
          to other component objects (for instance
          a geometrical shape), the referenced
          object is not correctly reloaded
     Fix: Improve the Load and Save part of the
          xdata generic component (Thanks to
          Vadim)
          Modified files:
           o src/XDATA2SALOME/XDATA_i.py
           o src/XDATA2SALOME/xmedpersistence.py

  2. Bug: The XSolver class was completely broken
     Fix: Improve the idl, xdata2salome and so on
          to taking account that user classes can
          inherit of XSolver.
          Modified files:
           o src/XDATA/xsolver.py
           o src/XDATA2SALOME/XDATA_Description.idl
           o src/XDATA2SALOME/XDATA_i.py
           o src/XDATA2SALOME/xdata2salome.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: Improve the list editor for xtype where
          len_multiple > 1
          Modified files:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdatapropertyeditor.py

  2. Bug: The warning dialog does not correctly
          appear for a direct xattribute access
     Fix: Strange comportment of getMainWindow
          import
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

  3. Bug: The tooltip facility does not work when
          the target is a string.
     Fix: python issubclass(x, A) fails when x is
          not a class. So, use myissubclass defined
          in xutilities.py
          Modified files:
           o src/XDATA/xutilities.py
           o src/XDATAGUI/xmainmenubar.py

  4. Bug: Strange behaviour of "cls == QHBox"
          in particuliar case.
     Fix: Use isinstance(popup, QHBox) and hope
          it works in all cases !
          Modified file:
           o src/XDATAGUI/xsalomegui.py

  5. Imp: Improve the XSolver dialog box
          Modified file:
           o src/XDATAGUI/xsolvergui.py

  6. Bug: When an object is modified in Salome,
          the number of sub-object can have
          been modified, so it necessary to
          remove the not up-to-date sub-objects
     Fix: Check that the sub-objects correspond
          to the list of the valid xattributes.
          Modified files:
           o src/XDATA2SALOME/XDATA_i.py

------------------------------------------------------------------
Changes from 0.5.35 to 0.5.36 (2006/06/23):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: Add a XSolver class. The developper
          has only to implement a run method
          and a getRunStateNumber method
          useful for gui
          Added file:
           o src/XDATA/xsolver.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: Add the possibility to have popup menu
          on XGUIQComboBox (thanks andr)
          Modified file:
           o src/XDATAGUI/xdatagui.py

  2. Imp: First implementation of a dialog box
          for XSolver object.
          Added file:
           o src/XDATAGUI/xsolvergui.py

------------------------------------------------------------------
Changes from 0.5.34 to 0.5.35 (2006/06/19):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  1. Bug: See message above
     Fix: The temporary value x was used into
          two imbricated loop. It was causing
          the error. So, move x to xx for the
          second loop.
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

  2. Imp: Impossible to import more than one script
          at same time
          Modified files:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xpythongui.py
           o src/XDATAGUI/xsalomegui.py

------------------------------------------------------------------
Changes from 0.5.33 to 0.5.34 (2006/06/15):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  1. Imp: Give the possibility to give a default value
          for any xattribute in the creation dialog box.
          To do that, you have to implement a
          getDialogInitialValue classmethod in your class.
          This class method must return a tuple
          has_default_value, value.
          Example :

class AAA(XObject):

    __init__xattributes__ = [
        XAttribute("name",xtype=XString())
        ]

    def getDialogInitialValue(cls, xattribute, values):
        if xattribute.name == "name":
            return 1, values["instance_name"]
        return super(AAA, cls).getDialogInitialValue(xattribute, values)

    getDialogInitialValue = classmethod(getDialogInitialValue)

    pass

          In this example, the "name" attribute has no default
          value but is initialized with the value of "instance_name"
          in the dialog box. Cool !!
          Modified files:
            o src/XDATAGUI/xdatagui.py
            o src/XDATAGUI/xdatapropertyeditor.py

  2. Bug: The value for "name" xattribute for xnamedobject class
          was None. It is more correct to initialize it with the
          value of instance_name.
          Modified file:
            o src/XDATAGUI/xdatapropertyeditor.py

  3. Bug: There is no "Preferences" menu in Salome3. So when
          a developper have use it in Salome2, the "Preferences"
          menu is present but not usable.
     Fix: Re-insert the "Preferences" menu like other xdata menu
          for salome 3
          Modified file:
            o src/XDATAGUI/xmainmenubar.py

------------------------------------------------------------------
Changes from 0.5.32 to 0.5.33 (2006/05/17):
------------------------------------------------------------------

o Xdata kernel:

  1. Imp: Give the possibility to developpers to
          call a local target at the end of "make"
          and "make install" by defining a
          ALL_LOCAL_FINAL or INSTALL_DATA_HOOK_FINAL
          in a Makefile.am file.
          Modified file:
           o adm/unix/make_end.am

  2. Imp: Generate the SalomeApp.xml file for salome3
          Modified file:
           o adm/unix/make_end.am

o Python kernel (src/XDATA  directory):

  1. Bug: The pickle tool fails for class who use the
          xdata signals (xconnect and co.)
     Fix: pickle is unable to save methods. Save the
          object and attribute name and it is ok.
          Modified file:
           o src/XDATA/xobject.py
          Test file:
           o src/XDATA/tests/xconnectandpickletest.py

  2. Bug: The python help on line fails with XInterceptor
          objects
     Fix: Define a __name__ attribute as required for
          functions for example.
          Modified file:
           o src/XDATA/xinterceptor.py

o Graphical interface (src/XDATAGUI directory):

  1. Bug: Problems when trying to put accent in gui.
     Fix: qt gives unicode objects and str on a unicode
          object fails when accent in it. Use unicode
          when str fails ...
          Modified file:
           o src/XDATA/xutilities.py
           o src/XDATA/xtypes.py
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdataobjectexplorer.py
           o src/XDATAGUI/xdatapropertyeditor.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Salome 3 compatibility ...
          Modified file:
           o src/XDATA2SALOME/xdata2salome.py

------------------------------------------------------------------
Changes from 0.5.31 to 0.5.32 (2006/04/14):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: Raise in xtypes.py for XInstance with more than
          on class when one or more the classes does not
          inherit object (no __mro__ attribute !)
     Fix: Try: Except !!
          Modified file:
           o src/XDATAGUI/xtype.py


o Graphical interface (src/XDATAGUI directory):

  1. Imp: Do not put a 'New' popup menu for classes which
          not inherit XObject.
          Modified file:
           o src/XDATAGUI/xdatagui.py

  2. Imp: First implementation of Next and Previous in the
          Find facility in xdatagui ...
          Modified files:
           o src/XDATAGUI/xpythongui.py
           o src/XDATAGUI/xdataobjectexplorer.py

  3. Imp: In Find facility in xdatagui, ensure that the items
          found are visibles via an action to the scrollbar.
          Modified file:
           o src/XDATAGUI/xdataobjectexplorer.py

  4. Bug: Vicious bug from alliances :) When a class redefine
          a __eq__ method and when the real object is a "swigged"
          one (for instance a med object), the comparaison between
          the initial value and the current value in the editors
          fails !!
     Fix: Do a :
          ...
          try:
              # E.A. : Try ... Except if dev
              # has redefined __eq__
              test_eq = ( value == initial_value )
          except:
              test_eq = ( id(value) == id(initial_value) )
              pass
          if test_eq :
          ...
          instead of :
          ...
          if value == initial_value:
          ...
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

  5. Bug: Vicious bug from alliances :) When a class redefine
          a __repr__ method, this method is called when doing a
          str(..) on an instance of this class. Moreover, the str
          is called when a str is done on a list / tuple / dict
          containing an instance of this class ... It explains why
          when editing an object containing such instances the value
          field is unreadable ...
     Fix: Not fixed for the moment but a beginnig of correction is
          done in this release ... It is not as simple as I thought !
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

  6. Imp: Related to the item 1. When selecting a object in salome
          study, we need now to check that this object is not contained
          in a read-only XAttribute at any level. So the detection of
          parents in Salome study has been improved.
          Modified file:
           o src/XDATAGUI/xsalomegui.py


o Salom interface (src/XDATA2SALOME directory):

  No modification.

------------------------------------------------------------------
Changes from 0.5.30 to 0.5.31 (2006/04/12):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  No modifications


o Graphical interface (src/XDATAGUI directory):

  1. Bug: When selecting a non-xdata object in salome, an exception
          is raised ("None object has no attribute _narrow").
     Fix: Improve SalomeStudyXTree to taking account this.
          Modified file:
           o src/XDATAGUI/xsalomegui.py

  2. Imp: First implementation of Find facility in xdatagui ...
          Modified files:
           o src/XDATAGUI/xpythongui.py
           o src/XDATAGUI/xdataobjectexplorer.py


o Salom interface (src/XDATA2SALOME directory):

  1. Bug: Problems when importing XXX_CORBA modules.
          Sometimes, they seems to be empty
     Fix: As pointed by C.C., the salome python back-end
          for omniidl should be used ... so I use it now !
          Modified file:
           o adm/unix/make_end.am

  2. Imp: Add the possibility to refer Study SObjects for
          them to appear as references in the study
          Modified file:
           o src/XDATA2SALOME/XDATA_i.py

  3. Bug: It seems that with omniorbpy2.6 and python 2.4, the
          double values are modified on corba bus (for instance,
          0.0 on client side becomes x.xE-317 on server side).
          It is fixed in omniorbpy2.7 but since it is omniorbpy2.6
          which is installed as default on mandriva 2006.0, I
          have to tacking account this.
     Fix: Modify the generated idl.py "tv_double" --> "tv_float".
          It corrects the bug in some cases but not all especially
          when we have sequence. In that case, nothing is done but
          the test file has been corrected.
          Modified files:
           o adm/unix/make_end.am
           o src/XDATA2SALOME/tests/xlistpurecorbatest.py
           o src/XDATA2SALOME/tests/xlistwrappercorbatest.py

  4. Imp: Begin to implement the portability on salome 3 (patched
          with customize method)
          Modified file:
           o src/XDATA2SALOME/xdata2salome.py
           o src/XDATAGUI/xsalomegui.py

  5. Bug: With salome3, the catalog object must be "narrowed"
     Fix: Do it
          Modified file:
           o src/XDATA2SALOME/xsalome.py

------------------------------------------------------------------
Changes from 0.5.29 to 0.5.30 (2006/03/08):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: The export of dictionnaries is not correct.
     Fix: Detection in xtree when we enter a dict then
          when we leave it. For each key, introduce
          "%s:%(x.name) before the value.
          Modified file:
           o src/XDATA/xtree.py

  2. Imp: Modify the presentation of a tree in object browser.
          For a list or a tuple, the sub-item named "0" is now "[0]"
          and for a dict, the key are named ['key'].
          Modified file:
           o src/XDATA/xtree.py

  3. Imp: Accept the string "{'a': 1, 'b': 2}" for a dict in gui
          (thanks to Thomas B. who pointed that ...)
          Modified file:
           o src/XDATA/xtype.py

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: Incorrect behaviour when a separator is included in
          main menus ('File', 'View', ...)
     Fix: Modify the way then _en.xml file is generated
          Modified file:
           o src/XDATA/xdata2salome.py

o Graphical interface (src/XDATAGUI directory):

  1. Bug: Implement in xdatagui the fix related to point 1 of
          Salom interface.
          Modified file:
           o src/XDATAGUI/xpythongui.py

------------------------------------------------------------------
Changes from 0.5.28 to 0.5.29 (2006/02/06):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: Modify the way to know if I'm in salome iapp or
          not. This should now work with every python version.
          It works only if the __import__ salome function is in
          import_hook.py.
          Modified file:
           o src/XDATA/xdata.py

  2. Imp: Add a "unpack_in_browser" attribute to XList, XTuple
          and XDict. When this attribute is set to 0, the value
          considered is not exploded in browser (useful for a list
          of a lot of values ...)
          Modified file:
           o src/XDATA/xtypes.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: CAUTION : the XObject createDialog classmethod API has
          changed from
          createDialog(cls, parent, instance_name, object_to_edit, editor=None)
          to
          createDialog(cls, parent, instance_name, xobject, editor, xattribute)
          Modified file:
           o src/XDATAGUI/xdatagui.py

  2. Imp: CAUTION : the XObject createEditor classmethod API has
          changed from
          createEditor(cls, xattribute, parent, value=None, text=None)
          to
          createEditor(cls, xattribute, parent, xobject=None, value=None, text=None)
          In fact, the xobject is passed to createEditor implementation
          in XAttribute and XType classes too.
          Modified file:
           o src/XDATAGUI/xdatagui.py

  3. Imp: You can now intercept the popup created when you right click
          in an editor (the popup with "New", ...). To do that, you
          have to implement a
          customEditorPopup(cls, xattribute, parent, popup, xobject)
          classmethod in your class or a
          customEditorPopup(self, cls, parent, popup, xobject)
          method in your XAttribute implementation or a
          customEditorPopup(self, xattribute, cls, parent, popup, xobject)
          method in your XType implementation. :) :) :)
          Modified file:
           o src/XDATAGUI/xdatagui.py

  4. Imp: Add a "Rename" popup for object at root of the study
          Modified files:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdatapropertyeditor.py

  5. Imp: Fisrt implementations of "Cut", "Copy", "Paste",
          "Shallow Paste", "Deep Paste".
          Modified files:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdataobjectexplorer.py
           o ...

  6. Imp: Add a "Cancel" popup for all editors ...
           o src/XDATAGUI/xdatapropertyeditor.py

  7. Bug: Bad behaviour when a user click quickly on OK button
     Fix: By Vadim Sandler with blockSignals(True or False)
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

  8. Imp: Implement the "unpack_in_browser" attribute for
          xdatagui
          Modified file:
           o src/XDATAGUI/xdataobjectexplorer.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Implement the "unpack_in_browser" attribute for
          salome studies.
          Modified file:
           o src/XDATA2SALOME/XDATA_i.py

  2. Bug: In salome, when a list goes from [1, 2, 3, 4]
          to [1, 2] (for instance), the 3 and 4 values
          are not removed of the study.
     Fix: Remove the childer of a list before adding
          it in study
          Modified file:
           o src/XDATA2SALOME/XDATA_i.py

  3. Bug: When an attribute require an instance of a class
          A, the A class must exists in component but its
          sub-classes too !
     Fix: Look for the sub-classes of each component classes
          before writting the idl and implementation files.
          Modified file:
           o src/XDATA2SALOME/xdata2salome.py

------------------------------------------------------------------
Changes from 0.5.27 to 0.5.28 (2006/01/21):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  1. Bug: Gui dialog box raised with "old" pyqt version.
     Fix: Don't use "super" method to call the __init__
          base but use old way :( 'cause QObject does not
          inherit "object" with "old" pyqt version.
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

  2. Bug: The xdatagui can raise another exception than ImportError
          if the vtk python wrapping is badly installed (for
          instance a "KeyError") ...
     Fix: We have to catch all exceptions !
          Modified file:
           o src/XDATAGUI/xpythongui.py

------------------------------------------------------------------
Changes from 0.5.26 to 0.5.27 (2006/01/20):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: the XList and XTuple class should be ok
          for complicated string. For instance :
          "(aaa,       bb  b, [1, (3, eee), 3], (12, ), [ee])"
          must be converted into
          ('aaa', 'bb b', [1, (3, 'eee'), 3], (12, ), ['ee'])
          for the gui dialog box to be ok when entering
          such a thing (for instance "('He', 0.1, 'C', 0.9)")
     Fix: Improve the way than string are processed in
          XList.__call__
          Modified file:
           o src/XDATA/xtype.py
          Test file:
           o src/XDATA/tests/xtypesxtupletest.py
           o templates/TECHOBJ_ROOT/src/menuxtypes.py

  2. Bug: In xutilities.exception2message (only used
          in gui mode but implemented in kernel), there
          is a str attribute error exception.
     Fix: import str from __builtin__
          Modified file:
           o src/XDATA/xutilities.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Replace medpersistence.py by xmedpersistence.py
          'cause a conflict with alliances file.
          Modified file:
           o src/XDATA/medpersistence.py (removed)
           o src/XDATA/xmedpersistence.py (added)
           o src/XDATA/XDATA_i.py

o Graphical interface (src/XDATAGUI directory):

  1. Bug: Exception raised in the vtk viewer of
          xdatagui application
     Fix: Comes with recent qt version. Refer
          to qt documentation.
          Modified file:
           o src/XDATAGUI/QVTKRenderWindowInteractor.py

  2. Imp: Add a way to define the default prefix of
          class instances. Useful in gui. To do that,
          the class method getInstancePrefix has been
          added.
          Modified file:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xmainmenubar.py
          Test files:
           o templates/TECHOBJ_ROOT/src/shape2D.py
           o templates/TECHOBJ_ROOT/src/circle.py

  3. Imp/Bug: Improve the "import" python file process.
          Remove the thread, Launch the progress bar
          non modal, connect the "cancel" button to
          stop an import in the middle ... Thanks
          to Vadim Sandler and Xavier Bruyet for help !
          Modified file:
           o src/XDATAGUI/xdatagui.py

  4. Imp: Add an "Edit" popup to access directly the
          value of an attribute. It works on all kind
          of xattribute declared as "rw" (it is the
          default for __init__xattributes__
          Modified file:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdatapropertyeditor.py
           o src/XDATAGUI/xsalomegui.py

  5. Imp: Improve the tooltips facility in xdatagui
          object browser. The tooltip depend now of
          the column where mouse here. On first column,
          The tooltip is called with target == instance
          if the object is at the root or called with
          target == xattribute else. On second column,
          the tooltip is called with target == class.
          Modified file:
           o src/XDATAGUI/xdataobjectexplorer.py
          Test files:
           o TECHOBJ template.

  6. Bug: For certain objects (only in salome) which
          are constructed on python container and
          put into study, the __code__percentage__
          attribute is not defined.
     Fix: Try ... catch
          Modified file:
           o src/XDATAGUI/xmainwindow.py

  7. Imp: When an exception is raised when setting a bad
          value, the message is short now unless the
          XDATA_VERBOSE environement variable is defined
          to something different of "0".
          Modified file:
           o src/XDATAGUI/xdatapropertyeditor.py

------------------------------------------------------------------
Changes from 0.5.25 to 0.5.26 (2006/01/05):
------------------------------------------------------------------

o Salom interface (src/XDATA2SALOME directory):

  1. Bug: the XDictXObjectKeys objects are not push
          in study and the application crash when trying
          to put one
     Fix: Improve the publishInStudy method.
          Modified file:
           o src/XDATA2SALOME/XDATA_i.py

  2. Bug: The XDATA_CORBA module seems to be empty
          in batch mode with python 2.4.
     Fix: We have to import XDATA_CORBA before the
          corba module of others XDATA component but
          after the SALOME ones (thanks python !!)
          Modified file:
           o src/XDATA2SALOME/xsalome.py

  3. Imp: Add the attribute __comment__ in XDATA
          components to appear in the tooltip created
          when the mouse go in front of the corresponding
          icon.
          Modified file:
           o src/XDATA2SALOME/xdata2salome.py
          Test file:
           o templates/TECHOBJ_ROOT/src/TECHOBJ_xdata.py

o Graphical interface (src/XDATAGUI directory):

  1. Bug: The updateObjectBrowser() call in import python file
          freeze the application ... Well, C.C. will say that
          it's obvious since this call is done in a thread ...
     Fix: Remove the update ... anyway it is done elsewhere but
          properly (I think) by sending a qt signal.
          Modified file:
           o src/XDATAGUI/xdatagui.py

------------------------------------------------------------------
Changes from 0.5.24 to 0.5.25 (2005/12/13):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: Import xdata fails with python2.2.1 since 0.5.24
     Fix: The __import__ function has no __module__ attribute
          in python2.2.x. Do a try: except:
          Modified file:
           o src/XDATA/xdata.py

  2. Imp: Give the possibility to define a XList with a
          sequence of n items which accept a list of m < n
          items if the items are ok for the sequence.
          To do that : the len_multipe keyword has been
          introduced for XList and XTuple (not documented)
          Modified file:
           o src/XDATA/xtypes.py
          Test file:
           o src/XDATA/tests/xtypesxlisttest.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: Improve the detection of XInputFileName and
          XInputDirName in a XMultype. Improve the "Browse"
          menu.
          Modified file:
           o src/XDATAGUI/xdatagui.py
          Test file:
           o templates/TECHOBJ_ROOT/src/geometry.py

  2. Imp: Take account the len_multiple keyword described
          in xdata kernel item 2.
          Modified files:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdatapropertyeditor.py
          Test file:
           o templates/TECHOBJ_ROOT/src/menuxtypes.py

  3. Bug: The tuples are not correctly exported in
          python script
     Fix: Improve the saveAs method for XTree class
          Modified file:
           o src/XDATA/xtree.py

------------------------------------------------------------------
Changes from 0.5.23 to 0.5.24 (2005/12/01):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: The __del__ method is not called at object destruction.
     Fix: Indeed, there is a intercpetor which keep a ref to the
          object. Remove this reference.
          Modified file:
           o src/XDATA/xinterceptor.py
          Test file:
           o src/XDATA/tests/xobjectanddestructortest.py


o Salom interface (src/XDATA2SALOME directory):

  1. Bug: Problem of import of corba module with
          mandriva 2006.0.
     Fix: Inverse the import of XDATA_i and MODULE_CORBA
          Modified file:
           o src/XDATA/xdata2salome.py

  2. Bug: With mandriva 2006.0, the float value goes
          not through the corba bus with the previous
          precision. So some tests fails
     Fix: Replace failUnlessEqual with
          failUnless(error < epsilon)
          for float value.


o Graphical interface (src/XDATAGUI directory):

  1. Imp: Possibility to import a file in salome iapp
          embedded console. This has been detecting
          that __import__ is defined in import_hook
          in salome
          Modified file:
           o src/XDATAGUI/xdata.py

  2. Bug: The name in study are not in concordance
          with the instance name given.
     Fix: It's a problem of code object defined by
          a exec statement :) When it occurs, do not
          register the disassembled code.
          Modified file:
           o src/XDATA/xutilities.py

------------------------------------------------------------------
Changes from 0.5.22 to 0.5.23 (2005/11/28):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: The internal method getAllXTypes is not well
          implemented for XList.
     Fix: Implement it and return the xtypes contained
          in sequence
          Modified file:
           o src/XDATA/xtype.py

  2. Bug: The internal exception2message fails when the
          exception is lauched with raise msg instead of
          raise Exception(msg)
     Fix: Test this case
          Modified file:
           o src/XDATA/xutilities.py


o Salom interface (src/XDATA2SALOME directory):

  1. Bug: When two classes have the same name in
          the same component, there is a bug in
          the method called in the component (only
          when the constructor is non empty :) )
     Fix: Try getattr ... except ...
          Modified file:
           o src/XDATA/xinterceptor.py

  2. Bug: When a class is not in the __xdata__items__
          but required in a XInstance object, this
          class is not present in the component.
     Fix: Detect the XInstance object in the
          component construction
          Modified file:
           o src/XDATA2SALOME/xdata2salome.py


o Graphical interface (src/XDATAGUI directory):

  1. Bug: When a XInstance object is in a XMulTypes
          object, the popup menu New --> does not
          detect it
     Fix: Improve the detection of classes in the
          xtype for popup
          Modified file:
           o src/XDATAGUI/xdatagui.py

------------------------------------------------------------------
Changes from 0.5.21 to 0.5.22 (2005/11/16):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: Very vicious bug : If a user-get raises and
          the exception is intercepted, a recursion problem
          occurs ...
     Fix: Try ... Except a exception before launching a
          user-get.
          Modified file:
           o src/XDATA/xaccessor.py

  2. Imp: First implementation of xdisconnect method
          to disconnect a signal previously connected
          by xconnect
          Modified file:
           o src/XDATA/xobject.py

------------------------------------------------------------------
Changes from 0.5.20 to 0.5.21 (2005/11/15):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Imp: First implementation of signals in xdata
          Modified file:
           o src/XDATA/xobject.py

o Salom interface (src/XDATA2SALOME directory):

  1. Imp: Rename getComponent in getCorbaComponent in
          all corba objects ('cause alliances got a
          component attribute somewhere !)
          Modified files:
           o src/XDATA/xaccessor.py
           o src/XDATA2SALOME/XDATA_Description.idl
           o src/XDATA2SALOME/XDATA_i.py
           o .../tests/xintxfloatxstringpurecorbatest.py
           o src/XDATA2SALOME/xsalome.py

  2. Bug: Impossible to pass dictionnaries which contain
          dictionnaries on corba bus !!??##
     Fix: Fix it :)
          Modified file:
           o src/XDATA2SALOME/xsalome.py
          Test files:
           o src/XDATA2SALOME/tests/ponikarov.py
           o src/XDATA2SALOME/tests/ponikarovtest.py

o Graphical interface (src/XDATAGUI directory):

  1. Imp: Remove the "Instance" level in the popup menus
          "New -> Instance --> Class"
          Modified file:
           o src/XDATAGUI/xdatagui.py

  2. Bug: The tooltips are not displayed on recent versions
          of qt. Only for browser and property editor (ok
          for menubar)
     Fix: Give the parent.viewport() as parent for qlistview
          (cf. www.google.fr : "qlistview tooltips")
          Modified files:
           o src/XDATAGUI/xdataobjectexplorer.py
           o src/XDATAGUI/xdatapropertyeditor.py
           o src/XDATAGUI/xmainmenubar.py

  3. Bug: The study selection works only for the first clicked
          xdata module in salome IAPP.
     Fix: It's because setWorkSpace is called only once (don't
          know if it is a normal behaviour ?). So call
          setWorsSpace in setSettings
          Modified files:
           o src/XDATAGUI/xsalomegui.py

  4. Bug: The browser is not correct for XInputFileName with more
          than on suffix.
     Fix: Add a space after each suffix.
          Modified files:
           o src/XDATAGUI/xdatagui.py

------------------------------------------------------------------
Changes from 0.5.19 to 0.5.20 (2005/10/24):
------------------------------------------------------------------

o XData kernel:

  1. Bug: the --without-salome-kernel does not work ...
     Fix: at the end of checking salome-kernel, convert
          KERNEL_DIR from "no" to "" and it's ok
          Modified file:
           o adm/unix/config_files/check_salome_kernel.m4

  2. Bug: the check for runSalome find a strange path
     Fix: It's because AC_PATH_PROG(TEMP, runSalome) is
          used and under cygwin, $TEMP has a meaning ...
          Replace it by AC_PATH_PROG(RUNSALOME, runSalome)
          Modified file:
           o adm/unix/config_files/check_salome_kernel.m4


o Graphical interface (src/XDATAGUI directory):

  1. Bug: Recent version of pyqt fails at item.setText(i, None).
     Fix: Replace this by item.setText(i, "") which has the same
          meaning.
          Modified files:
           o src/XDATAGUI/xdatagui.py
           o src/XDATAGUI/xdataobjectexplorer.py
           o src/XDATAGUI/xdatapropertyeditor.py

------------------------------------------------------------------
Changes from 0.5.18 to 0.5.19 (2005/10/19):
------------------------------------------------------------------

o XData kernel:

  1. Bug: make should fail when the xdata2salome procedure
          fails ...
     Fix: add a "|| exit 1" at compilation
          Modified file:
           o adm/unix/make_end.am


o Python kernel (src/XDATA  directory):

  1. Bug: When a xdata user define his own __new__ class
          method, xdata raises an exception, it should not.
     Fix: return in __setattr__ of metaclass for __new__.
          Modified file:
           o src/XDATA/xmetaclass.py
          Test file:
           o src/XDATA/tests/xobjectwithnewtest.py


o Salom interface (src/XDATA2SALOME directory):

  1. Bug: When more than one class have the same
          name in a component, the generated idl fails.
     Fix: When it occurs, the interface is now named
          "%s%s"%(cls.__module__, cls.__name__)
          Modified file:
           o src/XDATA/xinterceptor.py
           o src/XDATA2SALOME/xdata2salome.py
           o src/XDATA2SALOME/xsalome.py
          Test file:
           o src/XDATA2SALOME/tests/DATATEST1_xdata.py
           o src/XDATA2SALOME/tests/hydraulic1.py
           o src/XDATA2SALOME/tests/hydraulic2.py
           o src/XDATA2SALOME/tests/hydraulictest.py

  2. Bug: When the value of an attribute pass from None
          to an integer (or a float). The value in mem.
          is correct, but the displayed value is always
          None.
     Fix: In salome study, there are three attributes
          AttributeComment, AttributeInteger and
          AttributeReal and if more than one are setted,
          the AttributeComment is displayed. So we have
          to clean the three ones when a value changes.
          Modified files:
           o src/XDATA2SALOME/XDATA_i.py
          Test file:
           o templates/TECHOBJ_ROOT/src/menuxtypes.py

  3. Bug: When an attribute has a default value which is
          an instance, python2corba fails in that case
     Imp: It occurs because of a copy.copy which is done
          at each instance (which was done for mutable
          default values). So the id is not in the
          remain dictionnary, but has a __corba__object__
          attribute. So we have to use it.
          Modified files:
           o src/XDATA2SALOME/xsalome.py
          Test file:
           o src/XDATA2SALOME/tests/xfloatphysicalvalue.py
           o .../tests/xfloatphysicalvaluewrappingcorbatest.py


o Graphical interface (src/XDATAGUI directory):

  1. Imp: Duplication of item 2 of Salom interface.

------------------------------------------------------------------
Changes from 0.5.17 to 0.5.18 (2005/09/28):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  1. Bug: When a method is implemented in a non-xobject
          base class, it is not intercepted. It implies
          local execution on corba which should not ...
     Fix: Look in the bases dictionnaries for the methods.
          Modified file:
           o src/XDATA/xmetaclass.py
          Test file:
           o src/XDATA/tests/xobjectinheritencexmethodtest.py

  2. Imp: Add the XInputDirName class (to browse for a directory
          in gui)
          Modified files:
           o src/XDATA/xtype.py
           o src/XDATA/xdata.py

  3. Bug: When a key of __xdata__items__ is implemented in the
          py file, we must not try to import the key ... It
          causes problems for instance if a class has the same
          name of a component in corba.
     Fix: Try a hasattr before a try:... ImportError.
          Modified files:
           o src/XDATA/xitem.py
           o src/XDATA2SALOME/xdata2salome.py
          Test file:
           o src/XDATA2SALOME/tests/DATATEST1_xdata.py


o Salom interface (src/XDATA2SALOME directory):

  1. Bug: Duplication of item 3 in Python Kernel

  2. Imp: Pass python dictionnaries with object keys on
          corba bus !!
          Modified files :
           o src/XDATA/xtype.py
           o src/XDATA2SALOME/XDATA_Component.idl
           o src/XDATA2SALOME/XDATA_Description.idl
           o src/XDATA2SALOME/XDATA_i.py
           o src/XDATA2SALOME/xsalome.py
          Test files:
           o src/XDATA2SALOME/tests/ponikarov.py :)
           o src/XDATA2SALOME/tests/ponikarovtest.py

  3. Bug: It seems that supervision want a Kill_impl
          method for components ...
     Fix: Implement it
          Modified files:
           o src/XDATA2SALOME/XDATA_i.py

  4. Bug: When an object is 'Put in study' from
          supervision, it has no name ...
     Fix: Detect that name == "" and put a default
          name.
          Modified files:
           o src/XDATA2SALOME/XDATA_i.py


o Graphical interface (src/XDATAGUI directory):

  1. Imp: Duplication of item 2 of Python Kernel.
          Put a "Browse" item for a XInputDirName
          Modified file:
           o src/XDATAGUI/xdatagui.py
          Test file:
           o templates/TECHOBJ_ROOT/src/circle.py

  2. Bug: For recent version of pyqt, it seems that
          QWidget.__init__ cannot be called with a
          dictionnary as parameter (thank's to vadim
          who already point this !)
     Fix: Remove the kw entry in the __init__ call
          Modified file :
           o src/XDATAGUI/QVTKRenderWindowInteractor.py

------------------------------------------------------------------
Changes from 0.5.16 to 0.5.17 (2005/09/16):
------------------------------------------------------------------

o Salom interface (src/XDATA2SALOME directory):

  Bug: Bad idl generation for a sequence of inherited XType !!???
       (only Mikhail P. understand what I say ... :) )
  Fix: Check if getIdlType return int, double or string ...
       if not, return a XObjectSequence
       Modified file :
          o src/XDATA/xtypes.py
       Test files:
          o src/XDATA2SALOME/tests/xfloatphysicalvalue.py
          o .../tests/xfloatphysicalvaluewrappingcorbatest.py

  Bug: Batch corba tests fails if the KERNEL_2.2.4/salome.csh
       is sourced ...
  Fix: In class XSalomeSession, add KERNEL_ROOT_DIR/bin/salome
       at first in sys.path 'cause multiple runSalome.py in
       occ salome V2_2_4 distribution
       Modified file :
          o src/XDATA2SALOME/xsalome.py

------------------------------------------------------------------
Changes from 0.5.15 to 0.5.16 (2005/09/15):
------------------------------------------------------------------

o all ascii files:

  Add a copyright CEA, EDF


o Salom interface (src/XDATA2SALOME directory):

  Bug: Do not construct the corba xrapping for classes derived from
       XType or XAttribute ...
  Fix: Check issubclass(c, XSomething) in xdata2salome
       Modified file :
          o src/XDATA/xitem.py

  Bug: The supervision aborts often 'cause no "_serviceName" defined
  Fix: Define such an attribute at the component construction.
       Modified file :
          o src/XDATA2SALOME/XDATA_i.py

o Graphical interface (src/XDATAGUI directory):

  All is from Gauthier Fauchet ... Thanks to him !

  Imp: Add tooltips at object explorer
  Imp: Add a test to know if an item appears in explorer
  Imp: Color the items in explorer in what you want (?)
  Imp: Add a exit_code function to be over-write to intercept
       the xdatagui exit.

------------------------------------------------------------------
Changes from 0.5.14 to 0.5.15 (2005/08/04):
------------------------------------------------------------------

o xdata kernel (root directory):

  Bug: There are missing parts in documentation since 0.5.14.
  Fix: Create some symbolic link to get unittests and templates.
       Modified files :
          o doc/Makefile.am
          o doc/xdata.tex

  Imp: Try to compile and work without KERNEL_ROOT_DIR variable
       (just a test ...). For that, find it by runSalome in PATH.
       Modified files :
          o adm/unix/config_files/check_salome_kernel.m4
          o adm/unix/make_end.am
          o src/XDATA2SALOME/xsalome.py


o Python kernel (src/XDATA  directory):

  Imp: When a xattribute has a default value, create a
       copy.copy of it when an instance is created.
       It is very useful when the default value is mutable
       (for instance [] or {}) since, if not copied, the
       value is shared by all instances 'cause it is a class
       variable.
       Modified files :
          o src/XDATA/xinterceptor.py
       Test files :
          o src/XDATA/tests/xattributewithmutabledefaultvaluetest.py


o Salom interface (src/XDATA2SALOME directory):

  Bug: When declared in a base class and implemented in a sub-class,
       a method is called as local but it should be distant.
  Fix: Look in the base class using the mro (Method Resolution Operator)
       to see if a method is declared in a xmethod
       Modified file :
          o src/XDATA/xinterceptor.py
          o src/XDATA2SALOME/XDATA_i.py

  Imp: Improve the way to generate the implementation classes on corba
       server part. It is done to ensure the correct inheritence diagram
       Modified files :
          o src/XDATA2SALOME/xdata2salome.py
          o src/XDATA2SALOME/xsalome.py


o Graphical interface (src/XDATAGUI directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.13 to 0.5.14 (2005/06/09):
------------------------------------------------------------------

o xdata kernel (root directory):

  Bug: The documentation is not exported since 0.5.11
  Fix: The .tex file must have no "." in absname
       Modified file :
          o doc/Makefile.am


o Python kernel (src/XDATA  directory):

  Imp: Reduce the __init__xattributes__ list to remove
       the redondances in it. For instance, in
       class A(XObject):
          __init__xattributes__ = [x1, x2, x1, x3, x4]
          pass
       We will now have A.__init__xattributes__ == [x1, x2, x3, x4]
       According to X.B. :) , it can be useful for
       multiple inheritence ...
       Modified file :
          o src/XDATA/xdescriptor.py
       Test files :
          o src/XDATA/tests/xobjectcleaninginitxattributestest.py


o Salom interface (src/XDATA2SALOME directory):

  Bug: The message in xinterceptor.py can crash if __repr__ is
       redefined in a class.
  Fix: Remove this obsolete message
       Modified file :
          o src/XDATA/xinterceptor.py

  Imp: Improve the way to pass lists with different base type on
       corba bus (even when the lists are in dictionnary values)
       Modified files :
          o src/XDATA2SALOME/XDATA_i.py
          o src/XDATA2SALOME/xsalome.py
       Test files :
          o src/XDATA2SALOME/tests/DATATEST1_xdata.py
          o src/XDATA2SALOME/tests/DATATEST1listmenu.py
          o src/XDATA2SALOME/tests/DATATEST1listwrappercorbatest.py
          o src/XDATA2SALOME/tests/DATATEST1dictmenu.py
          o src/XDATA2SALOME/tests/DATATEST1dictwrappercorbatest.py


o Graphical interface (src/XDATAGUI directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.12 to 0.5.13 (2005/05/27):
------------------------------------------------------------------

o Salom interface (src/XDATA2SALOME directory):

  Imp: Treat the python packages as correct as possible, i.e.,
       authorize the items of __xdata__items__ to be on the form :
       "module.pack1.pack2" where module is divided in sub-dir
       with __init__ files in them. (For more information on
       packages see http://docs.python.org/tut --> 6.4 Packages)
       Modified files :
          o src/XDATA/xitem.py
          o src/XDATA/xtypes.py
          o src/XDATA/xutilities.py
          o src/XDATA2SALOME/xdata2salome.py
          o src/XDATA2SALOME/xsalome.py

  Imp: Pass lists with different base type on corba bus.
       For instance : [int, str, float, int, ...]
       Modified files :
          o src/XDATA/xinterceptor.py
          o src/XDATA2SALOME/xsalome.py
       Test files :
          o src/XDATA2SALOME/tests/DATATEST1_xdata.py
          o src/XDATA2SALOME/tests/DATATEST1listmenu.py
          o src/XDATA2SALOME/tests/DATATEST1listwrappercorbatest.py


o xdata kernel (root directory):

  No modification


o Python kernel (src/XDATA  directory):

  No modification


o Graphical interface (src/XDATAGUI directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.11 to 0.5.12 (2005/05/19):
------------------------------------------------------------------

o xdata kernel (root directory):

  Bug: Strange comportement with the automake suite
       installed on mandrake 10.1.
  Fix: touch the configure.in, aclocal.m4, configure
       files in the "good" order.
        Modified file :
          o Makefile.am

  Bug: The values of @abs_top_builddir@ and @abs_top_srcdir@
       have slighty changed with the automake suite on
       mandrake 10.1 making an error when launching test
  Fix: Modify the way to copy test files
        Modified file :
          o adm/unix/make_end.m4


o Salom interface (src/XDATA2SALOME directory):

  Bug/Imp: Impossible to pass a tuple via the corba bus.
  Fix: Add this possibility :)
       Modified file :
          o src/XDATA2SALOME/xsalome.py
       Test files :
          o src/XDATA2SALOME/tests/DATATEST1_xdata.py
          o src/XDATA2SALOME/tests/xtuplemenu.py
          o src/XDATA2SALOME/tests/xtuplewrappingcorbatest.py

  Imp: Pass the dictionnaries with float keys on corba bus
       Modified files :
          o src/XDATA/xtypes.py
          o src/XDATA2SALOME/XDATA_Component.idl
          o src/XDATA2SALOME/XDATA_Description.idl
          o src/XDATA2SALOME/xsalome.py


o Python kernel (src/XDATA  directory):

  No modification


o Graphical interface (src/XDATAGUI directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.10 to 0.5.11 (2005/05/12):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  Bug : Regression about the edition of the attributes
  Fix : replace "return XType(xtype, xattribute, ..." by
        "return XType.createEditor(xtype, xattribute, ...".
        Thanks to Xavier !
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Imp : Pass the parent window to the getPopupItems classmethod.
        XObject.getPopupItems(cls, selection)
        becomes
        XObject.getPopupItems(cls, parent, selection)
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Imp : Access to the vtk window in both python gui and
        salome gui. One can now access the vtk window by
        parent.getVtkRenderer()
        parent.getVtkRenderWindow()
        parent.getVtkRenderWindowInteractor()
        Modified file :
          o src/XDATAGUI/qvtkwidget.py
          o src/XDATAGUI/xmainwindow.py


o Salom interface (src/XDATA2SALOME directory):

  Imp: Possibility to call local methods on a distributed
       object (in a previous version, a XAttributeError
       exception was raised). It is very useful to call
       pure gui method in salome gui.
       Modified file :
          o src/XDATA/xinterceptor.py
          o src/XDATA2SALOME/xsalome.py


o xdata kernel (adm directory):

  No modification


o Python kernel (src/XDATA  directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.9 to 0.5.10 (2005/04/11):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  Imp : In a object dialog box, when a attribute is selected,
        the editor is created in the class method :
        createEditor(cls, parent, xattribute, value=None, text=None)
        It would be easier for the developper if this method
        call a createEditor on the xattribute and in this method,
        a createEditor on the xtype ...
        Implementation accepted :) !
        Now, the feature is :

        o  XObject.createEditor(cls, xattribute, parent, value, text)
        -> XAttribute.createEditor(self, cls, parent, value, text)
        -> XType.createEditor(self, xattribute, cls, parent, value, text)

        So, to change the createEditor behaviour, one can intercept
        at three levels : the class, the xattribute class, the xtype
        class ...

        WARNING :

        o the XObject.createEditor API has changed (xattribute
          and parent are inversed !!)
        o XObject.createEditor is a class method,
          XAttribute.createEditor and XType.createEditor are
          instance methods (usual methods).


o xdata kernel (adm directory):

  No modification


o Python kernel (src/XDATA  directory):

  Bug : The xattributes with default_value are initialized but
        not in the "good" order
  Fix : Modify the position of
        setValuesOfObjectXAttributesWithDefaultValue
          o src/XDATA/xinterceptor.py
        Test file :
          o xobjectwithobjectxattributewithdefaultvaluetest.py

  Imp : Adding a test when the developper want to have his own XType
        to be called with a float and to return an object (the famous
        unit problem !! :) )


o Salom interface (src/XDATA2SALOME directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.8 to 0.5.9 (2005/03/14):
------------------------------------------------------------------

o xdata kernel (adm directory):

  Imp : "make clean" remove the *.pyc and *.pyo files
        Modified file :
          o adm/unix/make_end.am

o Python kernel (src/XDATA  directory):

  Bug : Obscure bug at save/restore of studies in salome
        due to the use of pickle: AttributeError : __init__ok__
  Fix : Insert an hasattr in code
        Modified file :
          o src/XDATA/xaccessor.py

  Bug : The attributes with default_value declared in
        __object__xattributes__ are not initialized
  Fix : Initialize them before the __init__ developper
        Modified files :
          o src/XDATA/xdescriptor.py
          o src/XDATA/xinterceptor.py
        Test file :
          o xobjectwithobjectxattributewithdefaultvaluetest.py

o Salom interface (src/XDATA2SALOME directory):

  Bug : The dictionnary cannot be an input in corba context.
  Fix : Implement the newXDictStringKeys and newXDictLongKeys
        in xdata-based components.
        Modified files :
          o src/XDATA2SALOME/XDATA_Component.idl
          o src/XDATA2SALOME/XDATA_i.py
          o src/XDATA2SALOME/xsalome.py
        Test file:
          o src/XDATA2SALOME/tests/xdictusecases.py
          o src/XDATA2SALOME/tests/xdictwrappercorbatest.py

  Bug : A duplication name occurs "sometimes" in generated
        idl's.  More precisly, in that case:

        """
        Point.__object__xmethods__ = [
              XMethod("distanceTo",
                      in_xattributes = XAttribute("point", xtype =
                         XInstance(Point)), out_xtype = XFloat()),
             ]

        Se traduit dans l'idl (TECHOBJ_Component.idl) par :

        void Point_distanceTo(in TECHOBJ_CORBA::Point point,
                              in XDATA_CORBA::XObject point,
                              out TECHOBJ_CORBA::Point obj,
                              out double result);

        Deux paramtres 'point' !
        """
  Fix : Modify the way the TECHOBJ_CORBA::Point is called.
        It is now called "implied_object".
        Modified file :
          o src/XDATA2SALOME/xdata2salome.py
        Test file :
          o src/XDATA2SALOME/tests/xinstancesolver1usecases.py

o Graphical interface (src/XDATAGUI directory):

  Bug : when a New-->instance-->class dialog is activated,
        impossible to fill a field with a study selection
  Fix : emit a "browser_selection_changed" signal in qlineedit.
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Imp : Mutualization of updateObjectBrowser for both
        python gui and salome
        Modified files :
          o src/XDATAGUI/xmainwindow.py
          o src/XDATAGUI/xpythongui.py

------------------------------------------------------------------
Changes from 0.5.7 to 0.5.8 (2005/02/07):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  No modifications

o Salom interface (src/XDATA2SALOME directory):

  Bug : At user module compilation (for instance with MEDFIELDCREATOR
        template), there is no error message when an import problem
        occurs (for instance if import libMEDClient fails).
  Fix : Modify the way to import the __xdata__items__. Check the exception e
        if one is raised. It's ok if str(e) == "No module named %s"%(name),
        otherwise, raise e ...
        Modified file :
          o src/XDATA/xitem.py

o Graphical interface (src/XDATAGUI directory):

  Bug : With python 2.2.3, the popup.clear() fails with a SystemError
  Fix : In that case, replace the clear() with the removing of all items
        Modified file :
          o src/XDATAGUI/xsalomegui.py

  Bug : AttributeError : itemGeometry for items in main menubar
  Fix : try ... except AttributeError: pass
        Modified file :
          o src/XDATAGUI/xmainmenubar.py

  Bug : KeyError for some tooltips in new->instance->menus
  Fix : try ... except KeyError: pass
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Bug : The menu for the subclasses are not sorted.
  Fix : Use a dict of classes and sort the keys.
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Bug : When we have a type XList with default_value=None, the Edit popup
        is not present
  Fix : Detect this case ...
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Bug : The study is not updated after a popup action on an object
  Fix : Do it !
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Bug : A lot of bug with str of a c++ med object ...
  Fix : fix it one by one ...
        Modified file :
          o src/XDATA/xutilities.py
          o src/XDATA2SALOME/xsalome.py
          o src/XDATAGUI/xdatapropertyeditor.py

------------------------------------------------------------------
Changes from 0.5.6 to 0.5.7 (2005/01/24):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  Bug : getCreationInformations() crashes with python 2.3.x
  Fix : Ensure the compatibility python 2.2.x and 2.3.x when
        disassembling the code object
        Modified file :
          o src/XDATA/xutilities.py

o Salom interface (src/XDATA2SALOME directory):

  Imp : Provide a way to create the salome/shared_modules directory
        used to initialize some python modules.
        Modified files :
          o adm/unix/make_end.am
          o src/XDATA2SALOME/xdata2salome.py

o Graphical interface (src/XDATAGUI directory):

  Imp : Integrate the tooltip facilities for the New --> instance --> menus.
        Modified file :
          o src/XDATAGUI/xdatagui.py

------------------------------------------------------------------
Changes from 0.5.5 to 0.5.6 (2005/01/14):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  No modification

o Salom interface (src/XDATA2SALOME directory):

  Bug : "make check" fails with the new version of salome
        (the "official" V2.1.0)
  Fix : Correct the way to launch the corba servers in batch mode.
        Ensure the backward compatibility with previous salome versions.
        Modified file :
          o src/XDATA2SALOME/xsalome.py

o Graphical interface (src/XDATAGUI directory):

  No modification

------------------------------------------------------------------
Changes from 0.5.4 to 0.5.5 (2005/01/04):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  No modification

o Salom interface (src/XDATA2SALOME directory):

  Imp : If XXX_xdata.py file has an attribute __version__,
        put the value of __version__ in <component-version>
        tag of the component xml file.
        Modified file :
          o src/XDATA2SALOME/xdata2salome.py

  Imp : A non-XObject instance can now go through the corba bus
        via an empty XObject_i corba object. Of course, this object
        cannot be distributed. It is useful to put any object in the
        study.
        Modified file :
          o src/XDATA2SALOME/xsalome.py

  Bug : If there is no class at all in a XXX_xdata.py,
        omniidl fails in compiling an empty corba module
        XXX_CORBA.
  Fix : Do not open the XXX_CORBA module in that case.
        Modified file :
          o src/XDATA2SALOME/xdata2salome.py

o Graphical interface (src/XDATAGUI directory):

  Imp : Activate Qcombobox in case of attribute with xtype :
        XMulTypes(XNone(), XInt(into=....))
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Imp : Improvement of the new -> instance popup menu presentation.
        Modified file :
          o src/XDATAGUI/xdatagui.py

  Imp : Re-implementation of the list editor with "New", "Delete",
        "Up" and "Down" features ...
        Modified files :
          o src/XDATAGUI/xdatagui.py
          o src/XDATAGUI/xdatapropertyeditor.py

------------------------------------------------------------------
Changes from 0.5.3 to 0.5.4 (2004/11/26):
------------------------------------------------------------------

Modifications :

o Python kernel (src/XDATA  directory):

  No modification

o Salom interface (src/XDATA2SALOME directory):

  No modification

o Graphical interface (src/XDATAGUI directory):

  Bug : Impossible to put more than one separator is the
        same menu
  Fix : Replace "if name in names" by
        "if ( name ) and ( name in names )" in xitem.py

  Imp : In python gui, you can give a file to import as
        argument of the command line. For instance, if
        you run :

        xdatagui --modules=TECHOBJ /home/adam/techobjusecase.py

        The file /home/adam/techobjusecase.py will be imported
        as if you had selected "File --> Import --> ..."

  Imp : In python gui, if you have only one module, it is
        directly activated. For instance, if
        you run :

        xdatagui --modules=TECHOBJ

        The module TECHOBJ is activated at launch. I mean that
        the items of TECHOBJ are directly in the menu bar.

  Imp : Improvement of the ToolTip facilities in xdata.
        The tooltips are now implemented for each xattribute
        in the editor widget. More precisly, when the mouse
        stays more than one second on an item of the editor
        widget, the classmethod getToolTip is called with
    the xattribute as argument. For instance, see the
        class Square in file templates/TECHOBJ_ROOT/src/polygon.py :

class Square(Polygon):

    __init__xattributes__ = [
        XAttribute("l", xtype=XFloat(open_min=0.0)),
        ]

    ...

    def _getToolTip(cls, target):
        if target is cls:
            from os import getenv
            resources_dir = getenv('TECHOBJ_ROOT_DIR') + '/share/salome/resources'
            text  = ''
            text += 'Image  : <img source="%s/TECHOBJ.png"><br>'%(resources_dir)
            text += 'Bold   : <b>Hello !!</b><br>'
            text += 'Italic : <i>Hello !!</i><br>'
            return text
        text  = ''
        text += 'GGGGG %s'%(target.name)
        return text

    getToolTip = classmethod(_getToolTip)

    pass

        CAUTION : For the tooltip for the entire class (I mean the
        tooltip required in the menu bar), getToolTip is called with
        the class as target (see the line "if target is cls")

------------------------------------------------------------------
Changes from 0.5.2 to 0.5.3 (2004/11/24):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  Bug: Incomprehensive bug with XNamedObject instance in
       generated python files (different comportment with
       the .py and the .pyc ...)
  Solution: The XNamedObject instances are kept in memory ...
            It solves the bug but I don't understand why !

o Salom interface (src/XDATA2SALOME directory):

  No modification

o Graphical interface (src/XDATAGUI directory):

  New imp: Introduction of the ToolTip facilities in xdata ...
           In gui, when the mouse stays more than one second
           on a menu Item, a function is called to obtain the
           tooltip ...
    o If the item corresponds to a subclass of XObject,
      the class method getToolTip is called (see the
      class Square in file templates/TECHOBJ_ROOT/src/polygon.py
      for an example)
    o Otherwise, a fonction getToolTip is searched in the python
      module where the item is defined, if this fonction exists
      it is called with the item as argument (see the file
      templates/TECHOBJ_ROOT/src/geometry.py for an example)
    The ToolTip is a structured text which seems to be very close
    to html, for instance :

    def _getToolTip(cls):
        from os import getenv
        resources_dir = getenv('TECHOBJ_ROOT_DIR') + '/share/salome/resources'
        text  = ''
        text += 'Image  : <img source="%s/TECHOBJ.png"><br>'%(resources_dir)
        text += 'Bold   : <b>Hello !!</b><br>'
        text += 'Italic : <i>Hello !!</i><br>'
        return text

    getToolTip = classmethod(_getToolTip)

    CAUTION : This facilities does not work on main items for the moment ...
              I mean the items which are in the menu bar.

------------------------------------------------------------------
Changes from 0.5.1 to 0.5.2 (2004/11/19):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  The "Move" popup target has been implemented
  (only in python gui not in Salom :( ) ...
  To use it :
  1. select a "root" object
  2. right click --> Move, a pointingHandCursor appears
  3. select another "root" object --> the object to move
     is moved BEFORE this one ...

  Tip : To move an object at last place, click on nothing
  in object browser (more precisly at bottom) at step 3

  The exported python files should be ok with your move ...

------------------------------------------------------------------
Changes from 0.5.0 to 0.5.1 (2004/11/16):
------------------------------------------------------------------

o Python kernel (src/XDATA  directory):

  Bug: Too much memory used when a lot of objects
       are created ...
  Solution: The instances are not kept in memory in
            batch mode (it is only necessary for gui
            mode).

------------------------------------------------------------------
Changes from 0.4.1 to 0.5.0 (2004/11/10):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  This part has been re-written ... Now, it's easier
  for developpers to intercept the qt part and to put
  personnal code ... OOoops the ring bells at CEA !!

o Python kernel (src/XDATA  directory):

  1. Optimisation : XType.__call__ is not intercepted

  2. Optimisation for XFloat done (To do : the others ...)

o Salom interface (src/XDATA2SALOME directory):

  1. Optimisation de la compilation des fichiers XXX_xdata.py
     (Gain d'un facteur 100 environ !!)

  2. Bug fixed : in XDATA_i.py (Save and restor)

------------------------------------------------------------------
Changes from 0.4.0 to 0.4.1 (2004/10/18):
------------------------------------------------------------------

o Graphical interface (src/XDATAGUI directory):

  Here is the main modification ...

  The "File --> Import" has been modified. This feature
  now launches a progress bar and the user file is imported
  in a thread ... It should allow to interact with the
  application during an import ...

  Caution : This developpement is quite attractive (a progress
  bar appear and the object are put in study during the import)
  but is very fragile :(

  Ask for contribution : I don't know threads (qt threads), lock and
  so on ... so any contributions on this point (and on other ones of
  course) are really welcome.

  The architecture is something like that:

  Main thread  -> Import Py ---> Progress Bar ---------- .......
                             |                    |
                             \/                   /\
                             |                    |
                    Thread   \-> Import ->  At each object  -------------> ..
                                        |   creation, a qt signal      |
                                        |   is send to update the      |
                                        /\   progress bar and put the  \/
                                        |   object in study (the main  |
                                        |   window is in main thread)  |


                                        |                              |
                                        --------------- < -------------/


o Python kernel (src/XDATA  directory):

  1. Bug fixed : The attributes passed to a xmethod
     are verified (0.4.0) and the result of the verif.
     is given to the developper method (0.4.1)
     Unittest : xobjectwithxmethodwithxstringintotest.py

  2. Internal dev : The context (for instance "local_gui")
     is split in a context ("clt" or "srv") and an
     interface ("bacth", "tui" or "gui")

  3. New dev. : XList (resp. XTuple) accept a tuple (resp.
     list) and convert it in list (resp. tuple).


o Salom interface (src/XDATA2SALOME directory):

  1. Bug fixed : in XDATA_i.py (python2corba_srv -->
     python2corba)

  2. Bug fixed : The tuples can go through the corba bus
     they are converted in list on client , then re-converted
     in list on server.

  3. Bug fixed : Empty dictionnary can go through corba bus

------------------------------------------------------------------
Changes from 0.3.5 to 0.4.0 (2004/10/08):
------------------------------------------------------------------

o Noyau python (rpertoire src/XDATA):

  1. x = XString(into=["toto", "titi"]) accepte
     maintenant les chaines de caractre dont la casse
     n'est pas la bonne et retourne l'item de into
     correspondant. Par exemple

     x("ToTo") retourne "toto"
     x("TITI") retourne "titi"

  2. Les arguments passs  une mthode dclare
     dans __object__xmethods__ sont vrifis.

  3. Correction du bug trouv par moi-mme :
     x = XList() accepte None dans la 0.3.5
     et renvoie [None]. Ca ne semble pas une
     bonne ide

  4. Les instances de array de Numeric Python
     n'ont pas d'attribut __class__ !! Le code
     de verification d'instance a t modifi
     en consquence ... (Merci  Gautier)

o Interfaage avec Salom (rpertoire src/XDATA2SALOME):

  Tout a t compltement refondu ... Ceux qui utilisent
  xdata dans Salom devrait essayer leur application et
  remonter les bugs.

  Attention, une modification majeure est apparue :
  Dans les versions prcdentes, tout tait pass sur
  le bus corba par object, maintenant les attributs
  dclars par XInt(), XFloat(), XString() sont passs
  en long, double, string ... Ceux qui ont fait des
  graphes de supervision vont devoir les modifier.

o Interfaces graphique (rpertoire src/XDATAGUI):

  Depuis la 0.3.5, OpenCascade a dvelopp dans cette
  partie (et pas moi :) ). La contribution d'OCC a t
  prise dans l'tat.

  1. Il y a maintenant un popup "Expand all" pour ouvrir
     toutes les branches d'un objet.
  2. Un diteur basique de list a t mis en place
  3. On peut maintenant crer des objets dans des objets
     (mais pour l'instant, seul Gautier sais comment
     faire, car ce n'est pas document)
  4. En dition d'objet, un popup "Default Value" permet
     de revenir  la valeur par dfaut d'un attribut.

  Tout ceci marche dans l'IHM python et dans Salom.

  A propos de l'IHM python, il est maintenant install
  dans le rpertoire bin de votre installation xdata
  et il s'appelle xdatagui. Pour le particulariser 
  votre modle de donnes, il faut le lancer par

  xdatagui --modules=DATAMODEL

  Il y a maintenant un menu "Modules" dans lequel est
  DATAMODEL. Pour activer DATAMODEL, il faut le
  selectionner. Cela permet de pouvoir utiliser plusieurs
  modle dans l'IHM ( la Salom). Exemple:

  xdatagui --modules=DATAMODEL,SOLVER

o Templates (rpertoire templates):

  Les templates peuvent maintenant tre install mme
  si Salom n'est pas sur votre systme. L'utilisation
  en python pur est donc possible.

------------------------------------------------------------------
Changes from 0.3.4 to 0.3.5 (2004/09/16):
------------------------------------------------------------------

o Correction d'un bug quand une XMethod est dclare dans
  une classe mais implmente dans une classe mre non
  xdata-ise !!

o Changement de la mthode pour trouver l'engine correspondant
   une classe (pour l'utilisation dans Salom). Disparition
  de tous les fichiers __module__class__engine__.py gnrs.

o Correction d'un bug quand une classe r-implmente la mthode
  __eq__ et que cette mthode est bogue.

o Portage sur python 2.3.x (le portage a t effectu sur
  fedora 2.90 -- fedora core 3 beta test 1)

o Les dpendances  MED ont t retires du template TECHOBJ.
  Elles ne sont plus ncssaires.

------------------------------------------------------------------
Changes from 0.3.3 to 0.3.4 (2004/09/08):
------------------------------------------------------------------

Modification majeure:

o Prise en compte du type de sortie des XMethod
  (toujours pas documente ...) dans les idl et
  dans la supervision.   La correction ne touche que
  ceux qui veulent jouer avec la supervision dans Salom ...

  La syntaxe d'une XMethod est:

  XMethod("toto",
          in_xattributes=[ ... ],
          out_xtype= ...,
          )

  Les attributs in_xattributes et out_xtype sont optionnels.
  Le out_xtype indique le type de sortie de la mthode.

Modification mineure:

o Les XTuple acceptent maintenant les listes et les
  transforment en tuple ...

------------------------------------------------------------------
Changes from 0.3.2 to 0.3.3 (2004/09/02):
------------------------------------------------------------------

Modification majeure:

o Implmentation par Mikhail Kazakov de la persistence de
  l'tude dans Salom

Modification mineure:

o Correction du bug "Appel au getXxxx() d'une classe parente
  dans le "getXxxx()" d'une classe (voir le test de non
  rgression xobjectinheritencegettest.py)

------------------------------------------------------------------
Changes from 0.3.1 to 0.3.2 (2004/07/27):
------------------------------------------------------------------

Modification majeure:

o Implmentation par Mikhail Kazakov de la persistence de
  l'tude dans Salom

Modification mineure:

o Correction du bug "Appel au getXxxx() d'une classe parente
  dans le "getXxxx()" d'une classe (voir le test de non
  rgression xobjectinheritencegettest.py)

------------------------------------------------------------------
Changes from 0.3.0 to 0.3.1 (2004/07/19):
------------------------------------------------------------------

Modification majeure:

o Correction d'un bug bloquant dans l'dition d'objets
  contenant d'autre objets  l'IHM ...

Modifications mineures:

o Li  la correction du bug. Changement de la signature
  des fonctions d'interceptions de l'IHM (de toute facon,
  la signature en est encore  un stade exprimental):

------------------------------------------------------------------
Changes from 0.2.6 to 0.3.0 (2004/07/16):
------------------------------------------------------------------

Les modifications mineures sont :

o Ajout d'un xtype XInputFileName drivant de XString
  (XInputFileName(suffix_into=['med', ...])...)
  Lorsque l'attribut le contenant est dit, un clic droit
  fait apparatre un menu popup "Browse"

o Les listes d'entiers, de flottant, ... peuvent tre
  entres dans l'IHM (en tapant : 1, 3, toto, 5.6)
  sans les "[" et "]"

o L'import/export a t amlior pour prendre en compte
  les objets construits dans le constructeur d'un autre
  objet (et ceci rcursivement).
  Notons qu'il n'est pas possible de faire cette manip'
   l'IHM pour le moment, mais qu'il est toujours possible
  d'importer un script python dans lequel il y a ce cas.
  Dans ce cas, la fonction "export" tait bugge, elle
  ne devrait plus l'tre.

o Optimisation de recherche de nom des XNamedObject
  (le gain en vitesse est au moins d'un facteur 20, mais
  il faut dire qu'avant c'tait vraiment un marteau-pilon ...)

o Corrections du bug qui arrive quand un objet est dit
   l'IHM et que la fentre est re-dimensionne
  (bug soulev par Mikhail) Plus prcisment, le bug
  concerne le scroll et celui-l, il faudra vrifier !

o None passe maintenant par le bus corba dans tous les
  sens :))

o ...

Les modifications majeures portent sur la mcanique de
lancement des fentres. Maintenant, lorsque une fentre
correspondant  une classe est demande, la METHODE DE
CLASSE (voir la fonctionalit "classmethod" de python)
nomme "createDialog" est appele ... Si le dveloppeur ne
redfini pas cette mthode de classe, c'est celle de
XObject qui est appele. Pour info, elle a cette tte:

def createDialog(cls, parent, instance_name, obj):
    message(cls, parent, instance_name, obj, cls="XObject")
    from xdatapropertyeditor import XGuiXObjectEditorDialog
    dialog = XGuiXObjectEditorDialog(cls, parent, instance_name, obj)
    return dialog

Les arguments sont :
o parent (la fenetre qt parente)
o obj (None si demande de cration, une instance de la
  classe si demande d'dition)
o instance_name (nom d'instance suggr si obj est None
  ou None si obj existe)

Ceci devrait permettre  un dvloppeur de plugger son ihm
dans xdata. Notez qu'il faut me retourner le dialog :)
et c'est xdata qui fait le dialog.show() entre autre.

Notez galement qu'il est possible d'avoir les lments
slectionns dans le browser (salom ou python) car la
fenetre parente emet des signaux qt  chaque modification
de la selection :

mw.emit(PYSIGNAL('browser_selection_changed'), (items, ))

avec en arguments les items slectionns (Pour plus de
prcision, lire le code ou me demander :))


Si le dveloppeur dcide d'utiliser la fentre par dfaut,
il lui est toujours possible de redfinir le comportement
d'dition d'un item car c'est la mthode de classe
"createEditor" qui est appele. Pour info, la mthode
par dfaut est:

def createEditor(cls, parent, text, xattribute):
    message(cls, parent, text, xattribute)
    xtype = xattribute.xtype
    #
    from xtypes import XInt, XString
    if isinstance(xtype, (XInt, XString)):
        if xtype.into:
            editor = XGuiValueIntoEditor(parent, text, xattribute)
            return editor
        pass
    #
    editor = XGuiValueEditor(parent, text, xattribute)
    return editor

La encore, il faut retourner l'diteur car il me faut ensuite
le redimensionner et l'afficher ...

Il est donc possible d'intercepter l'editeur et donc de lui
ajouter des popups, etc (Pour info, c'est ce que j'ai fait
pour XInputFileName et le menu "browse"). Ceci dit, il faut
un peu connaitre qt ...


J'espere qu'il n'y a pas trop de rgrssions par rapport 
la 0.2.6. Dans le noyau, il ne devrait pas y en avoir mais
 l'IHM, c'est moins sur ...

------------------------------------------------------------------
Changes from 0.2.5 to 0.2.6 (2004/07/06):
------------------------------------------------------------------

o Correction of bugs discussed in xdata mailing list.

------------------------------------------------------------------
Changes from 0.2.4 to 0.2.5 (2004/07/01):
------------------------------------------------------------------

o Optimization: This version is about 3 times speeder compared
  to 0.2.4 (which was 3 times speeder compared to 0.2.3 (which was
  2.5 times speeder compared to 0.2.2)) :) .
  The way to discover name of XNamedObject is still not optimized,
  thus it is much longer to use XNamedObject compared to XObject.

  The benchmarks have been done on a test case which constructs
  202 classes and 2091 objects on those classes ...

o Correcions of bug discussed in xdata mailing list.

------------------------------------------------------------------
Changes from 0.2.3 to 0.2.4 (2004/06/28):
------------------------------------------------------------------

o Optimisation ... Le gain est d'un facteur 3 par rapport
   0.2.3.

o Corrections de bug mineurs dont l'acces aux attributs
  d'une classe dans le GUI.

------------------------------------------------------------------
Changes from 0.2.2 to 0.2.3 (2004/06/18):
------------------------------------------------------------------

o Dbut d'optimisation pour pouvoir crer un grand nombre
  de classes et d'object. Pour l'instant, le gain  l'import
  est d'un facteur 3 par rapport  0.2.2.

o Cration d'un template MEDFIELDCREATOR qui montre comment
  utiliser xdata en interaction avec MED en python et en
  corba de manire "transparente".

------------------------------------------------------------------
Changes from 0.2.1 to 0.2.2 (2004/05/27):
------------------------------------------------------------------

1. Problme lors de l'hritage de XNamedObject
   (le cas test fourni plante avec la 0.2.0 mais
   et corrig avec la 0.2.2)

2. Installation du template TECHOBJ possible hors
   de l'environnement Salome (cela devrait marcher
   avec des warnings mais aller au bout ...)

------------------------------------------------------------------
Changes from 0.2.0 to 0.2.1 (2004/05/26):
------------------------------------------------------------------

------------------------------------------------------------------
Changes from 0.1.0 to 0.2.0 (2004/05/25):
------------------------------------------------------------------

La principale volution concerne l'intgration  Salome2.
Vous pouvez maintenant intragir avec vos donnes :

o en python pur
o en python GUI
o en corba pur (salome batchmode)
o en python qui encapsule du corba (salome batchmode)
o via l'interface applicative de salome
o via le module de supervision de salome (!!)

Vous pouvez galement dfinir des objets contenant
des rfrences  d'autres objects salome (exemple :
un maillage issu du module MED)

Tout ceci est document dans le chapitre :

"Integration in the Salome2 environnement"

------------------------------------------------------------------
Changes from 0.0.1 to 0.1.0 (2004/04/06):
------------------------------------------------------------------

La principale volution est que tout a t r-implment :) .
Plus prcisment, xdata a t re-dvelopp en utilisant xdata ...
ce qui rend trs facile la customisation, l'ajout de verification
de type, etc. Voir le chapitre "Customization of xdata ..." de
la documentation pour plus de prcisions.

La seconde volution concerne l'aspect gui python. Le popup 'Edit'
est implment et un popup 'Delete' a t ajout. De plus, si le
wrapping python de vtk n'est pas disponible, un widget vide est
affich  la place du widget vtk (ce qui permet d'utiliser le gui
sans vtk).

L'intgration dans Salome via corba n'est pas documente
dans cette version.

------------------------------------------------------------------
Changes from 0.0.0 to 0.0.1 (2004/04/06):
------------------------------------------------------------------

Elle contient une documentation, une base de test
et un repertoire templates qui montre un exemple
d'intgration dans un GUI python (il faut les wrapping
python de qt et de vtk)

L'intgration dans Salome via corba n'est pas documente
dans cette version.

------------------------------------------------------------------
Changes from scratch to 0.0.0 (2004/03/24):
------------------------------------------------------------------

Bonjour  tous,

Ce mail pour vous signaler que la maquette xdata
release 0.0.0 (issu d'un travail effectue dans
le cadre du groupe de travail NEWDATA de Salome2)
est disponible.

Elle contient une documentation et une base de test.

Les aspects GUI python et intgration dans Salome
via corba ne sont pas documents dans cette version.
