I don't know if there is an easier path to get to the
details, but I customized ActionFigure and
RoundedRectangleBorder. I added a constructor to
RoundedRectangleBorder, so I could get the "parent"
ActionFigure.
private String shapeType = ""; //TODO: use enum
...
public void paint(IFigure figure, Graphics graphics, Insets
insets) {
if
(this.parentFigure != null &&
this.parentModelImpl==null) {
WEEditor
editor = GeneralHelper.getActiveInstance();
for
(ActivityNode an :
editor.getCurrentActivitySheet().getActivityModel().getNodes())
{
for
(Adapter eAdapters : an.eAdapters()) {
if
(eAdapters instanceof EditPartAdapter) {
EditPartAdapter
epa = (EditPartAdapter) eAdapters;
if
(epa != null && epa.getEditPart() instanceof
ActionEditPart) {
ActionEditPart
aep = (ActionEditPart) epa.getEditPart();
if
(this.parentFigure==aep.getFigure()) {
this.parentModelImpl
= (ActionImpl) aep.getModel();
//figure
out what type of aspect this shape has
for
(Aspect aspect :
AspectManager.INSTANCE.getAspects(this.parentModelImpl)) {
if
("Callflow VUI".equals(aspect.getId())) {
if
(AspectManager.INSTANCE.getAspectInstance(parentModelImpl,
aspect)!=null)
shapeType
= "tel";
}
}
}
}
}
}
}
}
...
graphics.setBackgroundColor(shapeType.equals("tel")?dialogColor:
plainColor);
...
Now is the perfect time for someone to say, "why didn't you
use x - it's one line of code?" ;-)
Eric