From 42d69d1f3e7e52ffd199d484fd19a8c15c243446 Mon Sep 17 00:00:00 2001 From: slewis Date: Mon, 7 May 2007 05:25:34 +0000 Subject: Added better error handling --- .../ecf/internal/presence/collab/ui/Messages.java | 9 +++++++ .../presence/collab/ui/messages.properties | 9 +++++++ .../eclipse/ecf/presence/collab/ui/URLShare.java | 31 +++++++++++++++------- .../collab/ui/URLShareRosterContributionItem.java | 3 ++- 4 files changed, 41 insertions(+), 11 deletions(-) diff --git a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/Messages.java b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/Messages.java index c7cb1ddfe..c6abbc692 100644 --- a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/Messages.java +++ b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/Messages.java @@ -20,6 +20,15 @@ public class Messages extends NLS { private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.presence.collab.ui.messages"; //$NON-NLS-1$ public static String URLShare_ENTER_URL_DEFAULT_URL; public static String URLShare_ENTER_URL_DIALOG_TEXT; + public static String URLShare_ERROR_BROWSER_MESSAGE; + public static String URLShare_ERROR_BROWSER_TITLE; + public static String URLShare_ERROR_RECEIVE_MESSAGE; + public static String URLShare_ERROR_RECEIVE_TITLE; + public static String URLShare_ERROR_SEND_MESSAGE; + public static String URLShare_ERROR_SEND_TITLE; + public static String URLShare_EXCEPTION_LOG_BROWSER; + public static String URLShare_EXCEPTION_LOG_MESSAGE; + public static String URLShare_EXCEPTION_LOG_SEND; public static String URLShare_INPUT_URL_DIALOG_TITLE; public static String URLShare_RECEIVED_URL_MESSAGE; public static String URLShare_RECEIVED_URL_TITLE; diff --git a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/messages.properties b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/messages.properties index 9ae01ff82..86446c7be 100644 --- a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/messages.properties +++ b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/internal/presence/collab/ui/messages.properties @@ -5,5 +5,14 @@ URLShareRosterContributionItem_REMOVE_URL_SHARE_MENU_TEXT=Remove URL Listener URLShare_INPUT_URL_DIALOG_TITLE=Enter URL to Send URLShare_ENTER_URL_DIALOG_TEXT=URL URLShare_ENTER_URL_DEFAULT_URL=http://www.eclipse.org/ecf +URLShare_ERROR_BROWSER_MESSAGE=Error opening browser: +URLShare_EXCEPTION_LOG_BROWSER=Exception in createBrowser +URLShare_ERROR_RECEIVE_MESSAGE=Error receiving message: +URLShare_EXCEPTION_LOG_MESSAGE=Exception in URLShare.handleMessage URLShare_RECEIVED_URL_TITLE=Received URL +URLShare_ERROR_SEND_TITLE=Error sending message +URLShare_ERROR_SEND_MESSAGE=Error sending message: +URLShare_EXCEPTION_LOG_SEND=Exception in URLShare.sendURL URLShare_RECEIVED_URL_MESSAGE=Received URL from {0}\n\nDo you want to display? +URLShare_ERROR_BROWSER_TITLE=Error opening browser +URLShare_ERROR_RECEIVE_TITLE=Error receiving message diff --git a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShare.java b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShare.java index 9ae0d0e93..2714448a2 100644 --- a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShare.java +++ b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShare.java @@ -18,10 +18,13 @@ import java.io.ObjectOutputStream; import java.net.URL; import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.util.ECFException; import org.eclipse.ecf.datashare.AbstractShare; import org.eclipse.ecf.datashare.IChannelContainerAdapter; +import org.eclipse.ecf.internal.presence.collab.ui.Activator; import org.eclipse.ecf.internal.presence.collab.ui.Messages; import org.eclipse.jface.dialogs.InputDialog; import org.eclipse.jface.dialogs.MessageDialog; @@ -43,7 +46,6 @@ public class URLShare extends AbstractShare { super(adapter); Assert.isNotNull(containerID); this.containerID = containerID; - URLShareRosterContributionItem.addURLShare(containerID, this); } protected ID getContainerID() { @@ -63,8 +65,12 @@ public class URLShare extends AbstractShare { browser = support.createBrowser(null); browser.openURL(new URL(url)); } catch (Exception e) { - // TODO display error to user - e.printStackTrace(); + MessageDialog.openError(null, Messages.URLShare_ERROR_BROWSER_TITLE, NLS.bind( + Messages.URLShare_ERROR_BROWSER_MESSAGE, e.getLocalizedMessage())); + Activator.getDefault().getLog().log( + new Status(IStatus.ERROR, Activator.PLUGIN_ID, + IStatus.ERROR, Messages.URLShare_EXCEPTION_LOG_BROWSER, + e)); } } } @@ -87,7 +93,12 @@ public class URLShare extends AbstractShare { sendMessage(toID, serialize(new Object[] { senderuser, send })); } catch (Exception e) { - // TODO display error to user + MessageDialog.openError(null, Messages.URLShare_ERROR_SEND_TITLE, NLS.bind( + Messages.URLShare_ERROR_SEND_MESSAGE, e.getLocalizedMessage())); + Activator.getDefault().getLog().log( + new Status(IStatus.ERROR, Activator.PLUGIN_ID, + IStatus.ERROR, Messages.URLShare_EXCEPTION_LOG_SEND, + e)); } } } @@ -95,11 +106,6 @@ public class URLShare extends AbstractShare { }); } - public synchronized void dispose() { - super.dispose(); - URLShareRosterContributionItem.removeURLShare(containerID); - } - /* * (non-Javadoc) * @@ -110,7 +116,12 @@ public class URLShare extends AbstractShare { Object[] msg = (Object[]) deserialize(data); showURL((String) msg[0], (String) msg[1]); } catch (Exception e) { - // XXX show and/or log error + MessageDialog.openError(null, Messages.URLShare_ERROR_RECEIVE_TITLE, NLS.bind( + Messages.URLShare_ERROR_RECEIVE_MESSAGE, e.getLocalizedMessage())); + Activator.getDefault().getLog().log( + new Status(IStatus.ERROR, Activator.PLUGIN_ID, + IStatus.ERROR, Messages.URLShare_EXCEPTION_LOG_MESSAGE, + e)); } } diff --git a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShareRosterContributionItem.java b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShareRosterContributionItem.java index ee8066ae5..ce2730aae 100644 --- a/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShareRosterContributionItem.java +++ b/framework/bundles/org.eclipse.ecf.presence.collab.ui/src/org/eclipse/ecf/presence/collab/ui/URLShareRosterContributionItem.java @@ -42,7 +42,7 @@ public class URLShareRosterContributionItem extends IAction action = new Action() { public void run() { try { - new URLShare(containerID, channelAdapter); + addURLShare(containerID, new URLShare(containerID, channelAdapter)); } catch (ECFException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -61,6 +61,7 @@ public class URLShareRosterContributionItem extends IAction action = new Action() { public void run() { urlshare.dispose(); + removeURLShare(containerID); } }; action -- cgit v1.2.3