public Integer getOrder() {
    getComponent()
        .getDocument()
        .getTransactionManager()
        .readAccess(
            new Runnable() {
              public void run() {
                targetComponent = new WeakReference<DesignComponent>(getTargetComponent());
              }
            });

    if (targetComponent == null)
      throw new IllegalStateException(getComponent() + " has no target component"); // NOI18N

    Collection<? extends ActionsPresenter> presenters =
        targetComponent.get().getPresenters(ActionsPresenter.class);

    for (ActionsPresenter presenter : presenters) {
      List<Action> pa = presenter.getActions();
      for (Action action : pa) {
        if (action == null) continue;

        if (actionToInherit == action.getClass()) {
          return presenter.getOrder();
        }
      }
    }

    return null;
  }