My scenario is that I have an edit part called MyEditPart, which has a
MyFigure. Inside the figure, it keeps track of its child figures (I'm
calling them marker figures, as they are marker-related decorators).
When I hover the mouse over MyFigure, it gives me the tool tip text for
MyFigure. And when I hover over one of the marker figure which is still
belong to MyFigure, it continues to show tool tip text for MyFigure.
I have two listeners:
1) on MyEditPart to listen to mouse motion on the figure (need to set it
on the edit part level, so it knows the model of the edit part)
protected MouseMotionListener fMouseMotionListener = new
MouseMotionListener.Stub() {
public void mouseHover(MouseEvent me)
{
if (me.getSource().equals(getFigure())) {
String hoverText =
HoverHelperManager.getHoverText(getPropertyMapModel());
if (hoverText == null)
getFigure().setToolTip(null);
else
getFigure().setToolTip(new Label(hoverText));
}
}
};
2) on MyFigure to listen to mouse motion on the marker figures
protected MouseMotionListener fMouseMotionListner = new
MouseMotionListener.Stub() {
public void mouseHover(MouseEvent me)
{
if (me.getSource() instanceof MarkerImageFigure) {
IMarker marker = ((MarkerImageFigure)me.getSource()).getMarker();
String hoverText = HoverHelperManager.getHoverText(marker);
if (hoverText == null)
setToolTip(null);
else
setToolTip(new Label(hoverText));
}
}
};