Search in sources :

Example 21 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class PageListMouseListener method mouseClicked.

/**
 * @param e Event.
 * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)
 */
@Override
public void mouseClicked(MouseEvent e) {
    if ((!e.isConsumed()) && (e.getButton() == MouseEvent.BUTTON1) && (e.getClickCount() == 2)) {
        if (e.getSource() instanceof JTable) {
            JTable table = (JTable) e.getSource();
            if (table.getModel() instanceof PageListTableModel) {
                PageListTableModel model = (PageListTableModel) table.getModel();
                int column = table.columnAtPoint(e.getPoint());
                int row = table.rowAtPoint(e.getPoint());
                if ((column >= 0) && (row >= 0)) {
                    row = Utilities.convertRowIndexToModel(table, row);
                    Page page = model.getPage(row);
                    if (Boolean.TRUE.equals(page.isDisambiguationPage())) {
                        Controller.runDisambiguationAnalysis(page.getTitle(), page.getWikipedia());
                    } else {
                        Controller.runFullAnalysis(page.getTitle(), null, page.getWikipedia());
                    }
                    e.consume();
                }
            }
        }
    }
    super.mouseClicked(e);
}
Also used : JTable(javax.swing.JTable) Page(org.wikipediacleaner.api.data.Page)

Example 22 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class PageListWindow method actionSetComments.

/**
 * Action called when Set comments button is pressed.
 */
public void actionSetComments() {
    List<Page> selectedPages = tablePages.getSelectedPages();
    for (Page selectedPage : selectedPages) {
        commentsByPageTitle.computeIfAbsent(selectedPage.getTitle(), pageTitle -> PageComment.getOrCreate(getWiki(), pageTitle));
    }
    Controller.runPageComments(selectedPages, commentsByPageTitle, getWikipedia());
}
Also used : Page(org.wikipediacleaner.api.data.Page)

Example 23 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class PageListWindow method updateBacklinksCount.

/**
 * Update the total count of backlinks.
 */
void updateBacklinksCount() {
    int backlinksMain = 0;
    int backlinks = 0;
    int maxMain = 0;
    int actualMain = 0;
    for (Page page : pages) {
        if (page != null) {
            Integer tmpLinks = page.getBacklinksCountInMainNamespace();
            if (tmpLinks != null) {
                backlinksMain += tmpLinks.intValue();
                Integer maxMainArticles = Optional.ofNullable(commentsByPageTitle.get(page.getTitle())).map(PageComment::getMaxMainArticles).orElse(null);
                if (maxMainArticles != null) {
                    maxMain += maxMainArticles.intValue();
                    actualMain += tmpLinks.intValue();
                }
            }
            tmpLinks = page.getBacklinksCount();
            if (tmpLinks != null) {
                backlinks += tmpLinks.intValue();
            }
        }
    }
    String txtMain = null;
    if ((actualMain > 0) || (maxMain > 0)) {
        if (backlinksMain != actualMain) {
            if (actualMain != maxMain) {
                txtMain = "" + backlinksMain + " (" + actualMain + "/" + maxMain + ")";
            } else {
                txtMain = "" + backlinksMain + " (" + actualMain + ")";
            }
        } else if (actualMain != maxMain) {
            txtMain = "" + actualMain + "/" + maxMain;
        } else {
            txtMain = "" + actualMain;
        }
    } else {
        txtMain = "" + backlinksMain;
    }
    String txtAll = null;
    txtAll = "" + backlinks;
    labelLinksCount.setText(GT.__("{0} page", "{0} pages", pages.size(), Integer.toString(pages.size())) + ", " + GT._T("Backlinks - Main namespace: {0}, All namespaces: {1}", new Object[] { txtMain, txtAll }));
}
Also used : Page(org.wikipediacleaner.api.data.Page)

Example 24 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class PageListWindow method actionAdd.

/**
 * Action called when Add button is pressed.
 */
public void actionAdd() {
    String value = askForValue(GT._T("Enter the page title you want to add to your local watchlist"), "", null);
    if (value != null) {
        Page page = DataManager.getPage(getWikipedia(), value, null, null, null);
        Configuration config = Configuration.getConfiguration();
        List<String> watchedPages = config.getStringList(getWikipedia(), Configuration.ARRAY_WATCH_PAGES);
        if (!watchedPages.contains(page.getTitle())) {
            watchedPages.add(page.getTitle());
            Collections.sort(watchedPages);
            config.setStringList(getWikipedia(), Configuration.ARRAY_WATCH_PAGES, watchedPages);
            tablePages.addPage(page);
        }
    }
}
Also used : Configuration(org.wikipediacleaner.utils.Configuration) Page(org.wikipediacleaner.api.data.Page)

Example 25 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class PageListWindow method actionUpdateInfo.

/**
 * Action called when Update information button is pressed.
 */
public void actionUpdateInfo() {
    List<Page> selectedPages = tablePages.getSelectedPages();
    if ((selectedPages == null) || (selectedPages.size() == 0)) {
        return;
    }
    final UpdateInfoWorker updateWorker = new UpdateInfoWorker(getWikipedia(), this, selectedPages);
    updateWorker.setListener(new DefaultBasicWorkerListener() {

        /* (non-Javadoc)
       * @see org.wikipediacleaner.gui.swing.basic.DefaultBasicWorkerListener#afterFinished(org.wikipediacleaner.gui.swing.basic.BasicWorker, boolean)
       */
        @Override
        public void afterFinished(BasicWorker worker, boolean ok) {
            tablePages.updateWatchedPages();
            super.afterFinished(worker, ok);
            updateBacklinksCount();
        }
    });
    updateWorker.start();
}
Also used : DefaultBasicWorkerListener(org.wikipediacleaner.gui.swing.basic.DefaultBasicWorkerListener) Page(org.wikipediacleaner.api.data.Page) UpdateInfoWorker(org.wikipediacleaner.gui.swing.worker.UpdateInfoWorker) BasicWorker(org.wikipediacleaner.gui.swing.basic.BasicWorker)

Aggregations

Page (org.wikipediacleaner.api.data.Page)205 APIException (org.wikipediacleaner.api.APIException)71 ArrayList (java.util.ArrayList)66 API (org.wikipediacleaner.api.API)47 WPCConfigurationString (org.wikipediacleaner.api.configuration.WPCConfigurationString)39 ConfigurationValueString (org.wikipediacleaner.utils.ConfigurationValueString)32 WPCConfiguration (org.wikipediacleaner.api.configuration.WPCConfiguration)30 EnumQueryPage (org.wikipediacleaner.api.constants.EnumQueryPage)29 EnumWikipedia (org.wikipediacleaner.api.constants.EnumWikipedia)29 Configuration (org.wikipediacleaner.utils.Configuration)26 Element (org.jdom2.Element)25 JDOMException (org.jdom2.JDOMException)21 HashMap (java.util.HashMap)15 CheckErrorPage (org.wikipediacleaner.api.check.CheckErrorPage)15 PageAnalysis (org.wikipediacleaner.api.data.analysis.PageAnalysis)13 List (java.util.List)12 MediaWiki (org.wikipediacleaner.api.MediaWiki)12 JMenu (javax.swing.JMenu)10 PageElementTemplate (org.wikipediacleaner.api.data.PageElementTemplate)10 ActionWatchPage (org.wikipediacleaner.gui.swing.action.ActionWatchPage)10