	public Canvas getViewPanel() {
		/**
		 * <p>
		 * A RectangleController that calculates the size of the selected area and outputs it.
		 * </p>
		 * @author Frank Wynants
		 */
		class AreaController extends AbstractRectangleController {
			// A RectangleController that prints the size of the selected area
			
			/**
			 * Constructor
			 * 
			 * @param mapWidget
			 */
			public AreaController(MapWidget mapWidget) {
				super(mapWidget);
			}

			/**
			 * When the user selects a rectangle the size of the rectangle in km is printed out and the total size of
			 * the area is computed and printed out
			 * 
			 * @param worldBounds
			 */
			protected void selectRectangle(Bbox worldBounds) {

				double cWidth = worldBounds.getWidth();
				double cHeight = worldBounds.getHeight();

				// transfer degrees to km
				double kmWidth = cWidth * KM_DEGREE;
				double kmHeight = cHeight * KM_DEGREE;

				// compute total area
				double area = kmWidth * kmHeight;

				// round the numbers two 2 digits for easier human reading
				double roundedKmWidth = Math.round(kmWidth * 100) / 100.0;
				double roundedKmHeight = Math.round(kmHeight * 100) / 100.0;
				double roundedArea = Math.round(area * 100) / 100.0;

				SC.say(I18nProvider.getSampleMessages().rectangeControllerOutput(roundedKmWidth, roundedKmHeight,
						roundedArea));
			}
		}

		VLayout layout = new VLayout();
		layout.setWidth100();
		layout.setHeight100();

		// Map with ID wmsMap is defined in the XML configuration. (mapWms.xml)
		final MapWidget map = new MapWidget("wmsMap", "gwt-samples");
		map.addDrawHandler(new DrawHandler() {

			public void onDraw(DrawEvent event) {
				AreaController areaController = new AreaController(map);
				map.setController(areaController);
			}
		});

		layout.addMember(map);
		return layout;
	}