public void OKbuttonActionPerformed() throws KExceptionClass {

    try {

      KMetaUtilsClass.cursorWait((JDialog) dialog);

      KMetaUtilsClass.setProgressBarValue1(25);
      dialog.saveBrowserChanges();

      if (dialogMode == KDialogInterface.CREATE_NEW_MODE) {

        KMetaUtilsClass.setProgressBarValue1(50);
        pushBack();

        KMetaUtilsClass.setProgressBarValue1(75);
        dialog.setupTables(businessObjectOID);

      } else if (dialogMode == KDialogInterface.EDIT_MODE) {

        KMetaUtilsClass.setProgressBarValue1(75);
        update();
      }

    } finally {

      KMetaUtilsClass.setProgressBarValue1(100);
      KMetaUtilsClass.cursorNormal((JDialog) dialog);
    }
  }
  public void update() throws KExceptionClass {

    try {

      KBusinessObjectClass businessObject = pdcClassType.newInstance();

      KMetaUtilsClass.setProgressBarValue1(33);
      businessObject.materializeFromDisplay(
          visualWidgetContainer, nonVisibleWidgets, visualMappingMode);

      if (EventCallback != null) EventCallback.preUpdate(businessObject);

      KMetaUtilsClass.setProgressBarValue1(75);
      businessObject = persistentObjectManager.update4(businessObjectOID, businessObject);

      if (EventCallback != null) EventCallback.postUpdate(businessObject);

      edit();

    } catch (Exception error) {

      throw new KExceptionClass("Could not create new object", error);
    }

    KMetaUtilsClass.setProgressBarValue1(100);
  }
  public void newObject() throws KExceptionClass {
    try {

      if (EventCallback != null) EventCallback.preNewObject();

      KBusinessObjectClass businessObject = pdcClassType.newInstance();

      KMetaUtilsClass.setProgressBarValue1(25);
      businessObject = persistentObjectManager.createNew4(businessObject);

      // map foreing keys
      KMetaUtilsClass.setProgressBarValue1(50);
      if (buisnessObjectForeingOIDS != null) {
        Set listOfForeingKeys = buisnessObjectForeingOIDS.keySet();
        Iterator foreingKeyIterator = listOfForeingKeys.iterator();
        while (foreingKeyIterator.hasNext()) {
          String nextForeingKeyName = (String) foreingKeyIterator.next();
          businessObject.setField(
              nextForeingKeyName, buisnessObjectForeingOIDS.get(nextForeingKeyName));
        }
      }

      KMetaUtilsClass.setProgressBarValue1(75);
      businessObject.displayVisualize(visualWidgetContainer, nonVisibleWidgets, visualMappingMode);

      if (EventCallback != null) EventCallback.postNewObject(businessObject);

    } catch (Exception error) {
      throw new KExceptionClass("Could not create new object", error);
    }

    KMetaUtilsClass.setProgressBarValue1(100);
  }
  public long pushBack() throws KExceptionClass {

    try {

      KBusinessObjectClass businessObject = pdcClassType.newInstance();

      KMetaUtilsClass.setProgressBarValue1(25);
      businessObject.materializeFromDisplay(
          visualWidgetContainer, nonVisibleWidgets, visualMappingMode);

      if (EventCallback != null) EventCallback.prePushBack(businessObject);

      KMetaUtilsClass.setProgressBarValue1(50);
      businessObject = persistentObjectManager.push_back4(businessObject);
      businessObjectOID = businessObject.getOID();

      KMetaUtilsClass.setProgressBarValue1(75);
      dialogMode = KDialogInterface.EDIT_MODE;

      if (EventCallback != null) EventCallback.postPushBack(businessObject);

      edit();

    } catch (Exception error) {

      throw new KExceptionClass("Could not create new object", error);
    }

    KMetaUtilsClass.setProgressBarValue1(100);

    return (businessObjectOID);
  }
  /** Execute the query and get the results. */
  public void load(int startRow, int length) throws KExceptionClass {
    bindDBtransaction(
        dbTransactionClient,
        " SELECT " + selectSQL + " FROM " + tableName + finalWhere + finalOrder);

    // Query DB
    try {

      KMetaUtilsClass.cursorWait(parentWindow);
      KMetaUtilsClass.setProgressBarValue1(60);

      dbTransactionClient.executeQuery(startRow, length);

      KMetaUtilsClass.setProgressBarValue1(100);

    } finally {
      KMetaUtilsClass.cursorNormal(parentWindow);
    }

    if (!dbTransactionClient.columnNamesList.contains(keyField)) {
      throw new KExceptionClass(
          "*** Could not load data **** \n"
              + "Key field ["
              + keyField
              + "] was not found in result set",
          null);
    }

    firstLoadReady = true;

    log.log(this, "dbTransactionClient rowCount = " + dbTransactionClient.rowCount());
    log.log(this, "dbTransactionClient startRow = " + dbTransactionClient.resultSetStart());
  }