2002-07-30 Thomas Koester * SciParam/control.py (ParameterDialog), SciParam/notebook.py (ParameterNotebookDialog): added pos and size arguments, removed vbox.Fit(self) to stay at given size, style is now passed correctly to wxDialog. * doc/classes.html: documented modules control and notebook. * SciParam/range.py (SetRange): don't convert range to lowercase. (GetRange): return internal representation of range. (__eq__): use new GetRange(). (__str__): don't use new GetRange(). (_test): test __eq__(). * doc/classes.html: documented modules range, distribution, parameter. * setup.py: bumped version to "0.9.0" 2002-07-29 Thomas Koester * doc/guielements.html: description of features. * SciParam/parameter.py (SciParam): description is now optional. * doc/create_parameters.html: added some content. * TODO: new todos. * SciParam/notebook.py (ParameterNotebookDialog): don't use SetDimensions. (_TestApp): use list of tuples instead of lists for pages. * SciParam/control.py (ParameterGrid, ParameterDialog), SciParam/notebook.py (ParameterNotebookPage, ParameterNotebook, ParameterNotebookDialog): number of columns defaults to 1 now. * doc/examples/parameter_example.py, doc/examples/notebook_example.py, doc/create_parameters.html, doc/create_gui.html: added sample code. * doc/classes.html, doc/create_gui.html, doc/create_parameters.html, doc/guielements.html, doc/index.html, doc/install.html: added colors for html page and syntax highlighting. 2002-07-26 Thomas Koester * doc/index.html: Page listing documentation and links. Added license section. * setup.py: changed thuban reference to 'the software', added CVS keywords. * doc/install.html: installation instructions * doc/guielements.html, doc/create_parameters.html, doc/create_gui.html, doc/classes.html: documentation templates * SciParam/control.py (ParameterGrid): find location of required.xpm via __file__ variable. Set __file__ = sys.argv[0] if run as script. * doc/guielements.html: added screenshots and descriptions. * doc/index.html, doc/install.html, doc/create_parameters.html, doc/guielements.html: changed "Using the GUI elements" to "SciParam GUI features". * doc/shots/choice_long.png, doc/shots/choice_short.png, doc/shots/details.png, doc/shots/dialog.png, doc/shots/distributed.png, doc/shots/error.png, doc/shots/notebook.png, doc/shots/required_icon.png, doc/shots/warning.png: new linux screenshots. 2002-07-25 Bernhard Herzog * setup.py: Add SciParam/required.xpm (sciparam_install_data): Our own install_data command to put the xpm-file into the package directory on installation 2002-07-25 Thomas Koester * SciParam/control.py (ParameterGrid): always load required.xpm from package directory. * TODO: new file * MANIFEST.in: added TODO, doc/ and SciParam/required.xpm * README: filled with content. * SciParam/control.py, SciParam/notebook.py: moved declaration of sample parameters to _TestApp.OnInit(), to make setlocale happen before reading floats. 2002-07-24 Thomas Koester * SciParam/control.py (ParameterDetailsBox.connect_distribution): don't resize distChoice, because this doesn't look good with wxPython 2.2.9 on Linux. * SciParam/parameter.py (SciParam), SciParam/control.py (ParameterGrid): added a required flag to parameters, which will be displayed in front of the entry controls. * SciParam/required.xpm: new bitmap to show required flag. * SciParam/control.py (ParameterGrid): added tooltip to icon. * SciParam/control.py, SciParam/notebook.py: new sample parameters. 2002-07-23 Thomas Koester * SciParam/distribution.py (Distribution.parameter): mapping from distribution type to texts for needed parameters. * SciParam/parameter.py (convert): now raises ValueError if it can't convert a string or number to internal representation. (normalize): convert string to normalized string or return default. (DistParam): many fixes. (ChoiceParam): now keys and (unique) values are valid for setting a value. * SciParam/control.py (ParameterDistributionDialog): new dialog: input of distribution parameters like mean value and std. deviation (ParameterDetailsBox.OnDistChoice): call ParameterDistributionDialog for new distribution parameters. (ParameterValidator.Validate): check for minimum value in another TextCtrl; needed for uniform distribution. (ParameterCtrl.OnKillFocus, ParameterCtrl.SetValue): new handling for changes in parameter module. (ParameterChoice1): removed. * SciParam/control.py (ParameterValidator.Validate): catch exceptions for invalid characters and display an error dialog. Add distribution type where appropriate. Removed ranges from error/warning dialog to keep it simple. * SciParam/parameter.py (DistParam.is1distinrange): check if distribution is valid/usual; called by is1inrange. * SciParam/parameter.py (ChoiceParam): support for long lists. * SciParam/control.py (ParameterLongChoice): revived ParameterChoice1 to support lists of choices which are too long for radiobuttons. (ParameterDetailsBox): initialize distChoice with long list of Distribution.types, because Windows doesn't resize it later. Resize distChoice after changing the list of choices. 2002-07-19 Thomas Koester * SciParam/control.py, SciParam/notebook.py: adjust Layout for long names and descriptions of parameters. * SciParam/control.py: preliminary support for selecting distribution type with DistParam parameters. * SciParam/__init__.py: added DistParam and Distribution. * SciParam/notebook.py: added tests for DistParam. * SciParam/distribution.py: when initialized with another instance as argument, return a copy of this Distribution instance. * SciParam/parameter.py: many changes for DistParam.convert() and DistParam.string(). is1valid and is1usual now call is1inrange(). * SciParam/control.py (ParameterCtrl.SetValue): more support for DistParam. * SciParam/parameter.py: don't return 'unknown' for converting of invalid values. 2002-07-18 Thomas Koester * SciParam/__init__.py: import only needed classes. * SciParam/parameter.py, SciParam/control.py: removed support for obsolete Parameter class. * SciParam/distribution.py: new class Distribution * SciParam/parameter.py: new class DistParam * SciParam/control.py: tests for DistParam * SciParam/control.py, SciParam/notebook.py: find parameters from list instead of from controls in test. 2002-07-17 Thomas Koester * SciParam/control.py: alternative implementation of ParameterChoice and ParameterChoiceValidator with wxRadioButton; check if using ParameterChoiceValidator is safe. * SciParam/control.py (ChoiceParam): made refocus work. 2002-07-16 Thomas Koester * SciParam/parameter.py: renamed xyzParameter to xyzParam. * SciParam/control.py (_TestApp), SciParam/notebook.py (_TestApp): tests with FloatParam and IntParam. * SciParam/control.py (ParameterDetailsBox): don't use wxID_APPLY as ID for 'Apply Default', because this makes Validate shout. * SciParam/parameter.py (SciParam): moved convert() from FloatParam, __setattr__() always calls convert() for setting value now. * SciParam/parameter.py (FloatParam, IntParam): now support long integer values. * SciParam/parameter.py (ChoiceParam): implemented * SciParam/control.py (_TestApp), SciParam/notebook.py (_TestApp): tests with ChoiceParam. * SciParam/control.py (ParameterGrid): use ParameterChoiceCtrl. (ParameterChoiceCtrl): Control for ChoiceParam. (ParameterChoiceValidator): Validator for ParameterChoiceCtrl, this still crashes with wxWindows 2.2.9.2, but works with 2.3.x * SciParam/parameter.py (ChoiceParam): use self.string() instead of str() to handle unknown values. 2002-07-15 Thomas Koester * SciParam/parameter.py (_test): use english instead of german. * SciParam/range.py, SciParam/parameter.py: seperated Range class from parameter module. * SciParam/parameter.py: rewritten to support more than just floats: FloatParameter and StringParameter should already work. New methods: isvalid(), isusual(), range() * SciParam/control.py (ParameterDetailsBox.connect): use new Parameter method range (ParameterValidator.Validate): use new methods isvalid, isusual * SciParam/parameter.py: use empty string as default for unit and comment. (SciParameter.isunknown): new method; isvalid and isusual now return true if value is unknown. (SciParameter.isunknown): FloatParameter will now convert strings on it's own. * SciParam/control.py (ParameterCtrl.GetValue): removed, this is handled by FloatParameter now. (ParameterCtrl.SetValue): removed float conversion. (ParameterDetailsBox.OnButton): use str(default) for SetValue * SciParam/control.py (ParameterGrid.AddParameter): now handles real parameters in a list. * SciParam/control.py (_TestApp), SciParam/notebook.py (_TestApp): added test with StringParameter. * SciParam/control.py (ParameterValidator.Validate, ParameterCtrl.SetValue, ParameterCtrl.OnKillFocus): update "unknown" and warning/error colors in SetValue, not in Validate. * SciParam/parameter.py (IntParameter): new class for integers. * SciParam/range.py (Range): added support for scientific notation. 2002-07-13 Thomas Koester * SciParam/control.py (ParameterGrid.__init__): replaced ugly while loop with for+range(). 2002-07-11 Thomas Koester * SciParam/control.py (ParameterValidator.Validate): optional argument 'errordialog' to disable popup windows on errors/warnings. (ParameterCtrl.OnKillFocus): do validation without popups here to change the control background color to yellow/red on warning/error. (ParameterCtrl.OnSetFocus): removed validation. * SciParam/notebook.py (ParameterNotebookDialog.OnButtonOK): handle validation inside the dialog because automatic recursive validation is currently broken in wxPython. * SciParam/control.py (ParameterCtrl.OnKillFocus): unset selection when control looses focus. * SciParam/notebook.py (ParameterNotebookDialog.OnSetFocus): set input focus to a ParameterCtrl when the notebook gets focus. * SciParam/control.py (ParameterDetailsBox.OnKillFocus): check if there already is a ParameterCtrl. * SciParam/parameter.py: use float("1e1000") instead of 1e1000 for infinity to make Windows Python bytecode compiler happy. * SciParam/control.py (ParameterDetailsBox.connect): don't show empty descriptions. * SciParam/parameter.py (Range.__eq__, Range.__ne__): added equal and not-equal comparison methods. * SciParam/control.py (ParameterDetailsBox.connect): don't show unlimited ranges. 2002-07-10 Bernhard Herzog * MANIFEST.in, setup.py: New files for distutils * MANIFEST.in: Add ChangeLog * SciParam/__init__.py: Turn SciParam into an actual Python package 2002-07-10 Thomas Koester * SciParam/control.py (ParameterDialog): number of columns changable * SciParam/notebook.py: Place Ok and Cancel buttons outside notebook. (_TestNotebook): renamed to ParameterNotebook; loop to generate more than one notebook page. (_TestFrame, _TestPanel): dropped in favour of ParameterNotebookDialog. (ParameterNotebookDialog): do things the right way * SciParam/control.py (ParameterGrid.refocus), SciParam/notebook.py (ParameterNotebook.OnNotebookPageChanged): Set focus to the previously active control, if it is available. * SciParam/notebook.py (ParameterNotebookPage.__init__): call InitDialog to send parameter values to their controls. (ParameterNotebook.OnNotebookPageChanging): Validate parameters before changing tabs. (ParameterNotebookDialog): added third sample notebook page. * SciParam/control.py (ParameterCtrl.OnSetFocus): set focus to next control after warning range error message is answered with 'Yes'. * SciParam/notebook.py (ParameterNotebookDialog.__init__, _TestApp.OnInit): Print parameter values returned by dialog. 2002-07-09 Thomas Koester * SciParam/control.py (_TestFrame): dropped in favour of ParameterDialog. (_TestApp): use ParameterDialog to handle parameter list. (ParameterDialog): use vbox.Fit method to make Windows draw the window correctly. 2002-06-20 Jan-Oliver Wagner * ChangeLog: started