Project

General

Profile

Download (4.56 KB) Statistics
| Branch: | Revision:

git_sitools_idoc / flarecast / workspace / client-public-3.0 / js / widget / sitoolsFilter / NumericFilter.js @ master

1
/*******************************************************************************
2
 * Copyright 2010-2014 CNES - CENTRE NATIONAL d'ETUDES SPATIALES
3
 *
4
 * This file is part of SITools2.
5
 *
6
 * SITools2 is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 *
11
 * SITools2 is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with SITools2.  If not, see <http://www.gnu.org/licenses/>.
18
 ******************************************************************************/
19
/*global Ext, i18n, loadUrl, getDesktop, sitools, SitoolsDesk */
20
Ext.namespace("sitools.public.widget.sitoolsFilter");
21

    
22
Ext.define('sitools.public.widget.sitoolsFilter.NumericFilter', {
23
    extend : 'sitools.public.widget.sitoolsFilter.Filter',
24
        
25
    emptyText: 'Enter Filter Text...',
26
    selectOnFocus: true,
27
    
28
    /**  
29
     * @private
30
     * Template method that is to initialize the filter and install required menu items.
31
     */
32
    init : function (config) {
33
        config = config || {};
34
        
35
        this.inputFrom = Ext.create("Ext.form.NumberField", {
36
                anchor : "100%"
37
        }); 
38
        this.inputTo = Ext.create("Ext.form.NumberField", {
39
                anchor : "100%" 
40
        });
41
        
42
        
43
        var imageFrom = Ext.create('Ext.Img', {
44
            src : '/sitools/client-public/res/images/sitoolsFilter/greater_than_or_equals.png',
45
            width : 16,
46
            height : 16,
47
            margin : '4 5 4 5'
48
        });
49
        
50
        var imageTo = Ext.create('Ext.Img', {
51
            src : '/sitools/client-public/res/images/sitoolsFilter/less_than_or_equals.png',
52
            width : 16,
53
            height : 16,
54
            margin : '4 5 4 5'
55
        });
56
        
57
        
58
        var formPanelFrom = Ext.create("Ext.form.FieldContainer", {
59
            layout : {
60
                type :'hbox',
61
                align :'stretch'                
62
            },
63
            items : [imageFrom, this.inputFrom], 
64
            bodyBorder : false, 
65
            border : false
66
        });
67
        
68
        var formPanelTo = Ext.create("Ext.form.FieldContainer", {
69
            layout : {
70
                type :'hbox',
71
                align :'stretch'                
72
            },
73
            items : [imageTo, this.inputTo], 
74
            bodyBorder : false, 
75
            border : false
76
        });
77
        
78
        
79
        var formPanel = Ext.create("Ext.Container", {
80
            layout : {
81
                type :'vbox',
82
                align :'stretch'                
83
            },
84
            items : [formPanelFrom, formPanelTo], 
85
            bodyBorder : false, 
86
            border : false
87
        });
88
         
89
        this.add(formPanel);
90
    },
91
    
92
    /**
93
     * @private
94
     * Template method that is to get and return the value of the filter.
95
     * @return {String} The value of this filter
96
     */
97
    getValue : function () {
98
        var result = [];
99
        if (!Ext.isEmpty(this.inputFrom.getValue())) {
100
                result.push({
101
                        "columnAlias" : this.columnAlias, 
102
                        "data" : {
103
                                "comparison" : "gte", 
104
                                "value" : this.inputFrom.getValue(), 
105
                                "type" : "numeric"
106
                        }
107
                });
108
        }
109
        if (!Ext.isEmpty(this.inputTo.getValue())) {
110
                result.push({
111
                        "columnAlias" : this.columnAlias, 
112
                        "data" : {
113
                                "comparison" : "lte", 
114
                                "value" : this.inputTo.getValue(), 
115
                                "type" : "numeric"
116
                        }
117
                });
118
        }
119
        return result;
120
    },    
121
    getConfig : function () {
122
            if (!Ext.isEmpty(this.inputFrom.getValue()) || !Ext.isEmpty(this.inputTo.getValue())) {
123
                         return {
124
                            "columnAlias" : this.columnAlias, 
125
                            "value" : {
126
                                    "from" : this.inputFrom.getValue(), 
127
                                    "to" : this.inputTo.getValue() 
128
                            }, 
129
                            "type" : "numeric"
130
                    };
131
            }
132
            else {
133
                    return null;
134
            }
135
    }, 
136
    
137
    /**
138
     * @private
139
     * Template method that is to set the value of the filter.
140
     * @param {Object} value The value to set the filter
141
     */        
142
    setValue : function (value) {
143
        this.inputFrom.setValue(value.from);
144
        this.inputTo.setValue(value.to);
145
        
146
    } , 
147
    _getHeight : function () {
148
            return this.height;
149
    }
150
});