code: private void showFeatureInfo(Map<String, List<org.geomajas.layer.feature.Feature>> featureMap) {
  		if (featureMap.size() > 0) {
  			if (featureMap.size() == 1 && featureMap.values().iterator().next().size() == 1) {
  				Layer<?> layer = (mapWidget.getMapModel().getLayer(featureMap.keySet().iterator().next()));
  				if (null != layer) {
  					org.geomajas.layer.feature.Feature featDTO = featureMap.values().iterator().next().get(0);
  					Feature feature;
  					if (layer instanceof VectorLayer) {
  						feature = new Feature(featDTO, (VectorLayer) layer);
  					} else {
  						feature = new Feature(featDTO, null);
  					}
  					Window window = FeatureDetailWidgetFactory.createFeatureDetailWindow(feature, layer, false);
  					window.setPageTop(mapWidget.getAbsoluteTop() + 25);
  					window.setPageLeft(mapWidget.getAbsoluteLeft() + 25);
  					window.setKeepInParentRect(true);
  					window.draw();
  				} else {
  					Notify.error(MESSAGES.multiLayerFeatureInfoLayerNotFound());
  				}
  			} else {
  				Window window = new MultiLayerFeatureInfoWindow(mapWidget, featureMap, featuresListLabels);
  				window.setPageTop(mapWidget.getAbsoluteTop() + 10);
  				window.setPageLeft(mapWidget.getAbsoluteLeft() + 50);
  				window.draw();
  			}
  		} else {
  			Notify.info(MESSAGES.multiLayerFeatureInfoNoResult());
  		}
  	}
docs: -------------------------------------------------------------------------