use of org.pentaho.ui.xul.gwt.binding.GwtBindingFactory in project data-access by pentaho.
the class TablesSelectionStep method setBindings.
public void setBindings() {
BindingFactory bf = new GwtBindingFactory(document);
bf.createBinding(this.joinGuiModel.getAvailableTables(), "children", this.availableTables, "elements");
bf.createBinding(this.joinGuiModel.getSelectedTables(), "children", this.selectedTables, "elements");
bf.createBinding(this.joinGuiModel.getSelectedTables(), "children", this.factTables, "elements", new BindingConvertor<AbstractModelList<JoinTableModel>, Collection<JoinTableModel>>() {
@Override
public Collection<JoinTableModel> sourceToTarget(AbstractModelList<JoinTableModel> list) {
List<JoinTableModel> tables = new ArrayList<JoinTableModel>();
tables.addAll(list.asList());
JoinTableModel emptyOption = new JoinTableModel();
emptyOption.setName(MessageHandler.getString("multitable.SELECT_TABLE"));
// Empty option must be always 0.
tables.add(0, emptyOption);
return tables;
}
@Override
public AbstractModelList<JoinTableModel> targetToSource(final Collection<JoinTableModel> list) {
return null;
}
});
bf.createBinding(this.joinGuiModel, "schemas", this.schemas, "elements", new BindingConvertor<List<String>, Collection<String>>() {
@Override
public Collection<String> sourceToTarget(List<String> list) {
List<String> tables = new ArrayList<String>();
tables.addAll(list);
return tables;
}
@Override
public List<String> targetToSource(final Collection<String> list) {
return null;
}
});
bf.createBinding(this.factTables, "selectedIndex", this.joinGuiModel, "factTable", new BindingConvertor<Integer, JoinTableModel>() {
@Override
public JoinTableModel sourceToTarget(final Integer index) {
if (index == -1) {
return null;
}
// Index 0 represents [select table] option.
// To be valid index must not be 0.
checkValidState();
int i = (int) index;
i--;
return i < 0 ? null : joinGuiModel.getSelectedTables().get(i);
}
@Override
public Integer targetToSource(final JoinTableModel value) {
return joinGuiModel.getSelectedTables().indexOf(value);
}
});
// use a binding to handle the visibility state of the schema type radio group
try {
bf.createBinding(joinGuiModel, "doOlap", "factTableVbox", "visible").fireSourceChanged();
} catch (Exception e) {
e.printStackTrace();
mtdatasource.displayErrors(new JoinError(e.getMessage(), e.getMessage()));
}
}
use of org.pentaho.ui.xul.gwt.binding.GwtBindingFactory in project data-access by pentaho.
the class AbstractWizardStep method init.
/**
* @throws XulException
*/
public void init(IWizardModel wizardModel) throws XulException {
this.wizardModel = wizardModel;
bf = new GwtBindingFactory(document);
this.setBindings();
}
use of org.pentaho.ui.xul.gwt.binding.GwtBindingFactory in project data-access by pentaho.
the class GwtDatasourceAdminDialog method xulLoaded.
public void xulLoaded(final GwtXulRunner runner) {
try {
GwtXulDomContainer container = (GwtXulDomContainer) runner.getXulDomContainers().get(0);
BindingFactory bf = new GwtBindingFactory(container.getDocumentRoot());
ResourceBundle resBundle = (ResourceBundle) container.getResourceBundles().get(0);
datasourceMessages = new GwtDatasourceMessages();
datasourceMessages.setMessageBundle(resBundle);
datasourceAdminDialogController = new DatasourceAdminDialogController();
datasourceAdminDialogController.setBindingFactory(bf);
datasourceAdminDialogController.setDatasourceServiceManager(genericDatasourceServiceManager);
datasourceAdminDialogController.setModelerService(modelerService);
datasourceAdminDialogController.setDSWService(dswService);
datasourceAdminDialogController.setEntryPoint(entryPoint);
datasourceAdminDialogController.setMessageBundle(datasourceMessages);
container.addEventHandler(datasourceAdminDialogController);
runner.initialize();
runner.start();
initialized = true;
if (constructorListener != null) {
constructorListener.asyncConstructorDone(this);
}
datasourceAdminDialogController.onDialogReady();
} catch (Exception e) {
e.printStackTrace();
}
}
use of org.pentaho.ui.xul.gwt.binding.GwtBindingFactory in project data-access by pentaho.
the class GwtImportDialog method xulLoaded.
public void xulLoaded(GwtXulRunner runner) {
try {
XulDomContainer container = runner.getXulDomContainers().get(0);
BindingFactory bf = new GwtBindingFactory(container.getDocumentRoot());
ResourceBundle resBundle = (ResourceBundle) container.getResourceBundles().get(0);
datasourceMessages = new GwtDatasourceMessages();
datasourceMessages.setMessageBundle(resBundle);
metadataImportDialogController = new MetadataImportDialogController();
metadataImportDialogController.setBindingFactory(bf);
container.addEventHandler(metadataImportDialogController);
metadataImportDialogController.setDatasourceMessages(datasourceMessages);
analysisImportDialogController = new AnalysisImportDialogController();
analysisImportDialogController.setBindingFactory(bf);
container.addEventHandler(analysisImportDialogController);
analysisImportDialogController.setDatasourceMessages(datasourceMessages);
importDialogController = new ImportDialogController();
importDialogController.addImportPerspective(0, metadataImportDialogController);
importDialogController.addImportPerspective(1, analysisImportDialogController);
container.addEventHandler(importDialogController);
runner.initialize();
runner.start();
importDialogController.init();
metadataImportDialogController.init();
analysisImportDialogController.init();
if (constructorListener != null) {
constructorListener.asyncConstructorDone(this);
}
} catch (Exception e) {
e.printStackTrace();
}
}
use of org.pentaho.ui.xul.gwt.binding.GwtBindingFactory in project data-access by pentaho.
the class ModelerDialog method xulLoaded.
public void xulLoaded(GwtXulRunner gwtXulRunner) {
container = gwtXulRunner.getXulDomContainers().get(0);
container.addEventHandler(this);
BogoPojo bogo = new BogoPojo();
service.gwtWorkaround(bogo, new XulServiceCallback<BogoPojo>() {
public void success(BogoPojo retVal) {
}
public void error(String message, Throwable error) {
}
});
datasourceService = new DSWDatasourceServiceGwtImpl();
// connectionService = new ConnectionServiceGwtImpl();
csvService = (ICsvDatasourceServiceAsync) GWT.create(ICsvDatasourceService.class);
if (wizard == null) {
wizard = new EmbeddedWizard(false);
wizard.setDatasourceService(datasourceService);
// wizard.setConnectionService(connectionService);
wizard.setCsvDatasourceService(csvService);
wizard.init(null);
}
messages = new GwtModelerMessages((ResourceBundle) container.getResourceBundles().get(0));
try {
ModelerMessagesHolder.setMessages(messages);
} catch (Exception ignored) {
// Messages may have been set earlier, ignore.
}
IModelerWorkspaceHelper workspacehelper = model.getWorkspaceHelper();
controller = new ModelerController(model);
controller.setWorkspaceHelper(workspacehelper);
// controller.setMessages(messages);
final BindingFactory bf = new GwtBindingFactory(container.getDocumentRoot());
controller.setBindingFactory(bf);
container.addEventHandler(controller);
try {
controller.init();
} catch (ModelerException e) {
e.printStackTrace();
}
bf.setBindingType(Binding.Type.ONE_WAY);
bf.createBinding(model, "valid", "modeler_dialog_accept", "disabled", new BindingConvertor<Boolean, Boolean>() {
@Override
public Boolean sourceToTarget(Boolean value) {
return !value;
}
@Override
public Boolean targetToSource(Boolean value) {
return !value;
}
});
bf.setBindingType(Binding.Type.BI_DIRECTIONAL);
// go get the geocontext from the server. Prop forms are initialized after this call returns as they
// may need them to create the UI
datasourceService.getGeoContext(new XulServiceCallback<GeoContext>() {
public void success(GeoContext geoContext) {
model.setGeoContext(geoContext);
ModelerUiHelper.configureControllers(container, model, bf, controller, new ColResolverController());
ModelerDialog.this.constructorListener.asyncConstructorDone(ModelerDialog.this);
}
public void error(String s, Throwable throwable) {
throwable.printStackTrace();
// put in a stub to ensure the rest of the dialog works
model.setGeoContext(new GeoContext());
ModelerUiHelper.configureControllers(container, model, bf, controller, new ColResolverController());
ModelerDialog.this.constructorListener.asyncConstructorDone(ModelerDialog.this);
}
});
}
Aggregations