@Override
  public void execute() throws Exception {
    final String theName = getName();
    if (getNeedConfirmation()) {
      UnicaseConfirmationDialog.show(
          UI.getCurrent(),
          theName + " işlemini yapmak istediğinizden emin misiniz ?",
          new Listener() {

            public void onClose(ConfirmDialog dialog) {
              if (dialog.isConfirmed()) {
                // Confirmed to continue
                try {
                  if (isCheckLock()) {
                    if (!((IEntity) controller.getEntity()).isLocked()
                        || (((IEntity) controller.getEntity()).getCk_owner() != null)
                            && !(((IEntity) controller.getEntity()).getCk_owner().isLocked()))
                      operate(theName);
                    else
                      Notification.show(
                          "Ekran verileri kilitlenmistir. Yaptiginiz degisiklikler uygulanmayacaktir. Kilidi kaldirmak icin sistem yoneticiniz ile gorusunuz.",
                          Type.ERROR_MESSAGE);
                  } else operate(theName);
                } catch (Exception e) {
                  e.printStackTrace();
                  Notification.show("HATA : " + e.getMessage(), Type.ERROR_MESSAGE);
                }
              }
            }
          });
    } else {
      try {
        if (isCheckLock()) {
          if (!((IEntity) controller.getEntity()).isLocked()
              || (((IEntity) controller.getEntity()).getCk_owner() != null)
                  && !(((IEntity) controller.getEntity()).getCk_owner().isLocked()))
            operate(theName);
          else
            Notification.show(
                "Ekran verileri kilitlenmistir. Yaptiginiz degisiklikler uygulanmayacaktir. Kilidi kaldirmak icin sistem yoneticiniz ile gorusunuz.",
                Type.ERROR_MESSAGE);
        } else {
          operate(theName);
        }
      } catch (Exception e) {
        Notification.show("HATA : " + e.getMessage(), Type.ERROR_MESSAGE);
      }
    }
  }
  public void operate(String theName) throws Exception {
    if (controller.getEntity() != null) view.setViewToEntity();
    Method method = null;

    try {
      method = controller.getClass().getMethod(theName, controller.getEntity().getClass());
      if (method != null) method.invoke(controller, controller.getEntity());
      log();
      executeAfterController();
    } catch (Exception e) {
      Notification.show(
          theName + " Islemi Sirasinda Hata Olustu. " + e.getMessage(), Type.ERROR_MESSAGE);
      throw e;
    }
  }