/** * Nameable 服務的預設實作。所有方法都是 no-ops。 * * @自 3.1 */public class NullNameableService implements INameable { /** * 元件建構子。不要直接呼叫。 */ public NullNameableService() {} public void setName(String newName) {} public void setContentDescription(String contentDescription)
{} public void setImage(ImageDescriptor theImage) {} public void setTooltip(String toolTip) {}}/** * IMessageDialogs 介面的預設實作。 * 將組件的控制項當成環境定義,並容許組件在子項 Shell 中開啟對話框。 * * @自 3.1 */public class DefaultMessageDialogs implements IMessageDialogs { private Composite control; /** * 元件建構子。不要直接呼叫。 */ 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); } }}此為 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>