source: Dev/trunk/src/client/qed-client/widgets/ObjectBox.js @ 472

Last change on this file since 472 was 472, checked in by hendrikvanantwerpen, 12 years ago

Fixed deploy script.
Fix for ... in ... complaints by jshint.
Fix a typo.

File size: 2.8 KB
Line 
1define([
2    'dojo/_base/declare',
3    'dojo/_base/lang',
4    'dijit/_WidgetBase',
5    'dijit/_TemplatedMixin',
6    'dijit/_WidgetsInTemplateMixin',
7    './LineWithActionsWidget',
8    'dojo/text!./templates/ObjectBox.html'
9], function(declare, lang, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, LineWithActionsWidget, template){
10    return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
11        baseClass: "rftObjectBox",
12        templateString: template,
13        value: null,
14        actions: null,
15        startup: function() {
16            if ( this._started ){ return; }
17            this.inherited(arguments);
18            this.line1 = new LineWithActionsWidget({
19                actions: {
20                    "inspectIcon": {
21                        callback: lang.hitch(this, this._showInfoBox),
22                        properties: {
23                            blockButton: false,
24                            icon: "Inspect"
25                        }
26                    }
27                }
28            }).placeAt(this.line1Node);
29            this.line2 = new LineWithActionsWidget({
30            }).placeAt(this.line2Node);
31            var line3Actions = this._createLine3Actions();
32            this.line3 = new LineWithActionsWidget({
33                actions: line3Actions
34            }).placeAt(this.line3Node);
35            this.line1.startup();
36            this.line2.startup();
37            this.line3.startup();
38            this.inherited(arguments);
39        },
40        _createLine3Actions: function() {
41            var line3Actions = {};
42            for (var action in this.actions) {
43                if ( this.actions.hasOwnProperty(action) ) {
44                    line3Actions[action] = {
45                        callback: lang.hitch(this, function(callback){
46                            if ( this.value ) { callback(this.value); }
47                        }, this.actions[action]),
48                        properties: {
49                            blockButton: true,
50                            label: action,
51                            icon: action.charAt(0).toUpperCase()+action.slice(1)
52                        }
53                    };
54                }
55            }
56            return line3Actions;
57        },
58        _showInfoBox: function() {},
59        _setValueAttr: function(value) {
60            this.value = value;
61            this._refresh();
62        },
63        _getValueAttr: function(value) {
64            this.value = value;
65        },
66        _refresh: function() {
67            if ( this.value !== null ) {
68                this.iconNode.className = "rftIcon typeIcon rftIcon"+(this.value.type || '');
69                this.line1.set('title', this.value.title || '');
70                this.line2.set('title', this.value.subTitle || '');
71                this.line3.set('title', this.value.lowerTitle || '');
72            }
73        }
74    });
75});
Note: See TracBrowser for help on using the repository browser.