protected boolean isSamePlace(Place newPlace, Place menuPlace) {
    if (newPlace == null || menuPlace == null) {
      return false;
    }

    if (newPlace instanceof EntityProxyPlace && menuPlace instanceof EntityProxyPlace) {
      EntityProxyPlace newEntityPlace = (EntityProxyPlace) newPlace;
      EntityProxyPlace menuEntityPlace = (EntityProxyPlace) menuPlace;
      return newEntityPlace.getProxyClass().equals(menuEntityPlace.getProxyClass());
    } else if (newPlace instanceof EntitySearchPlace && menuPlace instanceof EntitySearchPlace) {
      EntitySearchPlace newEntityPlace = (EntitySearchPlace) newPlace;
      EntitySearchPlace menuEntityPlace = (EntitySearchPlace) menuPlace;
      return newEntityPlace.getProxyClass().equals(menuEntityPlace.getProxyClass());
    }
    return newPlace.getClass().equals(menuPlace.getClass());
  }