diff options
author | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-01-05 10:06:47 +0000 |
---|---|---|
committer | clemenso <clemenso@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2010-01-05 10:06:47 +0000 |
commit | 3da4655d011dfc2f04f9e4ac28b38aee42d01bc0 (patch) | |
tree | d9b524ca4ccfd6e48573dfecf5191ccba48278af /BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java | |
parent | ecc11bdb13ae27385486ad1c944ee01ffd0440e7 (diff) | |
download | mocca-3da4655d011dfc2f04f9e4ac28b38aee42d01bc0.tar.gz mocca-3da4655d011dfc2f04f9e4ac28b38aee42d01bc0.tar.bz2 mocca-3da4655d011dfc2f04f9e4ac28b38aee42d01bc0.zip |
Features
[#437] Handle pinpad [64:03] response apdu correctly
[#445] pin entry feedback for VERIFY_PIN_START/FINISH
[#471] Provide SecureViewer Link before Pinpad PinEntry timeout starts
Bugs
[#479] PIN Managment Applet allows unmatching new pin and pin confirmation
[#480] PIN Management displays blocked PINs as ACTIVE
[#486] Not possible to select 3 times in series the same item from signedReferencesList for display in secureViewer
[#506] change pin dialog (gui) issues
[#508] e-card G3 PIN activation (with TransportPIN) not supported
[#509] closing secure viewer window (WINDOW_CLOSING) leaves "signature data is displayed in viewer" dialog in applet
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@565 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java')
-rw-r--r-- | BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java | 125 |
1 files changed, 38 insertions, 87 deletions
diff --git a/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java b/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java index 96032dc1..52a3d5fe 100644 --- a/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java +++ b/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java @@ -1,19 +1,19 @@ /* -* Copyright 2008 Federal Chancellery Austria and -* Graz University of Technology -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright 2008 Federal Chancellery Austria and + * Graz University of Technology + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package at.gv.egiz.bku.gui; import java.util.regex.Matcher; @@ -21,7 +21,6 @@ import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; -import javax.swing.text.Document; import javax.swing.text.PlainDocument; /** @@ -31,16 +30,15 @@ import javax.swing.text.PlainDocument; class PINDocument extends PlainDocument { private static final long serialVersionUID = 1L; - protected Pattern pinPattern; protected int minLength; protected int maxLength; - protected JButton enterButton; - protected Document compareTo; - protected Document oldPin; public PINDocument(int minLength, int maxLength, String pattern, JButton enterButton) { + if (enterButton == null) { + throw new NullPointerException("OK button null"); + } if (pattern != null) { pinPattern = Pattern.compile(pattern); } else { @@ -51,73 +49,26 @@ class PINDocument extends PlainDocument { this.enterButton = enterButton; } - /** - * @param pinSpec - * @param enterButton - * @param compareTo - * enable enterButton if this pinDocument's pin equals to - * compareTo's pin. may be null - */ - public PINDocument(int minLength, int maxLength, String pattern, JButton enterButton, Document compareTo) { - this(minLength, maxLength, pattern, enterButton); - this.compareTo = compareTo; + @Override + public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { + if (maxLength < 0 || maxLength >= (getLength() + str.length())) { + boolean matches = true; + for (int i = 0; i < str.length(); i++) { + Matcher m = pinPattern.matcher(str.substring(i, i + 1)); + if (!m.matches()) { + matches = false; + } + } + if (matches) { + super.insertString(offs, str, a); + enterButton.setEnabled(getLength() >= minLength); + } + } } - /** - * @param pinSpec - * @param enterButton - * may be null - * @param compareTo - * enable enterButton if this pinDocument's pin equals to - * compareTo's pin. may be null - * @param oldPin - * enable enterButton if oldPin meets the pinSpec pin length - * requirements, may be null - */ - public PINDocument(int minLength, int maxLength, String pattern, - JButton enterButton, Document compareTo, Document oldPin) { - this(minLength, maxLength, pattern, enterButton); - this.compareTo = compareTo; - this.oldPin = oldPin; + @Override + public void remove(int offs, int len) throws BadLocationException { + super.remove(offs, len); + enterButton.setEnabled(getLength() >= minLength); } - - @Override - public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { - if (maxLength < 0 || maxLength >= (getLength() + str.length())) { - boolean matches = true; - for (int i = 0; i < str.length(); i++) { - Matcher m = pinPattern.matcher(str.substring(i, i + 1)); - if (!m.matches()) { - matches = false; - } - } - if (matches) { - super.insertString(offs, str, a); - } - } - if (enterButton != null) { - enterButton.setEnabled( - (oldPin == null || oldPin.getLength() >= minLength) && - getLength() >= minLength && - compare()); - } - } - - @Override - public void remove(int offs, int len) throws BadLocationException { - super.remove(offs, len); - if (enterButton != null) { - enterButton.setEnabled( - (oldPin == null || oldPin.getLength() >= minLength) && - getLength() >= minLength && - compare()); - } - } - - private boolean compare() throws BadLocationException { - if (compareTo == null) { - return true; - } - return compareTo.getText(0, compareTo.getLength()).equals(getText(0, getLength())); - } - }
\ No newline at end of file +} |