diff --git a/src/main/java/de/vogel612/helper/Main.java b/src/main/java/de/vogel612/helper/Main.java index 3f5af45..b771a13 100644 --- a/src/main/java/de/vogel612/helper/Main.java +++ b/src/main/java/de/vogel612/helper/Main.java @@ -3,11 +3,10 @@ import de.vogel612.helper.ui.OverviewModel; import de.vogel612.helper.ui.OverviewPresenter; import de.vogel612.helper.ui.OverviewView; +import de.vogel612.helper.ui.OverviewModelImpl; +import de.vogel612.helper.ui.OverviewPresenterImpl; +import de.vogel612.helper.ui.OverviewViewImpl; import de.vogel612.helper.ui.TranslationPresenter; -import de.vogel612.helper.ui.impl.OverviewModelImpl; -import de.vogel612.helper.ui.impl.OverviewPresenterImpl; -import de.vogel612.helper.ui.impl.OverviewViewImpl; -import de.vogel612.helper.ui.impl.TranslationPresenterImpl; import java.nio.file.Path; import java.nio.file.Paths; @@ -37,7 +36,7 @@ public static void main(final String[] args) { return; } - TranslationPresenter tp = new TranslationPresenterImpl(); + TranslationPresenter tp = new TranslationPresenter(); OverviewModel m = new OverviewModelImpl(); OverviewView v = new OverviewViewImpl(); diff --git a/src/main/java/de/vogel612/helper/ui/impl/OverviewModelImpl.java b/src/main/java/de/vogel612/helper/ui/OverviewModelImpl.java similarity index 98% rename from src/main/java/de/vogel612/helper/ui/impl/OverviewModelImpl.java rename to src/main/java/de/vogel612/helper/ui/OverviewModelImpl.java index aedda3a..e961733 100644 --- a/src/main/java/de/vogel612/helper/ui/impl/OverviewModelImpl.java +++ b/src/main/java/de/vogel612/helper/ui/OverviewModelImpl.java @@ -1,4 +1,4 @@ -package de.vogel612.helper.ui.impl; +package de.vogel612.helper.ui; import org.jdom2.Document; import org.jdom2.Element; @@ -10,8 +10,6 @@ import org.jdom2.xpath.XPathExpression; import org.jdom2.xpath.XPathFactory; import de.vogel612.helper.data.Translation; -import de.vogel612.helper.ui.OverviewModel; -import de.vogel612.helper.ui.OverviewPresenter; import java.io.IOException; import java.io.OutputStream; diff --git a/src/main/java/de/vogel612/helper/ui/impl/OverviewPresenterImpl.java b/src/main/java/de/vogel612/helper/ui/OverviewPresenterImpl.java similarity index 97% rename from src/main/java/de/vogel612/helper/ui/impl/OverviewPresenterImpl.java rename to src/main/java/de/vogel612/helper/ui/OverviewPresenterImpl.java index cf609a7..4f7f3da 100644 --- a/src/main/java/de/vogel612/helper/ui/impl/OverviewPresenterImpl.java +++ b/src/main/java/de/vogel612/helper/ui/OverviewPresenterImpl.java @@ -1,4 +1,4 @@ -package de.vogel612.helper.ui.impl; +package de.vogel612.helper.ui; import de.vogel612.helper.data.Side; import de.vogel612.helper.data.Translation; @@ -21,8 +21,7 @@ public class OverviewPresenterImpl implements OverviewPresenter { private boolean initialized = false; - public OverviewPresenterImpl(final OverviewModel m, final OverviewView v, - final TranslationPresenter p) { + public OverviewPresenterImpl(final OverviewModel m, final OverviewView v, final TranslationPresenter p) { model = m; view = v; translationPresenter = p; diff --git a/src/main/java/de/vogel612/helper/ui/impl/OverviewViewImpl.java b/src/main/java/de/vogel612/helper/ui/OverviewViewImpl.java similarity index 99% rename from src/main/java/de/vogel612/helper/ui/impl/OverviewViewImpl.java rename to src/main/java/de/vogel612/helper/ui/OverviewViewImpl.java index dd634cd..94260ef 100644 --- a/src/main/java/de/vogel612/helper/ui/impl/OverviewViewImpl.java +++ b/src/main/java/de/vogel612/helper/ui/OverviewViewImpl.java @@ -1,4 +1,4 @@ -package de.vogel612.helper.ui.impl; +package de.vogel612.helper.ui; import static de.vogel612.helper.ui.util.UiBuilder.addToGridBag; import static java.awt.GridBagConstraints.BOTH; diff --git a/src/main/java/de/vogel612/helper/ui/TranslationPresenter.java b/src/main/java/de/vogel612/helper/ui/TranslationPresenter.java index 4ba40c3..0ebb4bc 100644 --- a/src/main/java/de/vogel612/helper/ui/TranslationPresenter.java +++ b/src/main/java/de/vogel612/helper/ui/TranslationPresenter.java @@ -1,6 +1,12 @@ package de.vogel612.helper.ui; import de.vogel612.helper.data.Translation; +import de.vogel612.helper.ui.OverviewPresenter; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; /** *

@@ -10,7 +16,7 @@ *

*

*

- * TranslationPresenter tp = new TranslationPresenterImpl();
+ * TranslationPresenter tp = new TranslationPresenter();
  * tp.register(this);
  * tp.setRequestedTranslation(translation);
  * 
@@ -27,13 +33,153 @@ * @implNote Implementation will not happen with an additional separated View * interface, since there is in no way enough View-Logic to justify it */ -public interface TranslationPresenter { +public class TranslationPresenter { + + private static final Dimension WINDOW_SIZE = new Dimension(600, 200); + private static final String TITLE_FORMAT = "Translating - %s to %s"; + private final JFrame window; + private final JTextField input; + private final JButton submit; + private final JButton cancel; + + private final JLabel rootValueLabel; + + private OverviewPresenter overview; + private Translation translation; + + public TranslationPresenter() { + window = new JFrame("Translate:"); + input = new JTextField(); + submit = new JButton("okay"); + cancel = new JButton("cancel"); + + rootValueLabel = new JLabel(); + + doLayout(); + + } + + private void doLayout() { + window.setMinimumSize(WINDOW_SIZE); + window.setPreferredSize(WINDOW_SIZE); + window.setSize(WINDOW_SIZE); + window.setLayout(new GridBagLayout()); + + addRootValueLabel(); + addInputText(); + addCancel(); + addSubmit(); + } + + private void addSubmit() { + GridBagConstraints constraints = new GridBagConstraints(); + constraints.weightx = 1.0; + constraints.insets = new Insets(15, 15, 15, 15); + constraints.fill = GridBagConstraints.BOTH; + constraints.gridx = 1; + constraints.gridy = 2; + constraints.weighty = 0.33; + window.add(submit, constraints); + } + + private void addCancel() { + GridBagConstraints constraints = new GridBagConstraints(); + constraints.weightx = 1.0; + constraints.insets = new Insets(15, 15, 15, 15); + constraints.fill = GridBagConstraints.BOTH; + constraints.gridx = 0; + constraints.gridy = 2; + constraints.weighty = 0.33; + constraints.gridwidth = 1; + window.add(cancel, constraints); + } + + private void addInputText() { + GridBagConstraints constraints = new GridBagConstraints(); + constraints.weightx = 1.0; + constraints.insets = new Insets(15, 15, 15, 15); + constraints.fill = GridBagConstraints.BOTH; + constraints.gridx = 0; + constraints.gridy = 1; + constraints.gridwidth = GridBagConstraints.REMAINDER; + constraints.weighty = 0.33; + window.add(input, constraints); + + input.addKeyListener(new KeyListener() { + + @Override + public void keyPressed(final KeyEvent event) { + switch (event.getKeyCode()) { + case KeyEvent.VK_ESCAPE: + cancel.doClick(); + break; + case KeyEvent.VK_ENTER: + handleEnter(event); + break; + default: + break; + } + } + + private void handleEnter(final KeyEvent event) { + if (event.isShiftDown()) { + int caret = input.getCaretPosition(); + String newValue = input.getText(); + newValue = newValue.substring(0, caret) + "\r\n" + + newValue.substring(caret); + input.setText(newValue); + } else { + submit.doClick(); + } + } + + @Override + public void keyReleased(final KeyEvent event) { + // Ignore, bubbles to default + } + + @Override + public void keyTyped(final KeyEvent event) { + // Ignore, bubbles to default + } + + }); + } + + private void addRootValueLabel() { + GridBagConstraints constraints = new GridBagConstraints(); + constraints.weightx = 1.0; + constraints.insets = new Insets(15, 15, 15, 15); + constraints.fill = GridBagConstraints.BOTH; + constraints.gridx = 0; + constraints.gridy = 0; + constraints.gridwidth = GridBagConstraints.REMAINDER; + constraints.weighty = 0.33; + + window.add(rootValueLabel, constraints); + } - void register(OverviewPresenter p); + public void register(final OverviewPresenter p) { + overview = p; + } - void show(); + public void show() { + window.setVisible(true); + } - void hide(); + public void hide() { + window.setVisible(false); + } - void setRequestedTranslation(Translation left, Translation right); + public void setRequestedTranslation(Translation left, Translation right) { + this.translation = right; + this.rootValueLabel.setText(left.getValue()); + input.setText(translation.getValue()); + submit.addActionListener(event -> { + translation.setValue(input.getText()); + overview.onTranslationSubmit(translation); + }); + cancel.addActionListener(event -> overview.onTranslationAbort()); + window.setTitle(String.format(TITLE_FORMAT, translation.getKey(), translation.getLocale())); + } } diff --git a/src/main/java/de/vogel612/helper/ui/impl/TranslationPresenterImpl.java b/src/main/java/de/vogel612/helper/ui/impl/TranslationPresenterImpl.java deleted file mode 100644 index 1675b84..0000000 --- a/src/main/java/de/vogel612/helper/ui/impl/TranslationPresenterImpl.java +++ /dev/null @@ -1,165 +0,0 @@ -package de.vogel612.helper.ui.impl; - -import de.vogel612.helper.data.Translation; -import de.vogel612.helper.ui.OverviewPresenter; -import de.vogel612.helper.ui.TranslationPresenter; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; - -public class TranslationPresenterImpl implements TranslationPresenter { - - private static final Dimension WINDOW_SIZE = new Dimension(600, 200); - private static final String TITLE_FORMAT = "Translating - %s to %s"; - private final JFrame window; - private final JTextField input; - private final JButton submit; - private final JButton cancel; - - private final JLabel rootValueLabel; - - private OverviewPresenter overview; - private Translation translation; - - public TranslationPresenterImpl() { - window = new JFrame("Translate:"); - input = new JTextField(); - submit = new JButton("okay"); - cancel = new JButton("cancel"); - - rootValueLabel = new JLabel(); - - doLayout(); - - } - - private void doLayout() { - window.setMinimumSize(WINDOW_SIZE); - window.setPreferredSize(WINDOW_SIZE); - window.setSize(WINDOW_SIZE); - window.setLayout(new GridBagLayout()); - - addRootValueLabel(); - addInputText(); - addCancel(); - addSubmit(); - } - - private void addSubmit() { - GridBagConstraints constraints = new GridBagConstraints(); - constraints.weightx = 1.0; - constraints.insets = new Insets(15, 15, 15, 15); - constraints.fill = GridBagConstraints.BOTH; - constraints.gridx = 1; - constraints.gridy = 2; - constraints.weighty = 0.33; - window.add(submit, constraints); - } - - private void addCancel() { - GridBagConstraints constraints = new GridBagConstraints(); - constraints.weightx = 1.0; - constraints.insets = new Insets(15, 15, 15, 15); - constraints.fill = GridBagConstraints.BOTH; - constraints.gridx = 0; - constraints.gridy = 2; - constraints.weighty = 0.33; - constraints.gridwidth = 1; - window.add(cancel, constraints); - } - - private void addInputText() { - GridBagConstraints constraints = new GridBagConstraints(); - constraints.weightx = 1.0; - constraints.insets = new Insets(15, 15, 15, 15); - constraints.fill = GridBagConstraints.BOTH; - constraints.gridx = 0; - constraints.gridy = 1; - constraints.gridwidth = GridBagConstraints.REMAINDER; - constraints.weighty = 0.33; - window.add(input, constraints); - - input.addKeyListener(new KeyListener() { - - @Override - public void keyPressed(final KeyEvent event) { - switch (event.getKeyCode()) { - case KeyEvent.VK_ESCAPE: - cancel.doClick(); - break; - case KeyEvent.VK_ENTER: - handleEnter(event); - break; - default: - break; - } - } - - private void handleEnter(final KeyEvent event) { - if (event.isShiftDown()) { - int caret = input.getCaretPosition(); - String newValue = input.getText(); - newValue = newValue.substring(0, caret) + "\r\n" - + newValue.substring(caret); - input.setText(newValue); - } else { - submit.doClick(); - } - } - - @Override - public void keyReleased(final KeyEvent event) { - // Ignore, bubbles to default - } - - @Override - public void keyTyped(final KeyEvent event) { - // Ignore, bubbles to default - } - - }); - } - - private void addRootValueLabel() { - GridBagConstraints constraints = new GridBagConstraints(); - constraints.weightx = 1.0; - constraints.insets = new Insets(15, 15, 15, 15); - constraints.fill = GridBagConstraints.BOTH; - constraints.gridx = 0; - constraints.gridy = 0; - constraints.gridwidth = GridBagConstraints.REMAINDER; - constraints.weighty = 0.33; - - window.add(rootValueLabel, constraints); - } - - @Override - public void register(final OverviewPresenter p) { - overview = p; - } - - @Override - public void show() { - window.setVisible(true); - } - - @Override - public void hide() { - window.setVisible(false); - } - - @Override - public void setRequestedTranslation(Translation left, Translation right) { - this.translation = right; - this.rootValueLabel.setText(left.getValue()); - input.setText(translation.getValue()); - submit.addActionListener(event -> { - translation.setValue(input.getText()); - overview.onTranslationSubmit(translation); - }); - cancel.addActionListener(event -> overview.onTranslationAbort()); - window.setTitle(String.format(TITLE_FORMAT, translation.getKey(), translation.getLocale())); - } -} diff --git a/src/test/java/de/vogel612/helper/ui/OverviewModelTest.java b/src/test/java/de/vogel612/helper/ui/OverviewModelTest.java index 6156563..029cb34 100644 --- a/src/test/java/de/vogel612/helper/ui/OverviewModelTest.java +++ b/src/test/java/de/vogel612/helper/ui/OverviewModelTest.java @@ -7,7 +7,6 @@ import org.junit.Before; import org.junit.Test; import de.vogel612.helper.data.Translation; -import de.vogel612.helper.ui.impl.OverviewModelImpl; import java.net.URISyntaxException; import java.nio.file.Path; diff --git a/src/test/java/de/vogel612/helper/ui/OverviewPresenterTest.java b/src/test/java/de/vogel612/helper/ui/OverviewPresenterTest.java index f990d34..bbba556 100644 --- a/src/test/java/de/vogel612/helper/ui/OverviewPresenterTest.java +++ b/src/test/java/de/vogel612/helper/ui/OverviewPresenterTest.java @@ -9,7 +9,6 @@ import org.junit.Before; import org.junit.Test; import de.vogel612.helper.data.Translation; -import de.vogel612.helper.ui.impl.OverviewPresenterImpl; import java.nio.file.Path; import java.util.Arrays;