﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
2079	OMEdit does not handle replaceable classes and components	Francesco Casella	Adrian Pop	"Many models in the MSL and in other Modelica libraries heavily rely on replaceable classes and components. One example could be the Modelica.Fluid.Machines.Pump model, which contains three replaceable functions for the pump characteristic curves, or the Modelica.Fluid.Vessels.ClosedVolume, which contains a replaceable model for the heat transfer model.

As of today, these replaceable classes and components are simply ignored by OMEdit, making the models that contain them totally unusable, unless one knows exactly how the model is built internally and writes the appropriate redeclare statement manually - this restricts the usage of those parts of the MSL library to their developers, which is obviously not a good idea.

For a good user experience, two features are necessary. First of all, for each replaceable class or component, the user should be able to select a class which is compatible with the constraining class, either specified explicitly by the choices annotation (see Section 7.3.4 of the language specification), or by the choicesAllMatching annotation, which should also become part of the spec, as it is widely used in the MSL.

Second, once a specific class has been selected, it should be possible to set its parameters, and possibly to recursively set its replaceable classes, as one replaceable class can contain another replaceable class.

In Dymola, the first choice is made by a drop-down list, while the second can be made by clicking on a button side-by-side with the list, which opens a new window containing all the parameters and replaceable classes of the selected class. Of course we can do it differently, but I don't see many other options to handle this.
"	enhancement	closed	blocker	1.16.0	OMEdit	trunk	fixed		dersh@… Andrea Bartolini
