package org.dashbuilder.client.widgets.dataset.editor.sql;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Widget;
import org.dashbuilder.common.client.editor.ValueBoxEditor;
import org.dashbuilder.common.client.editor.list.DropDownEditor;
import org.gwtbootstrap3.client.ui.RadioButton;
import javax.enterprise.context.Dependent;
/**
* <p>The SQL Data Set attributes editor view.</p>
*
* @since 0.4.0
*/
@Dependent
public class SQLDataSetDefAttributesEditorView extends Composite implements SQLDataSetDefAttributesEditor.View {
interface Binder extends UiBinder<Widget, SQLDataSetDefAttributesEditorView> {
Binder BINDER = GWT.create(Binder.class);
}
SQLDataSetDefAttributesEditor presenter;
@UiField(provided = true)
DropDownEditor.View dataSource;
@UiField(provided = true)
ValueBoxEditor.View dbSchema;
@UiField
@Editor.Ignore
RadioButton tableButton;
@UiField
@Editor.Ignore
RadioButton queryButton;
@UiField
FlowPanel dbTablePanel;
@UiField(provided = true)
ValueBoxEditor.View dbTable;
@UiField
FlowPanel dbSQLPanel;
@UiField(provided = true)
ValueBoxEditor.View dbSQL;
@Override
public void init(final SQLDataSetDefAttributesEditor presenter) {
this.presenter = presenter;
}
@Override
public void initWidgets(final DropDownEditor.View dataSource, final ValueBoxEditor.View dbSchema,
final ValueBoxEditor.View dbTable, final ValueBoxEditor.View dbSQL) {
this.dataSource = dataSource;
this.dbSchema = dbSchema;
this.dbTable = dbTable;
this.dbSQL = dbSQL;
initWidget(Binder.BINDER.createAndBindUi(this));
}
public void table() {
dbTablePanel.setVisible(true);
dbSQLPanel.setVisible(false);
tableButton.setValue(true);
queryButton.setValue(false);
}
public void query() {
dbTablePanel.setVisible(false);
dbSQLPanel.setVisible(true);
tableButton.setValue(false);
queryButton.setValue(true);
}
@UiHandler("tableButton")
void handleTableRadioClick(ClickEvent e) {
presenter.onSelectTable();
}
@UiHandler("queryButton")
void handleQueryRadioClick(ClickEvent e) {
presenter.onSelectQuery();
}
}