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