summaryrefslogtreecommitdiff
path: root/js/PrefLabelTree.js
blob: 7321b80d816f10a8d2504aa75acd7c2b48064d1b (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
44
/* global lib,dijit */
define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/form/DropDownButton"], function (declare, domConstruct) {

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

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

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

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

			if (type == 'label') {
				const 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";
		},
	});

});