/* * 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.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JMenuItem; import org.wikipediacleaner.api.APIException; import org.wikipediacleaner.api.constants.EnumWikipedia; import org.wikipediacleaner.api.data.PageElementTemplate; import org.wikipediacleaner.gui.swing.basic.Utilities; import org.wikipediacleaner.gui.swing.worker.CheckArticleTools; import org.wikipediacleaner.i18n.GT; /** * Manage actions for checking a template. */ public class ActionCheckTemplate implements ActionListener { /** * Create a menu item for checking a template. * * @param parent Parent component. * @param wiki Wiki. * @param template Template. * @return Menu item. */ public static JMenuItem createMenuItem( Component parent, EnumWikipedia wiki, PageElementTemplate template) { JMenuItem menuItem = Utilities.createJMenuItem(GT._("Check template"), true); menuItem.addActionListener(new ActionCheckTemplate(parent, wiki, template)); return menuItem; } /** * Parent component. */ private final Component parent; /** * Wiki. */ private final EnumWikipedia wiki; /** * Template to be checked. */ private final PageElementTemplate template; /** * @param parent Parent component. * @param wiki Wiki. * @param template Template to be checked. */ private ActionCheckTemplate( Component parent, EnumWikipedia wiki, PageElementTemplate template) { this.parent = parent; this.wiki = wiki; this.template = template; } /** * Check a template. * * @param e Event triggering this call. * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override public void actionPerformed(ActionEvent e) { if ((e == null) || (wiki == null) || (template == null)) { return; } CheckArticleTools tools = new CheckArticleTools(wiki); try { tools.checkTemplate(template); } catch (APIException exception) { return; } String report = tools.getReport(); Utilities.displayWarning(parent, report); } }