In PathVisio(3?) the core.model communicates via fireObjectModifiedEvent() which is a custom method similar to firePropertyChange() used in typical MVC application design.
Used in Set methods throughout Pathway Elements:
fireObjectModifiedEvent(PathwayElementEvent.createSinglePropertyEvent(this, StaticProperty.LINETHICKNESS));
However because of the hierarchical architecture implemented in libGPML, set methods for graphics properties (e.g. lineColor) are nested (e.g. in LineStyleProperty). When fireObjectModifiedEvent() is called from LineStyleProperty, "this" will be the LineStyleProperty object rather than the PathwayElement. LineStyleProperty also does not hold a reference to the PathwayElement it belongs.
TODO:
better understand the how fireObjectModifiedEvent() works
possible solution 1: create set methods for nested graphics properties in parent pathway element. This will duplicate code and is not too intuitive.
possible solution 2: override equals and hashcode methods for LineStyleProperty and fireObjectModifiedEvent() when setting LineStyleProperty.
look into MVC and overall how to integrate with pathVisio4
In PathVisio(3?) the core.model communicates via fireObjectModifiedEvent() which is a custom method similar to firePropertyChange() used in typical MVC application design.
Used in Set methods throughout Pathway Elements:
fireObjectModifiedEvent(PathwayElementEvent.createSinglePropertyEvent(this, StaticProperty.LINETHICKNESS));
However because of the hierarchical architecture implemented in libGPML, set methods for graphics properties (e.g. lineColor) are nested (e.g. in LineStyleProperty). When fireObjectModifiedEvent() is called from LineStyleProperty, "this" will be the LineStyleProperty object rather than the PathwayElement. LineStyleProperty also does not hold a reference to the PathwayElement it belongs.
TODO: