summaryrefslogtreecommitdiff
path: root/js/PrefLabelTree.js
blob: 9c43346b3354bc0c732c1c5423d3cf05fc39ea67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
require(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/form/DropDownButton"], function (declare, domConstruct) {

	return declare("fox.PrefLabelTree", lib.CheckBoxTree, {
		setNameById: function (id, name) {
			var item = this.model.store._itemsByIdentity['LABEL:' + id];

			if (item)
				this.model.store.setValue(item, 'name', name);

		},
		_createTreeNode: function(args) {
			var tnode = this.inherited(arguments);

			var fg_color = this.model.store.getValue(args.item, 'fg_color');
			var bg_color = this.model.store.getValue(args.item, 'bg_color');
			var type = this.model.store.getValue(args.item, 'type');
			var bare_id = this.model.store.getValue(args.item, 'bare_id');

			if (type == 'label') {
				var span = dojo.doc.createElement('span');
				span.innerHTML = 'α';
				span.className = 'labelColorIndicator';
				span.id = 'LICID-' + bare_id;

				span.setStyle({
					color: fg_color,
					backgroundColor: bg_color});

				tnode._labelIconNode = span;

				domConstruct.place(tnode._labelIconNode, tnode.labelNode, 'before');
			}

			return tnode;
		},
		getIconClass: function (item, opened) {
			return (!item || this.model.mayHaveChildren(item)) ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "invisible";
		},
	});

});