    //@include lib_Class.js
    //@include lib_sol.dev.BuildPackages.js

    /**
     * Build packages
     *
     * @author MW, ELO Digital Office GmbH
     * @version 1.0
     *
     * @elojc
     */
    sol.define("sol.dev.jc.BuildPackages", {

      defaultExportDirPath: "d:/eloinst",

      initialize: function (config) {
        var me = this;
        me.$super("sol.Base", "initialize", [config]);
      },

      execute: function () {
        var me = this,
            objIds = [],
            view, packageElements, packageElement, exportDirPath, builder;

        view = workspace.activeView;
        if (!(view instanceof ArchiveViewAdapter)) {
          return;
        }
        workspace.setWaitCursor();
        packageElements = view.allSelected;
        while (packageElements.hasMoreElements()) {
          packageElement = packageElements.nextElement();
          objIds.push(packageElement.id);

        }

        if (sol.common.FileUtils.exists(me.defaultExportDirPath)) {
          exportDirPath = me.defaultExportDirPath;
        } else {
          exportDirPath = sol.common.jc.CommonDialogs.showSaveDialog({ title: me.getText("dev.setupBuilder.saveDialog.title"), directoriesOnly: true });
        }
        if (!exportDirPath) {
          workspace.setNormalCursor();
          return;
        }
        builder = sol.create("sol.dev.BuildPackages", {
          objIds: objIds,
          transport: me.transport,
          exportDirPath: exportDirPath
        });
        builder.execute();

        workspace.setNormalCursor();
        workspace.setStatusMessage("");
        workspace.setFeedbackMessage(me.getText("sol.dev.SetupBuilder.msgCreated").replace("{0}", exportDirPath));
      },

      /**
       * @private
       * Helper function to get a localized text of a specific key.
       * @param {String} key Key for the text constant.
       * @return {String} Localized text constant.
       */
      getText: function (key) {
        return String(utils.getText("sol.dev.client", key));
      }
    });