Version 1.0

This commit is contained in:
mmk2410 2015-01-02 11:25:12 +01:00
parent 5cf5d2d938
commit 544ae7ce43
149 changed files with 39001 additions and 0 deletions

6
.classpath Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>

12896
.metadata/.bak_0.log Normal file

File diff suppressed because it is too large Load diff

0
.metadata/.lock Normal file
View file

5815
.metadata/.log Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,34 @@
*** SESSION Aug 07, 2014 18:11:21.36 -------------------------------------------
*** SESSION Aug 13, 2014 11:18:13.02 -------------------------------------------
*** SESSION Aug 13, 2014 19:29:14.47 -------------------------------------------
*** SESSION Aug 14, 2014 08:45:09.10 -------------------------------------------
*** SESSION Aug 17, 2014 20:30:07.62 -------------------------------------------
*** SESSION Aug 17, 2014 21:35:21.75 -------------------------------------------
*** SESSION Aug 18, 2014 00:51:01.05 -------------------------------------------
*** SESSION Aug 18, 2014 00:55:09.85 -------------------------------------------
*** SESSION Aug 18, 2014 09:03:46.13 -------------------------------------------
*** SESSION Sep 18, 2014 19:36:18.58 -------------------------------------------
*** SESSION Sep 19, 2014 18:58:07.74 -------------------------------------------
*** SESSION Sep 20, 2014 21:09:29.74 -------------------------------------------
*** SESSION Sep 20, 2014 21:24:26.14 -------------------------------------------
*** SESSION Sep 21, 2014 10:30:07.78 -------------------------------------------
*** SESSION Sep 21, 2014 17:40:36.61 -------------------------------------------
*** SESSION Sep 26, 2014 18:21:47.72 -------------------------------------------
*** SESSION Sep 26, 2014 19:35:25.66 -------------------------------------------
*** SESSION Sep 27, 2014 07:11:51.76 -------------------------------------------
*** SESSION Sep 27, 2014 09:42:06.29 -------------------------------------------
*** SESSION Sep 27, 2014 22:34:25.43 -------------------------------------------
*** SESSION Sep 28, 2014 16:41:17.63 -------------------------------------------
*** SESSION Oct 05, 2014 22:39:42.34 -------------------------------------------
*** SESSION Oct 26, 2014 10:54:24.50 -------------------------------------------
*** SESSION Nov 06, 2014 19:18:45.66 -------------------------------------------
*** SESSION Nov 06, 2014 22:12:25.33 -------------------------------------------
*** SESSION Nov 07, 2014 06:18:43.84 -------------------------------------------
*** SESSION Nov 08, 2014 19:18:44.84 -------------------------------------------
*** SESSION Nov 08, 2014 21:02:49.62 -------------------------------------------
*** SESSION Nov 09, 2014 21:59:35.54 -------------------------------------------
*** SESSION Nov 10, 2014 22:19:20.77 -------------------------------------------
*** SESSION Nov 16, 2014 21:30:46.27 -------------------------------------------
*** SESSION Nov 21, 2014 23:15:41.46 -------------------------------------------
*** SESSION Nov 30, 2014 12:26:18.20 -------------------------------------------
*** SESSION Dec 11, 2014 19:28:31.76 -------------------------------------------

View file

@ -0,0 +1 @@

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,478 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
}

View file

@ -0,0 +1,94 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("New label");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblLic = new JLabel("New label");
lblLic.setBounds(12, 98, 100, 15);
panel.add(lblLic);
JLabel lblVer = new JLabel("New label");
lblVer.setBounds(12, 125, 100, 15);
panel.add(lblVer);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,555 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
if(output.toString().endsWith("#") && (output.toString().equals("#") == false)){
output.delete(output.length() - 1, output.length());
}
tfOutput.setText(output.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,110 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("marcel-kapfer.de/projects/morse");
lblNewLabel.setBounds(124, 44, 307, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("marcelmichaelkapfer@yahoo.co.nz");
lblNewLabel_1.setBounds(124, 71, 307, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("0.99");
lblNewLabel_2.setBounds(124, 98, 307, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("GNU v3.0");
lblNewLabel_3.setBounds(124, 125, 307, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,540 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,545 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,558 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,74 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "Developer", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 37);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Developer: Marcel Kapfer");
lblDeveloper.setBounds(5, 17, 426, 15);
panel.add(lblDeveloper);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,560 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
if(output.toString().endsWith("#") && (output.toString().equals("#") == false)){
output.delete(output.length() - 1, output.length());
}
tfOutput.setText(output.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,125 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Desktop;
import java.net.URI;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("marcel-kapfer.de/projects/morse");
lblNewLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
if(Desktop.isDesktopSupported())
{
Desktop.getDesktop().browse(new URI("http://www.example.com"));
}
}
});
lblNewLabel.setBounds(124, 44, 307, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("marcelmichaelkapfer@yahoo.co.nz");
lblNewLabel_1.setBounds(124, 71, 307, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("0.99");
lblNewLabel_2.setBounds(124, 98, 307, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("GNU v3.0");
lblNewLabel_3.setBounds(124, 125, 307, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,555 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,535 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,82 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 236);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,94 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblLic = new JLabel("Version");
lblLic.setBounds(12, 98, 100, 15);
panel.add(lblLic);
JLabel lblVer = new JLabel("License");
lblVer.setBounds(12, 125, 100, 15);
panel.add(lblVer);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,545 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.replaceSelection(null);
}
});
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,74 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "Developer", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 37);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(5, 17, 426, 15);
panel.add(lblDeveloper);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,110 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(124, 44, 307, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("New label");
lblNewLabel_1.setBounds(124, 71, 307, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("New label");
lblNewLabel_2.setBounds(124, 98, 307, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("New label");
lblNewLabel_3.setBounds(124, 125, 307, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,561 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
if(output.toString().endsWith("#")){
output.delete(output.length() - 1, output.length());
}
tfOutput.setText(output.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,557 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,526 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
tfInput.setText(clipboard.toString());
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
}

View file

@ -0,0 +1,545 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.removeAll();
}
});
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,110 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("marcel-kapfer.de");
lblNewLabel.setBounds(124, 44, 307, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("marcelmichaelkapfer@gmail.com");
lblNewLabel_1.setBounds(124, 71, 307, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("0.99");
lblNewLabel_2.setBounds(124, 98, 307, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("GNU v3.0");
lblNewLabel_3.setBounds(124, 125, 307, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,545 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 2)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,110 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(124, 44, 70, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("New label");
lblNewLabel_1.setBounds(124, 71, 70, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("New label");
lblNewLabel_2.setBounds(124, 98, 70, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("New label");
lblNewLabel_3.setBounds(124, 125, 70, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,544 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,62 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setLayout(new FlowLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,560 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
if(output.toString().endsWith("#")){
output.delete(output.length() - 1, output.length());
}
tfOutput.setText(output.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,559 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,110 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("marcel-kapfer.de/projects/morse");
lblNewLabel.setBounds(124, 44, 307, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("marcelmichaelkapfer@yahoo.co.nz");
lblNewLabel_1.setBounds(124, 71, 307, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("0.99");
lblNewLabel_2.setBounds(124, 98, 307, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("GNU v3.0");
lblNewLabel_3.setBounds(124, 125, 307, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,545 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,74 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 37);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(5, 17, 426, 15);
panel.add(lblDeveloper);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,561 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
return;
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
if(output.toString().endsWith("#") && (output.toString().equals("#") == false)){
output.delete(output.length() - 1, output.length());
}
tfOutput.setText(output.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,519 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPase = new JMenuItem("Pase from Clipboard");
popupMenuIp.add(mntmIpPase);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
popupMenuIp.add(mntmIpDelete);
//TODO add right click popup menu
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.deleteCharAt(output.length() - 1)
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
}

View file

@ -0,0 +1,70 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
public class MorseApplet extends JApplet {
/**
* Create the applet.
*/
public MorseApplet() {
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblWebsite = new JLabel("marcel-kapfer.de/projects/morse");
lblWebsite.setBounds(124, 44, 307, 15);
panel.add(lblWebsite);
JLabel lblContact = new JLabel("marcelmichaelkapfer@yahoo.co.nz");
lblContact.setBounds(124, 71, 307, 15);
panel.add(lblContact);
JLabel lblVersion = new JLabel("0.99-08112014 beta");
lblVersion.setBounds(124, 98, 307, 15);
panel.add(lblVersion);
JLabel lblLicense = new JLabel("GNU v3.0");
lblLicense.setBounds(124, 125, 307, 15);
panel.add(lblLicense);
}
}

View file

@ -0,0 +1,566 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
mntmOpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfOutput.requestFocus();
tfOutput.selectAll();
}
});
popupMenuOp.add(mntmOpSelect);
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
if(output.toString().endsWith("#") && (output.toString().equals("#") == false)){
output.delete(output.length() - 1, output.length());
}
tfOutput.setText(output.toString());
After();
}
}
/*
* popup menu
*/
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
/*
* Past function
*/
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
/*
* Copy function
*/
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,112 @@
package morse;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.border.TitledBorder;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class About extends JDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
About dialog = new About();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public About() {
setUndecorated(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 223);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "About", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(5, 17, 436, 148);
contentPanel.add(panel);
panel.setLayout(null);
JLabel lblDeveloper = new JLabel("Marcel Kapfer");
lblDeveloper.setBounds(124, 17, 307, 15);
panel.add(lblDeveloper);
JLabel lblDev = new JLabel("Developer");
lblDev.setBounds(12, 17, 100, 15);
panel.add(lblDev);
JLabel lblWeb = new JLabel("Website");
lblWeb.setBounds(12, 44, 100, 15);
panel.add(lblWeb);
JLabel lblCont = new JLabel("Contact");
lblCont.setBounds(12, 71, 100, 15);
panel.add(lblCont);
JLabel lblVer = new JLabel("Version");
lblVer.setBounds(12, 98, 100, 15);
panel.add(lblVer);
JLabel lblLic = new JLabel("License");
lblLic.setBounds(12, 125, 100, 15);
panel.add(lblLic);
JLabel lblNewLabel = new JLabel("marcel-kapfer.de/projects/morse");
lblNewLabel.setBounds(124, 44, 307, 15);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("marcelmichaelkapfer@yahoo.co.nz");
lblNewLabel_1.setBounds(124, 71, 307, 15);
panel.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("0.99");
lblNewLabel_2.setBounds(124, 98, 307, 15);
panel.add(lblNewLabel_2);
JLabel lblNewLabel_3 = new JLabel("GNU v3.0");
lblNewLabel_3.setBounds(124, 125, 307, 15);
panel.add(lblNewLabel_3);
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton cancelButton = new JButton("Close");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}

View file

@ -0,0 +1,552 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
StringSelection selection = new StringSelection(tfOutput.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
}

View file

@ -0,0 +1,552 @@
/*
* This is a programm to translate latin letters to morse or written morse or backwards.
*
* Marcel Michael Kapfer
*
* GPL v3.0
*
* 2014
*
* Version: 0.99 beta
*
*/
package morse;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Morse extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4342211364299252760L;
private JPanel contentPane;
private JTextArea tfOutput;
private JTextArea tfInput;
private JRadioButton rdbtnwmll;
private JRadioButton rdbtnllwm;
private JRadioButton rdbtnmll;
private JRadioButton rdbtnllm;
private JButton btnConvert;
private JButton btnSelectInput;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JCheckBoxMenuItem chckbxmntmClipboardAutomatic;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Morse frame = new Morse();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Morse() {
setResizable(false);
setTitle("Morse Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 792, 420);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMenuBar menuBar = new JMenuBar();
menuBar.setBorderPainted(false);
menuBar.setBounds(0, 0, 820, 21);
contentPane.add(menuBar);
JMenu mnMain = new JMenu("Main Menu");
menuBar.add(mnMain);
JMenuItem mntmAbout = new JMenuItem("About");
mntmAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.main(null);
}
});
mnMain.add(mntmAbout);
JMenuItem mntmBug = new JMenuItem("Bug");
mnMain.add(mntmBug);
//TODO add jDialog and event listner
JMenuItem mntmHowTo = new JMenuItem("How to");
mnMain.add(mntmHowTo);
//TODO add jDialog and event listner
JMenuItem mntmMissingCode = new JMenuItem("Missing Code");
mnMain.add(mntmMissingCode);
//TODO add jDialog and event listner
JMenu mnClipboard = new JMenu("Clipboard");
menuBar.add(mnClipboard);
JMenuItem mntnPaste = new JMenuItem("Paste from Clipboard");
mnClipboard.add(mntnPaste);
//TODO add jDialog and event listner
JMenuItem mntmCopy = new JMenuItem("Copy into Clipboard");
mnClipboard.add(mntmCopy);
//TODO add jDialog and event listner
chckbxmntmClipboardAutomatic = new JCheckBoxMenuItem(
"Copy automatically into Clipboard");
mnClipboard.add(chckbxmntmClipboardAutomatic);
JScrollPane scrollPaneInput = new JScrollPane();
scrollPaneInput.setBounds(12, 60, 758, 140);
contentPane.add(scrollPaneInput);
tfInput = new JTextArea();
scrollPaneInput.setViewportView(tfInput);
tfInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
ChooseProcess();
}
}
@Override
public void keyTyped(KeyEvent e) {
}
});
tfInput.setLineWrap(true);
JPopupMenu popupMenuIp = new JPopupMenu();
addPopup(tfInput, popupMenuIp);
JMenuItem mntmIpPaste = new JMenuItem("Paste from Clipboard");
mntmIpPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onPaste(tfInput);
}
});
popupMenuIp.add(mntmIpPaste);
JMenuItem mntnIpSelect = new JMenuItem("Select text");
mntnIpSelect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.selectAll();
}
});
popupMenuIp.add(mntnIpSelect);
JMenuItem mntmIpDelete = new JMenuItem("Delete text");
mntmIpDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.setText(null);
}
});
popupMenuIp.add(mntmIpDelete);
JLabel lblEnterYourText = new JLabel("Enter your text:");
lblEnterYourText.setBounds(10, 33, 111, 15);
contentPane.add(lblEnterYourText);
rdbtnwmll = new JRadioButton("writtenMorse to Latin Letters");
buttonGroup.add(rdbtnwmll);
rdbtnwmll.setBounds(12, 208, 250, 23);
contentPane.add(rdbtnwmll);
rdbtnllwm = new JRadioButton("Latin Letters to writtenMorse");
buttonGroup.add(rdbtnllwm);
rdbtnllwm.setBounds(266, 208, 250, 23);
contentPane.add(rdbtnllwm);
rdbtnmll = new JRadioButton("Morse to Latin Letters");
buttonGroup.add(rdbtnmll);
rdbtnmll.setBounds(12, 235, 250, 23);
contentPane.add(rdbtnmll);
rdbtnllm = new JRadioButton("Latin Letters to Morse");
buttonGroup.add(rdbtnllm);
rdbtnllm.setBounds(266, 235, 250, 23);
contentPane.add(rdbtnllm);
btnConvert = new JButton("Convert");
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChooseProcess();
}
});
btnConvert.setBounds(612, 218, 160, 25);
contentPane.add(btnConvert);
JScrollPane scrollPaneOutput = new JScrollPane();
scrollPaneOutput.setBounds(12, 266, 758, 140);
contentPane.add(scrollPaneOutput);
tfOutput = new JTextArea();
scrollPaneOutput.setViewportView(tfOutput);
tfOutput.setEditable(false);
tfOutput.setLineWrap(true);
JPopupMenu popupMenuOp = new JPopupMenu();
addPopup(tfOutput, popupMenuOp);
JMenuItem mntmOpClipboardCopy = new JMenuItem("Copy into Clipboard");
mntmOpClipboardCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCopy(tfOutput);
}
});
popupMenuOp.add(mntmOpClipboardCopy);
JMenuItem mntmOpSelect = new JMenuItem("Select Text");
popupMenuOp.add(mntmOpSelect);
//TODO add right click popup menu
btnSelectInput = new JButton("Select Input Text");
btnSelectInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfInput.requestFocus();
tfInput.selectAll();
btnSelectInput.setVisible(false);
}
});
btnSelectInput.setBounds(612, 28, 158, 25);
btnSelectInput.setVisible(false);
contentPane.add(btnSelectInput);
}
/*
* Choose the convert process
*/
private void ChooseProcess() {
if (rdbtnwmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllwm.isSelected()) {
LlWm();
} else if (rdbtnmll.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else if (rdbtnllm.isSelected()) {
tfOutput.setText("Process not available");
// TODO Add function
} else {
tfOutput.setText("Please select a convert process");
rdbtnwmll.requestFocus();
}
}
/*
* Tasks to do after the converting process
*/
private void After() {
tfOutput.selectAll();
btnSelectInput.setVisible(true);
if (chckbxmntmClipboardAutomatic.isSelected()) {
onCopy(tfOutput);
}
}
/*
* Code for converting latin letters into written morse
*/
private void LlWm() {
// Variables
StringBuffer input = new StringBuffer();
input = input.replace(0, input.length(), tfInput.getText()
.toUpperCase());
StringBuffer output = new StringBuffer();
if (input.toString().equals("")) {
tfOutput.setText("Please enter at least one character");
After();
} else if (input.toString().equals("LETTERSPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("END OF WORK")) {
tfOutput.setText("000101");
After();
} else if (input.toString().equals("ERROR")) {
tfOutput.setText("00000000");
After();
} else if (input.toString().equals("STARTING SIGNAL")) {
tfOutput.setText("10101");
After();
} else if (input.toString().equals("ENDING SIGNAL")) {
tfOutput.setText("01010");
After();
} else if (input.toString().equals("UNDERSTOOD")) {
tfOutput.setText("00010");
After();
} else if (input.toString().equals("WAIT")) {
tfOutput.setText("01000");
After();
} else if (input.toString().equals("SOS")) {
tfOutput.setText("000111000");
After();
} else if (input.toString().equals("LETTER SPACE")) {
tfOutput.setText("#");
After();
} else if (input.toString().equals("WORD SPACE")) {
tfOutput.setText("+");
After();
} else {
for (int c = input.length(); c > 0; c--) {
if (input.toString().startsWith(" ")) {
if (output.toString().endsWith("#")) {
output.delete((output.length() - 1), output.length());
}
output.append("+");
input.delete(0, 1);
} else if (input.toString().startsWith("\n")) {
output.append("\n");
} else if (input.toString().startsWith("A")) {
output.append("01#");
input.delete(0, 1);
} else if (input.toString().startsWith("B")) {
output.append("1000#");
input.delete(0, 1);
} else if (input.toString().startsWith("C")) {
output.append("1010#");
input.delete(0, 1);
} else if (input.toString().startsWith("D")) {
output.append("100#");
input.delete(0, 1);
} else if (input.toString().startsWith("E")) {
output.append("0#");
input.delete(0, 1);
} else if (input.toString().startsWith("F")) {
output.append("0010#");
input.delete(0, 1);
} else if (input.toString().startsWith("G")) {
output.append("110#");
input.delete(0, 1);
} else if (input.toString().startsWith("H")) {
output.append("0000#");
input.delete(0, 1);
} else if (input.toString().startsWith("I")) {
output.append("00#");
input.delete(0, 1);
} else if (input.toString().startsWith("J")) {
output.append("0111#");
input.delete(0, 1);
} else if (input.toString().startsWith("K")) {
output.append("101#");
input.delete(0, 1);
} else if (input.toString().startsWith("L")) {
output.append("0100#");
input.delete(0, 1);
} else if (input.toString().startsWith("M")) {
output.append("11#");
input.delete(0, 1);
} else if (input.toString().startsWith("N")) {
output.append("10#");
input.delete(0, 1);
} else if (input.toString().startsWith("O")) {
output.append("111#");
input.delete(0, 1);
} else if (input.toString().startsWith("P")) {
output.append("0110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Q")) {
output.append("1101#");
input.delete(0, 1);
} else if (input.toString().startsWith("R")) {
output.append("010#");
input.delete(0, 1);
} else if (input.toString().startsWith("S")) {
output.append("000#");
input.delete(0, 1);
} else if (input.toString().startsWith("T")) {
output.append("1#");
input.delete(0, 1);
} else if (input.toString().startsWith("U")) {
output.append("001#");
input.delete(0, 1);
} else if (input.toString().startsWith("V")) {
output.append("0001#");
input.delete(0, 1);
} else if (input.toString().startsWith("W")) {
output.append("011#");
input.delete(0, 1);
} else if (input.toString().startsWith("X")) {
output.append("1001#");
input.delete(0, 1);
} else if (input.toString().startsWith("Y")) {
output.append("1011#");
input.delete(0, 1);
} else if (input.toString().startsWith("Z")) {
output.append("1100#");
input.delete(0, 1);
} else if (input.toString().startsWith("0")) {
output.append("11111#");
input.delete(0, 1);
} else if (input.toString().startsWith("1")) {
output.append("01111#");
input.delete(0, 1);
} else if (input.toString().startsWith("2")) {
output.append("00111#");
input.delete(0, 1);
} else if (input.toString().startsWith("3")) {
output.append("00011#");
input.delete(0, 1);
} else if (input.toString().startsWith("4")) {
output.append("00001#");
input.delete(0, 1);
} else if (input.toString().startsWith("5")) {
output.append("00000#");
input.delete(0, 1);
} else if (input.toString().startsWith("6")) {
output.append("10000#");
input.delete(0, 1);
} else if (input.toString().startsWith("7")) {
output.append("11000#");
input.delete(0, 1);
} else if (input.toString().startsWith("8")) {
output.append("11100#");
input.delete(0, 1);
} else if (input.toString().startsWith("9")) {
output.append("11110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ä")) {
output.append("0101#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ö")) {
output.append("1110#");
input.delete(0, 1);
} else if (input.toString().startsWith("Ü")) {
output.append("0011#");
input.delete(0, 1);
} else if (input.toString().startsWith("ß")) {
output.append("00011000#");
input.delete(0, 1);
} else if (input.toString().startsWith(".")) {
output.append("010101#");
input.delete(0, 1);
} else if (input.toString().startsWith(",")) {
output.append("110011#");
input.delete(0, 1);
} else if (input.toString().startsWith(":")) {
output.append("111000#");
input.delete(0, 1);
} else if (input.toString().startsWith(";")) {
output.append("101010#");
input.delete(0, 1);
} else if (input.toString().startsWith("?")) {
output.append("001100#");
input.delete(0, 1);
} else if (input.toString().startsWith("!")) {
output.append("101011#");
input.delete(0, 1);
} else if (input.toString().startsWith("-")) {
output.append("100001#");
input.delete(0, 1);
} else if (input.toString().startsWith("_")) {
output.append("001101#");
input.delete(0, 1);
} else if (input.toString().startsWith("(")) {
output.append("10110#");
input.delete(0, 1);
} else if (input.toString().startsWith(")")) {
output.append("101101#");
input.delete(0, 1);
} else if (input.toString().startsWith("=")) {
output.append("10001#");
input.delete(0, 1);
} else if (input.toString().startsWith("+")) {
output.append("01010#");
input.delete(0, 1);
} else if (input.toString().startsWith("/")) {
output.append("10010#");
input.delete(0, 1);
} else if (input.toString().startsWith("@")) {
output.append("011010#");
input.delete(0, 1);
} else if (input.toString().startsWith("'")) {
output.append("011110#");
input.delete(0, 1);
} else if (input.toString().startsWith("$")) {
output.append("0001001#");
input.delete(0, 1);
} else {
tfOutput.setText("Code not listed or wrong.");
}
}
tfOutput.setText(output.delete(output.length() - 1, output.length())
.toString());
After();
}
}
private static void addPopup(Component component, final JPopupMenu popup) {
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
showMenu(e);
}
}
private void showMenu(MouseEvent e) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
});
}
private void onPaste(JTextArea tf){
Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable t = c.getContents(this);
if (t == null)
return;
try {
tf.setText((String) t.getTransferData(DataFlavor.stringFlavor));
} catch (Exception e){
e.printStackTrace();
}//try
}//onPaste
private void onCopy(JTextArea tf){
StringSelection selection = new StringSelection(tf.getText());
Clipboard clipboard = Toolkit.getDefaultToolkit()
.getSystemClipboard();
clipboard.setContents(selection, selection);
}
}

View file

@ -0,0 +1,14 @@
package morse;
import javax.swing.JApplet;
public class MorseApplet extends JApplet {
/**
* Create the applet.
*/
public MorseApplet() {
}
}

View file

@ -0,0 +1,3 @@
com.android.ide.eclipse.adt.fixLegacyEditors=1
com.android.ide.eclipse.adt.sdk=/home/mmk/android-sdks
eclipse.preferences.version=1

View file

@ -0,0 +1,8 @@
eclipse.preferences.version=1
logcat.view.colsize.Application=147
logcat.view.colsize.Level=22
logcat.view.colsize.PID=50
logcat.view.colsize.TID=50
logcat.view.colsize.Tag=112
logcat.view.colsize.Text=581
logcat.view.colsize.Time=139

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.cdt.debug.core.cDebug.default_source_containers=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<sourceLookupDirector>\n<sourceContainers duplicates\="false">\n<container memento\="AbsolutePath" typeId\="org.eclipse.cdt.debug.core.containerType.absolutePath"/>\n<container memento\="programRelativePath" typeId\="org.eclipse.cdt.debug.core.containerType.programRelativePath"/>\n<container memento\="&lt;?xml version\=&quot;1.0&quot; encoding\=&quot;UTF-8&quot; standalone\=&quot;no&quot;?&gt;&\#10;&lt;project referencedProjects\=&quot;true&quot;/&gt;&\#10;" typeId\="org.eclipse.cdt.debug.core.containerType.project"/>\n</sourceContainers>\n</sourceLookupDirector>\n

View file

@ -0,0 +1,7 @@
columnOrderKeyEXE=0,1,2,3,4,5
columnOrderKeySF=0,1,2,3,4,5
columnSortDirectionKeyEXE=128
columnSortDirectionKeySF=128
eclipse.preferences.version=1
visibleColumnsKeyEXE=1,1,1,0,0,0
visibleColumnsKeySF=1,1,0,0,0,0

View file

@ -0,0 +1,4 @@
eclipse.preferences.version=1
spelling_locale_initialized=true
useAnnotationsPrefPage=true
useQuickDiffPrefPage=true

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
version=1

View file

@ -0,0 +1,6 @@
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.applicationLaunchType=org.eclipse.cdt.dsf.gdb.launch.localCLaunch,debug,;org.eclipse.cdt.cdi.launch.localCLaunch,run,;
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.attachLaunchType=org.eclipse.cdt.dsf.gdb.launch.attachCLaunch,debug,;
//org.eclipse.debug.core.PREFERRED_DELEGATES/org.eclipse.cdt.launch.postmortemLaunchType=org.eclipse.cdt.dsf.gdb.launch.coreCLaunch,debug,;
eclipse.preferences.version=1
org.eclipse.debug.core.PREF_BREAKPOINT_MANAGER_ENABLED_STATE=true
org.eclipse.debug.core.USE_STEP_FILTERS=true

View file

@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<launchPerspectives/>\n
pref_state_memento.org.eclipse.debug.ui.BreakpointView=<?xml version\="1.0" encoding\="UTF-8"?>\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684">\n<PRESENTATION_CONTEXT_PROPERTIES IMemento.internal.id\="org.eclipse.debug.ui.BreakpointView">\n<BOOLEAN BOOLEAN\="true" IMemento.internal.id\="org.eclipse.debug.ui.check"/>\n</PRESENTATION_CONTEXT_PROPERTIES>\n</VariablesViewMemento>
pref_state_memento.org.eclipse.debug.ui.DebugVieworg.eclipse.debug.ui.DebugView=<?xml version\="1.0" encoding\="UTF-8"?>\n<DebugViewMemento org.eclipse.debug.ui.BREADCRUMB_DROPDOWN_AUTO_EXPAND\="false"/>
pref_state_memento.org.eclipse.debug.ui.VariableView=<?xml version\="1.0" encoding\="UTF-8"?>\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="312" org.eclipse.debug.ui.SASH_VIEW_PART\="670">\n<COLUMN_SIZES IMemento.internal.id\="org.eclipse.debug.ui.VARIALBE_COLUMN_PRESENTATION.COL_VAR_VALUE" SIZE\="359"/>\n<COLUMN_SIZES IMemento.internal.id\="org.eclipse.debug.ui.VARIALBE_COLUMN_PRESENTATION.COL_VAR_NAME" SIZE\="313"/>\n<PRESENTATION_CONTEXT_PROPERTIES IMemento.internal.id\="org.eclipse.debug.ui.VariableView"/>\n</VariablesViewMemento>
preferredDetailPanes=DefaultDetailPane\:DefaultDetailPane|
preferredTargets=default\:default|

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
themeid=org.eclipse.e4.ui.css.theme.e4_dark

View file

@ -0,0 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1411061758344" defaultVMConnector\="">\n<vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">\n<vm id\="1411061758344" name\="java-8-jdk" path\="/usr/lib/jvm/java-8-jdk"/>\n</vmType>\n</vmSettings>\n

View file

@ -0,0 +1,29 @@
content_assist_lru_history=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><history maxLHS\="100" maxRHS\="10"/>
content_assist_number_of_computers=13
content_assist_proposals_background=249,249,249
content_assist_proposals_foreground=51,51,51
eclipse.preferences.version=1
fontPropagated=true
org.eclipse.jdt.ui.editor.tab.width=
org.eclipse.jdt.ui.formatterprofiles.version=12
org.eclipse.jdt.ui.javadoclocations.migrated=true
org.eclipse.jdt.ui.text.code_templates_migrated=true
org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
org.eclipse.jdt.ui.text.custom_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
org.eclipse.jdt.ui.text.templates_migrated=true
org.eclipse.jface.textfont=1|Monospace|10.0|0|GTK|1|;
proposalOrderMigrated=true
spelling_ignore_ampersand_in_properties=true
spelling_ignore_digits=true
spelling_ignore_java_strings=true
spelling_ignore_mixed=true
spelling_ignore_non_letters=true
spelling_ignore_sentence=true
spelling_ignore_single_letters=true
spelling_ignore_upper=true
spelling_ignore_urls=true
spelling_locale_initialized=true
spelling_user_dictionary_encoding=
tabWidthPropagated=true
useAnnotationsPrefPage=true
useQuickDiffPrefPage=true

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
knownEEFragments=

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
workspace_target_handle=local\:1411288348674.target

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.team.ui.first_time=false

View file

@ -0,0 +1,3 @@
eclipse.preferences.version=1
overviewRuler_migration=migrated_3.1
spellingEngine=org.eclipse.jdt.internal.ui.text.spelling.DefaultSpellingEngine

View file

@ -0,0 +1,6 @@
PROBLEMS_FILTERS_MIGRATE=true
TASKS_FILTERS_MIGRATE=true
eclipse.preferences.version=1
platformState=1412541408722
quickStart=false
tipsAndTricks=true

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
showIntro=false

View file

@ -0,0 +1,2 @@
ENABLED_DECORATORS=com.android.ide.eclipse.adt.project.FolderDecorator\:true,org.eclipse.cdt.ui.indexedFiles\:false,org.eclipse.cdt.managedbuilder.ui.excludedFile\:true,org.eclipse.cdt.managedbuilder.ui.includeFolder\:true,org.eclipse.cdt.internal.ui.CustomBuildSettingsDecorator\:true,org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator\:true,org.eclipse.jdt.ui.override.decorator\:true,org.eclipse.jdt.ui.interface.decorator\:false,org.eclipse.jdt.ui.buildpath.decorator\:true,org.eclipse.pde.ui.binaryProjectDecorator\:false,org.eclipse.team.cvs.ui.decorator\:false,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.SymlinkDecorator\:true,org.eclipse.ui.VirtualResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,org.eclipse.ui.ResourceFilterDecorator\:false,
eclipse.preferences.version=1

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/About.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.About"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/Bug.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.Bug"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/DecodeWrittenMorse.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.DecodeWrittenMorse"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/EncodeWrittenMorse.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.EncodeWrittenMorse"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/HowTo.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.HowTo"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/MissingCode.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.MissingCode"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morse/Morse.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morse.Morse"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.javaApplet">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Morse/src/morseapplet/MorseApplet.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<intAttribute key="org.eclipse.jdt.launching.APPLET_HEIGHT" value="200"/>
<stringAttribute key="org.eclipse.jdt.launching.APPLET_NAME" value=""/>
<intAttribute key="org.eclipse.jdt.launching.APPLET_WIDTH" value="200"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="morseapplet.MorseApplet"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Morse"/>
</launchConfiguration>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<section name="org.eclipse.debug.ui.SCOPED_SAVE_SELECTION_DIALOG">
<item value="279" key="DIALOG_WIDTH"/>
<item value="1|Roboto|10.0|0|GTK|1|" key="DIALOG_FONT_NAME"/>
<item value="328" key="DIALOG_HEIGHT"/>
</section>
<section name="org.eclipse.debug.ui.LAUNCH_CONFIGURATIONS_DIALOG_SECTION">
<item value="800" key="DIALOG_WIDTH"/>
<item value="1|Roboto|10.0|0|GTK|1|" key="DIALOG_FONT_NAME"/>
<item value=", " key="org.eclipse.debug.ui.EXPANDED_NODES"/>
<item value="762" key="org.eclipse.debug.ui.DIALOG_SASH_WEIGHTS_2"/>
<item value="616" key="DIALOG_HEIGHT"/>
<item value="237" key="org.eclipse.debug.ui.DIALOG_SASH_WEIGHTS_1"/>
</section>
</section>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchHistory>
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Morse&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;MorseApplet&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;About&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Bug&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;HowTo&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;MissingCode&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;DecodeWrittenMorse&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;EncodeWrittenMorse&quot;/&gt;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
<mruHistory/>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
<mruHistory/>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Morse&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;MorseApplet&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;About&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Bug&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;HowTo&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;MissingCode&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;DecodeWrittenMorse&quot;/&gt;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;EncodeWrittenMorse&quot;/&gt;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
</launchHistory>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<section name="org.eclipse.equinox.internal.p2.ui.sdk.scheduler.migration.MigrationWizard.WizardSettings">
<item value="877" key="DIALOG_WIDTH"/>
<item value="1|Ubuntu|10.0|0|GTK|1|" key="DIALOG_FONT_NAME"/>
<item value="715" key="DIALOG_HEIGHT"/>
<item value="245" key="DIALOG_X_ORIGIN"/>
<item value="11" key="DIALOG_Y_ORIGIN"/>
</section>
</section>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
<section name="org.eclipse.equinox.internal.p2.ui.dialogs.InstallWizard.SelectableIUsPage">
<item value="200" key="DetailsSashWeight"/>
<item value="360" key="NameColumnWidth"/>
<item value="120" key="VersionColumnWidth"/>
<item value="872" key="IDColumnWidth"/>
<item value="800" key="ListSashWeight"/>
</section>
<section name="AvailableIUsPage">
<item value="1" key="AvailableViewType"/>
<item value="800" key="AvailableListSashWeight"/>
<item value="true" key="HideInstalledContent"/>
<item value="902" key="AvailableVersionColumnWidth"/>
<item value="true" key="ShowLatestVersionsOnly"/>
<item value="200" key="AvailableDetailsSashWeight"/>
<item value="true" key="ResolveInstallWithAllSites"/>
<item value="450" key="AvailableNameColumnWidth"/>
<item value="false" key="FilterOnEnv"/>
</section>
<section name="org.eclipse.equinox.internal.p2.ui.dialogs.InstallWizard.ResolutionResultsPage">
<item value="200" key="DetailsSashWeight"/>
<item value="400" key="NameColumnWidth"/>
<item value="200" key="VersionColumnWidth"/>
<item value="752" key="IDColumnWidth"/>
<item value="800" key="ListSashWeight"/>
</section>
<section name="org.eclipse.equinox.internal.p2.ui.dialogs.InstallWizard.WizardSettings">
<item value="1366" key="DIALOG_WIDTH"/>
<item value="1|Ubuntu|10.0|0|GTK|1|" key="DIALOG_FONT_NAME"/>
<item value="682" key="DIALOG_HEIGHT"/>
<item value="0" key="DIALOG_X_ORIGIN"/>
<item value="0" key="DIALOG_Y_ORIGIN"/>
</section>
</section>

Some files were not shown because too many files have changed in this diff Show more