=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties 2010-09-13 10:16:51 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties 2010-09-13 14:13:44 +0000 @@ -201,4 +201,8 @@ end_date = End date fixed_periods = Fixed periods start_end_dates = Start-end dates -please_expand_layer_panel = Please expand the layer panel you want to print. \ No newline at end of file +please_expand_layer_panel = Please expand the layer panel you want to print. +has_no_orgunits = has no organisation units. +highlight_color = Highlight color +feature_filter = Feature filter +locate_features = Locate features === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm 2010-09-13 10:16:51 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm 2010-09-13 14:13:44 +0000 @@ -200,4 +200,8 @@ var i18n_end_date = '$encoder.jsEscape($i18n.getString( 'end_date' ) , "'")'; var i18n_fixed_periods = '$encoder.jsEscape($i18n.getString( 'fixed_periods' ) , "'")'; var i18n_start_end_dates = '$encoder.jsEscape($i18n.getString( 'start_end_dates' ) , "'")'; -var i18n_please_expand_layer_panel = '$encoder.jsEscape($i18n.getString( 'please_expand_layer_panel' ) , "'")'; \ No newline at end of file +var i18n_please_expand_layer_panel = '$encoder.jsEscape($i18n.getString( 'please_expand_layer_panel' ) , "'")'; +var i18n_has_no_orgunits = '$encoder.jsEscape($i18n.getString( 'has_no_orgunits' ) , "'")'; +var i18n_highlight_color = '$encoder.jsEscape($i18n.getString( 'highlight_color' ) , "'")'; +var i18n_feature_filter = '$encoder.jsEscape($i18n.getString( 'feature_filter' ) , "'")'; +var i18n_locate_features = '$encoder.jsEscape($i18n.getString( 'locate_features' ) , "'")'; === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css 2010-08-30 13:58:52 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css 2010-09-13 14:13:44 +0000 @@ -194,6 +194,9 @@ font:normal 11px lucida sans unicode,arial; color:#888; } +.window-field-nolabel { + padding:14px 0 0 0; +} .window-button { padding:8px 0 0 0; } === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js 2010-09-13 10:16:51 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js 2010-09-13 15:19:48 +0000 @@ -3089,28 +3089,27 @@ Ext.getCmp('vectorlayeroptions_w').destroy(); } - var data = []; - var layer = MAP.getLayersByName(layer.name)[0]; - + var data = []; for (var i = 0; i < layer.features.length; i++) { - data.push([i, layer.features[i].data.name]); + data.push([layer.features[i].data.id || i, layer.features[i].data.name]); } var featureStore = new Ext.data.ArrayStore({ mode: 'local', autoDestroy: true, - idProperty: 'i', - fields: ['i', 'name'], - data: [data] + idProperty: 'id', + fields: ['id','name'], + sortInfo: {field: 'name', direction: 'ASC'}, + data: data }); var locateFeatureWindow = new Ext.Window({ id: 'locatefeature_w', title: 'Locate features', layout: 'fit', - closeAction: 'hide', defaults: {layout: 'fit', bodyStyle:'padding:8px; border:0px'}, - width: 200, + width: 250, + height: getMultiSelectHeight() + 145, items: [ { xtype: 'panel', @@ -3118,37 +3117,78 @@ { xtype: 'panel', items: [ - { html: '
Feature name
' }, + { html: '
' + i18n_highlight_color + '
' }, + { + xtype: 'colorfield', + labelSeparator: labelseparator, + id: 'highlightcolor_cf', + allowBlank: false, + isFormField: true, + width: combo_width, + value: "#0000FF" + }, + { html: '
' + i18n_feature_filter + '
' }, { xtype: 'textfield', - id: 'locatefeature_tf' + id: 'locatefeature_tf', + enableKeyEvents: true, + listeners: { + 'keyup': { + fn: function() { + var p = Ext.getCmp('locatefeature_tf').getValue(); + featureStore.filter('name', p, true, false); + } + } + } }, - { html: '
' }, + { html: '
' }, { xtype: 'grid', id: 'featuregrid_gp', - autoHeight: true, + height: getMultiSelectHeight(), store: featureStore, cm: new Ext.grid.ColumnModel({ - columns: [ - { - id: 'name', - header: 'Features', - dataIndex: 'name', - width: 200 - } - ] + columns: [{id: 'name', header: 'Features', dataIndex: 'name', width: 250}] }), sm: new Ext.grid.RowSelectionModel({singleSelect:true}), viewConfig: {forceFit: true}, sortable: true, - // autoExpandColumn: 'name' + autoExpandColumn: 'name', + listeners: { + 'cellclick': { + fn: function(g, ri, ci) { + layer.redraw(); + + var id, feature; + id = g.getStore().getAt(ri).data.id; + + for (var i = 0; i < layer.features.length; i++) { + if (layer.features[i].data.id == id) { + feature = layer.features[i]; + break; + } + } + + if (feature) { + var color = Ext.getCmp('highlightcolor_cf').getValue(); + layer.drawFeature(feature,{'fillColor':color}); + } + } + } + } } ] } ] } - ] + ], + listeners: { + 'close': { + fn: function() { + layer.redraw(); + } + } + } }); var vectorLayerOptionsWindow = new Ext.Window({ @@ -3226,20 +3266,24 @@ } } } - } - // , - // { - // html: 'Locate feature', - // listeners: { - // 'click': { - // fn: function() { - // locateFeatureWindow.setPagePosition(Ext.getCmp('east').x - 173, Ext.getCmp('center').y + 50); - // locateFeatureWindow.show(); - // vectorLayerOptionsWindow.hide(); - // } - // } - // } - // } + }, + { + html: 'Locate feature', + listeners: { + 'click': { + fn: function() { + if (layer.features.length > 0) { + locateFeatureWindow.setPagePosition(Ext.getCmp('east').x - 272, Ext.getCmp('center').y + 50); + locateFeatureWindow.show(); + vectorLayerOptionsWindow.hide(); + } + else { + Ext.message.msg(false, '' + layer.name + '' + i18n_has_no_orgunits); + } + } + } + } + } ] } ] @@ -4073,6 +4117,8 @@ var y = east_panel.y + 41; if (ACTIVEPANEL == thematicMap && MAPSOURCE == map_source_type_database) { + Ext.getCmp('locatefeature_w').destroy(); + Ext.getCmp('map_tf').setValue(feature.data.name); for (var i = 0; i < feature.layer.features.length; i++) { === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js 2010-09-09 19:19:51 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js 2010-09-13 15:19:48 +0000 @@ -1663,7 +1663,10 @@ for (var j = 0; j < FEATURE[thematicMap].length; j++) { var value = mv[mour[FEATURE[thematicMap][j].attributes[nameColumn]]]; + var name = FEATURE[thematicMap][j].attributes[nameColumn]; FEATURE[thematicMap][j].attributes.value = value ? parseFloat(value) : ''; + FEATURE[thematicMap][j].data.id = FEATURE[thematicMap][j].attributes[nameColumn]; + FEATURE[thematicMap][j].data.name = FEATURE[thematicMap][j].attributes[nameColumn]; if (!FEATURE[thematicMap][j].attributes.labelString) { FEATURE[thematicMap][j].attributes.labelString = FEATURE[thematicMap][j].attributes[nameColumn]; if (Ext.isNumber(FEATURE[thematicMap][j].attributes.value)) { === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js 2010-09-09 19:19:51 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js 2010-09-13 15:19:48 +0000 @@ -1661,6 +1661,8 @@ for (var j = 0; j < FEATURE[thematicMap2].length; j++) { var value = mv[mour[FEATURE[thematicMap2][j].attributes[nameColumn]]]; FEATURE[thematicMap2][j].attributes.value = value ? parseFloat(value) : ''; + FEATURE[thematicMap2][j].data.id = FEATURE[thematicMap2][j].attributes[nameColumn]; + FEATURE[thematicMap2][j].data.name = FEATURE[thematicMap2][j].attributes[nameColumn]; if (!FEATURE[thematicMap2][j].attributes.labelString) { FEATURE[thematicMap2][j].attributes.labelString = FEATURE[thematicMap2][j].attributes[nameColumn]; if (Ext.isNumber(FEATURE[thematicMap2][j].attributes.value)) {