Jx.SelectionModel

The class is a singleton class used to store the state of the selection made on the Junos Space UI for an application. This includes the currently selected task, workspace, earlier selected task, node, CSS, and JavaScript files in the ribbon.


/**
 * A singleton used to indicate the state of the selection.
 */
Jx.SelectionModel = function() {
  var config = {
      selectedObject : null,
      selectedWorkspace : null,
      selectedTask : null,
      lastAction : null,
      previousSelectedTask: null,
      previousSelectedNode: null,
      previousJsFilenames: null,
      previousCssFilenames: null,
      previousJsClassname: null,
      iframePanelId: null,

      setSelectedWorkspace : function(w) {
        if (this.selectedWorkspace != w){
          this.selectedWorkspace = w;
          JxNotificationManager.notify(CMPConstants.DEP_SELECT_WORKSPACE, this.selectedWorkspace);
        }
        this.setSelectedObject(null);
      },

      getSelectedWorkspace : function() {
        return this.selectedWorkspace;
      },

      setSelectedTask : function(t) {
        if (this.selectedTask != t) {
          this.selectedTask = t;
          JxNotificationManager.notify(CMPConstants.DEP_SELECT_TASK, this.selectedTask);
        }
      },

      getSelectedTask : function() {
        return this.selectedTask;
      },

      setSelectedObject : function(o) {
        if (this.selectedObject != o) {
    JxDebugConsole.log(".....inside of setSelectedObject...")
          this.selectedObject = o;
          JxNotificationManager.notify(CMPConstants.DEP_SELECT_OBJECT, this.selectedObject);
        }
      },

      getSelectedObject : function() {
        return this.selectedObject;
      },

      setLastAction : function(actionEvent) {
        if (this.lastAction != actionEvent) {
          this.lastAction = actionEvent;
          JxNotificationManager.notify(CMPConstants.DEP_PERFORMED_ACTION, actionEvent);
        }
      },

      getLastAction : function() {
        return this.lastAction;
      },

      /**
       * Added getters and setters for the following:
       * previousSelectedTask
       * previousSelectedNode
       * previousJsFilenames
       * previousCssFilenames
       * previousJsClassname
       * iframePanelId
       */
      getPreviousSelectedTask: function() {
        return this.previousSelectedTask;
      },

      setPreviousSelectedTask: function(task) {
        this.previousSelectedTask = task;
      },

      getPreviousSelectedNode: function() {
        return this.previousSelectedNode;
      },

      setPreviousSelectedNode: function(node) {
        this.previousSelectedNode = node;
      },

      // Added getters and setters for fields jsFilenames, CssFilenames. JsFilenames.
      getPreviousJsFilenames: function() {
        return this.previousJsFilenames;
      },

      setPreviousJsFilenames: function(filenames) {
        this.previousJsFilenames = filenames;
      },

      getPreviousCssFilenames: function() {
        return this.previousCssFilenames;
      },

      setPreviousCssFilenames: function(filenames) {
        this.previousCssFilenames = filenames;
      },

      getPreviousJsClassname: function() {
        return this.previousJsClassname;
      },

      setPreviousJsClassname: function(classname) {
        this.previousJsClassname = classname;
      },

      getIframePanelId: function() {
        return this.iframePanelId;
      },

      setIframePanelId: function(id) {
        this.iframePanelId = id;
      }
  }; // end of config definition

  // return singleton object
  return Ext.apply(new Object, config);
}