/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tr.gov.turkiye.esignuidesk.view.pane;
import java.awt.Point;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JTextField;
import tr.gov.turkiye.esignuidesk.annotation.FocusOwner;
import tr.gov.turkiye.esignuidesk.config.Config;
import tr.gov.turkiye.esignuidesk.controller.LogicManager;
import tr.gov.turkiye.esignuidesk.data.UserData;
import tr.gov.turkiye.esignuidesk.props.ScreenProperties;
import tr.gov.turkiye.esignuidesk.support.Utils;
/**
*
* @author iakpolat
*/
public class PinPane extends javax.swing.JPanel {
private final ArrayList<JButton> btnList;
/**
* Creates new form PinPane
*/
public PinPane() {
initComponents();
setBounds(Config.DEF_PANEL_STARTING_X, Config.DEF_PANEL_STARTING_Y, Config.DEF_PANEL_WIDTH, Config.DEF_PANEL_HEIGHT);
btnList = new ArrayList<>();
btnList.add(b1);
btnList.add(b2);
btnList.add(b3);
btnList.add(b4);
btnList.add(b5);
btnList.add(b6);
btnList.add(b7);
btnList.add(b8);
btnList.add(b9);
btnList.add(b0);
if(rndNumberCB.isSelected())
randomizeNumberPositions();
else
normalizeNumberPositions();
}
/**
* Randomizes button positions.
*/
public final void randomizeNumberPositions() {
Utils.randomizePositions(btnList, 3, Config.pinBtnStartPoint.x, Config.pinBtnStartPoint.y,
Config.numberBtnSize.width, Config.numberBtnSize.height);
}
/**
* Changes button positions to the original.
*/
public final void normalizeNumberPositions() {
Utils.setComponentPositions(btnList, 3, Config.pinBtnStartPoint.x, Config.pinBtnStartPoint.y,
Config.numberBtnSize.width, Config.numberBtnSize.height);
}
@FocusOwner
public JTextField getPinField() {
return pinField;
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
b1 = new javax.swing.JButton();
b2 = new javax.swing.JButton();
b3 = new javax.swing.JButton();
b4 = new javax.swing.JButton();
b5 = new javax.swing.JButton();
b6 = new javax.swing.JButton();
b7 = new javax.swing.JButton();
b8 = new javax.swing.JButton();
b9 = new javax.swing.JButton();
b0 = new javax.swing.JButton();
delBtn = new javax.swing.JButton();
messagePane = new javax.swing.JLabel();
signBtn = new javax.swing.JButton();
cancelBtn = new javax.swing.JButton();
pinField = new javax.swing.JPasswordField();
showPassCB = new javax.swing.JCheckBox();
rndNumberCB = new javax.swing.JCheckBox();
setBackground(new java.awt.Color(255, 255, 255));
setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
setMaximumSize(new java.awt.Dimension(260, 250));
setName(Config.pinPaneName);
setSize(new java.awt.Dimension(260, 250));
setLayout(null);
b1.setText("1");
b1.setFocusable(false);
b1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b1ActionPerformed(evt);
}
});
add(b1);
b1.setBounds(20, 60, 40, 40);
b2.setText("2");
b2.setFocusable(false);
b2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b2ActionPerformed(evt);
}
});
add(b2);
b2.setBounds(60, 60, 40, 40);
b3.setText("3");
b3.setFocusable(false);
b3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b3ActionPerformed(evt);
}
});
add(b3);
b3.setBounds(100, 60, 40, 40);
b4.setText("4");
b4.setFocusable(false);
b4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b4ActionPerformed(evt);
}
});
add(b4);
b4.setBounds(20, 100, 40, 40);
b5.setText("5");
b5.setFocusable(false);
b5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b5ActionPerformed(evt);
}
});
add(b5);
b5.setBounds(60, 100, 40, 40);
b6.setText("6");
b6.setFocusable(false);
b6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b6ActionPerformed(evt);
}
});
add(b6);
b6.setBounds(100, 100, 40, 40);
b7.setText("7");
b7.setFocusable(false);
b7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b7ActionPerformed(evt);
}
});
add(b7);
b7.setBounds(20, 140, 40, 40);
b8.setText("8");
b8.setFocusable(false);
b8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b8ActionPerformed(evt);
}
});
add(b8);
b8.setBounds(60, 140, 40, 40);
b9.setText("9");
b9.setFocusable(false);
b9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b9ActionPerformed(evt);
}
});
add(b9);
b9.setBounds(100, 140, 40, 40);
b0.setText("0");
b0.setFocusable(false);
b0.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
b0ActionPerformed(evt);
}
});
add(b0);
b0.setBounds(20, 180, 40, 40);
delBtn.setText("del");
delBtn.setFocusable(false);
delBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
delBtnActionPerformed(evt);
}
});
add(delBtn);
delBtn.setBounds(60, 180, 80, 40);
messagePane.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
messagePane.setText(ScreenProperties.getValue("enter_pin"));
messagePane.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
add(messagePane);
messagePane.setBounds(0, 10, 160, 16);
signBtn.setLabel(ScreenProperties.getValue("sign"));
signBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
signBtnActionPerformed(evt);
}
});
add(signBtn);
signBtn.setBounds(90, 220, 70, 29);
cancelBtn.setText(ScreenProperties.getValue("back"));
cancelBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelBtnActionPerformed(evt);
}
});
add(cancelBtn);
cancelBtn.setBounds(20, 220, 70, 29);
pinField.setNextFocusableComponent(signBtn);
pinField.setPreferredSize(new java.awt.Dimension(140, 28));
add(pinField);
pinField.setBounds(10, 30, 245, 28);
showPassCB.setText(ScreenProperties.getValue("show_pass")
);
showPassCB.setIconTextGap(0);
showPassCB.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
showPassCBActionPerformed(evt);
}
});
add(showPassCB);
showPassCB.setBounds(140, 70, 120, 23);
rndNumberCB.setText(ScreenProperties.getValue("show_pass"));
rndNumberCB.setSelected(true);
rndNumberCB.setText(ScreenProperties.getValue("rnd_number")
);
rndNumberCB.setIconTextGap(0);
rndNumberCB.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rndNumberCBActionPerformed(evt);
}
});
add(rndNumberCB);
rndNumberCB.setBounds(140, 90, 120, 23);
}// </editor-fold>//GEN-END:initComponents
private void buttonAction(java.awt.event.ActionEvent evt) {
if(rndNumberCB.isSelected()) {
randomizeNumberPositions();
}
if(evt.getSource() instanceof JButton)
pinField.setText(pinField.getText()+Utils.getButtonNumber((JButton) evt.getSource()));
else
System.out.println("Event source must be JButton.");
}
private void delBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_delBtnActionPerformed
if(pinField.getPassword().length>0)
pinField.setText(pinField.getText().substring(0,pinField.getPassword().length-1));
}//GEN-LAST:event_delBtnActionPerformed
private void b1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b1ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b1ActionPerformed
private void b7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b7ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b7ActionPerformed
private void b8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b8ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b8ActionPerformed
private void b2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b2ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b2ActionPerformed
private void signBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_signBtnActionPerformed
UserData.pinPass = pinField.getPassword();
LogicManager.done(Config.PIN_PANE_ID);
}//GEN-LAST:event_signBtnActionPerformed
private void cancelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelBtnActionPerformed
LogicManager.cancel(Config.PIN_PANE_ID);
}//GEN-LAST:event_cancelBtnActionPerformed
private void b3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b3ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b3ActionPerformed
private void b4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b4ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b4ActionPerformed
private void b5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b5ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b5ActionPerformed
private void b6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b6ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b6ActionPerformed
private void b9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b9ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b9ActionPerformed
private void b0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b0ActionPerformed
buttonAction(evt);
}//GEN-LAST:event_b0ActionPerformed
private void showPassCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showPassCBActionPerformed
if(pinField.getEchoChar()==(char)0) {
pinField.setEchoChar('*');
} else {
pinField.setEchoChar((char)0);
}
}//GEN-LAST:event_showPassCBActionPerformed
private void rndNumberCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rndNumberCBActionPerformed
if(rndNumberCB.isSelected()) {
randomizeNumberPositions();
} else {
normalizeNumberPositions();
}
}//GEN-LAST:event_rndNumberCBActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton b0;
private javax.swing.JButton b1;
private javax.swing.JButton b2;
private javax.swing.JButton b3;
private javax.swing.JButton b4;
private javax.swing.JButton b5;
private javax.swing.JButton b6;
private javax.swing.JButton b7;
private javax.swing.JButton b8;
private javax.swing.JButton b9;
private javax.swing.JButton cancelBtn;
private javax.swing.JButton delBtn;
private javax.swing.JLabel messagePane;
private javax.swing.JPasswordField pinField;
private javax.swing.JCheckBox rndNumberCB;
private javax.swing.JCheckBox showPassCB;
private javax.swing.JButton signBtn;
// End of variables declaration//GEN-END:variables
}