/*
   * (non-Javadoc)
   *
   * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
   */
  public Image getImage(Object objects) {
    Node node = null;
    if (objects == null || objects.equals(StructuredSelection.EMPTY)) {
      return null;
    }
    if (!(objects instanceof IStructuredSelection)) {
      return null;
    }
    final boolean[] multiple = {false};
    Object object = getObject(objects, multiple);
    if (object == null) {
      return null;
    }

    if ((object instanceof NodeTreeEditPart)) {
      node = (Node) ((NodeTreeEditPart) object).getModel();
    } else {
      if (object instanceof NodeReturnsTreeEditPart) {
        node = lastNode;
      } else {
        if (object instanceof ProcessPart) {
          return ImageProvider.getImage(ECoreImage.PROCESS_ICON);
        }
        if (object instanceof ConnectionPart) {
          return ImageProvider.getImage(EImage.RIGHT_ICON);
        }
        if (object instanceof NoteEditPart) {
          return ImageProvider.getImage(ECoreImage.CODE_ICON);
        }
        if (object instanceof ConnLabelEditPart) {
          return ImageProvider.getImage(EImage.RIGHT_ICON);
        }
        if ((object instanceof NodeLabelEditPart)) {
          node = ((NodeContainer) ((NodeLabelEditPart) object).getParent().getModel()).getNode();
        }
        if (!(object instanceof NodePart)) {
          return null;
        }
        if (node == null) {
          node = (Node) ((NodePart) object).getModel();
        }
      }
    }
    if (lastNode != node) {
      lastNode = node;
    }
    return CoreImageProvider.getComponentIcon(node.getComponent(), ICON_SIZE.ICON_24);
  }