Bug 530966 - Add "Clear History" item to "Recent Documents" menu
Added a Clear History menu item to the dynamic Recent Documents menu.
When recent history is cleared, the "Clear History" menu is present, but
disabled.
Change-Id: I0fd5f3f9852a20e4e76f55aa4d214f421fbf39c0
Signed-off-by: Patrik Suzzi <psuzzi@itemis.com>
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
index 94220f0..7cf9734 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -12,6 +12,7 @@
import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter;
+import java.util.Arrays;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.SafeRunner;
@@ -209,6 +210,7 @@
int n = Math.min(itemsToShow, historyItems.length);
if (n <= 0) {
+ addClearHistory(menu, n);
return;
}
@@ -240,6 +242,18 @@
}
});
}
+
+ addClearHistory(menu, n);
+ }
+
+ private void addClearHistory(Menu menu, int nItems) {
+ new MenuItem(menu, SWT.SEPARATOR);
+ MenuItem miClear = new MenuItem(menu, SWT.PUSH);
+ miClear.setText(WorkbenchMessages.OpenRecentDocumentsClear_text);
+ miClear.addSelectionListener(widgetSelectedAdapter(e -> Arrays.stream(history.getItems()).forEach(item -> {
+ history.remove(item);
+ })));
+ miClear.setEnabled(nItems > 0);
}
/**
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
index c638a69..017be7b 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java
@@ -114,6 +114,7 @@
public static String ImportResourcesAction_toolTip;
public static String OpenRecentDocuments_text;
+ public static String OpenRecentDocumentsClear_text;
public static String OpenRecent_errorTitle;
public static String OpenRecent_unableToOpen;
public static String Exit_text;
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
index 1550668..71cda71 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties
@@ -70,6 +70,7 @@
ExportResourcesAction_toolTip = Export
ImportResourcesAction_text = &Import...
ImportResourcesAction_toolTip = Import
+OpenRecentDocumentsClear_text = Clear History
OpenRecentDocuments_text = Recent Files
OpenRecent_errorTitle = Problems opening editor
OpenRecent_unableToOpen = Unable to open ''{0}''.