use of org.eclipse.jface.databinding.viewers.IViewerObservableValue in project statecharts by Yakindu.
the class StatechartPropertySection method bindDomainCombo.
protected void bindDomainCombo(EMFDataBindingContext context) {
IEMFValueProperty property = EMFEditProperties.value(TransactionUtil.getEditingDomain(eObject), BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID);
IViewerObservableValue observeSingleSelection = ViewersObservables.observeSingleSelection(domainCombo);
UpdateValueStrategy modelToTarget = new UpdateValueStrategy() {
@Override
public Object convert(Object value) {
return ((IDomain) value).getDomainID();
}
};
UpdateValueStrategy targetToModel = new UpdateValueStrategy() {
@Override
public Object convert(Object value) {
return DomainRegistry.getDomain((String) value);
}
};
context.bindValue(observeSingleSelection, property.observe(eObject), modelToTarget, targetToModel);
}
use of org.eclipse.jface.databinding.viewers.IViewerObservableValue in project jbosstools-openshift by jbosstools.
the class ConnectionWizardPage method doCreateControls.
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected void doCreateControls(final Composite parent, DataBindingContext dbc) {
GridLayoutFactory.fillDefaults().numColumns(3).margins(10, 10).applyTo(parent);
// userdoc link (JBIDE-20401)
// text set in #showHideUserdocLink
this.userdocLink = new StyledText(parent, SWT.WRAP);
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).span(3, 1).applyTo(userdocLink);
showHideUserdocLink();
IObservableValue userdocUrlObservable = BeanProperties.value(ConnectionWizardPageModel.PROPERTY_USERDOCURL).observe(pageModel);
StyledTextUtils.emulateLinkAction(userdocLink, r -> onUserdocLinkClicked(userdocUrlObservable));
userdocUrlObservable.addValueChangeListener(new IValueChangeListener() {
@Override
public void handleValueChange(ValueChangeEvent event) {
showHideUserdocLink();
}
});
IObservableValue connectionFactoryObservable = BeanProperties.value(ConnectionWizardPageModel.PROPERTY_CONNECTION_FACTORY).observe(pageModel);
// filler
Label fillerLabel = new Label(parent, SWT.NONE);
GridDataFactory.fillDefaults().span(3, 3).hint(SWT.DEFAULT, 6).applyTo(fillerLabel);
// existing connections combo
Label connectionLabel = new Label(parent, SWT.NONE);
connectionLabel.setText("Connection:");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(100, SWT.DEFAULT).applyTo(connectionLabel);
Combo connectionCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
// disable the connection combo if we're editing a connection or creating a new one from scratch
connectionCombo.setEnabled(pageModel.isAllowConnectionChange());
GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(connectionCombo);
ComboViewer connectionComboViewer = new ComboViewer(connectionCombo);
connectionComboViewer.setContentProvider(ArrayContentProvider.getInstance());
connectionComboViewer.setLabelProvider(new ConnectionColumLabelProvider());
connectionComboViewer.setInput(pageModel.getAllConnections());
Binding selectedConnectionBinding = ValueBindingBuilder.bind(ViewerProperties.singleSelection().observe(connectionComboViewer)).validatingAfterGet(new IsNotNullValidator(ValidationStatus.cancel("You have to select or create a new connection."))).to(BeanProperties.value(ConnectionWizardPageModel.PROPERTY_SELECTED_CONNECTION, IConnection.class).observe(pageModel)).in(dbc);
ControlDecorationSupport.create(selectedConnectionBinding, SWT.LEFT | SWT.TOP, null, new RequiredControlDecorationUpdater());
// server type
Label connectionFactoryLabel = new Label(parent, SWT.NONE);
connectionFactoryLabel.setText("Server type:");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(100, SWT.DEFAULT).applyTo(connectionFactoryLabel);
Combo connectionFactoryCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(connectionFactoryCombo);
ComboViewer connectionFactoriesViewer = new ComboViewer(connectionFactoryCombo);
connectionFactoriesViewer.setContentProvider(ArrayContentProvider.getInstance());
connectionFactoriesViewer.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
if (!(element instanceof IConnectionFactory)) {
return element.toString();
} else {
return ((IConnectionFactory) element).getName();
}
}
});
connectionFactoriesViewer.setInput(pageModel.getAllConnectionFactories());
// Disable the server type when editing a connection
if (!pageModel.isAllowConnectionChange() && pageModel.getSelectedConnection() != null) {
IConnection c = pageModel.getSelectedConnection();
if (!(c instanceof NewConnectionMarker)) {
connectionFactoryCombo.setEnabled(false);
}
}
final IViewerObservableValue selectedServerType = ViewerProperties.singleSelection().observe(connectionFactoriesViewer);
ValueBindingBuilder.bind(selectedServerType).to(connectionFactoryObservable).in(dbc);
// server
Button useDefaultServerCheckbox = new Button(parent, SWT.CHECK);
useDefaultServerCheckbox.setText("Use default server");
GridDataFactory.fillDefaults().span(3, 1).align(SWT.FILL, SWT.FILL).applyTo(useDefaultServerCheckbox);
ValueBindingBuilder.bind(WidgetProperties.selection().observe(useDefaultServerCheckbox)).to(BeanProperties.value(ConnectionWizardPageModel.PROPERTY_USE_DEFAULT_HOST, IConnection.class).observe(pageModel)).in(dbc);
IObservableValue hasDefaultHostObservable = BeanProperties.value(ConnectionWizardPageModel.PROPERTY_HAS_DEFAULT_HOST).observe(pageModel);
ValueBindingBuilder.bind(WidgetProperties.enabled().observe(useDefaultServerCheckbox)).notUpdating(hasDefaultHostObservable).in(dbc);
Label serverLabel = new Label(parent, SWT.NONE);
serverLabel.setText("Server:");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(100, SWT.DEFAULT).applyTo(serverLabel);
Combo serversCombo = new Combo(parent, SWT.BORDER);
ComboViewer serversViewer = new ComboViewer(serversCombo);
serversViewer.setContentProvider(new ObservableListContentProvider());
serversViewer.setInput(BeanProperties.list(ConnectionWizardPageModel.PROPERTY_ALL_HOSTS).observe(pageModel));
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(serversCombo);
final IObservableValue serverUrlObservable = WidgetProperties.text().observe(serversCombo);
serversCombo.addFocusListener(onServerFocusLost(serverUrlObservable));
ValueBindingBuilder.bind(serverUrlObservable).converting(new TrimTrailingSlashConverter()).to(BeanProperties.value(ConnectionWizardPageModel.PROPERTY_HOST).observe(pageModel)).in(dbc);
MultiValidator serverUrlValidator = new MultiValidator() {
@Override
protected IStatus validate() {
Object value = serverUrlObservable.getValue();
if (!(value instanceof String) || StringUtils.isEmpty((String) value)) {
return ValidationStatus.cancel("Please provide an OpenShift server url.");
} else if (!UrlUtils.isValid((String) value)) {
return ValidationStatus.error("Please provide a valid OpenShift server url.");
}
return ValidationStatus.ok();
}
};
ControlDecorationSupport.create(serverUrlValidator, SWT.LEFT | SWT.TOP, null, new RequiredControlDecorationUpdater());
dbc.addValidationStatusProvider(serverUrlValidator);
ValueBindingBuilder.bind(WidgetProperties.enabled().observe(serversCombo)).notUpdatingParticipant().to(BeanProperties.value(ConnectionWizardPageModel.PROPERTY_USE_DEFAULT_HOST).observe(pageModel)).converting(new InvertingBooleanConverter()).in(dbc);
// connect error
dbc.addValidationStatusProvider(new MultiValidator() {
IObservableValue observable = BeanProperties.value(ConnectionWizardPageModel.PROPERTY_CONNECTED_STATUS, IStatus.class).observe(pageModel);
@Override
protected IStatus validate() {
return (IStatus) observable.getValue();
}
});
// connection editors
Group authenticationDetailsGroup = new Group(parent, SWT.NONE);
authenticationDetailsGroup.setText("Authentication");
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).span(3, 1).applyTo(authenticationDetailsGroup);
GridLayoutFactory.fillDefaults().margins(0, 0).applyTo(authenticationDetailsGroup);
// additional nesting required because of https://bugs.eclipse.org/bugs/show_bug.cgi?id=478618
Composite authenticationDetailsContainer = new Composite(authenticationDetailsGroup, SWT.None);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(authenticationDetailsContainer);
this.connectionEditors = new ConnectionEditorsStackedView(connectionFactoryObservable, this, authenticationDetailsContainer, dbc);
connectionEditors.createControls();
// adv editors
Composite advEditorContainer = new Composite(parent, SWT.NONE);
GridLayoutFactory.fillDefaults().margins(0, 0).applyTo(authenticationDetailsGroup);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).span(3, 1).grab(true, true).applyTo(advEditorContainer);
this.advConnectionEditors = new AdvancedConnectionEditorsStackedView(connectionFactoryObservable, pageModel, advEditorContainer, dbc);
advConnectionEditors.createControls();
}
use of org.eclipse.jface.databinding.viewers.IViewerObservableValue in project translationstudio8 by heartsome.
the class ConverterUtil method bindValue.
/**
* 对下拉列表和转换器列表进行绑定
* @param context
* @param comboViewer
* @param model
* ;
*/
public static void bindValue(DataBindingContext context, ComboViewer comboViewer, ConverterViewModel model) {
// ViewerSupport.bind(comboViewer, BeansObservables.observeList(
// model, "supportTypes", String.class),
// Properties.selfValue(String.class));
//
//
// context.bindValue(ViewersObservables
// .observeSingleSelection(comboViewer), BeansObservables
// .observeValue(model,
// "selectedType"));
// ObservableListContentProvider viewerContentProvider=new ObservableListContentProvider();
comboViewer.setContentProvider(new ArrayContentProvider());
comboViewer.setComparator(new ViewerComparator());
// IObservableMap[] attributeMaps = BeansObservables.observeMaps(
// viewerContentProvider.getKnownElements(),
// ConverterBean.class, new String[] { "description" });
// comboViewer.setLabelProvider(new ObservableMapLabelProvider(
// attributeMaps));
// comboViewer.setInput(Observables.staticObservableList(model.getSupportTypes(),ConverterBean.class));
comboViewer.setInput(model.getSupportTypes());
IViewerObservableValue selection = ViewersObservables.observeSingleSelection(comboViewer);
IObservableValue observableValue = BeansObservables.observeDetailValue(selection, PROPERTIES_NAME, null);
context.bindValue(observableValue, BeansObservables.observeValue(model, PROPERTIES_SELECTED_TYPE));
}
use of org.eclipse.jface.databinding.viewers.IViewerObservableValue in project jbosstools-openshift by jbosstools.
the class ServerSettingsWizardPage method createResourceTree.
@SuppressWarnings("unchecked")
private IViewerObservableValue createResourceTree(ServerSettingsWizardPageModel model, SashForm resourceControlsContainer, DataBindingContext dbc) {
Composite resourceTreeContainer = new Composite(resourceControlsContainer, SWT.None);
GridLayoutFactory.fillDefaults().applyTo(resourceTreeContainer);
// filter
Text selectorText = UIUtils.createSearchText(resourceTreeContainer);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).applyTo(selectorText);
// resource tree
final TreeViewer resourcesViewer = createResourcesTreeViewer(resourceTreeContainer, model, selectorText);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).hint(RESOURCE_TREE_WIDTH, RESOURCE_TREE_HEIGHT).applyTo(resourcesViewer.getControl());
resourcesViewer.addDoubleClickListener(onDoubleClickService());
IObservableList<ObservableTreeItem> resourceItemsObservable = BeanProperties.list(ServerSettingsWizardPageModel.PROPERTY_RESOURCE_ITEMS).observe(model);
DataBindingUtils.addDisposableListChangeListener(onResourceItemsChanged(resourcesViewer), resourceItemsObservable, resourcesViewer.getTree());
selectorText.addModifyListener(onFilterTextModified(resourcesViewer));
IViewerObservableValue selectedResourceTreeItem = ViewerProperties.singleSelection().observe(resourcesViewer);
ValueBindingBuilder.bind(selectedResourceTreeItem).converting(new ObservableTreeItem2ModelConverter(IResource.class)).validatingAfterConvert(value -> {
if ((value instanceof IResource) && OpenShiftServerUtils.isAllowedForServerAdapter((IResource) value)) {
return ValidationStatus.ok();
}
return ValidationStatus.cancel("Please select a resource that this adapter will be bound to.");
}).to(BeanProperties.value(ServerSettingsWizardPageModel.PROPERTY_RESOURCE).observe(model)).converting(new Model2ObservableTreeItemConverter(new ServerSettingsWizardPageModel.ResourceTreeItemsFactory())).in(dbc);
return selectedResourceTreeItem;
}
use of org.eclipse.jface.databinding.viewers.IViewerObservableValue in project jbosstools-openshift by jbosstools.
the class ServerSettingsWizardPage method createResourceControls.
private void createResourceControls(Composite parent, ServerSettingsWizardPageModel model, DataBindingContext dbc) {
SashForm resourceControlsContainer = new SashForm(parent, SWT.HORIZONTAL);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(RESOURCE_PANEL_WIDTH, SWT.DEFAULT).applyTo(resourceControlsContainer);
IViewerObservableValue selectedResourceTreeItem = createResourceTree(model, resourceControlsContainer, dbc);
createResourceDetails(selectedResourceTreeItem, resourceControlsContainer, dbc);
resourceControlsContainer.setWeights(new int[] { 1, 2 });
}
Aggregations