@Override public void restoreSavedDatasource( Domain previousDomain, final XulServiceCallback<Void> callback) { String serializedDatasource = (String) previousDomain.getLogicalModels().get(0).getProperty("datasourceModel"); datasourceService.deSerializeModelState( serializedDatasource, new XulServiceCallback<DatasourceDTO>() { public void success(DatasourceDTO datasourceDTO) { DatasourceDTO.populateModel(datasourceDTO, datasourceModel); datasourceModel.getGuiStateModel().setDirty(false); wizardModel.setEditing(true); callback.success(null); } public void error(String s, Throwable throwable) { MessageHandler.getInstance() .showErrorDialog( MessageHandler.getString("ERROR"), MessageHandler.getString( "DatasourceEditor.ERROR_0002_UNABLE_TO_SHOW_DIALOG", throwable.getLocalizedMessage())); callback.error(s, throwable); } }); }
public void init() { // We need the SelectDatasourceStep at all times, add it now wizardDialog = (XulDialog) document.getElementById("main_wizard_window"); summaryDialog = (XulDialog) document.getElementById("summaryDialog"); finishButton = (XulButton) document.getElementById(FINISH_BTN_ELEMENT_ID); datasourceName = (XulTextbox) document.getElementById("datasourceName"); // $NON-NLS-1$ bf.createBinding(datasourceName, "value", wizardModel, "datasourceName"); wizardModel.addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent propertyChangeEvent) { if (propertyChangeEvent.getPropertyName().equals("datasourceName")) { steps.get(activeStep).setValid(steps.get(activeStep).isValid()); } } }); bf.setBindingType(Binding.Type.ONE_WAY); datatypeMenuList = (XulMenuList) document.getElementById("datatypeMenuList"); Binding datasourceBinding = bf.createBinding(wizardModel, "datasources", datatypeMenuList, "elements"); bf.setBindingType(Binding.Type.ONE_WAY); bf.createBinding(datatypeMenuList, "selectedItem", wizardModel, "selectedDatasource"); bf.setBindingType(Binding.Type.ONE_WAY); bf.createBinding(wizardModel, "selectedDatasource", this, "selectedDatasource"); bf.createBinding( this, ACTIVE_STEP_PROPERTY_NAME, BACK_BTN_ELEMENT_ID, DISABLED_PROPERTY_NAME, new BackButtonBindingConverter()); dummyDatasource = ((DummyDatasource) wizardModel.getDatasources().iterator().next()); activeDatasource = dummyDatasource; selectDatasourceStep = dummyDatasource.getSelectDatasourceStep(); try { for (IWizardDatasource datasource : wizardModel.getDatasources()) { datasource.init(getXulDomContainer(), wizardModel); } steps.add(selectDatasourceStep); selectDatasourceStep.activating(); setActiveStep(0); datasourceBinding.fireSourceChanged(); setSelectedDatasource(dummyDatasource); datasourceService.getDatasourceIllegalCharacters( new XulServiceCallback<String>() { @Override public void success(String retVal) {} @Override public void error(String message, Throwable error) {} }); } catch (XulException e) { MessageHandler.getInstance().showErrorDialog("Error", e.getMessage()); e.printStackTrace(); } catch (InvocationTargetException e) { MessageHandler.getInstance().showErrorDialog("Error", e.getMessage()); e.printStackTrace(); } }
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); } }); }