package org.activityinfo.ui.client.component.importDialog.mapping;
import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import org.activityinfo.core.shared.importing.model.*;
import org.activityinfo.core.shared.importing.source.SourceColumn;
import org.activityinfo.i18n.shared.I18N;
import static com.google.gwt.dom.client.BrowserEvents.CLICK;
/**
* Handles click events on header cells
*/
class GridHeaderCell extends AbstractCell<SourceColumn> {
private ImportModel model;
public GridHeaderCell(ImportModel model) {
super(CLICK);
this.model = model;
}
@Override
public void render(Context context, SourceColumn column, SafeHtmlBuilder sb) {
if(context.getIndex() == ColumnMappingGrid.SOURCE_COLUMN_HEADER_ROW) {
sb.appendEscaped(column.getHeader());
} else {
ColumnAction action = model.getColumnAction(column);
if(action == null) {
sb.appendHtmlConstant(I18N.CONSTANTS.chooseFieldHeading());
} else if(action == IgnoreAction.INSTANCE) {
sb.appendEscaped(I18N.CONSTANTS.ignoreColumnAction());
} else if(action instanceof MapExistingAction) {
sb.appendEscaped(((MapExistingAction) action).getTarget().getLabel());
}
}
}
}