Progress on: 108021: make monitor listen to all preference changes
https://bugs.eclipse.org/bugs/show_bug.cgi?id=108021
diff --git a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/reports/tests/ContextParsingTest.java b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/reports/tests/ContextParsingTest.java
index ee427d1..1c86f52 100644
--- a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/reports/tests/ContextParsingTest.java
+++ b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/reports/tests/ContextParsingTest.java
@@ -21,7 +21,6 @@
import org.eclipse.mylar.internal.core.ScalingFactor;
import org.eclipse.mylar.internal.core.ScalingFactors;
import org.eclipse.mylar.internal.monitor.InteractionEventLogger;
-import org.eclipse.mylar.internal.monitor.monitors.SelectionMonitor;
import org.eclipse.mylar.monitor.tests.MylarMonitorTestsPlugin;
import org.eclipse.mylar.provisional.core.IMylarElement;
import org.eclipse.mylar.provisional.core.InteractionEvent;
@@ -68,17 +67,19 @@
MylarContext context = new MylarContext("test", scalingFactors);
int numEvents = 0;
for (InteractionEvent event : events) {
- if (SelectionMonitor.isValidStructureHandle(event)) {
+ if (event.isValidStructureHandle()) {
+// if (SelectionMonitor.isValidStructureHandle(event)) {
InteractionEvent newEvent = InteractionEvent.makeCopy(event, 1f);
context.parseEvent(newEvent);
- if (SelectionMonitor.isValidStructureHandle(event) && event.getKind().equals(InteractionEvent.Kind.SELECTION)) {
+ if (event.isValidStructureHandle() && event.getKind().equals(InteractionEvent.Kind.SELECTION)) {
+// if (SelectionMonitor.isValidStructureHandle(event) && event.getKind().equals(InteractionEvent.Kind.SELECTION)) {
IMylarElement element = context.parseEvent(event);
// reset decay if not selected
if (element.getInterest().getValue() < 0) {
float decayOffset = (-1) * (element.getInterest().getValue()) + 1;
element = context.parseEvent(new InteractionEvent(InteractionEvent.Kind.MANIPULATION,
- event.getContentType(), event.getStructureHandle(), "test-decay", decayOffset));
+ event.getStructureKind(), event.getStructureHandle(), "test-decay", decayOffset));
}
assertTrue("should be positive: " + element.getInterest().getValue(), element.getInterest().getValue() >= 0);
diff --git a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/InteractionEventExternalizationTest.java b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/InteractionEventExternalizationTest.java
index 1539303..1d89b89 100644
--- a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/InteractionEventExternalizationTest.java
+++ b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/InteractionEventExternalizationTest.java
@@ -18,6 +18,8 @@
import org.eclipse.mylar.core.tests.AbstractContextTest;
import org.eclipse.mylar.internal.monitor.InteractionEventLogger;
+import org.eclipse.mylar.internal.monitor.MylarMonitorPlugin;
+import org.eclipse.mylar.internal.monitor.MylarMonitorPreferenceConstants;
import org.eclipse.mylar.provisional.core.InteractionEvent;
/**
@@ -28,6 +30,8 @@
private static final String PATH = "test-log.xml";
public void testManualExternalization() throws IOException {
+ MylarMonitorPlugin.getPrefs().setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE, false);
+
List<InteractionEvent> events = new ArrayList<InteractionEvent>();
File f = new File(PATH);
if (f.exists()) {
@@ -51,5 +55,7 @@
for (int i = 0; i < events.size(); i++) {
assertEquals(events.get(i), readEvents.get(i));
}
+
+ MylarMonitorPlugin.getPrefs().setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE, true);
}
}
diff --git a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MockSelectionMonitor.java b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MockSelectionMonitor.java
new file mode 100644
index 0000000..5abd40a
--- /dev/null
+++ b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MockSelectionMonitor.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia 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:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylar.monitor.tests;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.mylar.provisional.core.AbstractUserInteractionMonitor;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * @author Mik Kersten
+ */
+public class MockSelectionMonitor extends AbstractUserInteractionMonitor {
+
+ @Override
+ protected void handleWorkbenchPartSelection(IWorkbenchPart part, ISelection selection, boolean contributeToContext) {
+ handleElementSelection(part, selection, contributeToContext);
+ }
+}
diff --git a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MonitorTest.java b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MonitorTest.java
index c6780ae..4da4abc 100644
--- a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MonitorTest.java
+++ b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MonitorTest.java
@@ -25,7 +25,6 @@
import org.eclipse.mylar.internal.monitor.monitors.BrowserMonitor;
import org.eclipse.mylar.internal.monitor.monitors.KeybindingCommandMonitor;
import org.eclipse.mylar.internal.monitor.monitors.PerspectiveChangeMonitor;
-import org.eclipse.mylar.internal.monitor.monitors.SelectionMonitor;
import org.eclipse.mylar.provisional.core.InteractionEvent;
import org.eclipse.mylar.provisional.core.MylarPlugin;
import org.eclipse.ui.IPerspectiveDescriptor;
@@ -39,7 +38,7 @@
private InteractionEventLogger logger = MylarMonitorPlugin.getDefault().getInteractionLogger();
- private SelectionMonitor selectionMonitor = new SelectionMonitor();
+ private MockSelectionMonitor selectionMonitor = new MockSelectionMonitor();
private KeybindingCommandMonitor commandMonitor = new KeybindingCommandMonitor();
diff --git a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java
index fe3c220..bb80bf2 100644
--- a/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java
+++ b/org.eclipse.mylyn.monitor.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java
@@ -21,7 +21,6 @@
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.mylar.internal.monitor.InteractionEventLogger;
import org.eclipse.mylar.internal.monitor.MylarMonitorPlugin;
-import org.eclipse.mylar.internal.monitor.monitors.SelectionMonitor;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
@@ -38,7 +37,7 @@
private InteractionEventLogger logger = MylarMonitorPlugin.getDefault().getInteractionLogger();
- private SelectionMonitor selectionMonitor = new SelectionMonitor();
+ private MockSelectionMonitor selectionMonitor = new MockSelectionMonitor();
private IWorkbenchWindow window1;
diff --git a/org.eclipse.mylyn.monitor.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.monitor.ui/META-INF/MANIFEST.MF
index 87c92e7..ce033f8 100644
--- a/org.eclipse.mylyn.monitor.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.monitor.ui/META-INF/MANIFEST.MF
@@ -9,16 +9,12 @@
org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.jface.text,
- org.eclipse.jdt.ui,
- org.eclipse.ui.ide,
- org.eclipse.ui.editors,
org.eclipse.mylar.core,
org.eclipse.update.ui,
- org.eclipse.pde.ui,
org.eclipse.update.core,
- org.eclipse.ui.workbench.texteditor,
org.eclipse.ui.browser,
- org.eclipse.jdt.core
+ org.eclipse.ui.editors,
+ org.eclipse.ui.workbench.texteditor
Eclipse-AutoStart: true
Bundle-Vendor: Eclipse.org
Bundle-ClassPath: mylar-monitor.jar,
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/HandleObfuscator.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/HandleObfuscator.java
new file mode 100644
index 0000000..ab1662e
--- /dev/null
+++ b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/HandleObfuscator.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 University Of British Columbia 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:
+ * University Of British Columbia - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.mylar.internal.monitor;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import org.eclipse.core.internal.preferences.Base64;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.mylar.internal.core.util.MylarStatusHandler;
+import org.eclipse.mylar.provisional.core.IMylarStructureBridge;
+import org.eclipse.mylar.provisional.core.MylarPlugin;
+
+/**
+ * @author Mik Kersten
+ */
+public class HandleObfuscator {
+
+ private static final char DELIM_PATH = '/';
+
+ public static final String LABEL_FAILED_TO_OBFUSCATE = "<failed to obfuscate>";
+
+ public static final String ENCRYPTION_ALGORITHM = "SHA";
+
+ public boolean isObfuscationEnabled() {
+ return MylarMonitorPlugin.getPrefs()
+ .getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE);
+ }
+
+ public String obfuscateHandle(String structureKind, String structureHandle) {
+ if (structureHandle == null || structureHandle.equals("")) {
+ return structureHandle;
+ }
+ StringBuilder obfuscated = new StringBuilder();
+ IMylarStructureBridge bridge = MylarPlugin.getDefault().getStructureBridge(structureKind);
+ Object object = bridge.getObjectForHandle(structureHandle);
+ if (object instanceof IAdaptable) {
+ Object adapter = ((IAdaptable)object).getAdapter(IResource.class);
+ if (adapter instanceof IResource) {
+ obfuscated.append(obfuscateResourcePath(((IResource)adapter).getFullPath()));
+ obfuscated.append(DELIM_PATH);
+ }
+ }
+ obfuscated.append(obfuscateString(structureHandle));
+ return obfuscated.toString();
+ }
+
+ /**
+ * Encrypts the string using SHA, then makes it reasonable to print.
+ */
+ public String obfuscateString(String string) {
+ if(!isObfuscationEnabled()) { return string; }
+ String obfuscatedString = null;
+ try {
+ MessageDigest md = MessageDigest.getInstance(ENCRYPTION_ALGORITHM);
+ md.update(string.getBytes());
+ byte[] digest = md.digest();
+ obfuscatedString = new String(Base64.encode(digest)).replace(DELIM_PATH, '=');
+ // obfuscatedString = "" + new String(digest).hashCode();
+ } catch (NoSuchAlgorithmException e) {
+ MylarStatusHandler.log("SHA not available", null);
+ obfuscatedString = LABEL_FAILED_TO_OBFUSCATE;
+ }
+ return obfuscatedString;
+ }
+
+ public String obfuscateResourcePath(IPath path) {
+ if (path == null) {
+ return "";
+ } else {
+ StringBuffer obfuscatedPath = new StringBuffer();
+ for (int i = 0; i < path.segmentCount(); i++) {
+ obfuscatedPath.append(obfuscateString(path.segments()[i]));
+ if (i < path.segmentCount() - 1)
+ obfuscatedPath.append(DELIM_PATH);
+ }
+ return obfuscatedPath.toString();
+ }
+ }
+
+}
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/InteractionEventLogger.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/InteractionEventLogger.java
index 8f69f7d..6c1a24a 100644
--- a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/InteractionEventLogger.java
+++ b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/InteractionEventLogger.java
@@ -52,6 +52,8 @@
private int eventAccumulartor = 0;
private List<InteractionEvent> queue = new ArrayList<InteractionEvent>();
+
+ private HandleObfuscator handleObfuscator = new HandleObfuscator();
public InteractionEventLogger(File outputFile) {
this.outputFile = outputFile;
@@ -61,7 +63,11 @@
* TODO: should these be queued for better performance?
*/
public void interactionObserved(InteractionEvent event) {
-// System.err.println("> " + event);
+// System.err.println(">>> " + event);
+ if (handleObfuscator.isObfuscationEnabled()) {
+ String obfuscatedHandle = handleObfuscator.obfuscateHandle(event.getStructureKind(), event.getStructureHandle());
+ event = new InteractionEvent(event.getKind(), event.getStructureKind(), obfuscatedHandle, event.getOriginId(), event.getNavigation(), event.getDelta(), event.getInterestContribution());
+ }
try {
if (started) {
String xml = interactionEventToXml(event);
@@ -224,7 +230,7 @@
+ ENDL);
res.append(TAB + OPEN + "originId" + CLOSE + XmlStringConverter.convertToXmlString(e.getOriginId()) + OPEN
+ SLASH + "originId" + CLOSE + ENDL);
- res.append(TAB + OPEN + "structureKind" + CLOSE + XmlStringConverter.convertToXmlString(e.getContentType())
+ res.append(TAB + OPEN + "structureKind" + CLOSE + XmlStringConverter.convertToXmlString(e.getStructureKind())
+ OPEN + SLASH + "structureKind" + CLOSE + ENDL);
res.append(TAB + OPEN + "structureHandle" + CLOSE
+ XmlStringConverter.convertToXmlString(e.getStructureHandle()) + OPEN + SLASH + "structureHandle"
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/MylarMonitorPlugin.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/MylarMonitorPlugin.java
index 3b83728..163f51e 100644
--- a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/MylarMonitorPlugin.java
+++ b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/MylarMonitorPlugin.java
@@ -28,9 +28,9 @@
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -46,13 +46,11 @@
import org.eclipse.mylar.internal.monitor.monitors.MenuCommandMonitor;
import org.eclipse.mylar.internal.monitor.monitors.PerspectiveChangeMonitor;
import org.eclipse.mylar.internal.monitor.monitors.PreferenceChangeMonitor;
-import org.eclipse.mylar.internal.monitor.monitors.SelectionMonitor;
import org.eclipse.mylar.internal.monitor.monitors.WindowChangeMonitor;
import org.eclipse.mylar.internal.monitor.ui.wizards.UsageSubmissionWizard;
import org.eclipse.mylar.provisional.core.AbstractCommandMonitor;
import org.eclipse.mylar.provisional.core.IInteractionEventListener;
import org.eclipse.mylar.provisional.core.MylarPlugin;
-import org.eclipse.pde.internal.ui.PDEPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.events.ShellListener;
@@ -63,8 +61,6 @@
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.editors.text.EditorsPlugin;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.update.internal.core.UpdateCore;
import org.eclipse.update.internal.ui.security.Authentication;
@@ -122,7 +118,7 @@
private String customizingPlugin = null;
- private PreferenceChangeMonitor preferenceMonitor;
+ private PreferenceChangeMonitor preferenceMonitor = new PreferenceChangeMonitor();
private PerspectiveChangeMonitor perspectiveMonitor;
@@ -136,14 +132,12 @@
private BrowserMonitor browserMonitor;
- private SelectionMonitor selectionMonitor;
-
private static MylarMonitorPlugin plugin;
private List<IActionExecutionListener> actionExecutionListeners = new ArrayList<IActionExecutionListener>();
-
+
private List<AbstractCommandMonitor> commandMonitors = new ArrayList<AbstractCommandMonitor>();
-
+
private ResourceBundle resourceBundle;
private static Date lastTransmit = null;
@@ -161,21 +155,25 @@
private StudyParameters studyParameters = new StudyParameters();
private IWindowListener WINDOW_LISTENER = new IWindowListener() {
- public void windowActivated(IWorkbenchWindow window) {}
- public void windowDeactivated(IWorkbenchWindow window) {}
+ public void windowActivated(IWorkbenchWindow window) {
+ }
+
+ public void windowDeactivated(IWorkbenchWindow window) {
+ }
public void windowClosed(IWorkbenchWindow window) {
- if(window.getShell() != null) {
+ if (window.getShell() != null) {
window.getShell().removeShellListener(SHELL_LISTENER);
}
}
public void windowOpened(IWorkbenchWindow window) {
- if(window.getShell() != null && !PlatformUI.getWorkbench().isClosing()) {
+ if (window.getShell() != null && !PlatformUI.getWorkbench().isClosing()) {
window.getShell().addShellListener(SHELL_LISTENER);
}
- }};
-
+ }
+ };
+
private ShellListener SHELL_LISTENER = new ShellListener() {
public void shellDeactivated(ShellEvent arg0) {
@@ -206,7 +204,7 @@
}
};
- private IPropertyChangeListener PREFERENCE_LISTENER = new IPropertyChangeListener() {
+ private IPropertyChangeListener DATA_DIR_MOVE_LISTENER = new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(MylarPreferenceContstants.PREF_DATA_DIR)) {
if (event.getOldValue() instanceof String) {
@@ -242,14 +240,14 @@
new MonitorExtensionPointReader().initExtensions();
interactionLogger = new InteractionEventLogger(getMonitorLogFile());
- preferenceMonitor = new PreferenceChangeMonitor();
+
perspectiveMonitor = new PerspectiveChangeMonitor();
activityMonitor = new ActivityChangeMonitor();
windowMonitor = new WindowChangeMonitor();
- selectionMonitor = new SelectionMonitor();
menuMonitor = new MenuCommandMonitor();
keybindingCommandMonitor = new KeybindingCommandMonitor();
browserMonitor = new BrowserMonitor();
+
setAcceptedUrlMatchList(studyParameters.getAcceptedUrlList());
if (getPreferenceStore().getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED)) {
@@ -260,50 +258,17 @@
}
if (plugin.getPreferenceStore().contains(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE)) {
- lastTransmit = new Date(plugin.getPreferenceStore().getLong(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE));
+ lastTransmit = new Date(plugin.getPreferenceStore().getLong(
+ MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE));
} else {
lastTransmit = new Date();
- plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, lastTransmit.getTime());
+ plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE,
+ lastTransmit.getTime());
}
}
});
}
- public void stopMonitoring() {
- if (!getPreferenceStore().getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED))
- return;
- interactionLogger.stopObserving();
- for (IInteractionEventListener listener : MylarPlugin.getDefault().getInteractionListeners())
- listener.stopObserving();
-
- IWorkbench workbench = PlatformUI.getWorkbench();
- MylarPlugin.getDefault().removeInteractionListener(interactionLogger);
-
- getCommandMonitors().remove(keybindingCommandMonitor);
- MylarPlugin.getDefault().getSelectionMonitors().remove(selectionMonitor);
- getActionExecutionListeners().remove(new ActionExecutionMonitor());
-
- workbench.removeWindowListener(WINDOW_LISTENER);
- for(IWorkbenchWindow w : workbench.getWorkbenchWindows()) {
- if(w.getShell() != null) { w.getShell().removeShellListener(SHELL_LISTENER); }
- }
- MylarPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(PREFERENCE_LISTENER);
-
- MylarPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(preferenceMonitor);
- JavaPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(preferenceMonitor);
- WorkbenchPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(preferenceMonitor);
- EditorsPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(preferenceMonitor);
- PDEPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(preferenceMonitor);
-
- MylarPlugin.getDefault().removeWindowPerspectiveListener(perspectiveMonitor);
- workbench.getActivitySupport().getActivityManager().removeActivityManagerListener(activityMonitor);
- workbench.getDisplay().removeFilter(SWT.Selection, menuMonitor);
- workbench.removeWindowListener(windowMonitor);
-
- uninstallBrowserMonitor(workbench);
- getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED, false);
- }
-
public void startMonitoring() {
if (getPreferenceStore().getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED))
return;
@@ -314,21 +279,15 @@
IWorkbench workbench = PlatformUI.getWorkbench();
MylarPlugin.getDefault().addInteractionListener(interactionLogger);
getCommandMonitors().add(keybindingCommandMonitor);
- MylarPlugin.getDefault().getSelectionMonitors().add(selectionMonitor);
getActionExecutionListeners().add(new ActionExecutionMonitor());
workbench.addWindowListener(WINDOW_LISTENER);
- for(IWorkbenchWindow w : workbench.getWorkbenchWindows()) {
- if(w.getShell() != null) { w.getShell().addShellListener(SHELL_LISTENER); }
+ for (IWorkbenchWindow w : workbench.getWorkbenchWindows()) {
+ if (w.getShell() != null) {
+ w.getShell().addShellListener(SHELL_LISTENER);
+ }
}
- MylarPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(PREFERENCE_LISTENER);
-
- MylarPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(preferenceMonitor);
- JavaPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(preferenceMonitor);
- WorkbenchPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(preferenceMonitor);
- EditorsPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(preferenceMonitor);
- PDEPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(preferenceMonitor);
-
+ MylarPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(DATA_DIR_MOVE_LISTENER);
MylarPlugin.getDefault().addWindowPerspectiveListener(perspectiveMonitor);
workbench.getActivitySupport().getActivityManager().addActivityManagerListener(activityMonitor);
workbench.getDisplay().addFilter(SWT.Selection, menuMonitor);
@@ -341,6 +300,65 @@
}
getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED, true);
}
+
+ public void addMonitoredPreferences(Preferences preferences) {
+ preferences.addPropertyChangeListener(preferenceMonitor);
+ }
+
+ public void removeMonitoredPreferences(Preferences preferences) {
+ preferences.removePropertyChangeListener(preferenceMonitor);
+ }
+
+// private void installPreferenceMonitoring() {
+// ((IEclipsePreferences) getPreferenceStore().getp())
+// .addNodeChangeListener(getNodeChangeListener());
+
+// Bundle[] bundles = PDERuntimePlugin.getDefault().getBundleContext().getBundles();
+// for (Bundle bundle : bundles) {
+// if (bundle.getHeaders().get(Constants.FRAGMENT_HOST) == null) {
+// if (bundle.getState() == Bundle.ACTIVE) {
+// System.err.println(">> " + bundle.getClass());
+// }
+// }
+// }
+
+ // for (String namespace :
+ // Platform.getExtensionRegistry().getNamespaces()) {
+ // IExtension extension =
+ // Platform.getExtensionRegistry().getExtension(namespace);
+ // System.err.println(">>> " + extension);
+ // }
+// }
+
+ public void stopMonitoring() {
+ if (!getPreferenceStore().getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED))
+ return;
+ interactionLogger.stopObserving();
+ for (IInteractionEventListener listener : MylarPlugin.getDefault().getInteractionListeners())
+ listener.stopObserving();
+
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ MylarPlugin.getDefault().removeInteractionListener(interactionLogger);
+
+ getCommandMonitors().remove(keybindingCommandMonitor);
+ getActionExecutionListeners().remove(new ActionExecutionMonitor());
+
+ workbench.removeWindowListener(WINDOW_LISTENER);
+ for (IWorkbenchWindow w : workbench.getWorkbenchWindows()) {
+ if (w.getShell() != null) {
+ w.getShell().removeShellListener(SHELL_LISTENER);
+ }
+ }
+ MylarPlugin.getDefault().getPluginPreferences().removePropertyChangeListener(DATA_DIR_MOVE_LISTENER);
+
+ MylarPlugin.getDefault().removeWindowPerspectiveListener(perspectiveMonitor);
+ workbench.getActivitySupport().getActivityManager().removeActivityManagerListener(activityMonitor);
+ workbench.getDisplay().removeFilter(SWT.Selection, menuMonitor);
+ workbench.removeWindowListener(windowMonitor);
+
+ uninstallBrowserMonitor(workbench);
+ getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED, false);
+ }
@Override
public void start(BundleContext context) throws Exception {
@@ -352,7 +370,6 @@
super.stop(context);
plugin = null;
resourceBundle = null;
- MylarPlugin.getDefault().getSelectionMonitors().remove(selectionMonitor);
}
public void actionObserved(IAction action, String info) {
@@ -368,7 +385,7 @@
public List<AbstractCommandMonitor> getCommandMonitors() {
return commandMonitors;
}
-
+
private void installBrowserMonitor(IWorkbench workbench) {
workbench.addWindowListener(browserMonitor);
IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
@@ -428,11 +445,13 @@
if (wait3Hours) {
lastTransmit.setTime(currentTime.getTime() + DELAY_ON_USER_REQUEST
- studyParameters.getTransmitPromptPeriod());
- plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, lastTransmit.getTime());
+ plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE,
+ lastTransmit.getTime());
} else {
long day = HOUR * 24;
lastTransmit.setTime(currentTime.getTime() + day - studyParameters.getTransmitPromptPeriod());
- plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, lastTransmit.getTime());
+ plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE,
+ lastTransmit.getTime());
}
}
@@ -489,10 +508,12 @@
if (plugin == null || plugin.getPreferenceStore() == null)
return;
if (plugin.getPreferenceStore().contains(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE)) {
- lastTransmit = new Date(plugin.getPreferenceStore().getLong(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE));
+ lastTransmit = new Date(plugin.getPreferenceStore().getLong(
+ MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE));
} else {
lastTransmit = new Date();
- plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, lastTransmit.getTime());
+ plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE,
+ lastTransmit.getTime());
}
Date currentTime = new Date();
if (currentTime.getTime() > lastTransmit.getTime() + studyParameters.getTransmitPromptPeriod()) {
@@ -506,7 +527,8 @@
// time must be stored right away into preferences, to prevent
// other threads
lastTransmit.setTime(new Date().getTime());
- plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, currentTime.getTime());
+ plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE,
+ currentTime.getTime());
UsageSubmissionWizard wizard = new UsageSubmissionWizard();
wizard.init(PlatformUI.getWorkbench(), null);
@@ -518,7 +540,8 @@
if (wizard.failed()) {
lastTransmit.setTime(currentTime.getTime() + DELAY_ON_FAILURE
- studyParameters.getTransmitPromptPeriod());
- plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE, currentTime.getTime());
+ plugin.getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_PREVIOUS_TRANSMIT_DATE,
+ currentTime.getTime());
}
} else {
if (result == 1) {
@@ -556,7 +579,7 @@
}
public static IPreferenceStore getPrefs() {
- return MylarMonitorPlugin.getDefault().getPreferenceStore();
+ return getDefault().getPreferenceStore();
}
public static boolean isPerformingUpload() {
@@ -640,7 +663,8 @@
}
}
customizingPlugin = extensions[i].getNamespace();
- getPreferenceStore().setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED, true);
+ getPreferenceStore()
+ .setValue(MylarMonitorPreferenceConstants.PREF_MONITORING_ENABLED, true);
}
extensionsRead = true;
}
@@ -668,14 +692,13 @@
studyParameters.setUseContactField(element.getAttribute(ELEMENT_UI_CONTACT_CONSENT_FIELD));
try {
- if(element.getAttribute(ELEMENT_UI_QUESTIONNAIRE_PAGE) != null) {
+ if (element.getAttribute(ELEMENT_UI_QUESTIONNAIRE_PAGE) != null) {
Object questionnaireObject = element.createExecutableExtension(ELEMENT_UI_QUESTIONNAIRE_PAGE);
if (questionnaireObject instanceof IQuestionnairePage) {
IQuestionnairePage page = (IQuestionnairePage) questionnaireObject;
studyParameters.setQuestionnairePage(page);
}
- }
- else {
+ } else {
MylarMonitorPlugin.getDefault().setQuestionnaireEnabled(false);
}
} catch (CoreException throwable) {
@@ -684,15 +707,14 @@
}
try {
- if(element.getAttribute(ELEMENT_UI_BACKGROUND_PAGE) != null) {
+ if (element.getAttribute(ELEMENT_UI_BACKGROUND_PAGE) != null) {
Object backgroundObject = element.createExecutableExtension(ELEMENT_UI_BACKGROUND_PAGE);
if (backgroundObject instanceof IBackgroundPage) {
IBackgroundPage page = (IBackgroundPage) backgroundObject;
studyParameters.setBackgroundPage(page);
MylarMonitorPlugin.getDefault().setBackgroundEnabled(true);
}
- }
- else {
+ } else {
MylarMonitorPlugin.getDefault().setBackgroundEnabled(false);
}
} catch (CoreException throwable) {
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/BrowserMonitor.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/BrowserMonitor.java
index 35b3363..cf425d1 100644
--- a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/BrowserMonitor.java
+++ b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/BrowserMonitor.java
@@ -68,7 +68,7 @@
}
@Override
- protected void handleWorkbenchPartSelection(IWorkbenchPart part, ISelection selection) {
+ protected void handleWorkbenchPartSelection(IWorkbenchPart part, ISelection selection, boolean contributeToContext) {
// ignore, this is a special case
}
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/SelectionMonitor.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/SelectionMonitor.java
deleted file mode 100644
index 2f425c6..0000000
--- a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/monitors/SelectionMonitor.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2006 University Of British Columbia 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:
- * University Of British Columbia - initial API and implementation
- *******************************************************************************/
-/*
- * Created on Jun 10, 2005
- */
-package org.eclipse.mylar.internal.monitor.monitors;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-import org.eclipse.core.internal.preferences.Base64;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.actions.SelectionConverter;
-import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylar.internal.core.MylarContextManager;
-import org.eclipse.mylar.internal.core.util.MylarStatusHandler;
-import org.eclipse.mylar.internal.monitor.MylarMonitorPlugin;
-import org.eclipse.mylar.internal.monitor.MylarMonitorPreferenceConstants;
-import org.eclipse.mylar.provisional.core.AbstractUserInteractionMonitor;
-import org.eclipse.mylar.provisional.core.IMylarElement;
-import org.eclipse.mylar.provisional.core.InteractionEvent;
-import org.eclipse.mylar.provisional.core.MylarPlugin;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * Limited to Java selections.
- *
- * @author Mik Kersten
- */
-public class SelectionMonitor extends AbstractUserInteractionMonitor {
-
- public static final String ENCRYPTION_ALGORITHM = "SHA";
-
- private static final String ID_JAVA_UNKNOWN = "(non-source element)";
-
- private static final String LABEL_FAILED_TO_OBFUSCATE = "<failed to obfuscate>";
-
- public static final String SELECTION_DEFAULT = "selected";
-
- public static final String SELECTION_NEW = "new";
-
- public static final String SELECTION_DECAYED = "decayed";
-
- public static final String SELECTION_PREDICTED = "predicted";
-
- private static final Object ID_JAVA_UNKNOW_OLD = "(non-existing element)";
-
- private IJavaElement lastSelectedElement = null;
-
- @Override
- protected void handleWorkbenchPartSelection(IWorkbenchPart part, ISelection selection) {
- // ignored, since not using taskscape monitoring facilities
- }
-
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- String structureKind = InteractionEvent.ID_UNKNOWN;
- String obfuscatedElementHandle = InteractionEvent.ID_UNKNOWN;
- String elementHandle = InteractionEvent.ID_UNKNOWN;
- InteractionEvent.Kind interactionKind = InteractionEvent.Kind.SELECTION;
- if (selection instanceof StructuredSelection) {
- StructuredSelection structuredSelection = (StructuredSelection) selection;
- Object selectedObject = structuredSelection.getFirstElement();
- if (selectedObject == null)
- return;
- if (selectedObject instanceof IJavaElement) {
- IJavaElement javaElement = (IJavaElement) selectedObject;
- structureKind = "java:" + javaElement.getClass();
- elementHandle = javaElement.getHandleIdentifier();
- obfuscatedElementHandle = obfuscateJavaElementHandle(javaElement);
- lastSelectedElement = javaElement;
- } else {
- structureKind = InteractionEvent.ID_UNKNOWN + ": " + selectedObject.getClass();
- if (selectedObject instanceof IAdaptable) {
- IResource resource = (IResource) ((IAdaptable) selectedObject).getAdapter(IResource.class);
- if (resource != null) {
- obfuscatedElementHandle = obfuscateResourcePath(resource.getProjectRelativePath());
- }
- }
- }
- } else {
- if (selection instanceof TextSelection && part instanceof JavaEditor) {
- TextSelection textSelection = (TextSelection) selection;
- IJavaElement javaElement;
- try {
- javaElement = SelectionConverter.resolveEnclosingElement((JavaEditor) part, textSelection);
- if (javaElement != null) {
- structureKind = "java:" + javaElement.getClass();
- obfuscatedElementHandle = obfuscateJavaElementHandle(javaElement);
- elementHandle = javaElement.getHandleIdentifier();
- if (javaElement != null && javaElement.equals(lastSelectedElement)) {
- interactionKind = InteractionEvent.Kind.EDIT;
- }
- lastSelectedElement = javaElement;
- }
- } catch (JavaModelException e) {
- // ignore unresolved elements
- // MylarPlugin.log("Could not resolve java element from text
- // selection.", this);
- }
- } else if (part instanceof EditorPart) {
- EditorPart editorPart = (EditorPart) part;
- IEditorInput input = editorPart.getEditorInput();
- if (input instanceof IPathEditorInput) {
- structureKind = "file";
- obfuscatedElementHandle = obfuscateResourcePath(((IPathEditorInput) input).getPath());
- }
- }
- }
- IMylarElement node = MylarPlugin.getContextManager().getElement(elementHandle);
- String delta = "";
- float selectionFactor = MylarContextManager.getScalingFactors().get(InteractionEvent.Kind.SELECTION).getValue();
-
- // XXX: broken in 0.4?
- if (node != null) {
- if (node.getInterest().getEncodedValue() <= selectionFactor
- && node.getInterest().getValue() > selectionFactor) {
- delta = SELECTION_PREDICTED;
- } else if (node.getInterest().getEncodedValue() < selectionFactor
- && node.getInterest().getDecayValue() > selectionFactor) {
- delta = SELECTION_DECAYED;
- } else if (node.getInterest().getValue() == selectionFactor
- && node.getInterest().getDecayValue() < selectionFactor) {
- delta = SELECTION_NEW;
- } else {
- delta = SELECTION_DEFAULT;
- }
- }
-
- InteractionEvent event = new InteractionEvent(interactionKind, structureKind, obfuscatedElementHandle, part
- .getSite().getId(), "null", delta, 0);
- MylarPlugin.getDefault().notifyInteractionObserved(event);
- }
-
- private String obfuscateResourcePath(IPath path) {
- if (path == null) {
- return "";
- } else {
- StringBuffer obfuscatedPath = new StringBuffer();
- for (int i = 0; i < path.segmentCount(); i++) {
- obfuscatedPath.append(obfuscateString(path.segments()[i]));
- if (i < path.segmentCount() - 1)
- obfuscatedPath.append('/');
- }
- return obfuscatedPath.toString();
- }
- }
-
- /**
- * Encrypts the string using SHA, then makes it reasonable to print.
- */
- private String obfuscateString(String string) {
- if(!isObfuscationEnabled()) { return string; }
- String obfuscatedString = null;
- try {
- MessageDigest md = MessageDigest.getInstance(ENCRYPTION_ALGORITHM);
- md.update(string.getBytes());
- byte[] digest = md.digest();
- obfuscatedString = new String(Base64.encode(digest)).replace('/', '=');
- // obfuscatedString = "" + new String(digest).hashCode();
- } catch (NoSuchAlgorithmException e) {
- MylarStatusHandler.log("SHA not available", this);
- obfuscatedString = LABEL_FAILED_TO_OBFUSCATE;
- }
- return obfuscatedString;
- }
-
- private boolean isObfuscationEnabled() {
- return MylarMonitorPlugin.getPrefs()
- .getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE);
- }
-
- private String obfuscateJavaElementHandle(IJavaElement javaElement) {
- try {
- StringBuffer obfuscatedPath = new StringBuffer();
- IResource resource;
- resource = (IResource) javaElement.getUnderlyingResource();
- if (resource != null && (resource instanceof IFile)) {
- IFile file = (IFile) resource;
- obfuscatedPath.append(obfuscateResourcePath(file.getProjectRelativePath()));
- obfuscatedPath.append(':');
- obfuscatedPath.append(obfuscateString(javaElement.getElementName()));
- return obfuscatedPath.toString();
- } else {
- return obfuscateString(javaElement.getHandleIdentifier());
- }
- } catch (JavaModelException e) {
- // ignore non-existing element
- // MylarPlugin.log(this, "failed to resolve java element for
- // element: " + javaElement.getHandleIdentifier());
- }
- return ID_JAVA_UNKNOWN;
- }
-
- /**
- * Some events do not have a valid handle, e.g. hande is null or ?
- */
- public static boolean isValidStructureHandle(InteractionEvent event) {
- String handle = event.getStructureHandle();
- return handle != null
- && !handle.trim().equals("")
- && !handle.equals(SelectionMonitor.ID_JAVA_UNKNOWN)
- && !handle.equals(SelectionMonitor.ID_JAVA_UNKNOW_OLD)
- && event.isValidStructureHandle();
- }
-}
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/preferences/MylarMonitorPreferencePage.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/preferences/MylarMonitorPreferencePage.java
index ab374d8..8b3a552 100644
--- a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/preferences/MylarMonitorPreferencePage.java
+++ b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/preferences/MylarMonitorPreferencePage.java
@@ -18,7 +18,7 @@
import org.eclipse.mylar.internal.core.MylarPreferenceContstants;
import org.eclipse.mylar.internal.monitor.MylarMonitorPlugin;
import org.eclipse.mylar.internal.monitor.MylarMonitorPreferenceConstants;
-import org.eclipse.mylar.internal.monitor.monitors.SelectionMonitor;
+import org.eclipse.mylar.internal.monitor.HandleObfuscator;
import org.eclipse.mylar.provisional.core.MylarPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
@@ -142,7 +142,7 @@
enableObfuscation.setText("Obfuscate elements using: ");
enableObfuscation.setSelection(getPreferenceStore().getBoolean(MylarMonitorPreferenceConstants.PREF_MONITORING_OBFUSCATE));
Label obfuscationLablel = new Label(group, SWT.NULL);
- obfuscationLablel.setText(SelectionMonitor.ENCRYPTION_ALGORITHM + " message digest one-way hash");
+ obfuscationLablel.setText(HandleObfuscator.ENCRYPTION_ALGORITHM + " message digest one-way hash");
}
private void createUsageSection(Composite parent) {
diff --git a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/wizards/UsageSubmissionWizard.java b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/wizards/UsageSubmissionWizard.java
index 0d029a4..cb7707e 100644
--- a/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/wizards/UsageSubmissionWizard.java
+++ b/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/wizards/UsageSubmissionWizard.java
@@ -29,7 +29,6 @@
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -53,7 +52,6 @@
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
/**
* A wizard for uploading the Mylar statistics to a website
@@ -160,21 +158,24 @@
&& backgroundPage != null) {
backgroundFile = backgroundPage.createFeedbackFile();
}
-
- final WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
- protected void execute(final IProgressMonitor monitor) throws CoreException {
- monitor.beginTask("Uploading user statistics", 3);
- performUpload(monitor);
- monitor.done();
- }
- };
+
+// final WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+// protected void execute(final IProgressMonitor monitor) throws CoreException {
+// monitor.beginTask("Uploading user statistics", 3);
+// performUpload(monitor);
+// monitor.done();
+// }
+// };
Job j = new Job("Upload User Statistics") {
@Override
protected IStatus run(IProgressMonitor monitor) {
try {
- op.run(monitor);
+ monitor.beginTask("Uploading user statistics", 3);
+ performUpload(monitor);
+ monitor.done();
+// op.run(monitor);
return Status.OK_STATUS;
} catch (Exception e) {
MylarStatusHandler.log(e, "Error uploading statistics");