package org.dashbuilder.client.widgets.dataset.editor.column; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiConstructor; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Widget; import org.gwtbootstrap3.client.ui.CheckBox; import org.gwtbootstrap3.client.ui.Row; import javax.enterprise.context.Dependent; /** * <p>Data Set column list editor view.</p> * * @since 0.4.0 */ @Dependent public class ColumnListEditorView extends Composite implements ColumnListEditor.View { interface Binder extends UiBinder<Widget, ColumnListEditorView> { Binder BINDER = GWT.create(Binder.class); } ColumnListEditor presenter; @UiField FlowPanel container; @UiConstructor public ColumnListEditorView() { initWidget(Binder.BINDER.createAndBindUi(this)); } @Override public void init(final ColumnListEditor presenter) { this.presenter = presenter; } @Override public ColumnListEditor.View insert(final int index, final DataColumnDefEditor.View columnEditorView, final boolean selected, final boolean enabled, final String altText) { final CheckBox selectedInput = new CheckBox(); selectedInput.getElement().getStyle().setCursor(Style.Cursor.POINTER); selectedInput.getElement().getStyle().setTop(-7, Style.Unit.PX); selectedInput.setEnabled(enabled); selectedInput.setValue(selected); selectedInput.setTitle(altText != null ? altText : ""); selectedInput.addValueChangeHandler(new ValueChangeHandler<Boolean>() { @Override public void onValueChange(final ValueChangeEvent<Boolean> event) { presenter.onColumnSelect(index, event.getValue()); } }); final HorizontalPanel panel = new HorizontalPanel(); panel.setWidth("100%"); panel.add(selectedInput); panel.add(columnEditorView.asWidget()); container.insert(panel, index); return this; } @Override public ColumnListEditor.View remove(final int index) { container.remove(index); return this; } @Override public ColumnListEditor.View clear() { container.clear(); return this; } }