/**
*
*/
package org.erlide.ui.editors.erl.actions;
import java.io.File;
import java.util.ResourceBundle;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.texteditor.TextEditorAction;
import org.erlide.engine.ErlangEngine;
import org.erlide.ui.editors.erl.ErlangEditor;
// FIXME the Java side should not be aware of the cache details!
public class ClearAllCachesAction extends TextEditorAction {
public ClearAllCachesAction(final ResourceBundle bundle, final String prefix,
final ErlangEditor erlangEditor) {
super(bundle, prefix, erlangEditor);
}
@Override
public void run() {
clearAllCaches();
}
public static void clearAllCaches() {
final String cacheFileOSPath = ErlangEngine.getInstance().getStateDir();
final File cacheFile = new File(cacheFileOSPath);
cacheFile.delete();
for (final IWorkbenchWindow window : PlatformUI.getWorkbench()
.getWorkbenchWindows()) {
for (final IWorkbenchPage page : window.getPages()) {
for (final IEditorReference editor : page.getEditorReferences()) {
final IEditorPart ed = editor.getEditor(false);
if (ed instanceof ErlangEditor) {
((ErlangEditor) ed).resetAndCacheScannerAndParser();
}
}
}
}
}
}