ingo@805: package de.intevation.flys.client.client.ui.map; ingo@805: ingo@805: import com.google.gwt.core.client.GWT; ingo@805: ingo@805: import com.smartgwt.client.types.ListGridFieldType; ingo@805: import com.smartgwt.client.widgets.grid.ListGridField; ingo@805: import com.smartgwt.client.widgets.layout.VLayout; ingo@805: ingo@805: import de.intevation.flys.client.shared.model.Collection; ingo@805: import de.intevation.flys.client.shared.model.Theme; ingo@805: import de.intevation.flys.client.shared.model.OutputMode; ingo@805: ingo@805: import de.intevation.flys.client.client.FLYSConstants; ingo@805: import de.intevation.flys.client.client.ui.ThemePanel; ingo@805: ingo@805: ingo@805: /** ingo@805: * @author Ingo Weinzierl ingo@805: */ ingo@805: public class MapThemePanel extends ThemePanel { ingo@805: ingo@806: public interface ActivateCallback { ingo@806: void activate(Theme theme, boolean activate); ingo@806: } ingo@806: ingo@806: ingo@806: ingo@805: private FLYSConstants MSG = GWT.create(FLYSConstants.class); ingo@805: ingo@805: ingo@806: protected ActivateCallback activateCallback; ingo@806: ingo@806: ingo@805: public static final String GRID_FIELD_ACTIVE = "active"; ingo@805: public static final String GRID_FIELD_NAME = "name"; ingo@805: ingo@805: ingo@805: protected MapOutputTab mapOut; ingo@805: ingo@805: ingo@806: public MapThemePanel( ingo@806: Collection collection, ingo@806: OutputMode mode, ingo@806: ActivateCallback activateCallback) ingo@806: { ingo@805: super(collection, mode); ingo@805: ingo@806: this.activateCallback = activateCallback; ingo@806: ingo@805: initGrid(); ingo@805: initLayout(); ingo@805: ingo@805: updateGrid(); ingo@805: } ingo@805: ingo@805: ingo@805: protected void initLayout() { ingo@805: setWidth100(); ingo@805: setHeight100(); ingo@805: ingo@805: VLayout layout = new VLayout(); ingo@805: layout.setWidth100(); ingo@805: layout.setHeight100(); ingo@805: ingo@805: layout.addMember(list); ingo@805: layout.addMember(navigation); ingo@805: ingo@805: addChild(layout); ingo@805: } ingo@805: ingo@805: ingo@805: protected void initGrid() { ingo@805: list.setCanEdit(true); ingo@805: list.setCanSort(false); ingo@805: list.setShowRecordComponents(false); ingo@805: list.setShowRecordComponentsByCell(true); ingo@805: list.setShowHeader(true); ingo@805: list.setShowHeaderContextMenu(false); ingo@805: list.setWidth100(); ingo@805: list.setHeight100(); ingo@805: ingo@805: list.addEditCompleteHandler(this); ingo@805: ingo@805: ListGridField active = new ListGridField(GRID_FIELD_ACTIVE, " ", 20); ingo@805: active.setType(ListGridFieldType.BOOLEAN); ingo@805: ingo@805: ListGridField name = new ListGridField( ingo@805: GRID_FIELD_NAME, MSG.chart_themepanel_header_themes()); ingo@805: name.setType(ListGridFieldType.TEXT); ingo@805: ingo@805: list.setFields(active, name); ingo@805: } ingo@805: ingo@805: ingo@805: @Override ingo@805: public void activateTheme(Theme theme, boolean active) { ingo@806: if (activateCallback != null) { ingo@806: activateCallback.activate(theme, active); ingo@806: } ingo@806: ingo@805: theme.setActive(active ? 1 : 0); ingo@805: } ingo@805: } ingo@805: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :