/*
* 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.options;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SwingConstants;
import org.wikipediacleaner.gui.swing.basic.Utilities;
import org.wikipediacleaner.i18n.GT;
import org.wikipediacleaner.utils.ConfigurationValueInteger;
/**
* A panel for limits options.
*/
public class LimitOptionsPanel extends OptionsPanel {
/**
* Serialization.
*/
private static final long serialVersionUID = -7125394212316622303L;
/**
* Construct a Limits Options panel.
*/
public LimitOptionsPanel() {
super(new GridBagLayout());
initialize();
}
/**
* Initialize the panel.
*/
private void initialize() {
setBorder(BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(), GT._("Limits")));
JSpinner spin = null;
// Initialize constraints
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.gridheight = 1;
constraints.gridwidth = 1;
constraints.gridx = 0;
constraints.gridy = 0;
constraints.insets = new Insets(0, 0, 0, 0);
constraints.ipadx = 0;
constraints.ipady = 0;
constraints.weightx = 0;
constraints.weighty = 0;
// Menu size
spin = createJSpinner(
ConfigurationValueInteger.MENU_SIZE,
2, 999, 1);
JLabel labelMenuSize = Utilities.createJLabel(GT._("Maximum number of items in a menu :"));
labelMenuSize.setLabelFor(spin);
labelMenuSize.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelMenuSize, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Max pages
spin = createJSpinner(
ConfigurationValueInteger.MAXIMUM_PAGES,
1, 99, 1);
JLabel labelMaxPages = Utilities.createJLabel(GT._("Maximum number of simultaneous analyses :"));
labelMaxPages.setLabelFor(spin);
labelMaxPages.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelMaxPages, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Max errors for Check Wiki
spin = createJSpinner(
ConfigurationValueInteger.CHECK_NB_ERRORS,
10, 1000, 5);
JLabel labelMaxErrorsCheckWiki = Utilities.createJLabel(
GT._("Maximum number of errors for Check Wiki :"));
labelMaxErrorsCheckWiki.setLabelFor(spin);
labelMaxErrorsCheckWiki.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelMaxErrorsCheckWiki, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Time between edits
spin = createJSpinner(
ConfigurationValueInteger.TIME_BETWEEN_EDIT,
0, 120, 1);
JLabel labelTime = Utilities.createJLabel(GT._("Minimum time between consecutive edits :"));
labelTime.setLabelFor(spin);
labelTime.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelTime, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Number of edits per minute
spin = createJSpinner(
ConfigurationValueInteger.MAX_EDITS_PER_MINUTE,
0, 60, 1);
JLabel labelEdits = Utilities.createJLabel(GT._("Maximum number of edits per minute :"));
labelEdits.setLabelFor(spin);
labelEdits.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelEdits, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Interrogation threads
spin = createJSpinner(
ConfigurationValueInteger.INTERROG_THREAD,
1, 99, 1);
JLabel labelThreads = Utilities.createJLabel(GT._("Maximum number of interrogation threads :"));
labelThreads.setLabelFor(spin);
labelThreads.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelThreads, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Add size limit for syntax highlighting
spin = createJSpinner(
ConfigurationValueInteger.SYNTAX_HIGHLIGHTING_LIMIT,
0, 1000000, 10000);
JLabel labelHighlight = Utilities.createJLabel(GT._("Size limit for syntax highlighting"));
labelHighlight.setLabelFor(spin);
labelHighlight.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelHighlight, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Add size limit for syntax highlighting
spin = createJSpinner(
ConfigurationValueInteger.SLOW_REGEXP,
0, 1000000, 1000);
JLabel labelRegexp = Utilities.createJLabel(GT._("Threshold for slow regular expressions (ms)"));
labelRegexp.setLabelFor(spin);
labelRegexp.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelRegexp, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Maximum number of category members
spin = createJSpinner(
ConfigurationValueInteger.MAX_CATEGORY_MEMBERS,
100, 1000000, 1000);
JLabel labelCategory = Utilities.createJLabel(GT._("Maximum number of category members :"));
labelCategory.setLabelFor(spin);
labelCategory.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelCategory, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Maximum number of days for abuse logs
spin = createJSpinner(
ConfigurationValueInteger.MAX_DAYS_ABUSE_LOG,
1, 365, 1);
JLabel labelAbuseLog = Utilities.createJLabel(GT._("Maximum duration for abuse logs :"));
labelAbuseLog.setLabelFor(spin);
labelAbuseLog.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelAbuseLog, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Maximum number of embedding pages
spin = createJSpinner(
ConfigurationValueInteger.MAX_EMBEDDED_IN,
100, 1000000, 1000);
JLabel labelEmbedded = Utilities.createJLabel(GT._("Maximum number of embedding pages :"));
labelEmbedded.setLabelFor(spin);
labelEmbedded.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelEmbedded, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Maximum number of search results
spin = createJSpinner(
ConfigurationValueInteger.MAX_SEARCH,
100, 1000000, 1000);
JLabel labelSearch = Utilities.createJLabel(GT._("Maximum number of search results :"));
labelSearch.setLabelFor(spin);
labelSearch.setHorizontalAlignment(SwingConstants.TRAILING);
constraints.gridwidth = 2;
constraints.gridx = 0;
constraints.weightx = 0;
add(labelSearch, constraints);
constraints.gridwidth = 1;
constraints.gridx = 2;
constraints.weightx = 1;
add(spin, constraints);
constraints.gridy++;
// Empty panel
JPanel emptyPanel = new JPanel();
emptyPanel.setMinimumSize(new Dimension(0, 0));
emptyPanel.setPreferredSize(new Dimension(0, 0));
constraints.fill = GridBagConstraints.BOTH;
constraints.gridwidth = 3;
constraints.gridx = 0;
constraints.insets = new Insets(0, 0, 0, 0);
constraints.weightx = 1;
constraints.weighty = 1;
add(emptyPanel, constraints);
}
}