zhangyanpeng
2024-05-29 1f227a1cf627526701c652ba84bae3e430bba8d3
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
Toolbar = Control.subClass({
    
    items: true,
    
    init: function(config) {
        config.css = util.combine(config.css, {
            container: null
        });
        
        this.groups = {};
        this.items = [];
        Control.call(this, config);
    },
    
    getContainerTemplate: function() {
        return $(Toolbar_Template.container.join(""));
    },
    
    createContent: function() {
        var items = this.config.items;
        
        if (!items || !items.length) {
            return;
        }
        
        var group = null;
        var max = items.length;
        
        for (var i = 0; i < max; i++) {
            var item = items[i];
             
            if (item.group) {
                group = this.getGroup(item.group);
            }
            
            var parent = group || this.container;
            this.createItem(parent, item);
        }
    },
    
    getGroup: function(name) {
        var result = this.groups[name];
        
        if (!result) {
            result = $(Toolbar_Template.group.join(""));
            this.groups[name] = result;
            this.container.append(result);
        }
        
        return result;
    },
    
    createItem: function(parent, option) {
        //1. element
        var button = $(Toolbar_Template.button.join(""));
        button.html(option.caption);
        
        if (option.active === false) {
            button.addClass("btn-unactive");
        }
        else {
            button.addClass("btn-active");
        }
        
        //2. click
        button.click(function() {
            if (option.onClick) {
                option.onClick.call(this);
            }
         });
        
        //3. append
        parent.append(button);
        return result;        
    }
});
 
 
//*************************************
Toolbar_Template = {};
 
Toolbar_Template.container = [
   '<div class="toolbar"></div>'                   
];
 
Toolbar_Template.group = [
    '<div class="btn-group">',
    '</div>'   
];
 
Toolbar_Template.button = [
    '<div class="btn"></div>'
];