@Override
 public IFigure getToolTip() {
   if (super.getToolTip() == null && Preferences.doShowViewTooltips()) {
     setToolTip(new ToolTipFigure());
   }
   return Preferences.doShowViewTooltips() ? super.getToolTip() : null;
 }
  @Override
  public IFigure getToolTip() {
    if (!Preferences.doShowViewTooltips()) {
      return null;
    }

    ToolTipFigure toolTipFigure = (ToolTipFigure) super.getToolTip();

    if (toolTipFigure == null) {
      toolTipFigure = new ToolTipFigure();
      setToolTip(toolTipFigure);
    }

    String text = ArchimateLabelProvider.INSTANCE.getLabel(getDiagramModelObject());
    toolTipFigure.setText(text);

    if (fDiagramModelObject instanceof IDiagramModelArchimateObject) {
      IArchimateElement element =
          ((IDiagramModelArchimateObject) fDiagramModelObject).getArchimateElement();
      String type = ArchimateLabelProvider.INSTANCE.getDefaultName(element.eClass());
      if (!StringUtils.isSet(text)) { // Name was blank
        toolTipFigure.setText(type);
      }
      toolTipFigure.setType(
          Messages.AbstractDiagramModelObjectFigure_0 + " " + type); // $NON-NLS-1$
    }

    return toolTipFigure;
  }
  @Override
  public IFigure getToolTip() {
    if (fTooltip == null && Preferences.doShowViewTooltips()) {
      fTooltip = new MultiToolTipFigure();
      setToolTip(fTooltip);
    }

    if (fTooltip == null || !Preferences.doShowViewTooltips()) {
      return null;
    }

    String notes = getDiagramModelObject().getNotes();
    if (StringUtils.isSet(notes)) {
      fTooltip.setText(notes);
    } else {
      fTooltip.setText(Messages.CanvasStickyFigure_0);
    }

    return fTooltip;
  }