*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent e) {
Shell shell = composite.getShell();
IContentType selectedContentType = getSelectedContentType();
FileExtensionDialog dialog = new FileExtensionDialog(shell);
if (dialog.open() == Window.OK) {
String name = dialog.getName();
String extension = dialog.getExtension();
try {
if (name.equals("*")) { //$NON-NLS-1$
selectedContentType.addFileSpec(extension,
IContentType.FILE_EXTENSION_SPEC);
} else {
selectedContentType
.addFileSpec(
name
+ (extension.length() > 0 ? ('.' + extension)
: ""), //$NON-NLS-1$
IContentType.FILE_NAME_SPEC);
}
} catch (CoreException ex) {
StatusUtil.handleStatus(ex.getStatus(),
StatusManager.SHOW, shell);
WorkbenchPlugin.log(ex);
} finally {
fileAssociationViewer.setInput(selectedContentType);
}
}
}
});
removeButton = new Button(buttonArea, SWT.PUSH);
removeButton.setEnabled(false);
removeButton
.setText(WorkbenchMessages.ContentTypes_fileAssociationsRemoveLabel);
setButtonLayoutData(removeButton);
removeButton.addSelectionListener(new SelectionAdapter() {
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
public void widgetSelected(SelectionEvent event) {
IContentType contentType = getSelectedContentType();
Spec[] specs = getSelectedSpecs();
MultiStatus result = new MultiStatus(PlatformUI.PLUGIN_ID,
0, new IStatus[0],
WorkbenchMessages.ContentTypes_errorDialogMessage,
null);
for (int i = 0; i < specs.length; i++) {
Spec spec = specs[i];
try {
if (spec.name != null) {
contentType.removeFileSpec(spec.name,
IContentType.FILE_NAME_SPEC);
} else if (spec.ext != null) {
contentType.removeFileSpec(spec.ext,
IContentType.FILE_EXTENSION_SPEC);
}
} catch (CoreException e) {
result.add(e.getStatus());
}