diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanel.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanel.java
index 69e6860..4f540ec 100644
a
|
b
|
protected void build() {
|
25 | 25 | setLayout(new BorderLayout()); |
26 | 26 | setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); |
27 | 27 | model = new TagEditorModel(); |
28 | | TagTable tblTags = new TagTable(model); |
| 28 | TagTable tblTags = new TagTable(model, 0); |
29 | 29 | tblTags.setEnabled(false); |
30 | 30 | add(new JScrollPane(tblTags), BorderLayout.CENTER); |
31 | 31 | } |
diff --git a/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java b/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
index 3eee75d..4537314 100644
a
|
b
|
|
21 | 21 | public class TagSettingsPanel extends JPanel implements TableModelListener { |
22 | 22 | |
23 | 23 | /** checkbox for selecting whether an atomic upload is to be used */ |
24 | | private final TagEditorPanel pnlTagEditor = new TagEditorPanel(null); |
| 24 | private final TagEditorPanel pnlTagEditor = new TagEditorPanel(null, null, Changeset.MAX_CHANGESET_TAG_LENGTH); |
25 | 25 | /** the model for the changeset comment */ |
26 | 26 | private final transient ChangesetCommentModel changesetCommentModel; |
27 | 27 | private final transient ChangesetCommentModel changesetSourceModel; |
diff --git a/src/org/openstreetmap/josm/gui/tagging/TagCellEditor.java b/src/org/openstreetmap/josm/gui/tagging/TagCellEditor.java
index caf2312..9d22738 100644
a
|
b
|
|
29 | 29 | |
30 | 30 | /** |
31 | 31 | * constructor |
| 32 | * @param maxCharacters maximum number of characters allowed, 0 for unlimited |
32 | 33 | */ |
33 | | public TagCellEditor() { |
| 34 | public TagCellEditor(int maxCharacters) { |
34 | 35 | editor = new AutoCompletingTextField(0, false); |
| 36 | if (maxCharacters > 0) { |
| 37 | editor.setMaxChars(maxCharacters); |
| 38 | } |
35 | 39 | editor.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); |
36 | 40 | } |
37 | 41 | |
diff --git a/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java b/src/org/openstreetmap/josm/gui/tagging/TagEditorPanel.java
index fe4eaf1..88b4742 100644
a
|
b
|
|
35 | 35 | /** the tag editor model */ |
36 | 36 | private TagEditorModel model; |
37 | 37 | /** the tag table */ |
38 | | private TagTable tagTable; |
| 38 | private final TagTable tagTable; |
39 | 39 | |
40 | 40 | private PresetListPanel presetListPanel; |
41 | 41 | private final transient PresetHandler presetHandler; |
… |
… |
|
47 | 47 | */ |
48 | 48 | protected JPanel buildTagTableEditorPanel() { |
49 | 49 | JPanel pnl = new JPanel(); |
50 | | tagTable = new TagTable(model); |
51 | 50 | pnl.setLayout(new BorderLayout()); |
52 | 51 | pnl.add(new JScrollPane(tagTable), BorderLayout.CENTER); |
53 | 52 | if (presetHandler != null) { |
… |
… |
public void tableChanged(TableModelEvent e) {
|
141 | 140 | * internally and can be retrieved with {@link #getModel()}. |
142 | 141 | */ |
143 | 142 | public TagEditorPanel(PresetHandler presetHandler) { |
144 | | this(null, presetHandler); |
| 143 | this(null, presetHandler, 0); |
145 | 144 | } |
146 | 145 | |
147 | 146 | /** |
… |
… |
public TagEditorPanel(PresetHandler presetHandler) {
|
149 | 148 | * {@code model} is null, a new model is created. |
150 | 149 | * |
151 | 150 | * @param model the tag editor model |
| 151 | * @param maxCharacters maximum number of characters allowed, 0 for unlimited |
152 | 152 | */ |
153 | | public TagEditorPanel(TagEditorModel model, PresetHandler presetHandler) { |
| 153 | public TagEditorPanel(TagEditorModel model, PresetHandler presetHandler, int maxCharacters) { |
154 | 154 | this.model = model; |
155 | 155 | this.presetHandler = presetHandler; |
156 | 156 | if (this.model == null) { |
157 | 157 | this.model = new TagEditorModel(); |
158 | 158 | } |
| 159 | this.tagTable = new TagTable(this.model, maxCharacters); |
159 | 160 | build(); |
160 | 161 | } |
161 | 162 | |
diff --git a/src/org/openstreetmap/josm/gui/tagging/TagTable.java b/src/org/openstreetmap/josm/gui/tagging/TagTable.java
index 98c91bb..0193f21 100644
a
|
b
|
public RunnableAction getPasteAction() {
|
392 | 392 | |
393 | 393 | /** |
394 | 394 | * initialize the table |
| 395 | * @param maxCharacters maximum number of characters allowed for keys and values, 0 for unlimited |
395 | 396 | */ |
396 | | protected final void init() { |
| 397 | protected final void init(int maxCharacters) { |
397 | 398 | setAutoResizeMode(JTable.AUTO_RESIZE_OFF); |
398 | 399 | setRowSelectionAllowed(true); |
399 | 400 | setColumnSelectionAllowed(true); |
… |
… |
protected final void init() {
|
425 | 426 | |
426 | 427 | // create the table cell editor and set it to key and value columns |
427 | 428 | // |
428 | | TagCellEditor tmpEditor = new TagCellEditor(); |
| 429 | TagCellEditor tmpEditor = new TagCellEditor(maxCharacters); |
429 | 430 | setRowHeight(tmpEditor.getEditor().getPreferredSize().height); |
430 | 431 | setTagCellEditor(tmpEditor); |
431 | 432 | } |
… |
… |
protected final void init() {
|
434 | 435 | * Creates a new tag table |
435 | 436 | * |
436 | 437 | * @param model the tag editor model |
| 438 | * @param maxCharacters maximum number of characters allowed for keys and values, 0 for unlimited |
437 | 439 | */ |
438 | | public TagTable(TagEditorModel model) { |
| 440 | public TagTable(TagEditorModel model, int maxCharacters) { |
439 | 441 | super(model, new TagTableColumnModel(model.getColumnSelectionModel()), model.getRowSelectionModel()); |
440 | 442 | this.model = model; |
441 | | init(); |
| 443 | init(maxCharacters); |
442 | 444 | } |
443 | 445 | |
444 | 446 | @Override |