package org.dashbuilder.client.widgets.dataset.editor.attributes;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.HandlerRegistration;
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.gwtbootstrap3.extras.toggleswitch.client.ui.ToggleSwitch;
import org.uberfire.mvp.Command;
import javax.enterprise.context.Dependent;
/**
* <p>The Data Set refresh attributes editor view.</p>
*
* @since 0.4.0
*/
@Dependent
public class DataSetDefRefreshAttributesEditorView extends Composite implements DataSetDefRefreshAttributesEditor.View {
interface Binder extends UiBinder<Widget, DataSetDefRefreshAttributesEditorView> {
Binder BINDER = GWT.create(Binder.class);
}
DataSetDefRefreshAttributesEditor presenter;
@UiField
ToggleSwitch refreshEnabled;
@UiField(provided = true)
DataSetDefRefreshIntervalEditor.View refreshTimeView;
@UiField(provided = true)
IsWidget refreshOnStaleDataView;
private HandlerRegistration handlerRegistration;
@Override
public void init(final DataSetDefRefreshAttributesEditor presenter) {
this.presenter = presenter;
}
@Override
public void initWidgets(final IsWidget enabledView, final DataSetDefRefreshIntervalEditor.View refreshTimeView) {
this.refreshOnStaleDataView = enabledView;
this.refreshTimeView = refreshTimeView;
initWidget(Binder.BINDER.createAndBindUi(this));
}
@Override
public void addRefreshEnabledButtonHandler(final Command handler) {
if (handlerRegistration != null) {
handlerRegistration.removeHandler();
}
handlerRegistration = refreshEnabled.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(final ValueChangeEvent<Boolean> event) {
handler.execute();;
}
});
}
@Override
public void setEnabled(final boolean isEnabled) {
refreshEnabled.setValue(isEnabled);
}
}