sap.ui.define(

[
  "sap/ui/core/mvc/Controller",
  "sap/m/MessageToast",
  "sap/ui/core/routing/History"
],
function(Controller, MessageToast, History) {
  "use strict";
  return Controller.extend("fivea.controller.Breeder_Detail", {
    onInit: function() {
      this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
      this._oRouter
        .getRoute("breeder_detail")
        .attachPatternMatched(this._onDetailMatched, this);
    },
    _onDetailMatched: function(oEvent) {
      this._sObjectID = oEvent.getParameter("arguments").id;
      var sObjectPath = "/breeder(" + this._sObjectID + ")";
      this._sObjectPath = sObjectPath;
      var oView = this.getView();
      var oModel = sap.ui.getCore().getModel();
      oView.setModel(oModel);
      oView.bindElement({ path: sObjectPath });
    },
    _onBindingChange: function(oEvent) {},
    onCultivarSelectionChange: function() {
      var oTable = this.byId("breeder_cultivar_table");
      var iIndex = oTable.getSelectedIndex();

      var oCtxt = oTable.getContextByIndex(iIndex);
      var sToPageParID = oCtxt.getProperty("id");
      var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
      oRouter.navTo("cultivar_detail", { id: sToPageParID });
    },

    onSave: function() {
      var oView = this.getView();
      var oModel = oView.getModel();
      var sPath = this._sObjectPath;
      var mParms = {};
      var oEntry = {};

      var oData = oModel.getData(sPath);

      oEntry.last_name = this.byId("last_name").getValue();
      oEntry.first_name = this.byId("first_name").getValue();

      function onSuccessHandler() {
        oModel.refresh();
        oModel.updateBindings();
        MessageToast.show("Update success");
      }
      function onErrorHandler() {
        MessageToast.show("Update failed");
      }
      console.log("Model data:", oData);
      console.log("View data:", oEntry);
      console.log("Model has pending changes:", oModel.hasPendingChanges());
      console.log("Pending changes:", oModel.getPendingChanges());

      mParms.success = onSuccessHandler;
      mParms.error = onErrorHandler;
      mParms.merge = false;
      oModel.setTokenHandlingEnabled(true);
      oModel.updateSecurityToken();
      oModel.update(this._sObjectPath, oEntry, mParms);
    },

    onCheck: function() {
      var oView = this.getView();
      var oModel = oView.getModel();
      var sPath = this._sObjectPath;
      var oData = oModel.getData(sPath);
      console.log("Model data:", oData);
      console.log("Model has pending changes:", oModel.hasPendingChanges());
      console.log("Pending changes:", oModel.getPendingChanges());
    },

    onNavBack: function() {
      var oHistory = History.getInstance();
      var sPreviousHash = oHistory.getPreviousHash();

      if (sPreviousHash !== undefined) {
        window.history.go(-1);
      } else {
        var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
        oRouter.navTo("breederList", true);
      }
    }
  });
}

);