/*
* WPCleaner: A tool to help on Wikipedia maintenance tasks.
* Copyright (C) 2013 Nicolas Vervelle
*
* See README.txt file for licensing information.
*/
package org.wikipediacleaner.gui.swing.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.wikipediacleaner.api.API;
import org.wikipediacleaner.api.APIException;
import org.wikipediacleaner.api.APIFactory;
import org.wikipediacleaner.api.constants.EnumWikipedia;
import org.wikipediacleaner.api.data.Page;
import org.wikipediacleaner.gui.swing.basic.BasicWindow;
import org.wikipediacleaner.gui.swing.basic.ProgressPanel;
import org.wikipediacleaner.i18n.GT;
/**
* An action listener for reloading links of a page.
*/
public class PurgeCacheAction implements ActionListener {
private final EnumWikipedia wikipedia;
private final Page page;
private final BasicWindow window;
/**
* Constructor.
*
* @param wikipedia Wikipedia.
* @param page Wikipedia page.
* @param window Window on which the action is done.
*/
public PurgeCacheAction(
EnumWikipedia wikipedia,
Page page,
BasicWindow window) {
this.wikipedia = wikipedia;
this.page = page;
this.window = window;
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(@SuppressWarnings("unused") ActionEvent e) {
ProgressPanel progressPanel = (window != null) ? window.getGlassPane() : null;
try {
if (progressPanel != null) {
progressPanel.start();
progressPanel.setText(GT._("Retrieving MediaWiki API"));
}
API api = APIFactory.getAPI();
if (progressPanel != null) {
progressPanel.setText(GT._("Purging page cache"));
}
api.purgePageCache(wikipedia, page);
} catch (APIException ex) {
//
} finally {
if (progressPanel != null) {
progressPanel.stop();
}
}
}
}