source: josm/trunk/src/org/openstreetmap/josm/gui/widgets/ChangesetIdTextField.java@ 8510

Last change on this file since 8510 was 8510, checked in by Don-vip, 9 years ago

checkstyle: enable relevant whitespace checks and fix them

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.widgets;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import javax.swing.text.JTextComponent;
7
8/**
9 * A text field designed to enter a single OSM changeset ID.
10 * @since 5765
11 */
12public class ChangesetIdTextField extends AbstractIdTextField<ChangesetIdTextField.ChangesetIdValidator> {
13
14 /**
15 * Constructs a new {@link ChangesetIdTextField}
16 */
17 public ChangesetIdTextField() {
18 super(ChangesetIdValidator.class, 10);
19 }
20
21 /**
22 * Gets the entered changeset id.
23 * @return The entered changeset id
24 */
25 public final int getChangesetId() {
26 return validator.id;
27 }
28
29 /**
30 * Reads the changeset id.
31 * @return true if a valid changeset id has been successfully read, false otherwise
32 * @see ChangesetIdValidator#readChangesetId
33 */
34 @Override
35 public boolean readIds() {
36 return validator.readChangesetId();
37 }
38
39 /**
40 * Validator for a changeset ID entered in a {@link JTextComponent}.
41 */
42 public static class ChangesetIdValidator extends AbstractTextComponentValidator {
43
44 private int id = 0;
45
46 /**
47 * Constructs a new {@link ChangesetIdValidator}
48 * @param tc The text component to validate
49 */
50 public ChangesetIdValidator(JTextComponent tc) {
51 super(tc);
52 }
53
54 @Override
55 public boolean isValid() {
56 return readChangesetId();
57 }
58
59 @Override
60 public void validate() {
61 if (!isValid()) {
62 feedbackInvalid(tr("The current value is not a valid changeset ID. Please enter an integer value > 0"));
63 } else {
64 feedbackValid(tr("Please enter an integer value > 0"));
65 }
66 }
67
68 /**
69 * Reads the changeset id.
70 * @return true if a valid changeset id has been successfully read, false otherwise
71 */
72 public boolean readChangesetId() {
73 String value = getComponent().getText();
74 if (value != null && !value.trim().isEmpty()) {
75 id = 0;
76 try {
77 int changesetId = Integer.parseInt(value.trim());
78 if (changesetId > 0) {
79 id = changesetId;
80 return true;
81 }
82 } catch (NumberFormatException e) {
83 // Ignored
84 }
85 }
86 return false;
87 }
88 }
89}
Note: See TracBrowser for help on using the repository browser.