Skip to content

Commit 399fc83

Browse files
committed
CAY-2320 Modeler: Limit input into numeric fields to 10 digits
1 parent 5361c9f commit 399fc83

File tree

6 files changed

+41
-37
lines changed

6 files changed

+41
-37
lines changed

RELEASE-NOTES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ CAY-2447 Crypto support for LocalDateTime
1818

1919
Bug Fixes:
2020

21+
CAY-2320 Modeler: Limit input into numeric fields to 10 digits
2122
CAY-2444 Change URI from http:// to https:// in xsi:schemaLocation
2223
CAY-2445 Oracle: Problem with ExpressionFactory.notInExp()
2324
CAY-2449 Modeler: Needless scrollbar in Generate DB Schema result menu

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureParameterTab.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
import org.apache.cayenne.modeler.util.PanelFactory;
4848
import org.apache.cayenne.modeler.util.UIUtil;
4949
import org.apache.cayenne.modeler.util.combo.AutoCompletion;
50-
import org.apache.cayenne.swing.components.LimitedJTextField;
50+
import org.apache.cayenne.swing.components.LimitedTextField;
5151
import org.apache.cayenne.swing.components.image.FilteredIconFactory;
5252

5353
import javax.swing.Icon;
@@ -304,11 +304,11 @@ protected void rebuildTable(Procedure procedure) {
304304
directionColumn.setCellEditor(new CayenneCellEditor(directionEditor));
305305

306306
TableColumn precisionColumn = table.getColumnModel().getColumn(ProcedureParameterTableModel.PARAMETER_PRECISION);
307-
LimitedJTextField limitedPrecisionField = new LimitedJTextField(10);
307+
LimitedTextField limitedPrecisionField = new LimitedTextField(10);
308308
precisionColumn.setCellEditor(Application.getWidgetFactory().createCellEditor(limitedPrecisionField));
309309

310310
TableColumn lengthColumn = table.getColumnModel().getColumn(ProcedureParameterTableModel.PARAMETER_LENGTH);
311-
LimitedJTextField limitedLengthField = new LimitedJTextField(10);
311+
LimitedTextField limitedLengthField = new LimitedTextField(10);
312312
lengthColumn.setCellEditor(Application.getWidgetFactory().createCellEditor(limitedLengthField));
313313

314314
moveUp.setEnabled(false);

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributePanel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import org.apache.cayenne.modeler.util.PanelFactory;
4040
import org.apache.cayenne.modeler.util.UIUtil;
4141
import org.apache.cayenne.modeler.util.combo.AutoCompletion;
42-
import org.apache.cayenne.swing.components.LimitedJTextField;
42+
import org.apache.cayenne.swing.components.LimitedTextField;
4343

4444
import javax.swing.JComboBox;
4545
import javax.swing.JPanel;
@@ -182,11 +182,11 @@ protected void rebuildTable(DbEntity ent) {
182182
col.setCellEditor(Application.getWidgetFactory().createCellEditor(comboBox));
183183

184184
TableColumn lengthColumn = table.getColumnModel().getColumn(model.lengthColumnId());
185-
LimitedJTextField limitedLengthField = new LimitedJTextField(10);
185+
LimitedTextField limitedLengthField = new LimitedTextField(10);
186186
lengthColumn.setCellEditor(Application.getWidgetFactory().createCellEditor(limitedLengthField));
187187

188188
TableColumn scaleColumn = table.getColumnModel().getColumn(model.scaleColumnId());
189-
LimitedJTextField limitedScaleField = new LimitedJTextField(10);
189+
LimitedTextField limitedScaleField = new LimitedTextField(10);
190190
scaleColumn.setCellEditor(Application.getWidgetFactory().createCellEditor(limitedScaleField));
191191

192192
tablePreferences.bind(table, null, null, null, model.nameColumnInd(), true);

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/LimitedDocument.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/LimitedJTextField.java

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package org.apache.cayenne.swing.components;
2+
3+
import javax.swing.JTextField;
4+
import javax.swing.text.AttributeSet;
5+
import javax.swing.text.BadLocationException;
6+
import javax.swing.text.PlainDocument;
7+
8+
public class LimitedTextField extends JTextField {
9+
10+
private static final long serialVersionUID = 5615520143950793884L;
11+
12+
public LimitedTextField(int limit) {
13+
setDocument(new LimitedDocument(limit));
14+
}
15+
16+
private static class LimitedDocument extends PlainDocument {
17+
18+
private static final long serialVersionUID = 2371422073526259311L;
19+
private int limit;
20+
21+
LimitedDocument(int limit) {
22+
super();
23+
this.limit = limit;
24+
}
25+
26+
public void insertString( int offset, String str, AttributeSet attr ) throws BadLocationException {
27+
if (str == null) return;
28+
29+
if ((getLength() + str.length()) <= limit) {
30+
super.insertString(offset, str, attr);
31+
}
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)