//@include lib_Class.js

/**
 * Deploys or undeploys a package
 *
 * @author MW, ELO Digital Office GmbH
 * @version 1.0
 *
 * @elojc
 */
sol.define("sol.dev.jc.Deploy", {

  solutionMask: "ELO Business Solution",

  execute: function () {
    var me = this,
        packageElements, packageElement, view, finishMessage;

    me.mode = me.mode || "undeploy";

    view = workspace.activeView;
    if (!(view instanceof ArchiveViewAdapter)) {
      return;
    }
    workspace.setWaitCursor();
    packageElements = view.allSelected;
    while (packageElements.hasMoreElements()) {
      packageElement = packageElements.nextElement();
      if (packageElement.docMaskName != me.solutionMask) {
        workspace.showAlertBox("Setup builder", "<h3>Mask name of module '" + packageElement.name + "' must be '" + me.solutionMask + "'.</h3>");
        continue;
      }
      sol.common.IxUtils.execute("RF_sol_dev_function_Deploy", {
        objId: packageElement.id,
        mode: me.mode,
        remove: false
      });
    }
    view.refreshArchive();
    workspace.setNormalCursor();
    workspace.setStatusMessage("");

    if (me.mode == "deploy") {
      finishMessage = "Packages deployed.";
    } else {
      finishMessage = "Package undeployed.";
    }

    workspace.setFeedbackMessage(finishMessage);
  }
});