Changeset 530


Ignore:
Timestamp:
11/26/13 10:41:26 (10 years ago)
Author:
jts21
Message:

Add password obfuscation, option to not save password

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/items/widgets/Password.java

    r529 r530  
    11package org.expeditee.items.widgets;
    22
     3import java.awt.GridLayout;
     4
     5import javax.swing.JCheckBox;
     6import javax.swing.JPanel;
    37import javax.swing.JPasswordField;
    48
     
    1216public class Password extends InteractiveWidget {
    1317
    14         private String[] args;
    1518        private JPasswordField passwordField;
     19        private JCheckBox savePassword;
    1620       
    1721        public Password(Text source, String[] args) {
    18                 super(source, new JPasswordField(), 100, 500, 10, 30);
    19                 this.passwordField = (JPasswordField) super._swingComponent;
     22                super(source, new JPanel(new GridLayout(0, 1)), 200, 200, 60, 60);
     23                JPanel p = (JPanel) super._swingComponent;
     24                this.passwordField = new JPasswordField();
     25                this.savePassword = new JCheckBox("Save password?");
     26                p.add(passwordField);
     27                p.add(savePassword);
    2028                if(args != null && args.length > 0) {
    21                         this.passwordField.setText(args[0]);
     29                        String[] password = args[0].split(":");
     30                        StringBuilder s = new StringBuilder();
     31                        for(String str : password) {
     32                                char c = (char) Byte.parseByte(str);
     33                                s.append(c);
     34                        }
     35                        this.passwordField.setText(s.toString());
     36                        this.savePassword.setSelected(true);
    2237                }
    23                 this.args = args;
    2438        }
    2539
    2640        @Override
    2741        protected String[] getArgs() {
    28                 return new String[] { new String(this.passwordField.getPassword()) };
     42                if(!savePassword.isSelected()) {
     43                        return null;
     44                }
     45                char[] password = this.passwordField.getPassword();
     46                StringBuilder s = new StringBuilder();
     47                for(char b : password) {
     48                        s.append((byte)b + ":");
     49                }
     50                return new String[] { s.toString() };
    2951        }
    3052       
Note: See TracChangeset for help on using the changeset viewer.