diff options
Diffstat (limited to 'BKUCommonGUI/src/main/java')
| -rw-r--r-- | BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/BKUGUIImpl.java | 4 | ||||
| -rw-r--r-- | BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/PinDocument.java | 94 | 
2 files changed, 54 insertions, 44 deletions
| diff --git a/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/BKUGUIImpl.java b/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/BKUGUIImpl.java index 34f278fb..20fe4f56 100644 --- a/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/BKUGUIImpl.java +++ b/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/BKUGUIImpl.java @@ -593,7 +593,7 @@ public class BKUGUIImpl implements BKUGUIFacade {                  pinField = new JPasswordField();                  pinField.setText(""); -                pinField.setDocument(new PINDocument(pinSpec, okButton)); +                pinField.setDocument(new PINDocument(pinSpec.getMinLength(), pinSpec.getMaxLength(), pinSpec.getRexepPattern(), okButton));                  pinField.setActionCommand(okCommand);                  pinField.addActionListener(new ActionListener() { @@ -1031,7 +1031,7 @@ public class BKUGUIImpl implements BKUGUIFacade {                  pinField = new JPasswordField();                  pinField.setText(""); -                pinField.setDocument(new PINDocument(pinSpec, signButton)); +                pinField.setDocument(new PINDocument(pinSpec.getMinLength(), pinSpec.getMaxLength(), pinSpec.getRexepPattern(), signButton));                  pinField.setActionCommand(signCommand);                  pinField.addActionListener(new ActionListener() { 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 13aaf870..96032dc1 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 @@ -16,7 +16,6 @@  */  package at.gv.egiz.bku.gui; -import at.gv.egiz.smcc.PINSpec;  import java.util.regex.Matcher;  import java.util.regex.Pattern;  import javax.swing.JButton; @@ -31,49 +30,60 @@ import javax.swing.text.PlainDocument;   */  class PINDocument extends PlainDocument { -        protected PINSpec pinSpec; -        protected Pattern pinPattern; -        protected JButton enterButton; -        protected Document compareTo; -        protected Document oldPin; +  private static final long serialVersionUID = 1L; +   +  protected Pattern pinPattern; +  protected int minLength; +  protected int maxLength; -        public PINDocument(PINSpec pinSpec, JButton enterButton) { -            this.pinSpec = pinSpec; -            if (pinSpec.getRexepPattern() != null) { -                pinPattern = Pattern.compile(pinSpec.getRexepPattern()); -            } else { -                pinPattern = Pattern.compile("."); -            } -            this.enterButton = enterButton; -        } +  protected JButton enterButton; +  protected Document compareTo; +  protected Document oldPin;         -        /** -         * -         * @param pinSpec -         * @param enterButton  -         * @param compareTo enable enterButton iff this pinDocument's pin equals to compareTo's pin. may be null -         */ -        public PINDocument(PINSpec pinSpec, JButton enterButton, Document compareTo) { -          this(pinSpec, enterButton); -          this.compareTo = compareTo; -        } +  public PINDocument(int minLength, int maxLength, String pattern, JButton enterButton) { +    if (pattern != null) { +      pinPattern = Pattern.compile(pattern); +    } else { +      pinPattern = Pattern.compile("."); +    } +    this.minLength = minLength; +    this.maxLength = maxLength; +    this.enterButton = enterButton; +  } -        /** -         * -         * @param pinSpec -         * @param enterButton may be null -         * @param compareTo enable enterButton iff this pinDocument's pin equals to compareTo's pin. may be null -         * @param oldPin enable enterButton iff oldPin meets the pinSpec pin length requirements, may be null -         */ -        public PINDocument(PINSpec pinSpec, JButton enterButton, Document compareTo, Document oldPin) { -          this(pinSpec, enterButton); -          this.compareTo = compareTo; -          this.oldPin = oldPin; -        } +  /** +   * @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; +  } + +  /** +   * @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 insertString(int offs, String str, AttributeSet a) throws BadLocationException { -            if (pinSpec.getMaxLength() < 0 || pinSpec.getMaxLength() >= (getLength() + str.length())) { +            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)); @@ -87,8 +97,8 @@ class PINDocument extends PlainDocument {              }              if (enterButton != null) {                enterButton.setEnabled( -                      (oldPin == null || oldPin.getLength() >= pinSpec.getMinLength()) && -                      getLength() >= pinSpec.getMinLength() && +                      (oldPin == null || oldPin.getLength() >= minLength) && +                      getLength() >= minLength &&                        compare());              }          } @@ -98,8 +108,8 @@ class PINDocument extends PlainDocument {              super.remove(offs, len);              if (enterButton != null) {                enterButton.setEnabled( -                      (oldPin == null || oldPin.getLength() >= pinSpec.getMinLength()) && -                      getLength() >= pinSpec.getMinLength() && +                      (oldPin == null || oldPin.getLength() >= minLength) && +                      getLength() >= minLength &&                        compare());              }          } | 
