From ea2b9efaae3b8224d01301659aa077d0a75b69fb Mon Sep 17 00:00:00 2001
From: Marcel Michael Kapfer
Date: Wed, 29 Jul 2015 18:00:10 +0200
Subject: [PATCH] Windows Fixes Pt. 1
---
.gitignore | 0
LICENSE | 0
README.md | 0
src/META-INF/MANIFEST.MF | 6 +-
.../marcelkapfer/c/morseconverter/Main.form | 2 +-
.../marcelkapfer/c/morseconverter/Main.java | 308 ++++++-----
.../engine/DecodeNormalMorseManager.java | 9 +-
.../engine/DecodeWrittenMorseManager.java | 501 +++++++++---------
.../engine/EncodeNormalMorseManager.java | 8 +-
.../engine/EncodeWrittenMorseManager.java | 13 +-
.../NormalMorseCodeRecognization.java | 0
.../WrittenMorseCodeRecognization.java | 0
.../c/morseconverter/text.properties | 2 +-
.../c/morseconverter/text_de.properties | 2 +-
.../c/morseconverter/update/Update.java | 0
.../c/morseconverter/update/UpdateDialog.form | 0
.../c/morseconverter/update/UpdateDialog.java | 0
17 files changed, 446 insertions(+), 405 deletions(-)
mode change 100644 => 100755 .gitignore
mode change 100644 => 100755 LICENSE
mode change 100644 => 100755 README.md
mode change 100644 => 100755 src/META-INF/MANIFEST.MF
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/Main.form
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/Main.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/engine/DecodeNormalMorseManager.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/engine/DecodeWrittenMorseManager.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/engine/EncodeNormalMorseManager.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/engine/EncodeWrittenMorseManager.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/intelligentCodeRecognization/NormalMorseCodeRecognization.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/intelligentCodeRecognization/WrittenMorseCodeRecognization.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/text.properties
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/text_de.properties
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/update/Update.java
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/update/UpdateDialog.form
mode change 100644 => 100755 src/de/marcelkapfer/c/morseconverter/update/UpdateDialog.java
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF
old mode 100644
new mode 100755
index 1ead37a..ca4b40e
--- a/src/META-INF/MANIFEST.MF
+++ b/src/META-INF/MANIFEST.MF
@@ -1,3 +1,3 @@
-Manifest-Version: 1.0
-Main-Class: de.marcelkapfer.c.morseconverter.Main
-
+Manifest-Version: 1.0
+Main-Class: de.marcelkapfer.c.morseconverter.Main
+
diff --git a/src/de/marcelkapfer/c/morseconverter/Main.form b/src/de/marcelkapfer/c/morseconverter/Main.form
old mode 100644
new mode 100755
index a84d617..ae24b9d
--- a/src/de/marcelkapfer/c/morseconverter/Main.form
+++ b/src/de/marcelkapfer/c/morseconverter/Main.form
@@ -122,7 +122,7 @@
-
+
diff --git a/src/de/marcelkapfer/c/morseconverter/Main.java b/src/de/marcelkapfer/c/morseconverter/Main.java
old mode 100644
new mode 100755
index fbd9172..e9b3c6b
--- a/src/de/marcelkapfer/c/morseconverter/Main.java
+++ b/src/de/marcelkapfer/c/morseconverter/Main.java
@@ -1,145 +1,163 @@
-package de.marcelkapfer.c.morseconverter;
-
-/*
- This is a Java application for converting writtenMorse and normal morse code.
- Copyright (C) 2014-2015 Marcel Michael Kapfer
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
- Marcel Michael Kapfer
- marcelmichaelkapfer@yahoo.co.nz
-
- */
-
-import de.marcelkapfer.c.morseconverter.engine.DecodeNormalMorseManager;
-import de.marcelkapfer.c.morseconverter.engine.DecodeWrittenMorseManager;
-import de.marcelkapfer.c.morseconverter.engine.EncodeNormalMorseManager;
-import de.marcelkapfer.c.morseconverter.engine.EncodeWrittenMorseManager;
-import de.marcelkapfer.c.morseconverter.intelligentCodeRecognization.NormalMorseCodeRecognization;
-import de.marcelkapfer.c.morseconverter.intelligentCodeRecognization.WrittenMorseCodeRecognization;
-import de.marcelkapfer.c.morseconverter.update.Update;
-import de.marcelkapfer.c.morseconverter.update.UpdateDialog;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.util.ResourceBundle;
-
-public class Main extends JFrame {
-
- // Version numbers for update check
- public static final int currentVersion = 190;
- public static int latestVersion = currentVersion;
-
- public static ResourceBundle resourceBundle = ResourceBundle.getBundle("de.marcelkapfer.c.morseconverter.text");
- public JTabbedPane morseConverterPane;
- private JPanel panel1;
- private JTextArea inputAreaWrittenMorse;
- private JTextArea outputAreaWrittenMorse;
- private JTextArea inputAreaNormalMorse;
- private JTextArea outputAreaNormalMorse;
- private JButton updateDialogButton;
- private JLabel updateAvailable;
-
- // Contains mainly listeners
- public Main() {
- // Listener for the writtenMorse input field
- inputAreaWrittenMorse.addKeyListener(new KeyAdapter() {
- @Override
- public void keyReleased(KeyEvent e) {
- instantWrittenMorseConvert();
- }
- });
- // Listener for the normal Morse input field
- inputAreaNormalMorse.addKeyListener(new KeyAdapter() {
- @Override
- public void keyReleased(KeyEvent e) {
- instantNormalMorseConvert();
- }
- });
-
- // Trying to read a file from a server
- latestVersion = Update.getLatestVersion("http://lab.marcel-kapfer.de/writtenmorse/desktop/version.txt", currentVersion);
-
- if (currentVersion < latestVersion){
- JOptionPane.showMessageDialog(null, resourceBundle.getString("updateAvailable"));
- updateAvailable.setVisible(true);
- updateDialogButton.setText(resourceBundle.getString("aboutUpdateAvailableButton"));
- }
-
- updateDialogButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- updateDialog();
- }
-
- });
- }
- // The holy main method
- public static void main(String[] args){
- // Tries to present the app in an native look
- try{
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (Exception e){
- e.printStackTrace();
- }
- // Starting the application
- JFrame main = new JFrame("Main");
- main.setContentPane(new Main().morseConverterPane);
- main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- // Title
- main.setTitle(resourceBundle.getString("title"));
- main.pack();
- // Window position and Size
- main.setBounds(100, 100, 800, 400);
- main.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("/res/icon-xxxhdpi.png")));
- // MAKE IT HAPPEN :D
- main.setVisible(true);
- }
-
- // Method for converting writtenMorse
- private void instantWrittenMorseConvert(){
- // Gets the text from the input field
- String input = inputAreaWrittenMorse.getText();
- // checks if the code is a writtenMorse code
- if(WrittenMorseCodeRecognization.isCode(input)) {
- // converts the code into normal letters
- outputAreaWrittenMorse.setText(EncodeWrittenMorseManager.getEncodedString(input));
- } else {
- // converts the code into writtenMorse
- outputAreaWrittenMorse.setText(DecodeWrittenMorseManager.getDecodedString(input));
- }
- }
-
- // Method for converting normal Morse
- private void instantNormalMorseConvert(){
- // Gets the text from the input field
- String input = inputAreaNormalMorse.getText();
- // checks if the code is a normal Morse code
- if(NormalMorseCodeRecognization.isCode(input)){
- // converts the code into normal letters
- outputAreaNormalMorse.setText(EncodeNormalMorseManager.getEncodedString(input));
- } else {
- // converts the code into writtenMorse
- outputAreaNormalMorse.setText(DecodeNormalMorseManager.getDecodedString(input));
- }
- }
-
- private void updateDialog() {
- UpdateDialog.main(null);
- }
-
-}
+package de.marcelkapfer.c.morseconverter;
+
+/*
+ This is a Java application for converting writtenMorse and normal morse code.
+ Copyright (C) 2014-2015 Marcel Michael Kapfer
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+ Marcel Michael Kapfer
+ marcelmichaelkapfer@yahoo.co.nz
+
+ */
+
+import de.marcelkapfer.c.morseconverter.engine.DecodeNormalMorseManager;
+import de.marcelkapfer.c.morseconverter.engine.DecodeWrittenMorseManager;
+import de.marcelkapfer.c.morseconverter.engine.EncodeNormalMorseManager;
+import de.marcelkapfer.c.morseconverter.engine.EncodeWrittenMorseManager;
+import de.marcelkapfer.c.morseconverter.intelligentCodeRecognization.NormalMorseCodeRecognization;
+import de.marcelkapfer.c.morseconverter.intelligentCodeRecognization.WrittenMorseCodeRecognization;
+import de.marcelkapfer.c.morseconverter.update.Update;
+import de.marcelkapfer.c.morseconverter.update.UpdateDialog;
+
+import javax.swing.*;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Element;
+import javax.swing.text.html.HTMLDocument;
+import javax.swing.text.html.HTMLEditorKit;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.io.IOException;
+import java.util.ResourceBundle;
+
+public class Main extends JFrame {
+
+ // Version numbers for update check
+ public static final int currentVersion = 191;
+ public static int latestVersion = currentVersion;
+
+ public static ResourceBundle resourceBundle = ResourceBundle.getBundle("de.marcelkapfer.c.morseconverter.text");
+ public JTabbedPane morseConverterPane;
+ private JPanel panel1;
+ private JTextArea inputAreaWrittenMorse;
+ private JTextArea outputAreaWrittenMorse;
+ private JTextArea inputAreaNormalMorse;
+ private JTextArea outputAreaNormalMorse;
+ private JButton updateDialogButton;
+ private JLabel updateAvailable;
+ private JTextPane aboutText;
+
+ // Contains mainly listeners
+ public Main() {
+ HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
+ HTMLDocument htmlDocument = (HTMLDocument) htmlEditorKit.createDefaultDocument();
+ Element element = htmlDocument.getDefaultRootElement();
+ try {
+ htmlDocument.setInnerHTML(element, resourceBundle.getString("about"));
+ } catch (BadLocationException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ aboutText.setDocument(htmlDocument);
+ // Listener for the writtenMorse input field
+ inputAreaWrittenMorse.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ instantWrittenMorseConvert();
+ }
+ });
+ // Listener for the normal Morse input field
+ inputAreaNormalMorse.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ instantNormalMorseConvert();
+ }
+ });
+
+ // Trying to read a file from a server
+ latestVersion = Update.getLatestVersion("http://lab.marcel-kapfer.de/writtenmorse/desktop/version.txt", currentVersion);
+
+ if (currentVersion < latestVersion){
+ JOptionPane.showMessageDialog(null, resourceBundle.getString("updateAvailable"));
+ updateAvailable.setVisible(true);
+ updateDialogButton.setText(resourceBundle.getString("aboutUpdateAvailableButton"));
+ }
+
+ updateDialogButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ updateDialog();
+ }
+
+ });
+ }
+ // The holy main method
+ public static void main(String[] args){
+ // Tries to present the app in an native look
+ try{
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ // Starting the application
+ JFrame main = new JFrame("Main");
+ main.setContentPane(new Main().morseConverterPane);
+ main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ // Title
+ main.setTitle(resourceBundle.getString("title"));
+ main.pack();
+ // Window position and Size
+ main.setBounds(100, 100, 800, 400);
+ main.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("/res/icon-xxxhdpi.png")));
+ // MAKE IT HAPPEN :D
+ main.setVisible(true);
+ System.out.print(System.lineSeparator());
+ }
+
+ // Method for converting writtenMorse
+ private void instantWrittenMorseConvert(){
+ // Gets the text from the input field
+ String input = inputAreaWrittenMorse.getText();
+ // checks if the code is a writtenMorse code
+ if(WrittenMorseCodeRecognization.isCode(input)) {
+ // converts the code into normal letters
+ outputAreaWrittenMorse.setText(EncodeWrittenMorseManager.getEncodedString(input));
+ } else {
+ // converts the code into writtenMorse
+ outputAreaWrittenMorse.setText(DecodeWrittenMorseManager.getDecodedString(input));
+ }
+ }
+
+ // Method for converting normal Morse
+ private void instantNormalMorseConvert(){
+ // Gets the text from the input field
+ String input = inputAreaNormalMorse.getText();
+ // checks if the code is a normal Morse code
+ if(NormalMorseCodeRecognization.isCode(input)){
+ // converts the code into normal letters
+ outputAreaNormalMorse.setText(EncodeNormalMorseManager.getEncodedString(input));
+ } else {
+ // converts the code into writtenMorse
+ outputAreaNormalMorse.setText(DecodeNormalMorseManager.getDecodedString(input));
+ }
+ }
+
+ private void updateDialog() {
+ UpdateDialog.main(null);
+ }
+
+}
diff --git a/src/de/marcelkapfer/c/morseconverter/engine/DecodeNormalMorseManager.java b/src/de/marcelkapfer/c/morseconverter/engine/DecodeNormalMorseManager.java
old mode 100644
new mode 100755
index 32a292a..2fbea3e
--- a/src/de/marcelkapfer/c/morseconverter/engine/DecodeNormalMorseManager.java
+++ b/src/de/marcelkapfer/c/morseconverter/engine/DecodeNormalMorseManager.java
@@ -65,7 +65,12 @@ public class DecodeNormalMorseManager {
input.delete(0, 1);
} else if(input.toString().startsWith(System.lineSeparator())) {
output.append(System.lineSeparator());
- input.deleteCharAt(input.indexOf(System.lineSeparator()));
+ int indexLineSeparator = input.indexOf(System.lineSeparator());
+ input.delete(indexLineSeparator, indexLineSeparator + System.lineSeparator().length());
+ } else if (input.toString().startsWith("\n")) {
+ output.append(System.lineSeparator());
+ int indexLineSeparator = input.indexOf("\n");
+ input.deleteCharAt(indexLineSeparator);
} else if (input.toString().startsWith("A")) {
output.append(".- ");
input.delete(0, 1);
@@ -235,7 +240,7 @@ public class DecodeNormalMorseManager {
output.append("...-..- ");
input.delete(0, 1);
} else {
- output.replace(0, output.length(), "Code not listed or wrong.");
+ return "Code not listed or wrong.";
}
}
if (output.toString().endsWith(" ")) {
diff --git a/src/de/marcelkapfer/c/morseconverter/engine/DecodeWrittenMorseManager.java b/src/de/marcelkapfer/c/morseconverter/engine/DecodeWrittenMorseManager.java
old mode 100644
new mode 100755
index c681e29..74ff266
--- a/src/de/marcelkapfer/c/morseconverter/engine/DecodeWrittenMorseManager.java
+++ b/src/de/marcelkapfer/c/morseconverter/engine/DecodeWrittenMorseManager.java
@@ -1,249 +1,254 @@
-package de.marcelkapfer.c.morseconverter.engine;
-
-/*
- This is a Java application for converting writtenMorse and normal morse code.
- Copyright (C) 2014-2015 Marcel Michael Kapfer
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
- Marcel Michael Kapfer
- marcelmichaelkapfer@yahoo.co.nz
-
- */
-
-public class DecodeWrittenMorseManager {
-
- public static String getDecodedString(String inputMessage) {
- if(inputMessage.equals("")){
- return "Please enter at least one character";
- } else {
- StringBuffer message = new StringBuffer(inputMessage);
- if (message.toString().endsWith(" ")) {
- message = message.deleteCharAt(message.length() - 1);
- }
- // Variables
- StringBuffer input = new StringBuffer();
- input = input.replace(0, input.length(), message.toString().toUpperCase());
- StringBuffer output = new StringBuffer();
- if (input.toString().equals("LETTERSPACE")) {
- output.replace(0, output.length(), "#");
- } else if (input.toString().equals("END OF WORK")) {
- output.replace(0, output.length(), "000101");
- } else if (input.toString().equals("ERROR")) {
- output.replace(0, output.length(), "00000000");
- } else if (input.toString().equals("STARTING SIGNAL")) {
- output.replace(0, output.length(), "10101");
- } else if (input.toString().equals("ENDING SIGNAL")) {
- output.replace(0, output.length(), "01010");
- } else if (input.toString().equals("UNDERSTOOD")) {
- output.replace(0, output.length(), "00010");
- } else if (input.toString().equals("WAIT")) {
- output.replace(0, output.length(), "01000");
- } else if (input.toString().equals("SOS")) {
- output.replace(0, output.length(), "000111000");
- } else if (input.toString().equals("LETTER SPACE")) {
- output.replace(0, output.length(), "##");
- } else if (input.toString().equals("WORD SPACE")) {
- output.replace(0, output.length(), "+");
- } else {
- while (input.length() > 0) {
-
- 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(System.lineSeparator())) {
- output.append(System.lineSeparator());
- input.deleteCharAt(input.indexOf(System.lineSeparator()));
- } 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 {
- output.replace(0, output.length(), "Code not listed or wrong.");
- }
- }
- if (output.toString().endsWith("#")) {
- output.delete(output.length() - 1, output.length());
- }
- }
- return output.toString();
- }
- }
+package de.marcelkapfer.c.morseconverter.engine;
+
+/*
+ This is a Java application for converting writtenMorse and normal morse code.
+ Copyright (C) 2014-2015 Marcel Michael Kapfer
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+ Marcel Michael Kapfer
+ marcelmichaelkapfer@yahoo.co.nz
+
+ */
+
+public class DecodeWrittenMorseManager {
+
+ public static String getDecodedString(String inputMessage) {
+ if(inputMessage.equals("")){
+ return "Please enter at least one character";
+ } else {
+ StringBuffer message = new StringBuffer(inputMessage);
+ if (message.toString().endsWith(" ")) {
+ message = message.deleteCharAt(message.length() - 1);
+ }
+ // Variables
+ StringBuffer input = new StringBuffer();
+ input = input.replace(0, input.length(), message.toString().toUpperCase());
+ StringBuffer output = new StringBuffer();
+ if (input.toString().equals("LETTERSPACE")) {
+ output.replace(0, output.length(), "#");
+ } else if (input.toString().equals("END OF WORK")) {
+ output.replace(0, output.length(), "000101");
+ } else if (input.toString().equals("ERROR")) {
+ output.replace(0, output.length(), "00000000");
+ } else if (input.toString().equals("STARTING SIGNAL")) {
+ output.replace(0, output.length(), "10101");
+ } else if (input.toString().equals("ENDING SIGNAL")) {
+ output.replace(0, output.length(), "01010");
+ } else if (input.toString().equals("UNDERSTOOD")) {
+ output.replace(0, output.length(), "00010");
+ } else if (input.toString().equals("WAIT")) {
+ output.replace(0, output.length(), "01000");
+ } else if (input.toString().equals("SOS")) {
+ output.replace(0, output.length(), "000111000");
+ } else if (input.toString().equals("LETTER SPACE")) {
+ output.replace(0, output.length(), "##");
+ } else if (input.toString().equals("WORD SPACE")) {
+ output.replace(0, output.length(), "+");
+ } else {
+ while (input.length() > 0) {
+
+ 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(System.lineSeparator())) {
+ output.append(System.lineSeparator());
+ int indexLineSeparator = input.indexOf(System.lineSeparator());
+ input.delete(indexLineSeparator, indexLineSeparator + System.lineSeparator().length());
+ } else if (input.toString().startsWith("\n")) {
+ output.append(System.lineSeparator());
+ int indexLineSeparator = input.indexOf("\n");
+ input.deleteCharAt(indexLineSeparator);
+ } 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 {
+ return "Code not listed or wrong.";
+ }
+ }
+ if (output.toString().endsWith("#")) {
+ output.delete(output.length() - 1, output.length());
+ }
+ }
+ return output.toString();
+ }
+ }
}
\ No newline at end of file
diff --git a/src/de/marcelkapfer/c/morseconverter/engine/EncodeNormalMorseManager.java b/src/de/marcelkapfer/c/morseconverter/engine/EncodeNormalMorseManager.java
old mode 100644
new mode 100755
index a304081..0cdf8ee
--- a/src/de/marcelkapfer/c/morseconverter/engine/EncodeNormalMorseManager.java
+++ b/src/de/marcelkapfer/c/morseconverter/engine/EncodeNormalMorseManager.java
@@ -51,7 +51,11 @@ public class EncodeNormalMorseManager {
inputToSign.delete(d, d + 7);
} else if(inputToSign.toString().startsWith(System.lineSeparator())){
output.append(System.lineSeparator());
- inputToSign.deleteCharAt(0);
+ inputToSign.delete(0, System.lineSeparator().length());
+ } else if (input.toString().startsWith("\n")) {
+ output.append(System.lineSeparator());
+ int indexLineSeparator = input.indexOf("\n");
+ inputToSign.deleteCharAt(indexLineSeparator);
} else if (inputToSign.toString().substring(d, d + 3).equals(" ")) {
if (d == 0) {
inputToSign.delete(0, 3);
@@ -190,7 +194,7 @@ public class EncodeNormalMorseManager {
} else if (sign.toString().equals("........")) {
output.append("Error");
} else {
- output.replace(0, output.length(), "Code not listed or wrong.");
+ return "Code not listed or wrong.";
}
}
return output.toString();
diff --git a/src/de/marcelkapfer/c/morseconverter/engine/EncodeWrittenMorseManager.java b/src/de/marcelkapfer/c/morseconverter/engine/EncodeWrittenMorseManager.java
old mode 100644
new mode 100755
index e2fe380..752aadc
--- a/src/de/marcelkapfer/c/morseconverter/engine/EncodeWrittenMorseManager.java
+++ b/src/de/marcelkapfer/c/morseconverter/engine/EncodeWrittenMorseManager.java
@@ -51,11 +51,20 @@ public class EncodeWrittenMorseManager {
if (d == 0) {
if (inputToSign.toString().startsWith("+")) {
output.append(" ");
+ inputToSign.deleteCharAt(0);
}
if (inputToSign.toString().startsWith(System.lineSeparator())){
output.append(System.lineSeparator());
+ inputToSign.delete(0, System.lineSeparator().length());
+ }
+ if (inputToSign.toString().startsWith("#")){
+ inputToSign.deleteCharAt(0);
+ }
+ if (input.toString().startsWith("\n")) {
+ output.append(System.lineSeparator());
+ int indexLineSeparator = input.indexOf("\n");
+ inputToSign.deleteCharAt(indexLineSeparator);
}
- inputToSign.deleteCharAt(0);
} else {
sign.replace(0, sign.length(), inputToSign
.toString().substring(0, d));
@@ -191,7 +200,7 @@ public class EncodeWrittenMorseManager {
} else if (sign.toString().equals("00000000")) {
output.append("Error");
} else {
- output.replace(0, output.length(), "Code not listed or wrong.");
+ return "Code not listed or wrong.";
}
}
return output.toString();
diff --git a/src/de/marcelkapfer/c/morseconverter/intelligentCodeRecognization/NormalMorseCodeRecognization.java b/src/de/marcelkapfer/c/morseconverter/intelligentCodeRecognization/NormalMorseCodeRecognization.java
old mode 100644
new mode 100755
diff --git a/src/de/marcelkapfer/c/morseconverter/intelligentCodeRecognization/WrittenMorseCodeRecognization.java b/src/de/marcelkapfer/c/morseconverter/intelligentCodeRecognization/WrittenMorseCodeRecognization.java
old mode 100644
new mode 100755
diff --git a/src/de/marcelkapfer/c/morseconverter/text.properties b/src/de/marcelkapfer/c/morseconverter/text.properties
old mode 100644
new mode 100755
index 8b874cb..5ed07e3
--- a/src/de/marcelkapfer/c/morseconverter/text.properties
+++ b/src/de/marcelkapfer/c/morseconverter/text.properties
@@ -1,4 +1,4 @@
-about=\n\n\n\n\nVersion
1.9.0 alpha\n
\n\nDeveloper
Marcel Michael Kapfer\n
\n\nWebsite
marcel-kapfer.de/writtenmorse\n
\n\nContact
marcelmichaelkapfer@yahoo.co.nz\n
\n\nLicense
GNU GPL v3.0\n
\n\nBug
If you found a bug, please write me a mail to marcelmichaelkapfer@yahoo.co.nz with a short description of the problem.\n
\n\nHow to
You can find a detailed guide on marcel-kapfer.de/writtenmorse/\#howto_desktop\n
\nMissing Code
If you discovered, that a code is missing, then write me a mail to marcelmichaelkapfer@yahoo.co.nz and tell me about it.\n
\n
\n\n
+about=\n\nVersion
1.9.1 alpha\n
\n\nDeveloper
Marcel Michael Kapfer\n
\n\nWebsite
marcel-kapfer.de/writtenmorse\n
\n\nContact
marcelmichaelkapfer@yahoo.co.nz\n
\n\nLicense
GNU GPL v3.0\n
\n\nBug
If you found a bug, please write me a mail to marcelmichaelkapfer@yahoo.co.nz with a short description of the problem.\n
\n\nHow to
You can find a detailed guide on marcel-kapfer.de/writtenmorse/\#howto_desktop\n
\nMissing Code
If you discovered, that a code is missing, then write me a mail to marcelmichaelkapfer@yahoo.co.nz and tell me about it.\n
\n\n
aboutUpdateAvailable=Update available
aboutUpdateAvailableButton=Install Update
inputText=Enter your text
diff --git a/src/de/marcelkapfer/c/morseconverter/text_de.properties b/src/de/marcelkapfer/c/morseconverter/text_de.properties
old mode 100644
new mode 100755
index a86c11d..1070fd8
--- a/src/de/marcelkapfer/c/morseconverter/text_de.properties
+++ b/src/de/marcelkapfer/c/morseconverter/text_de.properties
@@ -1,4 +1,4 @@
-about=\n\n\n\n\nVersion
1.9.0 alpha\n
\n\nEntwickler
Marcel Michael Kapfer\n
\n\nWebsite
marcel-kapfer.de/writtenmorse\n
\n\nKontakt
marcelmichaelkapfer@yahoo.co.nz\n
\n\nLizenz
GNU GPL v3.0\n
\n\nFehler
Wenn Du einen Fehler gefunden hast, schreibe mir bitte ein E-Mail an marcelmichaelkapfer@yahoo.co.nz\n
\n\nHow to
Du kannst eine ausführliche Anleitung auf marcel-kapfer.de/writtenmorse/\#howto_android finden.\n
\nFehlender Code
Wenn Du auf einen fehlenden Code aufmerksam geworden bist, dann schreibe eine E-Mail an marcelmichaelkapfer@yahoo.co.nz.\n
\n\n\n
+about=\n\nVersion
1.9.1 alpha\n
\n\nEntwickler
Marcel Michael Kapfer\n
\n\nWebsite
marcel-kapfer.de/writtenmorse\n
\n\nKontakt
marcelmichaelkapfer@yahoo.co.nz\n
\n\nLizenz
GNU GPL v3.0\n
\n\nFehler
Wenn Du einen Fehler gefunden hast, schreibe mir bitte ein E-Mail an marcelmichaelkapfer@yahoo.co.nz\n
\n\nHow to
Du kannst eine ausführliche Anleitung auf marcel-kapfer.de/writtenmorse/\#howto_android finden.\n
\nFehlender Code
Wenn Du auf einen fehlenden Code aufmerksam geworden bist, dann schreibe eine E-Mail an marcelmichaelkapfer@yahoo.co.nz.\n
\n\n
aboutUpdateAvailable=Update verfügbar
aboutUpdateAvailableButton=Update installieren
inputText=Geben Sie einen Text ein
diff --git a/src/de/marcelkapfer/c/morseconverter/update/Update.java b/src/de/marcelkapfer/c/morseconverter/update/Update.java
old mode 100644
new mode 100755
diff --git a/src/de/marcelkapfer/c/morseconverter/update/UpdateDialog.form b/src/de/marcelkapfer/c/morseconverter/update/UpdateDialog.form
old mode 100644
new mode 100755
diff --git a/src/de/marcelkapfer/c/morseconverter/update/UpdateDialog.java b/src/de/marcelkapfer/c/morseconverter/update/UpdateDialog.java
old mode 100644
new mode 100755