/** * Implementación por omisión del servicio Nameable. Todos los
métodos son no-ops. * * @since 3.1 */public class NullNameableService implements INameable { /** * Constructor de componentes. No debe invocarse directamente. */ public NullNameableService() {} public void setName(String newName) {} public void setContentDescription(String contentDescription)
{} public void setImage(ImageDescriptor theImage) {} public void setTooltip(String toolTip) {}}/** * Implementación por omisión de la interfaz IMessageDialogs. Toma
el control * del componente como contexto y permite que el componente abra diálogos
en un shell hijo. * * @since 3.1 */public class DefaultMessageDialogs implements IMessageDialogs { private Composite control; /** * Constructor de componentes. No debe invocarse directamente. */ public DefaultMessageDialogs(Composite control) { this.control = control; } public void open(IStatus message) { if (message.getSeverity() ==
IStatus.ERROR) { ErrorDialog.openError(control.getShell(),
null, null, message); } else { open(message.getSeverity(),
message.getMessage()); } } public void openError(String message, Throwable cause)
{ open(new Status(IStatus.ERROR,
WorkbenchPlugin.getDefault().getBundle().getSymbolicName(),
IStatus.OK,
message,
cause)); } public void open(int severity, String message) { if (severity == IStatus.ERROR)
{ MessageDialog.openError(control.getShell(),
null, message); } else if (severity == IStatus.WARNING)
{ MessageDialog.openWarning(control.getShell(),
null, message); } else { MessageDialog.openInformation(control.getShell(),
null, message); } }}Éstos son los códigos del punto de extensión asociado para DefaultMessageDialog.
<extension point="org.eclipse.core.component.types"> <component initializer="org.eclipse.ui.part.SiteInitializer" interface="org.eclipse.ui.part.services.IMessageDialogs" implementation="org.eclipse.ui.internal.part.services.DefaultMessageDialogs" singleton="false"/></extension>