use of org.jboss.tools.openshift.internal.ui.validator.URLValidator in project jbosstools-openshift by jbosstools.
the class URLValidatorTest method testDoNotAllowBlankURL.
@Test
public void testDoNotAllowBlankURL() {
validator = new URLValidator("", false);
assertNotEquals(ValidationStatus.ok(), validator.validate(" "));
}
use of org.jboss.tools.openshift.internal.ui.validator.URLValidator in project jbosstools-openshift by jbosstools.
the class URLValidatorTest method testAllowBlankURL.
@Test
public void testAllowBlankURL() {
validator = new URLValidator("", true);
assertEquals(ValidationStatus.ok(), validator.validate(" "));
}
use of org.jboss.tools.openshift.internal.ui.validator.URLValidator in project jbosstools-openshift by jbosstools.
the class AdvancedConnectionEditor method createControls.
@SuppressWarnings("unchecked")
@Override
public Composite createControls(Composite parent, Object context, DataBindingContext dbc) {
this.pageModel = (ConnectionWizardPageModel) context;
this.selectedConnection = BeanProperties.value(ConnectionWizardPageModel.PROPERTY_SELECTED_CONNECTION).observe(pageModel);
this.model = new AdvancedConnectionEditorModel();
Composite composite = setControl(new Composite(parent, SWT.None));
GridLayoutFactory.fillDefaults().applyTo(composite);
DialogAdvancedPart part = new DialogAdvancedPart() {
@Override
protected void createAdvancedContent(Composite advancedComposite) {
Label lblRegistry = new Label(advancedComposite, SWT.NONE);
lblRegistry.setText("Image Registry URL:");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(lblRegistry);
Text txtRegistry = new Text(advancedComposite, SWT.BORDER);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtRegistry);
Button registryDiscover = new Button(advancedComposite, SWT.PUSH);
registryDiscover.setText("Discover...");
registryDiscover.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
discoverRegistryPressed(registryDiscover.getShell());
}
});
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).applyTo(registryDiscover);
UIUtils.setDefaultButtonWidth(registryDiscover);
registryURLObservable = WidgetProperties.text(SWT.Modify).observeDelayed(DELAY, txtRegistry);
Binding registryURLBinding = ValueBindingBuilder.bind(registryURLObservable).validatingAfterConvert(new URLValidator(VALIDATOR_URL_TYPE, true)).converting(new TrimTrailingSlashConverter()).to(BeanProperties.value(AdvancedConnectionEditorModel.PROP_REGISTRY_URL).observe(model)).in(dbc);
ControlDecorationSupport.create(registryURLBinding, SWT.LEFT | SWT.TOP);
Label lblNamespace = new Label(advancedComposite, SWT.NONE);
lblNamespace.setText("Cluster namespace:");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(lblNamespace);
Text txtClusterNamespace = new Text(advancedComposite, SWT.BORDER);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).applyTo(txtClusterNamespace);
clusterNamespaceObservable = WidgetProperties.text(SWT.Modify).observeDelayed(DELAY, txtClusterNamespace);
ValueBindingBuilder.bind(clusterNamespaceObservable).converting(new TrimmingStringConverter()).to(BeanProperties.value(AdvancedConnectionEditorModel.PROP_CLUSTER_NAMESPACE).observe(model)).in(dbc);
Link ocWorkspace = new Link(advancedComposite, SWT.PUSH);
ocWorkspace.setText("<a>Workspace OC Settings</a>");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).span(3, 1).applyTo(ocWorkspace);
// Override OC location widgets
Button overrideOC = new Button(advancedComposite, SWT.CHECK);
overrideOC.setText("Override 'oc' location: ");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(lblRegistry);
IObservableValue<Boolean> overrideOCObservable = WidgetProperties.selection().observe(overrideOC);
ValueBindingBuilder.bind(overrideOCObservable).to(BeanProperties.value(AdvancedConnectionEditorModel.PROP_OC_OVERRIDE).observe(model)).in(dbc);
final Text ocText = new Text(advancedComposite, SWT.SINGLE | SWT.BORDER);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(ocText);
IObservableValue<String> ocLocationObservable = WidgetProperties.text(SWT.Modify).observe(ocText);
Binding ocLocationBinding = ValueBindingBuilder.bind(ocLocationObservable).converting(new TrimmingStringConverter()).to(BeanProperties.value(AdvancedConnectionEditorModel.PROP_OC_OVERRIDE_LOCATION).observe(model)).in(dbc);
overrideOCObservable.addValueChangeListener(new IValueChangeListener<Boolean>() {
@Override
public void handleValueChange(ValueChangeEvent<? extends Boolean> event) {
updateOcObservables();
}
});
ocLocationBinding.getValidationStatus().addValueChangeListener(new IValueChangeListener<IStatus>() {
@Override
public void handleValueChange(ValueChangeEvent<? extends IStatus> event) {
updateOcObservables();
}
});
ValueBindingBuilder.bind(overrideOCObservable).to(WidgetProperties.enabled().observe(ocText)).notUpdatingParticipant().in(dbc);
Button ocBrowse = new Button(advancedComposite, SWT.PUSH);
ocBrowse.setText("Browse...");
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(ocBrowse);
UIUtils.setDefaultButtonWidth(ocBrowse);
ocWorkspace.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
PreferenceDialog pd = PreferencesUtil.createPreferenceDialogOn(null, IOpenShiftCoreConstants.OPEN_SHIFT_PREFERENCE_PAGE_ID, new String[] {}, null);
pd.open();
if (!overrideOC.getSelection()) {
String ocLoc = OpenShiftCorePreferences.INSTANCE.getOCBinaryLocation();
String nullsafe = ocLoc == null ? "" : ocLoc;
ocText.setText(nullsafe);
}
updateOcObservables();
}
});
// Validation here is done via a listener rather than dbc validators
// because dbc validators will validate in the UI thread, but validation
// of this field requires a background job.
ocBrowse.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
FileDialog fd = new FileDialog(ocBrowse.getShell());
fd.setText(ocText.getText());
IPath p = new Path(ocText.getText());
if (p.segmentCount() > 1) {
fd.setFilterPath(p.removeLastSegments(1).toOSString());
}
String result = fd.open();
if (result != null) {
ocLocationObservable.setValue(result);
}
}
});
ValueBindingBuilder.bind(overrideOCObservable).to(WidgetProperties.enabled().observe(ocBrowse)).notUpdatingParticipant().in(dbc);
ValidationStatusProvider ocValidator = new MultiValidator() {
public IObservableList getTargets() {
WritableList targets = new WritableList();
targets.add(ocLocationObservable);
targets.add(ocLocationValidity);
targets.add(ocVersionValidity);
return targets;
}
@Override
protected IStatus validate() {
// access all observables that the framework should listen to
IStatus ocLocationStatus = ocLocationValidity.getValue();
IStatus ocVersionStatus = ocVersionValidity.getValue();
IStatus status;
if (!ocLocationStatus.isOK()) {
status = ocLocationStatus;
} else {
status = ocVersionStatus;
}
return status;
}
};
dbc.addValidationStatusProvider(ocValidator);
ControlDecorationSupport.create(ocValidator, SWT.LEFT | SWT.TOP, null, new RequiredControlDecorationUpdater());
}
protected GridLayoutFactory adjustAdvancedCompositeLayout(GridLayoutFactory gridLayoutFactory) {
return gridLayoutFactory.numColumns(3);
}
};
part.createAdvancedGroup(composite, 1);
this.connectionAdvancedPropertiesProvider = new ConnectionAdvancedPropertiesProvider();
updateOcObservables();
return composite;
}
Aggregations