Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java @ 1360:ce0bbac13bc8
Renamed 'textbackground' to 'backgroundcolor'.
flys-client/trunk@3051 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 21 Oct 2011 08:11:32 +0000 |
parents | 8a93fb299e64 |
children | b0fe35d4ce6b |
line wrap: on
line source
package de.intevation.flys.client.client.ui.map; import com.google.gwt.core.client.GWT; import com.smartgwt.client.types.ImageStyle; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.types.VerticalAlignment; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Img; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import de.intevation.flys.client.shared.MapUtils; import de.intevation.flys.client.shared.model.AttributedTheme; import de.intevation.flys.client.shared.model.Collection; import de.intevation.flys.client.shared.model.FacetRecord; import de.intevation.flys.client.shared.model.Theme; import de.intevation.flys.client.shared.model.OutputMode; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.client.ui.ThemePanel; /** * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class MapThemePanel extends ThemePanel { public static final int CELL_HEIGHT = 75; public static final int STYLE_CELL_WIDTH = 125; public interface ActivateCallback { void activate(Theme theme, boolean activate); } public interface ThemeMovedCallback { void onThemeMoved(Theme theme, int oldIdx, int newIdx); } private FLYSConstants MSG = GWT.create(FLYSConstants.class); protected ActivateCallback activateCallback; protected ThemeMovedCallback themeMovedCallback; public static final String GRID_FIELD_ACTIVE = "active"; public static final String GRID_FIELD_STYLE = "style"; public static final String GRID_FIELD_NAME = "name"; protected MapOutputTab mapOut; public MapThemePanel( Collection collection, OutputMode mode, ActivateCallback activateCallback ) { this(collection, mode, activateCallback, null); } public MapThemePanel( Collection collection, OutputMode mode, ActivateCallback activateCallback, ThemeMovedCallback themeMovedCallback ) { super(collection, mode); this.activateCallback = activateCallback; this.themeMovedCallback = themeMovedCallback; initGrid(); initLayout(); updateGrid(); } protected void initLayout() { setWidth100(); setHeight100(); VLayout layout = new VLayout(); layout.setWidth100(); layout.setHeight100(); layout.addMember(list); layout.addMember(navigation); addChild(layout); } protected void initGrid() { list.setCanEdit(true); list.setCanSort(false); list.setShowRecordComponents(false); list.setShowRecordComponentsByCell(true); list.setShowHeader(true); list.setShowHeaderContextMenu(false); list.setWidth100(); list.setHeight100(); list.setCellHeight(CELL_HEIGHT); list.setShowRecordComponents(true); list.setShowRecordComponentsByCell(true); list.setShowAllRecords(true); list.addEditCompleteHandler(this); ListGridField active = new ListGridField(GRID_FIELD_ACTIVE, " ", 20); active.setType(ListGridFieldType.BOOLEAN); active.setCanDragResize(false); ListGridField style = new ListGridField( GRID_FIELD_STYLE, MSG.map_themepanel_header_style(), STYLE_CELL_WIDTH); style.setCanEdit(false); style.setCanDragResize(false); ListGridField name = new ListGridField( GRID_FIELD_NAME, MSG.chart_themepanel_header_themes()); name.setType(ListGridFieldType.TEXT); list.setFields(active, style, name); } @Override protected ListGrid createNewGrid() { ListGrid grid = new ListGrid() { @Override protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) { String fieldname = getFieldName(colNum); if (fieldname.equals(GRID_FIELD_STYLE)) { FacetRecord r = (FacetRecord) record; AttributedTheme at = (AttributedTheme) r.getTheme(); String imgUrl = MapUtils.getLegendGraphicUrl( at.getAttr("url"), at.getAttr("layers")); HLayout layout = new HLayout(); layout.setAlign(VerticalAlignment.CENTER); layout.setLayoutAlign(VerticalAlignment.CENTER); Img img = new Img(imgUrl); img.setImageType(ImageStyle.CENTER); layout.addMember(img); return layout; } return super.createRecordComponent(record, colNum); } }; return grid; } @Override public void activateTheme(Theme theme, boolean active) { if (activateCallback != null) { activateCallback.activate(theme, active); } theme.setActive(active ? 1 : 0); } @Override protected void fireThemeMoved(Theme theme, int oldIdx, int newIdx) { if (themeMovedCallback != null) { themeMovedCallback.onThemeMoved(theme, oldIdx, newIdx); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :