package org.dashbuilder.client.widgets.dataset.editor.csv;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import org.dashbuilder.common.client.editor.ValueBoxEditor;
import org.gwtbootstrap3.client.ui.Button;
import org.gwtbootstrap3.client.ui.Row;
import javax.enterprise.context.Dependent;
/**
* <p>The CSV Data Set attributes editor view.</p>
*
* @since 0.4.0
*/
@Dependent
public class CSVDataSetDefAttributesEditorView extends Composite implements CSVDataSetDefAttributesEditor.View {
interface Binder extends UiBinder<Widget, CSVDataSetDefAttributesEditorView> {
Binder BINDER = GWT.create(Binder.class);
}
CSVDataSetDefAttributesEditor presenter;
@UiField
Row filePathRow;
@UiField(provided = true)
IsWidget filePathView;
@UiField
Row fileURLRow;
@UiField(provided = true)
ValueBoxEditor.View fileURLView;
@UiField
Button useFilePathButton;
@UiField
Button useFileURLButton;
@UiField(provided = true)
ValueBoxEditor.View sepCharView;
@UiField(provided = true)
ValueBoxEditor.View quoteCharView;
@UiField(provided = true)
ValueBoxEditor.View escCharView;
@UiField(provided = true)
ValueBoxEditor.View datePatternView;
@UiField(provided = true)
ValueBoxEditor.View numberPatternView;
@Override
public void init(final CSVDataSetDefAttributesEditor presenter) {
this.presenter = presenter;
}
@Override
public void initWidgets(final ValueBoxEditor.View fileURLView, final IsWidget filePathView,
final ValueBoxEditor.View sepCharView, final ValueBoxEditor.View quoteCharView,
final ValueBoxEditor.View escCharView, final ValueBoxEditor.View datePatternView,
final ValueBoxEditor.View numberPatternView) {
this.fileURLView = fileURLView;
this.filePathView = filePathView;
this.sepCharView = sepCharView;
this.quoteCharView = quoteCharView;
this.escCharView = escCharView;
this.datePatternView = datePatternView;
this.numberPatternView = numberPatternView;
initWidget(Binder.BINDER.createAndBindUi(this));
useFilePathButton.addClickHandler(useFilePathButtonHandler);
useFileURLButton.addClickHandler(useFileURLButtonHandler);
}
@Override
public void showFilePathInput() {
fileURLRow.setVisible(false);
filePathRow.setVisible(true);
}
@Override
public void showFileURLInput() {
fileURLRow.setVisible(true);
filePathRow.setVisible(false);
}
final ClickHandler useFilePathButtonHandler = new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
presenter.onUseFilePathButtonClick();
}
};
final ClickHandler useFileURLButtonHandler = new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
presenter.onUseFileURLButtonClick();
}
};
}