Author: adietish
Date: 2010-09-02 09:00:27 -0400 (Thu, 02 Sep 2010)
New Revision: 24642
Added:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/BrowserUtil.java
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/IUsageReportPreferenceConstants.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/UsageReportPreferenceInitializer.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReportEnablementDialog.java
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties
Log:
[JBIDE-6976] link in dialog added, opens in an external browser
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/IUsageReportPreferenceConstants.java
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/IUsageReportPreferenceConstants.java 2010-09-02
12:28:08 UTC (rev 24641)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/IUsageReportPreferenceConstants.java 2010-09-02
13:00:27 UTC (rev 24642)
@@ -41,4 +41,6 @@
public static final String LAST_VISIT = "last_visit";
public static final String VISIT_COUNT = "visit_count";
+
+ public static final boolean ASK_USER_USAGEREPORT_DEFAULTVALUE = true;
}
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/UsageReportPreferenceInitializer.java
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/UsageReportPreferenceInitializer.java 2010-09-02
12:28:08 UTC (rev 24641)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/preferences/UsageReportPreferenceInitializer.java 2010-09-02
13:00:27 UTC (rev 24642)
@@ -21,6 +21,10 @@
public void initializeDefaultPreferences() {
PreferencesUtils.getStore().setDefault(
+ IUsageReportPreferenceConstants.ASK_USER_USAGEREPORT_ID,
+ IUsageReportPreferenceConstants.ASK_USER_USAGEREPORT_DEFAULTVALUE);
+
+ PreferencesUtils.getStore().setDefault(
IUsageReportPreferenceConstants.USAGEREPORT_ENABLED_ID,
IUsageReportPreferenceConstants.USAGEREPORT_ENABLED_DEFAULTVALUE);
}
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java 2010-09-02
12:28:08 UTC (rev 24641)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReport.java 2010-09-02
13:00:27 UTC (rev 24642)
@@ -58,9 +58,6 @@
private void askUser() {
UsageReportEnablementDialog dialog = new UsageReportEnablementDialog(
- ReportingMessages.UsageReport_DialogTitle,
- ReportingMessages.UsageReport_DialogMessage,
- ReportingMessages.UsageReport_Checkbox_Text,
true,
PlatformUI.getWorkbench().getActiveWorkbenchWindow());
if (dialog.open() == Window.OK) {
@@ -115,11 +112,14 @@
}
monitor.worked(1);
if (UsageReportPreferences.isAskUser()) {
+ if (monitor.isCanceled()) {
+ return Status.CANCEL_STATUS;
+ }
askUserAndReport();
+ } else {
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
- } else {
doReport();
}
monitor.worked(2);
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReportEnablementDialog.java
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReportEnablementDialog.java 2010-09-02
12:28:08 UTC (rev 24641)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/UsageReportEnablementDialog.java 2010-09-02
13:00:27 UTC (rev 24642)
@@ -15,37 +15,34 @@
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.window.IShellProvider;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.usage.internal.JBossToolsUsageActivator;
+import org.jboss.tools.usage.util.BrowserUtil;
/**
* @author Andre Dietisheim
*/
public class UsageReportEnablementDialog extends Dialog {
+ protected static final String USAGE_URL = "http://jboss.org/tools/usage"; //
$NON
private Button checkBox;
- private String title;
- private String message;
private boolean reportEnabled;
- private String checkBoxLabel;
- public UsageReportEnablementDialog(String title, String message, String checkBoxLabel,
- boolean reportEnabled, IShellProvider parentShell) {
+ public UsageReportEnablementDialog(boolean reportEnabled, IShellProvider parentShell) {
super(parentShell);
- this.title = title;
- this.message = message;
- this.checkBoxLabel = checkBoxLabel;
this.reportEnabled = reportEnabled;
}
protected void buttonPressed(int buttonId) {
if (buttonId == IDialogConstants.OK_ID) {
this.reportEnabled = checkBox.getSelection();
- }
- else if (buttonId == IDialogConstants.CANCEL_ID) {
+ } else if (buttonId == IDialogConstants.CANCEL_ID) {
this.reportEnabled = false;
}
super.buttonPressed(buttonId);
@@ -53,9 +50,7 @@
protected void configureShell(Shell shell) {
super.configureShell(shell);
- if (title != null) {
- shell.setText(title);
- }
+ shell.setText(ReportingMessages.UsageReport_DialogTitle);
}
protected void createButtonsForButtonBar(Composite parent) {
@@ -67,19 +62,30 @@
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
- if (message != null) {
- Label label = new Label(composite, SWT.WRAP);
- label.setFont(parent.getFont());
- label.setText(message);
- GridDataFactory.fillDefaults()
- .align(SWT.FILL, SWT.CENTER).grab(true, false)
- .hint(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH, SWT.DEFAULT)
- .applyTo(label);
- }
+
+ // message
+ Link link = new Link(composite, SWT.WRAP);
+ link.setFont(parent.getFont());
+ link.setText(ReportingMessages.UsageReport_DialogMessage);
+ link.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ BrowserUtil.checkedCreateExternalBrowser(USAGE_URL,
JBossToolsUsageActivator.PLUGIN_ID, JBossToolsUsageActivator.getDefault().getLog());
+ }
+ });
+ GridDataFactory.fillDefaults()
+ .align(SWT.FILL, SWT.CENTER)
+ .grab(true, false)
+ .hint(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH, SWT.DEFAULT)
+ .applyTo(link);
+
+ // checkbox
checkBox = new Button(composite, SWT.CHECK);
- checkBox.setText(checkBoxLabel);
+ checkBox.setText(ReportingMessages.UsageReport_Checkbox_Text);
GridDataFactory.fillDefaults().grab(true, false).align(SWT.LEFT,
SWT.CENTER).applyTo(checkBox);
+
applyDialogFont(composite);
+
return composite;
}
Modified:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties 2010-09-02
12:28:08 UTC (rev 24641)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/reporting/messages.properties 2010-09-02
13:00:27 UTC (rev 24642)
@@ -3,7 +3,7 @@
UsageReport_Querying_Enablement=Querying whether reporting is globally enabled
UsageReport_Asking_User=Asking User to allow reporting
UsageReport_Checkbox_Text=Report usage of JBoss Tools to JBoss Tools team.
-UsageReport_DialogMessage=Please allow the JBoss Tools team to receive anonymous usage
statistics for this Eclipse installation with JBoss tools.
+UsageReport_DialogMessage=Please allow the JBoss Tools team to receive anonymous usage
statistics for this Eclipse installation with JBoss tools (<a>info</a>).
UsageReport_DialogTitle=JBoss Tools Usage
UsageReport_Error_SavePreferences=Could not save preferences {0}
UsageReport_GoogleAnalyticsAccount=UA-17645367-1
Added:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/BrowserUtil.java
===================================================================
---
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/BrowserUtil.java
(rev 0)
+++
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/BrowserUtil.java 2010-09-02
13:00:27 UTC (rev 24642)
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.usage.util;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.browser.IWebBrowser;
+
+public class BrowserUtil {
+
+ /**
+ * Opens a browser for the given url with the given id. If an error occurs
+ * it will be reported to the given log provider with the given plugin id.
+ *
+ * @param url
+ * the url to open a browser for.
+ * @param browserId
+ * the id for the new browser.
+ * @param pluginId
+ * the plugin id to log for.
+ * @param log
+ * the log provider to log against if an error occurred.
+ */
+ public static void checkedCreateInternalBrowser(String url, String browserId, String
pluginId, ILog log) {
+ try {
+ openUrl(url, PlatformUI.getWorkbench().getBrowserSupport().createBrowser(browserId),
pluginId, log);
+ } catch (PartInitException e) {
+ IStatus errorStatus = StatusUtils.getErrorStatus(pluginId, "Could not open
browser for url \"{0}\".", e,
+ url);
+ log.log(errorStatus);
+ }
+ }
+
+
+ public static void checkedCreateExternalBrowser(String url, String pluginId, ILog log)
{
+ try {
+ openUrl(url, PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser(),
pluginId, log);
+ } catch (PartInitException e) {
+ IStatus errorStatus = StatusUtils.getErrorStatus(pluginId, "Could not open
browser for url \"{0}\".", e,
+ url);
+ log.log(errorStatus);
+ }
+ }
+
+ public static void openUrl(String url, IWebBrowser browser, String pluginId, ILog log)
{
+ try {
+ browser.openURL(new URL(url));
+ } catch (PartInitException e) {
+ IStatus errorStatus = StatusUtils.getErrorStatus(pluginId, "Could not open
browser for url \"{0}\".", e,
+ url);
+ log.log(errorStatus);
+ } catch (MalformedURLException e) {
+ IStatus errorStatus = StatusUtils.getErrorStatus(pluginId, "Could not display
malformed url \"{0}\".", e,
+ url);
+ log.log(errorStatus);
+ }
+ }
+}
Property changes on:
trunk/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/util/BrowserUtil.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain