dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #08961
Re: [Branch ~dhis2-devs-core/dhis2/trunk] Rev 2275: (GIS) Image export for both layers implemented.
When exporting images:
- select layers (polygon layer / point layer / both)
- select width and height from the dropdownlist (small / medium / large)
or type the exact number of pixels
Example image attached.
On Fri, Dec 3, 2010 at 14:02, <noreply@xxxxxxxxxxxxx> wrote:
> Merge authors:
> Jan Henrik Øverland (janhenrik-overland)
> ------------------------------------------------------------
> revno: 2275 [merge]
> committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
> branch nick: dhis2
> timestamp: Fri 2010-12-03 13:58:22 +0100
> message:
> (GIS) Image export for both layers implemented.
> modified:
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js
>
> 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/resources/mapfish/widgets/geostat/Choropleth.js
>
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js
>
>
> --
> lp:dhis2
> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
>
> Your team DHIS 2 developers is subscribed to branch lp:dhis2.
> To unsubscribe from this branch go to
> https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java
> 2010-10-14 11:58:33 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportExcelAction.java
> 2010-12-02 19:03:23 +0000
> @@ -147,9 +147,9 @@
> this.title = title;
> }
>
> - private Integer indicator;
> + private String indicator;
>
> - public void setIndicator( Integer indicator )
> + public void setIndicator( String indicator )
> {
> this.indicator = indicator;
> }
> @@ -206,8 +206,6 @@
> {
> log.info( "Exporting workbook, width: " + width + ", height: " +
> height );
>
> - Indicator i = indicatorService.getIndicator( indicator );
> -
> //
> ---------------------------------------------------------------------
> // Write map image to byte array
> //
> ---------------------------------------------------------------------
> @@ -217,7 +215,7 @@
> svgDocument.setTitle( this.title );
> svgDocument.setSvg( this.svg );
> svgDocument.setPeriod( period );
> - svgDocument.setIndicator( i );
> + svgDocument.setIndicator( indicator );
> svgDocument.setLegends( this.legends );
> svgDocument.setIncludeLegends( this.includeLegends );
>
> @@ -231,7 +229,7 @@
>
> WritableWorkbook outputReportWorkbook = Workbook.createWorkbook(
> out );
>
> - WritableSheet sheet = outputReportWorkbook.createSheet(
> i.getName(), 1 );
> + WritableSheet sheet = outputReportWorkbook.createSheet( indicator,
> 1 );
>
> //
> ---------------------------------------------------------------------
> // Write map image to workbook
> @@ -270,7 +268,7 @@
> sheet.addCell( new Label( titlePositionCol, titlePositionRow,
> i18n.getString( "Title" ), header ) );
> sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow,
> this.title, headerContent ) );
> sheet.addCell( new Label( titlePositionCol, titlePositionRow + 1,
> i18n.getString( "Indicator" ), header ) );
> - sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow +
> 1, i.getName(), headerContent ) );
> + sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow +
> 1, indicator, headerContent ) );
> sheet.addCell( new Label( titlePositionCol, titlePositionRow + 2,
> i18n.getString( "Period" ), header ) );
> sheet.addCell( new Label( titlePositionCol + 2, titlePositionRow +
> 2, period, headerContent ) );
>
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java
> 2010-10-14 11:58:33 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/ExportImageAction.java
> 2010-12-03 12:40:38 +0000
> @@ -89,12 +89,33 @@
> this.title = title;
> }
>
> - private Integer indicator;
> -
> - public void setIndicator( Integer indicator )
> + private Integer layer;
> +
> + public void setLayer( Integer layer )
> + {
> + this.layer = layer;
> + }
> +
> + private Integer imageLegendRows;
> +
> + public void setImageLegendRows( Integer imageLegendRows )
> + {
> + this.imageLegendRows = imageLegendRows;
> + }
> +
> + private String indicator;
> +
> + public void setIndicator( String indicator )
> {
> this.indicator = indicator;
> }
> +
> + private String indicator2;
> +
> + public void setIndicator2( String indicator2 )
> + {
> + this.indicator2 = indicator2;
> + }
>
> private String period;
>
> @@ -103,6 +124,13 @@
> this.period = period;
> }
>
> + private String period2;
> +
> + public void setPeriod2( String period2 )
> + {
> + this.period2 = period2;
> + }
> +
> private String legends;
>
> public void setLegends( String legends )
> @@ -110,6 +138,13 @@
> this.legends = legends;
> }
>
> + private String legends2;
> +
> + public void setLegends2( String legends2 )
> + {
> + this.legends2 = legends2;
> + }
> +
> private boolean includeLegends;
>
> public void setIncludeLegends( boolean includeLegends )
> @@ -137,10 +172,6 @@
> protected String execute( HttpServletResponse response, OutputStream
> out )
> throws Exception
> {
> - log.info( "Exporting image, title: " + title + ", indicator: " +
> indicator + ", period: " + period + ", width: " + width + ", height: " +
> height );
> -
> - log.info( "Legends: " + legends );
> -
> if ( svg == null || title == null || indicator == null || period ==
> null || width == null || height == null )
> {
> log.info( "Export map from session" );
> @@ -151,37 +182,30 @@
> {
> log.info( "Export map from request" );
>
> - Indicator _indicator = indicatorService.getIndicator(
> indicator );
> -
> - DataElement _dataElement = dataElementService.getDataElement(
> indicator );
> -
> svgDocument = new SVGDocument();
>
> - svgDocument.setTitle( title );
> - svgDocument.setSvg( svg );
> -
> - if ( _indicator != null )
> - {
> - svgDocument.setIndicator( _indicator );
> - svgDocument.setDataElement( null );
> - }
> -
> - else
> - {
> - svgDocument.setIndicator( null );
> - svgDocument.setDataElement( _dataElement );
> - }
> -
> - svgDocument.setPeriod( period );
> - svgDocument.setLegends( legends );
> - svgDocument.setIncludeLegends( includeLegends );
> - svgDocument.setWidth( width );
> - svgDocument.setHeight( height );
> -
> + svgDocument.setTitle( this.title );
> + svgDocument.setSvg( this.svg );
> + svgDocument.setLayer( this.layer );
> + svgDocument.setIndicator( this.indicator );
> + svgDocument.setPeriod( this.period );
> + svgDocument.setLegends( this.legends );
> + svgDocument.setIncludeLegends( this.includeLegends );
> + svgDocument.setWidth( this.width );
> + svgDocument.setHeight( this.height );
> +
> + if ( this.layer == 3 )
> + {
> + svgDocument.setImageLegendRows( this.imageLegendRows );
> + svgDocument.setPeriod2( this.period2 );
> + svgDocument.setIndicator2( this.indicator2 );
> + svgDocument.setLegends2( this.legends2 );
> + }
> +
> SessionUtils.setSessionVar( SVGDOCUMENT, svgDocument );
> }
>
> - SVGUtils.convertToPNG( svgDocument.getSVGForImage(), out, width,
> height );
> + SVGUtils.convertToPNG( svgDocument.getSVGForImage(), out,
> this.width, this.height );
>
> return SUCCESS;
> }
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java
> 2010-10-14 11:58:33 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/export/SVGDocument.java
> 2010-12-03 12:40:38 +0000
> @@ -34,6 +34,8 @@
> import org.hisp.dhis.dataelement.DataElement;
> import org.hisp.dhis.indicator.Indicator;
>
> +import sun.rmi.runtime.Log;
> +
> /**
> * @author Tran Thanh Tri
> * @version $Id$
> @@ -49,15 +51,23 @@
> private String title;
>
> private String svg;
> +
> + private Integer layer;
> +
> + private Integer imageLegendRows;
>
> private String legends;
> +
> + private String legends2;
>
> private String period;
> -
> - private Indicator indicator;
> -
> - private DataElement dataElement;
> -
> +
> + private String period2;
> +
> + private String indicator;
> +
> + private String indicator2;
> +
> private boolean includeLegends;
>
> private int width;
> @@ -70,26 +80,61 @@
>
> public StringBuffer getSVGForImage()
> {
> - String indicatorName = this.indicator != null ?
> this.indicator.getName() : this.dataElement.getName();
> + String svg_ = doctype + this.svg;
> + svg_ = svg_.replaceFirst( "<svg", "<svg " + namespace );
>
> - String title_ = "<g id=\"title\" style=\"display: block;
> visibility: visible;\"><text id=\"title\" x=\"30\" y=\"15\" font-size=\"14\"
> font-weight=\"bold\"><tspan>"
> + String title_ = "<g id=\"title\" style=\"display: block;
> visibility: visible;\"><text id=\"title\" x=\"30\" y=\"20\" font-size=\"18\"
> font-weight=\"bold\"><tspan>"
> + StringEscapeUtils.escapeXml( this.title ) +
> "</tspan></text></g>";
>
> - String indicator_ = "<g id=\"indicator\" style=\"display: block;
> visibility: visible;\"><text id=\"indicator\" x=\"30\" y=\"30\"
> font-size=\"12\"><tspan>"
> - + StringEscapeUtils.escapeXml( indicatorName ) +
> "</tspan></text></g>";
> -
> - String period_ = "<g id=\"period\" style=\"display: block;
> visibility: visible;\"><text id=\"period\" x=\"30\" y=\"45\"
> font-size=\"12\"><tspan>"
> - + StringEscapeUtils.escapeXml( this.period ) +
> "</tspan></text></g>";
> -
> - String svg_ = doctype + this.svg;
> -
> - svg_ = svg_.replaceFirst( "<svg", "<svg " + namespace );
> -
> - svg_ = svg_.replaceFirst( "</svg>", title_ + indicator_ + period_
> + "</svg>" );
> -
> - if ( this.includeLegends )
> - {
> - svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript( 30,
> 45 ) + "</svg>" );
> + if ( this.layer != 3 ) // Polygon or point layer
> + {
> + String indicator_ = "<g id=\"indicator\" style=\"display:
> block; visibility: visible;\"><text id=\"indicator\" x=\"30\" y=\"35\"
> font-size=\"12\"><tspan>"
> + + StringEscapeUtils.escapeXml( this.indicator ) +
> "</tspan></text></g>";
> +
> + String period_ = "<g id=\"period\" style=\"display: block;
> visibility: visible;\"><text id=\"period\" x=\"30\" y=\"50\"
> font-size=\"12\"><tspan>"
> + + StringEscapeUtils.escapeXml( this.period ) +
> "</tspan></text></g>";
> +
> + svg_ = svg_.replaceFirst( "</svg>", title_ + indicator_ +
> period_ + "</svg>" );
> +
> + if ( this.includeLegends )
> + {
> + svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript(
> 30, 45 ) + "</svg>" );
> + }
> + }
> +
> + else if ( this.layer == 3 ) // Both layers
> + {
> + String heading = "<g id=\"heading\" style=\"display: block;
> visibility: visible;\"><text id=\"heading\" x=\"30\" y=\"50\"
> font-size=\"12\" font-weight=\"bold\"><tspan>"
> + + "Polygons</tspan></text></g>";
> +
> + String indicator_ = "<g id=\"indicator\" style=\"display:
> block; visibility: visible;\"><text id=\"indicator\" x=\"30\" y=\"65\"
> font-size=\"12\"><tspan>"
> + + StringEscapeUtils.escapeXml( this.indicator ) +
> "</tspan></text></g>";
> +
> + String period_ = "<g id=\"period\" style=\"display: block;
> visibility: visible;\"><text id=\"period\" x=\"30\" y=\"80\"
> font-size=\"12\"><tspan>"
> + + StringEscapeUtils.escapeXml( this.period ) +
> "</tspan></text></g>";
> +
> + svg_ = svg_.replaceFirst( "</svg>", title_ + heading +
> indicator_ + period_ + "</svg>" );
> +
> + if ( this.includeLegends )
> + {
> + svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript(
> 30, 75 ) + "</svg>" );
> + }
> +
> + String heading2 = "<g id=\"heading2\" style=\"display: block;
> visibility: visible;\"><text id=\"heading2\" x=\"30\" y=\"" + (120 + 15 *
> this.imageLegendRows) + "\" font-size=\"12\" font-weight=\"bold\"><tspan>"
> + + "Points</tspan></text></g>";
> +
> + String indicator2_ = "<g id=\"indicator2\" style=\"display:
> block; visibility: visible;\"><text id=\"indicator2\" x=\"30\" y=\"" + (135
> + 15 * this.imageLegendRows) + "\" font-size=\"12\"><tspan>"
> + + StringEscapeUtils.escapeXml( this.indicator2 ) +
> "</tspan></text></g>";
> +
> + String period2_ = "<g id=\"period2\" style=\"display: block;
> visibility: visible;\"><text id=\"period2\" x=\"30\" y=\"" + (150 + 15 *
> this.imageLegendRows) + "\" font-size=\"12\"><tspan>"
> + + StringEscapeUtils.escapeXml( this.period2 ) +
> "</tspan></text></g>";
> +
> + svg_ = svg_.replaceFirst( "</svg>", heading2 + indicator2_ +
> period2_ + "</svg>" );
> +
> + if ( this.includeLegends )
> + {
> + svg_ = svg_.replaceFirst( "</svg>", this.getLegendScript2(
> 30, (145 + 15 * this.imageLegendRows) ) + "</svg>" );
> + }
> }
>
> return new StringBuffer( svg_ );
> @@ -158,7 +203,7 @@
> String result = "<g id='legend'>";
>
> JSONObject legend;
> -
> +
> JSONObject json = (JSONObject) JSONSerializer.toJSON( this.legends
> );
>
> JSONArray jsonLegends = json.getJSONArray( "legends" );
> @@ -185,6 +230,38 @@
> return result;
> }
>
> + private String getLegendScript2( int x, int y )
> + {
> + String result = "<g id='legend2'>";
> +
> + JSONObject legend;
> +
> + JSONObject json = (JSONObject) JSONSerializer.toJSON(
> this.legends2 );
> +
> + JSONArray jsonLegends = json.getJSONArray( "legends" );
> +
> + for ( int i = 0; i < jsonLegends.size(); i++ )
> + {
> + legend = jsonLegends.getJSONObject( i );
> +
> + String label = StringEscapeUtils.escapeXml( legend.getString(
> "label" ) );
> +
> + String color = StringEscapeUtils.escapeXml( legend.getString(
> "color" ) );
> +
> + result += "<rect x='" + x + "' y='" + (y + 15) + "'
> height='15' width='30' fill='" + color
> + + "' stroke='#000000' stroke-width='1'/>";
> +
> + result += "<text id=\"indicator\" x='" + (x + 40) + "' y='" +
> (y + 27) + "' font-size=\"12\"><tspan>"
> + + label + "</tspan></text>";
> +
> + y += 15;
> + }
> +
> + result += "</g>";
> +
> + return result;
> + }
> +
> @Override
> public String toString()
> {
> @@ -222,6 +299,26 @@
>
> }
>
> + public Integer getLayer()
> + {
> + return layer;
> + }
> +
> + public void setLayer( Integer layer )
> + {
> + this.layer = layer;
> + }
> +
> + public Integer getImageLegendRows()
> + {
> + return imageLegendRows;
> + }
> +
> + public void setImageLegendRows( Integer imageLegendRows )
> + {
> + this.imageLegendRows = imageLegendRows;
> + }
> +
> public String getLegends()
> {
> return legends;
> @@ -232,6 +329,16 @@
> this.legends = legends;
> }
>
> + public String getLegends2()
> + {
> + return legends2;
> + }
> +
> + public void setLegends2( String legends2 )
> + {
> + this.legends2 = legends2;
> + }
> +
> public String getPeriod()
> {
> return period;
> @@ -242,24 +349,34 @@
> this.period = period;
> }
>
> - public Indicator getIndicator()
> + public String getPeriod2()
> + {
> + return period2;
> + }
> +
> + public void setPeriod2( String period2 )
> + {
> + this.period2 = period2;
> + }
> +
> + public String getIndicator()
> {
> return indicator;
> }
>
> - public void setIndicator( Indicator indicator )
> + public void setIndicator( String indicator )
> {
> this.indicator = indicator;
> }
>
> - public DataElement getDataElement()
> + public String getIndicator2()
> {
> - return dataElement;
> + return indicator;
> }
>
> - public void setDataElement( DataElement dataElement )
> + public void setIndicator2( String indicator2 )
> {
> - this.dataElement = dataElement;
> + this.indicator2 = indicator2;
> }
>
> public int getWidth()
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html
> 2010-12-01 12:16:51 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html
> 2010-12-03 12:40:38 +0000
> @@ -47,14 +47,19 @@
> <form id="exportForm" method="post">
> <input type="hidden" id="titleField" name="title"/>
> <input type="hidden" id="viewBoxField" name="viewBox"/>
> + <input type="hidden" id="layerField" name="layer"/>
> + <input type="hidden" id="imageLegendRowsField"
> name="imageLegendRows"/>
> <input type="hidden" id="svgField" name="svg"/>
> <input type="hidden" id="widthField" name="width"/>
> <input type="hidden" id="heightField" name="height"/>
> <input type="hidden" id="includeLegendsField"
> name="includeLegends"/>
> <input type="hidden" id="includeValuesField" name="includeValues"/>
> <input type="hidden" id="periodField" name="period"/>
> + <input type="hidden" id="periodField2" name="period2"/>
> <input type="hidden" id="indicatorField" name="indicator"/>
> + <input type="hidden" id="indicatorField2" name="indicator2"/>
> <input type="hidden" id="legendsField" name="legends"/>
> + <input type="hidden" id="legendsField2" name="legends2"/>
> <input type="hidden" id="dataValuesField" name="datavalues"/>
> <input type="hidden" id="imageFormat" name="imageFormat"/>
> </form>
>
> === modified file
> 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js'
> ---
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js
> 2010-12-02 12:41:12 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/globals.js
> 2010-12-02 19:03:23 +0000
> @@ -240,7 +240,7 @@
> for (var i = 0; i < mapValues.length; i++) {
> json += '{';
> json += '"organisation": "' + mapValues[i].orgUnitId + '",';
> - json += '"value": "' + mapValues[i].value + '" ';
> + json += '"value": "' + mapValues[i].value + '"';
> json += i < mapValues.length - 1 ? '},' : '}';
> }
> json += ']';
> @@ -249,15 +249,14 @@
> },
>
> getLegendsJSON: function() {
> - var widget = GLOBAL.vars.activePanel.isPolygon() ? choropleth :
> symbol;
> var json = '{';
> json += '"legends":';
> json += '[';
> - for(var i = 0; i < widget.imageLegend.length; i++) {
> + for(var i = 0; i < this.imageLegend.length; i++) {
> json += '{';
> - json += '"label": "' + widget.imageLegend[i].label + '",';
> - json += '"color": "' + widget.imageLegend[i].color + '" ';
> - json += i < widget.imageLegend.length-1 ? '},' : '}';
> + json += '"label": "' + this.imageLegend[i].label + '",';
> + json += '"color": "' + this.imageLegend[i].color + '"';
> + json += i < this.imageLegend.length-1 ? '},' : '}';
> }
> json += ']';
> json += '}';
>
> === 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-12-02 12:41:12 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/script/index.js
> 2010-12-03 12:40:38 +0000
> @@ -681,12 +681,12 @@
> },
> {
> xtype: 'combo',
> - id: 'exportimagequality_cb',
> - fieldLabel: i18n_image_resolution,
> + id: 'exportimagelayers_cb',
> + fieldLabel: 'Layers',
> labelSeparator: GLOBAL.conf.labelseparator,
> editable: false,
> valueField: 'id',
> - displayField: 'text',
> + displayField: 'layer',
> isFormField: true,
> width: GLOBAL.conf.combo_width_fieldset,
> minListWidth:
> GLOBAL.conf.combo_width_fieldset,
> @@ -694,11 +694,49 @@
> triggerAction: 'all',
> value: 1,
> store: new Ext.data.ArrayStore({
> - fields: ['id', 'text'],
> - data: [[1, i18n_medium], [2,
> i18n_large]]
> + fields: ['id', 'layer'],
> + data: [[1, 'Polygon layer'], [2,
> 'Point layer'], [3, 'Both']]
> })
> },
> {
> + xtype: 'combo',
> + id: 'exportimagewidth_cb',
> + fieldLabel: 'Width',
> + labelSeparator: GLOBAL.conf.labelseparator,
> + editable: true,
> + emptyText: 'Type custom px',
> + valueField: 'width',
> + displayField: 'text',
> + isFormField: true,
> + width: GLOBAL.conf.combo_width_fieldset,
> + minListWidth:
> GLOBAL.conf.combo_width_fieldset,
> + mode: 'local',
> + triggerAction: 'all',
> + store: new Ext.data.ArrayStore({
> + fields: ['width', 'text'],
> + data: [[800, 'Small'], [1190,
> 'Medium'], [1920, 'Large']]
> + })
> + },
> + {
> + xtype: 'combo',
> + id: 'exportimageheight_cb',
> + fieldLabel: 'Height',
> + labelSeparator: GLOBAL.conf.labelseparator,
> + editable: true,
> + emptyText: 'Type custom px',
> + valueField: 'height',
> + displayField: 'text',
> + isFormField: true,
> + width: GLOBAL.conf.combo_width_fieldset,
> + minListWidth:
> GLOBAL.conf.combo_width_fieldset,
> + mode: 'local',
> + triggerAction: 'all',
> + store: new Ext.data.ArrayStore({
> + fields: ['height', 'text'],
> + data: [[600, 'Small'], [880,
> 'Medium'], [1200, 'Large']]
> + })
> + },
> + {
> xtype: 'checkbox',
> id: 'exportimageincludelegend_chb',
> fieldLabel: i18n_include_legend,
> @@ -715,56 +753,90 @@
> cls: 'window-button',
> text: i18n_export,
> handler: function() {
> - var values, svgElement;
> - if (GLOBAL.vars.activePanel.isPolygon()) {
> - if (choropleth.formValidation.validateForm()) {
> + var values, svgElement, svg;
> + if (Ext.getCmp('exportimagelayers_cb').getValue() ==
> 1) {
> + if
> (choropleth.formValidation.validateForm()) {
> values =
> choropleth.formValues.getImageExportValues.call(choropleth);
> +
> document.getElementById('layerField').value = 1;
> +
> document.getElementById('periodField').value = values.dateValue;
> +
> document.getElementById('indicatorField').value = values.mapValueTypeValue;
> +
> document.getElementById('legendsField').value =
> GLOBAL.util.getLegendsJSON.call(choropleth);
> svgElement =
> document.getElementsByTagName('svg')[0];
> + svg =
> svgElement.parentNode.innerHTML;
> }
> else {
> -
> Ext.message.msg(false, i18n_please_render_map_first);
> +
> Ext.message.msg(false, 'Polygon layer not rendered');
> + return;
> }
> }
> - else if
> (GLOBAL.vars.activePanel.isPoint()) {
> - if (symbol.formValidation.validateForm()) {
> + else if
> (Ext.getCmp('exportimagelayers_cb').getValue() == 2) {
> + if
> (symbol.formValidation.validateForm()) {
> values =
> symbol.formValues.getImageExportValues.call(symbol);
> +
> document.getElementById('layerField').value = 2;
> +
> document.getElementById('periodField').value = values.dateValue;
> +
> document.getElementById('indicatorField').value = values.mapValueTypeValue;
> +
> document.getElementById('legendsField').value =
> GLOBAL.util.getLegendsJSON.call(symbol);
> svgElement =
> document.getElementsByTagName('svg')[1];
> - }
> - else {
> -
> Ext.message.msg(false, i18n_please_render_map_first);
> + svg =
> svgElement.parentNode.innerHTML;
> + }
> + else {
> +
> Ext.message.msg(false, 'Point layer not rendered');
> + return;
> + }
> + }
> + else if
> (Ext.getCmp('exportimagelayers_cb').getValue() == 3) {
> + if
> (choropleth.formValidation.validateForm()) {
> + if
> (symbol.formValidation.validateForm()) {
> +
> document.getElementById('layerField').value = 3;
> +
> document.getElementById('imageLegendRowsField').value =
> choropleth.imageLegend.length;
> +
> + values =
> choropleth.formValues.getImageExportValues.call(choropleth);
> +
> document.getElementById('periodField').value = values.dateValue;
> +
> document.getElementById('indicatorField').value = values.mapValueTypeValue;
> +
> document.getElementById('legendsField').value =
> GLOBAL.util.getLegendsJSON.call(choropleth);
> +
> + values =
> symbol.formValues.getImageExportValues.call(symbol);
> +
> document.getElementById('periodField2').value = values.dateValue;
> +
> document.getElementById('indicatorField2').value = values.mapValueTypeValue;
> +
> document.getElementById('legendsField2').value =
> GLOBAL.util.getLegendsJSON.call(symbol);
> +
> + svgElement
> = document.getElementsByTagName('svg')[0];
> + var str1 =
> svgElement.parentNode.innerHTML;
> + str1 =
> svgElement.parentNode.innerHTML.replace('</svg>');
> + var str2 =
> document.getElementsByTagName('svg')[1].parentNode.innerHTML;
> + str2 =
> str2.substring(str2.indexOf('>')+1);
> + svg = str1
> + str2;
> + }
> + else {
> +
> Ext.message.msg(false, 'Point layer not rendered');
> + return;
> + }
> + }
> + else {
> +
> Ext.message.msg(false, 'Polygon layer not rendered');
> + return;
> }
> }
>
> - var svg =
> svgElement.parentNode.innerHTML;
> - var viewBox =
> svgElement.getAttribute('viewBox');
> var title =
> Ext.getCmp('exportimagetitle_tf').getValue();
>
> if (!title) {
> Ext.message.msg(false,
> i18n_form_is_not_complete);
> }
> else {
> - var q =
> Ext.getCmp('exportimagequality_cb').getValue();
> - var w =
> svgElement.getAttribute('width') * q;
> - var h =
> svgElement.getAttribute('height') * q;
> - var includeLegend =
> Ext.getCmp('exportimageincludelegend_chb').getValue();
> -
> -
> Ext.getCmp('exportimagetitle_tf').reset();
> -
> var exportForm =
> document.getElementById('exportForm');
> exportForm.action =
> '../exportImage.action';
> exportForm.target =
> '_blank';
>
> -
> document.getElementById('titleField').value = title;
> -
> document.getElementById('viewBoxField').value = viewBox;
> +
> document.getElementById('titleField').value = title;
> +
> document.getElementById('viewBoxField').value =
> svgElement.getAttribute('viewBox');
>
> document.getElementById('svgField').value = svg;
> -
> document.getElementById('widthField').value = w;
> -
> document.getElementById('heightField').value = h;
> -
> document.getElementById('includeLegendsField').value = includeLegend;
> -
> document.getElementById('periodField').value = values.dateValue;
> -
> document.getElementById('indicatorField').value = values.mapValueTypeValue;
> -
> document.getElementById('legendsField').value =
> GLOBAL.util.getLegendsJSON();
> +
> document.getElementById('widthField').value =
> Ext.getCmp('exportimagewidth_cb').getValue();
> +
> document.getElementById('heightField').value =
> Ext.getCmp('exportimageheight_cb').getValue();
> +
> document.getElementById('includeLegendsField').value =
> Ext.getCmp('exportimageincludelegend_chb').getValue();
>
> exportForm.submit();
> +
> Ext.getCmp('exportimagetitle_tf').reset();
> }
> }
> }
> @@ -859,11 +931,11 @@
> Ext.message.msg(false,
> i18n_please_render_map_first);
> }
> }
> - }
> + }
> ]
> });
>
> - var exportImageWindow=new
> Ext.Window({id:'exportimage_w',title:'<span id="window-image-title">' +
> i18n_export_map_as_image +
> '</span>',layout:'fit',closeAction:'hide',defaults:{layout:'fit',bodyStyle:'padding:8px;
> border:0px'},width:250,height:158,items:[{xtype:'panel',items:[exportImagePanel]}]});
> + var exportImageWindow=new
> Ext.Window({id:'exportimage_w',title:'<span id="window-image-title">' +
> i18n_export_map_as_image +
> '</span>',layout:'fit',closeAction:'hide',defaults:{layout:'fit',bodyStyle:'padding:8px;
> border:0px'},width:250,height:210,items:[{xtype:'panel',items:[exportImagePanel]}]});
> var exportExcelWindow=new
> Ext.Window({id:'exportexcel_w',title:'<span id="window-excel-title">' +
> i18n_export_excel +
> '</span>',layout:'fit',closeAction:'hide',defaults:{layout:'fit',bodyStyle:'padding:8px;
> border:0px'},width:260,height:157,items:[{xtype:'panel',items:[exportExcelPanel]}]});
>
> /* Section: predefined map legend set */
> @@ -871,7 +943,7 @@
> id: 'newpredefinedmaplegend_p',
> bodyStyle: 'border:0px solid #fff',
> items:
> - [
> + [
> { html: '<div
> class="window-field-label-first">'+i18n_display_name+'</div>' },
> new
> Ext.form.TextField({id:'predefinedmaplegendname_tf',isFormField:true,hideLabel:true,emptyText:GLOBAL.conf.emptytext,width:GLOBAL.conf.combo_width}),
> { html: '<div
> class="window-field-label">'+i18n_start_value+'</div>' },
>
> === 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-12-02 12:41:12 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js
> 2010-12-02 15:46:49 +0000
> @@ -1404,7 +1404,7 @@
> getImageExportValues: function() {
> return {
> mapValueTypeValue:
> this.form.findField('mapvaluetype').getValue() ==
> GLOBAL.conf.map_value_type_indicator ?
> -
> this.form.findField('indicator').getValue() :
> this.form.findField('dataelement').getValue(),
> +
> this.form.findField('indicator').getRawValue() :
> this.form.findField('dataelement').getRawValue(),
> dateValue: GLOBAL.vars.mapDateType.isFixed()
> ?
>
> this.form.findField('period').getRawValue() : new
> Date(this.form.findField('startdate').getRawValue()).format('Y M j') + ' - '
> + new Date(this.form.findField('enddate').getRawValue()).format('Y M j')
> };
>
> === 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-12-02 12:41:12 +0000
> +++
> dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js
> 2010-12-02 19:03:23 +0000
> @@ -1371,7 +1371,7 @@
> getImageExportValues: function() {
> return {
> mapValueTypeValue:
> this.form.findField('mapvaluetype').getValue() ==
> GLOBAL.conf.map_value_type_indicator ?
> -
> this.form.findField('indicator').getValue() :
> this.form.findField('dataelement').getValue(),
> +
> this.form.findField('indicator').getRawValue() :
> this.form.findField('dataelement').getRawValue(),
> dateValue: GLOBAL.vars.mapDateType.isFixed()
> ?
>
> this.form.findField('period').getRawValue() : new
> Date(this.form.findField('startdate').getRawValue()).format('Y M j') + ' - '
> + new Date(this.form.findField('enddate').getRawValue()).format('Y M j')
> };
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help : https://help.launchpad.net/ListHelp
>
>
Attachment:
exported_image.png
Description: PNG image
References