//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.library.edit.util; import org.eclipse.core.runtime.IStatus; import org.eclipse.epf.common.serviceability.Logger; import org.eclipse.epf.common.utils.StrUtil; import org.eclipse.epf.library.edit.LibraryEditPlugin; import org.eclipse.epf.library.edit.command.IUserInteractionHandler; import org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger; /** * Default messenger that will deliver messages using the messenger of * {@link ExtensionManager#getDefaultUserInteractionHandler() default user * interaction handler} if one exists. Otherwise, it will log the messages using * plugin's logger. * * @author Phong Nguyen Le - Oct 25, 2006 * @since 1.0 */ public class Messenger implements IUserInteractionHandler.IMessenger { public static final Messenger INSTANCE = new Messenger(); private static final String NEW_LINE = System.getProperty( "line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$ private IMessenger delegate; private Logger logger = LibraryEditPlugin.getDefault().getLogger(); private Messenger() { IUserInteractionHandler uiHandler = ExtensionManager .getDefaultUserInteractionHandler(); if (uiHandler != null) { delegate = uiHandler.getMessenger(); } } /* * (non-Javadoc) * * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showError(java.lang.String, * java.lang.String) */ public void showError(String title, String msg) { if (delegate != null) { delegate.showError(title, msg); } else { StringBuffer strBuf = new StringBuffer(title); if(!StrUtil.isBlank(msg)) { strBuf.append(NEW_LINE).append(msg); } logger.logError(strBuf.toString()); } } /* * (non-Javadoc) * * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showError(java.lang.String, * java.lang.String, org.eclipse.core.runtime.IStatus) */ public void showError(String title, String msg, IStatus status) { if (delegate != null) { delegate.showError(title, msg, status); } else { LibraryEditPlugin.getDefault().getLog().log(status); } } /* * (non-Javadoc) * * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showError(java.lang.String, * java.lang.String, java.lang.String, java.lang.Exception) */ public void showError(String title, String msg, String reason, Exception exception) { if (delegate != null) { delegate.showError(title, msg, reason, exception); } else { StringBuffer strBuf = new StringBuffer(title); if(!StrUtil.isBlank(msg)) { strBuf.append(NEW_LINE).append(msg); } logger.logError(strBuf.toString(), exception); } } /* * (non-Javadoc) * * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showWarning(java.lang.String, * java.lang.String) */ public void showWarning(String title, String msg) { if (delegate != null) { delegate.showWarning(title, msg); } else { StringBuffer strBuf = new StringBuffer(title); if(!StrUtil.isBlank(msg)) { strBuf.append(NEW_LINE).append(msg); } logger.logWarning(strBuf.toString()); } } /* * (non-Javadoc) * * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showWarning(java.lang.String, * java.lang.String, java.lang.String) */ public void showWarning(String title, String msg, String reason) { if (delegate != null) { delegate.showWarning(title, msg, reason); } else { StringBuffer strBuf = new StringBuffer(title); if(!StrUtil.isBlank(msg)) { strBuf.append(NEW_LINE).append(msg); } if(!StrUtil.isBlank(reason)) { strBuf.append(NEW_LINE).append(reason); } logger.logWarning(strBuf.toString()); } } /* (non-Javadoc) * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showInfo(java.lang.String, java.lang.String) */ public void showInfo(String title, String msg) { if (delegate != null) { delegate.showInfo(title, msg); } else { StringBuffer strBuf = new StringBuffer(title); if(!StrUtil.isBlank(msg)) { strBuf.append(NEW_LINE).append(msg); } logger.logInfo(strBuf.toString()); } } /* (non-Javadoc) * @see org.eclipse.epf.library.edit.command.IUserInteractionHandler.IMessenger#showError(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Exception) */ public void showError(String title, String msg, String reason, String details, Exception exception) { if (delegate != null) { delegate.showInfo(title, msg); } else { StringBuffer strBuf = new StringBuffer(title); if(!StrUtil.isBlank(msg)) { strBuf.append(NEW_LINE).append(msg); } if(!StrUtil.isBlank(reason)) { strBuf.append(NEW_LINE).append(reason); } if(!StrUtil.isBlank(details)) { strBuf.append(NEW_LINE).append(details); } logger.logError(strBuf.toString(), exception); } } }