package com.dasatti.uhtml;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;
import javax.swing.text.rtf.*;
import javax.swing.text.html.*;
import javax.swing.event.*;
import java.util.*;
public class KeyboardDialog extends JDialog implements KeyListener
{
JButton btnA,btnB,btnC,btnD,btnE,btnF,btnG,btnH,btnI,btnJ,btnK,btnL,btnM,btnN,btnO,btnP,btnQ,btnR,btnS,btnT,btnU,btnV,btnW,btnX,btnY,btnZ;
JButton btnTab,btnRBrace,btnLBrace,btnFSlash,btnColon,btnComma1,btnEnter,btnShift,btnComma2,btnFullStop,btnSlash,btnShift2;
JButton btnLQuote,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,btnUnderscore,btnEqual,btnBack;
JToggleButton btnCaps;
JComboBox cbLangs;
private final int LANG_EN=0;
private final int LANG_UR=1;
private int curLang=0;
private String[] strLangs={"English","Urdu"};
boolean isCaps=false;
boolean isShift=false;
public KeyboardDialog(JFrame parent)
{
super(parent,"Urdu HTML Master Keyboard",true);
//super();
setLayout(new BorderLayout());
JPanel pnlControl=new JPanel();
JPanel pnlKeys=new JPanel();
pnlControl.setLayout(new FlowLayout(FlowLayout.LEFT,10,15));
pnlKeys.setLayout(null);
JLabel lblSelectLang=new JLabel("Select Language: ");
cbLangs=new JComboBox(strLangs);
cbLangs.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
curLang=cbLangs.getSelectedIndex();
updateKeyboard();
}
}
);
pnlControl.add(lblSelectLang);
lblSelectLang.setBounds(10,20,300,45);
pnlControl.add(cbLangs);
cbLangs.setBounds(400,20,300,45);
add(pnlControl,BorderLayout.NORTH);
btnA=new JButton("a");
btnB=new JButton("b");
btnC=new JButton("c");
btnD=new JButton("d");
btnE=new JButton("e");
btnF=new JButton("f");
btnG=new JButton("g");
btnH=new JButton("h");
btnI=new JButton("i");
btnJ=new JButton("j");
btnK=new JButton("k");
btnL=new JButton("l");
btnM=new JButton("m");
btnN=new JButton("n");
btnO=new JButton("o");
btnP=new JButton("p");
btnQ=new JButton("q");
btnR=new JButton("r");
btnS=new JButton("s");
btnT=new JButton("t");
btnU=new JButton("u");
btnV=new JButton("v");
btnW=new JButton("w");
btnX=new JButton("x");
btnY=new JButton("y");
btnZ=new JButton("z");
btnTab=new JButton("Tab");
btnLBrace=new JButton("[");
btnRBrace=new JButton("]");
btnFSlash=new JButton("\\");
btnCaps=new JToggleButton("Caps");
btnShift=new JButton("Shift");
btnColon=new JButton(";");
btnComma1=new JButton("'");
btnEnter=new JButton("Enter");
btnComma2=new JButton(",");
btnFullStop=new JButton(".");
btnSlash=new JButton("/");
btnShift2=new JButton("Shift");
btnLQuote=new JButton("`");
btn1=new JButton("1");
btn2=new JButton("2");
btn3=new JButton("3");
btn4=new JButton("4");
btn5=new JButton("5");
btn6=new JButton("6");
btn7=new JButton("7");
btn8=new JButton("8");
btn9=new JButton("9");
btn0=new JButton("0");
btnUnderscore=new JButton("-");
btnEqual=new JButton("=");
btnBack=new JButton("Back");
btnCaps.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(btnCaps.isSelected())
isCaps=true;
else
isCaps=false;
updateKeyboard();
}
}
);
btnShift.addMouseListener(
new MouseListener()
{
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
/*if(isCaps)
{
isCaps=false;
}
else
isCaps=true;
*/
isShift=true;
updateKeyboard();
}
public void mouseReleased(MouseEvent r)
{
/*if(isCaps)
{
isCaps=false;
}
else
isCaps=true;
*/
isShift=false;
updateKeyboard();
}
}
);
btnShift2.addMouseListener(
new MouseListener()
{
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
/*if(isCaps)
{
isCaps=false;
}
else
isCaps=true;
*/
isShift=true;
updateKeyboard();
}
public void mouseReleased(MouseEvent r)
{
/*if(isCaps)
{
isCaps=false;
}
else
isCaps=true;
*/
isShift=false;
updateKeyboard();
}
}
);
pnlKeys.add(btnLQuote);
btnLQuote.setBounds(10,15,45,40);
pnlKeys.add(btn1);
btn1.setBounds(60,15,45,40);
pnlKeys.add(btn2);
btn2.setBounds(110,15,45,40);
pnlKeys.add(btn3);
btn3.setBounds(160,15,45,40);
pnlKeys.add(btn4);
btn4.setBounds(210,15,45,40);
pnlKeys.add(btn5);
btn5.setBounds(260,15,45,40);
pnlKeys.add(btn6);
btn6.setBounds(310,15,45,40);
pnlKeys.add(btn7);
btn7.setBounds(360,15,45,40);
pnlKeys.add(btn8);
btn8.setBounds(410,15,45,40);
pnlKeys.add(btn9);
btn9.setBounds(460,15,45,40);
pnlKeys.add(btn0);
btn0.setBounds(510,15,45,40);
pnlKeys.add(btnUnderscore);
btnUnderscore.setBounds(560,15,45,40);
pnlKeys.add(btnEqual);
btnEqual.setBounds(610,15,45,40);
pnlKeys.add(btnBack);
btnBack.setBounds(660,15,65,40);
pnlKeys.add(btnTab);
btnTab.setBounds(10,60,65,40);
pnlKeys.add(btnQ);
btnQ.setBounds(80,60,45,40);
pnlKeys.add(btnW);
btnW.setBounds(130,60,45,40);
pnlKeys.add(btnE);
btnE.setBounds(180,60,45,40);
pnlKeys.add(btnR);
btnR.setBounds(230,60,45,40);
pnlKeys.add(btnT);
btnT.setBounds(280,60,45,40);
pnlKeys.add(btnY);
btnY.setBounds(330,60,45,40);
pnlKeys.add(btnU);
btnU.setBounds(380,60,45,40);
pnlKeys.add(btnI);
btnI.setBounds(430,60,45,40);
pnlKeys.add(btnO);
btnO.setBounds(480,60,45,40);
pnlKeys.add(btnP);
btnP.setBounds(530,60,45,40);
pnlKeys.add(btnLBrace);
btnLBrace.setBounds(580,60,45,40);
pnlKeys.add(btnRBrace);
btnRBrace.setBounds(630,60,45,40);
pnlKeys.add(btnFSlash);
btnFSlash.setBounds(680,60,45,40);
pnlKeys.add(btnCaps);
btnCaps.setBounds(10,105,75,40);
pnlKeys.add(btnA);
btnA.setBounds(90,105,45,40);
pnlKeys.add(btnS);
btnS.setBounds(140,105,45,40);
pnlKeys.add(btnD);
btnD.setBounds(190,105,45,40);
pnlKeys.add(btnF);
btnF.setBounds(240,105,45,40);
pnlKeys.add(btnG);
btnG.setBounds(290,105,45,40);
pnlKeys.add(btnH);
btnH.setBounds(340,105,45,40);
pnlKeys.add(btnJ);
btnJ.setBounds(390,105,45,40);
pnlKeys.add(btnK);
btnK.setBounds(440,105,45,40);
pnlKeys.add(btnL);
btnL.setBounds(490,105,45,40);
pnlKeys.add(btnColon);
btnColon.setBounds(540,105,45,40);
pnlKeys.add(btnComma1);
btnComma1.setBounds(590,105,45,40);
pnlKeys.add(btnEnter);
btnEnter.setBounds(640,105,85,40);
pnlKeys.add(btnShift);
btnShift.setBounds(10,150,100,40);
pnlKeys.add(btnZ);
btnZ.setBounds(115,150,45,40);
pnlKeys.add(btnX);
btnX.setBounds(165,150,45,40);
pnlKeys.add(btnC);
btnC.setBounds(215,150,45,40);
pnlKeys.add(btnV);
btnV.setBounds(265,150,45,40);
pnlKeys.add(btnB);
btnB.setBounds(315,150,45,40);
pnlKeys.add(btnN);
btnN.setBounds(365,150,45,40);
pnlKeys.add(btnM);
btnM.setBounds(415,150,45,40);
pnlKeys.add(btnComma2);
btnComma2.setBounds(465,150,45,40);
pnlKeys.add(btnFullStop);
btnFullStop.setBounds(515,150,45,40);
pnlKeys.add(btnSlash);
btnSlash.setBounds(565,150,45,40);
pnlKeys.add(btnShift2);
btnShift2.setBounds(615,150,110,40);
add(pnlKeys,BorderLayout.CENTER);
addKeyListener(this);
pack();
setBounds(350,350,750,300);
setResizable(false);
//setVisible(true);
}
public void updateKeyboard()
{
if(curLang==LANG_EN)
{
if(isCaps)
{
if(!isShift)
{
capitalizeEN();
nshifticizeEN();
}
else
{
ncapitalizeEN();
shifticizeEN();
}
}
else
{
if(isShift)
{
capitalizeEN();
shifticizeEN();
}
else
{
ncapitalizeEN();
nshifticizeEN();
}
}
}
if(curLang==LANG_UR)
{
if(isCaps)
{
if(!isShift)
{
capitalizeUR();
nshifticizeUR();
}
else
{
ncapitalizeUR();
shifticizeUR();
}
}
else
{
if(isShift)
{
capitalizeUR();
shifticizeUR();
}
else
{
ncapitalizeUR();
nshifticizeUR();
}
}
}
}
public void capitalizeEN()
{
btnA.setText("A");
btnB.setText("B");
btnC.setText("C");
btnD.setText("D");
btnE.setText("E");
btnF.setText("F");
btnG.setText("G");
btnH.setText("H");
btnI.setText("I");
btnJ.setText("J");
btnK.setText("K");
btnL.setText("L");
btnM.setText("M");
btnN.setText("N");
btnO.setText("O");
btnP.setText("P");
btnQ.setText("Q");
btnR.setText("R");
btnS.setText("S");
btnT.setText("T");
btnU.setText("U");
btnV.setText("V");
btnW.setText("W");
btnX.setText("X");
btnY.setText("Y");
btnZ.setText("Z");
btnColon.setText(";");
btnComma2.setText(",");
btnFullStop.setText(".");
btnSlash.setText("/");
}
public void ncapitalizeEN()
{
btnA.setText("a");
btnB.setText("b");
btnC.setText("c");
btnD.setText("d");
btnE.setText("e");
btnF.setText("f");
btnG.setText("g");
btnH.setText("h");
btnI.setText("i");
btnJ.setText("j");
btnK.setText("k");
btnL.setText("l");
btnM.setText("m");
btnN.setText("n");
btnO.setText("o");
btnP.setText("p");
btnQ.setText("q");
btnR.setText("r");
btnS.setText("s");
btnT.setText("t");
btnU.setText("u");
btnV.setText("v");
btnW.setText("w");
btnX.setText("x");
btnY.setText("y");
btnZ.setText("z");
btnColon.setText(";");
btnComma2.setText(",");
btnFullStop.setText(".");
btnSlash.setText("/");
}
public void ncapitalizeUR()
{
btnA.setText("\u0627");
btnB.setText("\u0628");
btnC.setText("\u0686");
btnD.setText("\u062F");
btnE.setText("\u0639");
btnF.setText("\u0641");
btnG.setText("\u06AF");
btnH.setText("\u06BE");
btnI.setText("\u06CC");
btnJ.setText("\u062C");
btnK.setText("\u06A9");
btnL.setText("\u0644");
btnM.setText("\u0645");
btnN.setText("\u0646");
btnO.setText("\u0647");
btnP.setText("\u067E");
btnQ.setText("\u0642");
btnR.setText("\u0631");
btnS.setText("\u0633");
btnT.setText("\u062A");
btnU.setText("\u0621");
btnV.setText("\u0637");
btnW.setText("\u0648");
btnX.setText("\u0634");
btnY.setText("\u06D2");
btnZ.setText("\u0632");
btnColon.setText("\u061B");
btnComma2.setText("\u060C");
btnFullStop.setText("\u06D4");
btnSlash.setText("\u061F");
}
public void capitalizeUR()
{
btnA.setText("\u0622");
btnB.setText("\u0613");
btnC.setText("\u062b");
btnD.setText("\u0688");
btnE.setText("\u0611");
btnF.setText("\u0656");
btnG.setText("\u063A");
btnH.setText("\u062D");
btnI.setText("\u064A");
btnJ.setText("\u0636");
btnK.setText("\u062E");
btnL.setText("\u0612");
btnM.setText("\u0627");
btnN.setText("\u06BA");
btnO.setText("\u0629");
btnP.setText("\u064F");
btnQ.setText("\u0648");
btnR.setText("\u0691");
btnS.setText("\u0635");
btnT.setText("\u0679");
btnU.setText("\u0626");
btnV.setText("\u0638");
btnW.setText("\u0610");
btnX.setText("\u0698");
btnY.setText("\u0600");
btnZ.setText("\u0630");
btnColon.setText("\u061B");
btnComma2.setText("\u060C");
btnFullStop.setText("\u06D4");
btnSlash.setText("\u061F");
}
public void shifticizeEN()
{
btnLQuote.setText("~");
btn1.setText("!");
btn2.setText("@");
btn3.setText("#");
btn4.setText("$");
btn5.setText("%");
btn6.setText("^");
btn7.setText("&");
btn8.setText("*");
btn9.setText("(");
btn0.setText(")");
btnUnderscore.setText("_");
btnEqual.setText("+");
btnLBrace.setText("{");
btnRBrace.setText("}");
btnFSlash.setText("\\");
btnColon.setText(":");
btnComma1.setText("\"");
btnComma2.setText("<");
btnFullStop.setText(">");
btnSlash.setText("?");
}
public void nshifticizeEN()
{
btnLQuote.setText("`");
btn1.setText("1");
btn2.setText("2");
btn3.setText("3");
btn4.setText("4");
btn5.setText("5");
btn6.setText("6");
btn7.setText("7");
btn8.setText("8");
btn9.setText("9");
btn0.setText("0");
btnUnderscore.setText("-");
btnEqual.setText("=");
btnLBrace.setText("[");
btnRBrace.setText("]");
btnFSlash.setText("|");
btnColon.setText(";");
btnComma1.setText("'");
btnComma2.setText(",");
btnFullStop.setText(".");
btnSlash.setText("/");
}
public void shifticizeUR()
{
btnLQuote.setText("~");
btn1.setText("!");
btn2.setText("@");
btn3.setText("#");
btn4.setText("$");
btn5.setText("%");
btn6.setText("^");
btn7.setText("&");
btn8.setText("*");
btn9.setText("(");
btn0.setText(")");
btnUnderscore.setText("_");
btnEqual.setText("+");
btnLBrace.setText("{");
btnRBrace.setText("}");
btnFSlash.setText("\\");
btnColon.setText(":");
btnComma1.setText("\"");
btnComma2.setText("<");
btnFullStop.setText(">");
btnSlash.setText("\u061F");
}
public void nshifticizeUR()
{
btnLQuote.setText("`");
btn1.setText("1");
btn2.setText("2");
btn3.setText("3");
btn4.setText("4");
btn5.setText("5");
btn6.setText("6");
btn7.setText("7");
btn8.setText("8");
btn9.setText("9");
btn0.setText("0");
btnUnderscore.setText("-");
btnEqual.setText("=");
btnLBrace.setText("[");
btnRBrace.setText("]");
btnFSlash.setText("|");
btnColon.setText("\u061B");
btnComma1.setText("'");
btnComma2.setText("\u060C");
btnFullStop.setText("\u06D4");
btnSlash.setText("/");
}
public void keyPressed(KeyEvent e)
{
System.out.println("Action");
if(e.getKeyCode()==KeyEvent.VK_SHIFT)
{
isShift=true;
updateKeyboard();
}
}
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_SHIFT)
{
isShift=false;
updateKeyboard();
}
}
public void keyTyped(KeyEvent e)
{
}
///*
public static void main(String a[])
{
KeyboardDialog app=new KeyboardDialog(null);
app.show();
}
//*/
}