package org.dashbuilder.client.widgets.dataset.editor.attributes;
import com.google.gwt.core.client.GWT;
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.dashbuilder.common.client.editor.file.FileUploadEditor;
import org.gwtbootstrap3.client.ui.IntegerBox;
import org.gwtbootstrap3.client.ui.ListBox;
import org.gwtbootstrap3.client.ui.Popover;
import org.gwtbootstrap3.client.ui.constants.Placement;
import javax.enterprise.context.Dependent;
/**
* <p>The DataSetDefRefreshIntervalEditor editor view.</p>
*
* @since 0.4.0
*/
@Dependent
public class DataSetDefRefreshIntervalEditorView extends Composite implements DataSetDefRefreshIntervalEditor.View {
interface Binder extends UiBinder<Widget, DataSetDefRefreshIntervalEditorView> {
Binder BINDER = GWT.create(Binder.class);
}
@UiField
HorizontalPanel mainPanel;
@UiField
IntegerBox valueBox;
@UiField
ListBox intervalType;
DataSetDefRefreshIntervalEditor presenter;
@UiConstructor
public DataSetDefRefreshIntervalEditorView() {
initWidget(Binder.BINDER.createAndBindUi(this));
}
@Override
public void init(final DataSetDefRefreshIntervalEditor presenter) {
this.presenter = presenter;
}
@Override
public DataSetDefRefreshIntervalEditor.View addIntervalTypeItem(final String item) {
intervalType.addItem(item);
return this;
}
@Override
public DataSetDefRefreshIntervalEditor.View setSelectedIntervalType(final int index) {
intervalType.setSelectedIndex(index);
return this;
}
@Override
public int getSelectedIntervalTypeIndex() {
return intervalType.getSelectedIndex();
}
@Override
public DataSetDefRefreshIntervalEditor.View setQuantity(final double value) {
valueBox.setValue((int) value);
return this;
}
@Override
public double getQuantity() {
final Integer value = valueBox.getValue();
return value != null ? value.doubleValue() : 0;
}
@Override
public DataSetDefRefreshIntervalEditor.View setEnabled(final boolean isEnabled) {
valueBox.setEnabled(isEnabled);
intervalType.setEnabled(isEnabled);
return this;
}
@Override
public DataSetDefRefreshIntervalEditor.View addHelpContent(final String title, final String content, final Placement placement) {
final Popover popover = new Popover(intervalType);
popover.setContainer("body");
popover.setShowDelayMs(1000);
popover.setPlacement(placement);
popover.setTitle(title);
popover.setContent(content);
mainPanel.add(popover);
return this;
}
}