use of eu.esdihumboldt.hale.io.validation.ProjectValidator in project hale by halestudio.
the class FileValidateTarget method createControls.
@Override
public void createControls(Composite parent) {
super.createControls(parent);
// page has a 3-column grid layout
Group validatorGroup = new Group(parent, SWT.NONE);
validatorGroup.setText("Validation");
validatorGroup.setLayoutData(GridDataFactory.swtDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).span(3, 1).indent(8, 10).create());
validatorGroup.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).margins(10, 8).create());
// Add project validator by default
IOProviderDescriptor pvDescriptor = HaleIO.findIOProviderFactory(IOProvider.class, getWizard().getContentType(), ProjectValidator.PROVIDER_ID);
if (pvDescriptor != null) {
ProjectValidator projectValidator = new ProjectValidator();
List<? extends Locatable> schemas = getWizard().getProvider().getValidationSchemas();
projectValidator.setSchemas(schemas.toArray(new Locatable[schemas.size()]));
ValidatorEntry entry = new ValidatorEntry(projectValidator, pvDescriptor);
validators.add(entry);
getWizard().addValidator(projectValidator);
}
// viewer with validator list
Composite tableContainer = new Composite(validatorGroup, SWT.NONE);
tableContainer.setLayoutData(GridDataFactory.swtDefaults().span(3, 1).minSize(100, 100).align(SWT.FILL, SWT.FILL).grab(true, true).create());
TableColumnLayout layout = new TableColumnLayout();
tableContainer.setLayout(layout);
validatorsTableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
validatorsTableViewer.getTable().setLinesVisible(true);
validatorsTableViewer.getTable().setHeaderVisible(true);
validatorsTableViewer.setContentProvider(ArrayContentProvider.getInstance());
validatorsTableViewer.setInput(validators);
TableViewerColumn typeColumn = new TableViewerColumn(validatorsTableViewer, SWT.NONE);
layout.setColumnData(typeColumn.getColumn(), new ColumnWeightData(4));
typeColumn.getColumn().setText("Validator");
typeColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
ValidatorEntry validator = (ValidatorEntry) element;
return validator.getDescriptor().getDisplayName();
}
/**
* @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
*/
@Override
public Image getImage(Object element) {
ValidatorEntry validator = (ValidatorEntry) element;
if (validator.getStatusMessage() != null && !validator.getStatusMessage().isEmpty()) {
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR);
}
return null;
}
});
TableViewerColumn errorColumn = new TableViewerColumn(validatorsTableViewer, SWT.NONE);
layout.setColumnData(errorColumn.getColumn(), new ColumnWeightData(3));
errorColumn.getColumn().setText("Status");
errorColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
ValidatorEntry validator = (ValidatorEntry) element;
String message = validator.getStatusMessage();
if (message == null || message.trim().isEmpty()) {
message = "OK";
}
return message;
}
});
validatorsTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
updateWizard(getSelectedValidator(event.getSelection()));
}
});
// Selection dialog for adding validators to the list
final ValidatorSelectionDialog validatorSelectionDialog = new ValidatorSelectionDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
addValidatorButton = new Button(validatorGroup, SWT.PUSH);
addValidatorButton.setText("Add validator...");
addValidatorButton.setEnabled(false);
addValidatorButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
validatorSelectionDialog.create();
validatorSelectionDialog.setContentType(getWizard().getContentType());
if (validatorSelectionDialog.open() == Dialog.OK) {
IOProviderDescriptor selection = validatorSelectionDialog.getSelection();
addValidator(selection);
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
// Remove button
removeValidatorButton = new Button(validatorGroup, SWT.PUSH);
removeValidatorButton.setText("Remove validator...");
removeValidatorButton.setEnabled(false);
removeValidatorButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
ValidatorEntry selection = getSelectedValidator();
getWizard().removeValidator(selection.getValidator());
validators.remove(selection);
updateWizard(getSelectedValidator());
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
// Configure button
configureValidatorButton = new Button(validatorGroup, SWT.PUSH);
configureValidatorButton.setText("Configure validator...");
configureValidatorButton.setEnabled(false);
getWizard().addIOWizardListener(this);
}
Aggregations