}
}
@RequestHandler
public void onLoad() throws Exception {
BindingFactory bf = bindingFactory;
bf.setDocument(document);
for (final SchemaProviderUiExtension extension : schemaProviders) {
try {
document.addOverlay(extension.getOverlayPath());
getXulDomContainer().addEventHandler(extension);
((XulEventSource) extension).addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
boolean schemaAppliable = false;
if (evt.getPropertyName().equals("schemaDefined") || evt.getPropertyName().equals("selected")) {
logger.debug("*** got schemaDefined=" + evt.getNewValue()
+ ", checking if any providers are applyable");
for (SchemaProviderUiExtension ex : schemaProviders) {
//De-select other extensions
if(evt.getPropertyName().equals("selected") && extension != ex && evt.getNewValue() == Boolean.TRUE){
ex.setSelected(false);
}
if (ex.isSchemaDefined() && ex.isSelected()) {
logger.debug("provider " + ex.getName() + " is applyable");
schemaAppliable = true;
} else {
logger.debug(ex.getName() + " NOT applyable: defined=[" + ex.isSchemaDefined() + "] selected=["
+ ex.isSelected() + "]");
}
}
connectionModel.setApplySchemaSourceEnabled(schemaAppliable);
}
}
});
bf.setBindingType(Binding.Type.ONE_WAY);
bf.createBinding(connectionModel, "schemaLocked", extension, "!enabled");
// extension.onLoad();
} catch (XulException e) {
logger.error("Error loading Schema Provider Overlay", e);
}
}
bf.setBindingType(Binding.Type.BI_DIRECTIONAL);
bf.createBinding(workspace, "applicationUnlocked", "open_advisor", "!disabled");
bf.createBinding(workspace, "applicationUnlocked", "open_export", "!disabled");
bf.createBinding(workspace, "applicationUnlocked", "agg_add_btn", "!disabled");
bf.createBinding(connectionModel, "cubeNames", "cubeSelector", "elements");
bf.createBinding(connectionModel, "cubeName", "cubeSelector", "selectedItem");
bf.setBindingType(Binding.Type.ONE_WAY);
bf.createBinding(connectionModel, "applySchemaSourceEnabled", "applySchemaSourceButton", "!disabled");
bf.createBinding(connectionModel, "databaseName", "databaseName", "value");
bf.createBinding(connectionModel, "cubeSelectionEnabled", "cubeSelector", "!disabled");
bf.createBinding(connectionModel, "schemaLocked", "cubeSelector", "disabled");
bf.createBinding(connectionModel, "schemaLocked", "applySchemaSourceButton", "disabled");
bf.createBinding(connectionModel, "connectEnabled", "connection_dialog_accept", "!disabled").fireSourceChanged();
connectionModel.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("selectedSchemaModel")) {
SchemaModel model = (SchemaModel) evt.getNewValue();