I was thinking that when the user selects a model element that we immediately call the model subsystem to determine if it is editable. If not then we call a setEnabled(false) method on the prop panel that will iterate through all controls and set their enablement status. That would immediately indicate to the user that the element is not editable by the greyed out fields.
I'd need to build something into FigNodeModelElement and FigEdgeModelElement to do similar there. A model subsystem method such as isEditable(Object modelElement) would be useful. It may be that the model subsystem should also reject changes in some way should some other system try to call its mutators but I was hoping that the GUI would indicate this to the user. Let me know if you have any ideas and I'm happy to try the GUI implementation. Bob. On 08/04/2008, Tom Morris <[EMAIL PROTECTED]> wrote: > On Mon, Apr 7, 2008 at 7:52 PM, Bob Tarling <[EMAIL PROTECTED]> wrote: > > http://argouml.tigris.org/issues/show_bug.cgi?id=4994 > > > > Any suggestions on the best way of testing whether a model element is > > part of profile or the user editable model? > > > I would suggest that the test should be against whether something is > part of the primary model or not. This would cover not only ArgoUML > profiles, but XMI files which contain external references to other XMI > files. I don't think we want to require the application to handle > this. Instead there should be a way to load things "read-only" that > the Model subsystem enforces. The trick will be to find something > which is not too expensive. > > The alternative way to do this, which is less satisfactory from a user > point of view, is to handle notifying the user when it's time to save > the file and ask if they want the other linked files to be written out > as well. This would be pretty straightforward to handle, but isn't as > nice for the user. > > Tom > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
