/+junk/gjs_values

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/gjs_values

« back to all changes in this revision

Viewing changes to values.js

  • Committer: Gustav Hartvigsson
  • Date: 2014-11-22 21:35:59 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20141122213559-lp6mmapzc02tfy2z
saving

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
 */
46
46
const Values = new Lang.Class ({
47
47
  Name: 'Values',
 
48
  Extends: GObject.Object,
48
49
  
49
50
  /**
50
51
   * Name to keep track of what object we are using.
57
58
   * user defined data that may be needed when dealing with getting and
58
59
   * setting of the values:
59
60
   * <code>
60
 
    {"value1": {type: "string",
61
 
                setter: function1,
62
 
                getter: function2,
63
 
                user_data: {any}},
64
 
     "value2": {type: "boolean",
65
 
                setter: function3,
66
 
                getter: function4,
67
 
                user_data: {any}}
 
61
    {"value1": {type: "string", user_data: {any}},
 
62
     "value2": {type: "boolean", user_data: {any}}
68
63
    }
69
64
   </code>
70
65
   */
71
66
  _value_defs: {},
72
67
  
 
68
  /** @structure _values
 
69
   * Holds the data of the values in an encapsulated way, this makes it easier
 
70
   * to deal with the values.
 
71
   * <code>
 
72
    {"value1": data, "value2": data}
 
73
   </code>
 
74
   */
 
75
  _values: {},
 
76
  
73
77
  /** @structure
74
78
   * Holds the holds of the tells that listeners can listen to.
75
79
   */
84
88
  _listeners: {},
85
89
  
86
90
  _init: function (params) {
 
91
    this.parent (params);
87
92
    
88
93
    
89
94
    if (params != undefined) {
96
101
      if (params["tellers"] != undefined) {
97
102
        this._tellers = params["tellers"]
98
103
      }
99
 
      
100
 
      if (params["value_defs"] != undefined) {
101
 
        this._value_defs = params["value_defs"];
102
 
      }
103
104
    }
104
105
  },
105
106
  
119
120
        !(func instanceof Function)) {
120
121
      return false;
121
122
    }
122
 
    this._value_defs[name]["setting"] = func;
123
123
    
124
 
    return true;
125
124
  },
126
125
  
127
126
  /** @method add_value_def
133
132
   *                  and getting.
134
133
   */
135
134
  add_value_def: function (name, type, user_data) {
136
 
    if (name == undefined ||
137
 
        func == undefined ||
138
 
        this._value_defs[name] == undefined ||
139
 
        !(func instanceof Function)) {
140
 
      return false;
141
 
    }
142
135
    
143
 
    return true;
144
 
  },
 
136
  }
145
137
  
146
138
  /** @method
147
139
   * Method to get the value stored.
148
140
   */
149
141
  get_value: function (name) {
150
 
    if (name == undefined ||
151
 
        value == undefined) {
152
 
      return undefined;
153
 
    }
154
 
    if (this._value_defs[name == undefined]) {
155
 
      return undefined;
156
 
    }
157
142
    
158
 
    return this._value_defs[name]["getter"]();
159
143
  },
160
144
  
161
145
  /** @method set_value
163
147
   */
164
148
  set_value: function (name, value) {
165
149
    if (name == undefined ||
166
 
        value == undefined) {
167
 
      return false;
168
 
    }
169
 
    if (this._value_defs[name == undefined]) {
170
 
      return false;
171
 
    }
172
 
    this._value_defs[name]["setter"] (value, this._value_defs[name]["user_data"]);
173
 
    return true;
174
 
  },
 
150
        value == undefined ||
 
151
        ) {
 
152
      return;
 
153
    }
 
154
    
 
155
  }
175
156
  
176
157
  /** @method tell
177
158
   * Sends a "tell" to the listeners.
180
161
   */
181
162
  tell: function (name, user_data) {
182
163
    if (this._listeners[name] == undefined || this._tellers.indexOf (name) < 0 ) {
183
 
      return false;
 
164
      return;
184
165
    }
185
 
    for (let i = 0; i < this._listeners[name].length; i++) {
 
166
    for (let i = 0; i < _listeners[name].length; i++) {
186
167
      this._listeners[name][i](this, user_data);
187
168
    }
188
 
    return true;
189
169
  },
190
170
  
191
171
  /** @method listen
198
178
        !(func instanceof Function)) {
199
179
      return false;
200
180
    }
201
 
    if (this._listeners[name] == undefined) {
202
 
      this._listeners[name] = [];
203
 
    }
 
181
    
204
182
    this._listeners[name].push (func);
205
 
    return true;
206
183
  }
207
184
});
 
185
 
 
186
main (ARGV);