diff --git a/app/build.gradle b/app/build.gradle index dfe5e7a..dc7f878 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ dependencies { } application { - getMainClass().set('eu.salif.sinhrz.gui.App') + mainClass = 'eu.salif.sinhrz.GuiApp' } jar { diff --git a/app/src/main/java/eu/salif/sinhrz/App.java b/app/src/main/java/eu/salif/sinhrz/CliApp.java similarity index 90% rename from app/src/main/java/eu/salif/sinhrz/App.java rename to app/src/main/java/eu/salif/sinhrz/CliApp.java index 17c4a71..0200003 100644 --- a/app/src/main/java/eu/salif/sinhrz/App.java +++ b/app/src/main/java/eu/salif/sinhrz/CliApp.java @@ -16,15 +16,18 @@ package eu.salif.sinhrz; +import eu.salif.sinhrz.errors.SinhrzException; import eu.salif.sinhrz.implementations.ArgsImpl; import eu.salif.sinhrz.implementations.SinhrzImpl; +import eu.salif.sinhrz.interfaces.Localisation; +import eu.salif.sinhrz.interfaces.Sinhrz; import eu.salif.sinhrz.localisations.BulgarianLocalisation; import eu.salif.sinhrz.localisations.EnglishLocalisation; import java.io.PrintStream; import java.util.Locale; -public class App { +public class CliApp { public static void main(String[] args) { Localisation localisation = getLocalisation(); PrintStream errStream = System.err; diff --git a/app/src/main/java/eu/salif/sinhrz/gui/App.java b/app/src/main/java/eu/salif/sinhrz/GuiApp.java similarity index 81% rename from app/src/main/java/eu/salif/sinhrz/gui/App.java rename to app/src/main/java/eu/salif/sinhrz/GuiApp.java index 88c2ad8..d7344f3 100644 --- a/app/src/main/java/eu/salif/sinhrz/gui/App.java +++ b/app/src/main/java/eu/salif/sinhrz/GuiApp.java @@ -14,10 +14,12 @@ * limitations under the License. */ -package eu.salif.sinhrz.gui; +package eu.salif.sinhrz; -public class App { +import eu.salif.sinhrz.gui.SinhrzFrame; + +public class GuiApp { public static void main(String[] args) { - new SinhrzFrame(eu.salif.sinhrz.App.getLocalisation()).setVisible(true); + new SinhrzFrame(CliApp.getLocalisation()).setVisible(true); } } diff --git a/app/src/main/java/eu/salif/sinhrz/SinhrzException.java b/app/src/main/java/eu/salif/sinhrz/errors/SinhrzException.java similarity index 91% rename from app/src/main/java/eu/salif/sinhrz/SinhrzException.java rename to app/src/main/java/eu/salif/sinhrz/errors/SinhrzException.java index 4719713..9503c37 100644 --- a/app/src/main/java/eu/salif/sinhrz/SinhrzException.java +++ b/app/src/main/java/eu/salif/sinhrz/errors/SinhrzException.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package eu.salif.sinhrz; +package eu.salif.sinhrz.errors; + +import eu.salif.sinhrz.interfaces.Localisation; import java.io.PrintStream; diff --git a/app/src/main/java/eu/salif/sinhrz/SinhrzWarning.java b/app/src/main/java/eu/salif/sinhrz/errors/SinhrzWarning.java similarity index 91% rename from app/src/main/java/eu/salif/sinhrz/SinhrzWarning.java rename to app/src/main/java/eu/salif/sinhrz/errors/SinhrzWarning.java index 67a1b0a..4c18543 100644 --- a/app/src/main/java/eu/salif/sinhrz/SinhrzWarning.java +++ b/app/src/main/java/eu/salif/sinhrz/errors/SinhrzWarning.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package eu.salif.sinhrz; +package eu.salif.sinhrz.errors; + +import eu.salif.sinhrz.interfaces.Localisation; import java.io.PrintStream; diff --git a/app/src/main/java/eu/salif/sinhrz/gui/SinhrzFrame.java b/app/src/main/java/eu/salif/sinhrz/gui/SinhrzFrame.java index b8768e4..2c274b4 100644 --- a/app/src/main/java/eu/salif/sinhrz/gui/SinhrzFrame.java +++ b/app/src/main/java/eu/salif/sinhrz/gui/SinhrzFrame.java @@ -16,10 +16,10 @@ package eu.salif.sinhrz.gui; -import eu.salif.sinhrz.Args; -import eu.salif.sinhrz.Localisation; -import eu.salif.sinhrz.Sinhrz; -import eu.salif.sinhrz.SinhrzException; +import eu.salif.sinhrz.interfaces.Args; +import eu.salif.sinhrz.interfaces.Localisation; +import eu.salif.sinhrz.interfaces.Sinhrz; +import eu.salif.sinhrz.errors.SinhrzException; import eu.salif.sinhrz.implementations.ArgsImpl; import eu.salif.sinhrz.implementations.SinhrzImpl; @@ -31,7 +31,7 @@ import java.io.PrintStream; import java.nio.file.Path; -class SinhrzFrame extends JFrame implements ActionListener { +public class SinhrzFrame extends JFrame implements ActionListener { private final Localisation localisation; private JTextField inputSinhrzFileName; private JTextField inputSinhrzLockFileName; @@ -44,9 +44,9 @@ class SinhrzFrame extends JFrame implements ActionListener { private PrintStream errStream; private PrintStream outStream; - SinhrzFrame(Localisation localisation) { + public SinhrzFrame(Localisation localisation) { this.localisation = localisation; - setTitle(this.localisation.NAME() + " | " + this.localisation.LOC_NAME()); + setTitle(String.format("%s | %s", this.localisation.NAME(), this.localisation.LOC_NAME())); setSize(500, 500); setLayout(null); addElements(); @@ -214,19 +214,22 @@ public boolean getDoInit() { return inputDoInit.isSelected(); } - @Override - public boolean getDoVerbose() { - return inputDoVerbose.isSelected(); - } - }); + @Override + public boolean getDoVerbose() { + return inputDoVerbose.isSelected(); + } + }); boolean success = sinhrz.sync(); if (success) { - JOptionPane.showMessageDialog(this, outOutputStream.toString()); + JTextArea textArea = new JTextArea(outOutputStream.toString()); + JScrollPane scrollPane = new JScrollPane(textArea); + textArea.setEditable(false); + scrollPane.setPreferredSize(new Dimension(400, 200)); + JOptionPane.showMessageDialog(this, scrollPane); } } catch (SinhrzException sinhrzException) { sinhrzException.print(localisation, errStream); - JOptionPane.showMessageDialog(this, - errOutputStream.toString(), + JOptionPane.showMessageDialog(this, errOutputStream.toString(), this.localisation.ERROR_MESSAGE(), JOptionPane.ERROR_MESSAGE); } } diff --git a/app/src/main/java/eu/salif/sinhrz/implementations/ArgsImpl.java b/app/src/main/java/eu/salif/sinhrz/implementations/ArgsImpl.java index f215714..73253c0 100644 --- a/app/src/main/java/eu/salif/sinhrz/implementations/ArgsImpl.java +++ b/app/src/main/java/eu/salif/sinhrz/implementations/ArgsImpl.java @@ -16,9 +16,9 @@ package eu.salif.sinhrz.implementations; -import eu.salif.sinhrz.Args; -import eu.salif.sinhrz.Localisation; -import eu.salif.sinhrz.SinhrzException; +import eu.salif.sinhrz.interfaces.Args; +import eu.salif.sinhrz.interfaces.Localisation; +import eu.salif.sinhrz.errors.SinhrzException; import java.io.PrintStream; import java.nio.file.Path; diff --git a/app/src/main/java/eu/salif/sinhrz/implementations/SinhrzImpl.java b/app/src/main/java/eu/salif/sinhrz/implementations/SinhrzImpl.java index b922390..ce0538b 100644 --- a/app/src/main/java/eu/salif/sinhrz/implementations/SinhrzImpl.java +++ b/app/src/main/java/eu/salif/sinhrz/implementations/SinhrzImpl.java @@ -16,10 +16,10 @@ package eu.salif.sinhrz.implementations; -import eu.salif.sinhrz.Args; -import eu.salif.sinhrz.Sinhrz; -import eu.salif.sinhrz.SinhrzException; -import eu.salif.sinhrz.SinhrzWarning; +import eu.salif.sinhrz.interfaces.Args; +import eu.salif.sinhrz.interfaces.Sinhrz; +import eu.salif.sinhrz.errors.SinhrzException; +import eu.salif.sinhrz.errors.SinhrzWarning; import java.io.File; import java.io.IOException; @@ -41,6 +41,19 @@ public SinhrzImpl() { @Override public void setArgs(Args args) throws SinhrzException { this.args = args; + if (this.args.getDoVerbose()) { + String m = String.format("%s: '%s'%n%s: '%s'%n%s: '%s'%n%s: '%s'%n", + this.args.getLocalisation().GUI_LOCAL_LABEL(), + this.args.getLocalLabel(), + this.args.getLocalisation().GUI_LOCAL_PATH(), + this.args.getLocalPath().toAbsolutePath(), + this.args.getLocalisation().GUI_REMOTE_LABEL(), + this.args.getRemoteLabel(), + this.args.getLocalisation().GUI_REMOTE_PATH(), + this.args.getRemotePath().toAbsolutePath()); + this.args.getErrStream().print(m); + this.args.getOutStream().print(m); + } this.setPaths(); this.validateArgs(); this.setFileNameFilter(new FileNameFilter(this.args.getSinhrzFileName(), this.args.getSinhrzLockFileName())); @@ -138,13 +151,6 @@ private Set list(File f, Path p) { @Override public boolean sync() throws SinhrzException { this.lock(); - if (this.args.getDoVerbose()) { - this.args.getOutStream().printf("'%s': '%s'%n'%s': '%s'%n", - this.args.getLocalLabel(), - this.args.getLocalPath().toAbsolutePath(), - this.args.getRemoteLabel(), - this.args.getRemotePath().toAbsolutePath()); - } try { List sinhrzFiles = Files.readAllLines(this.paths.getLocalSinhrzFilePath()); Set localFiles = list(this.args.getLocalPath().toFile(), Path.of("")); diff --git a/app/src/main/java/eu/salif/sinhrz/Args.java b/app/src/main/java/eu/salif/sinhrz/interfaces/Args.java similarity index 96% rename from app/src/main/java/eu/salif/sinhrz/Args.java rename to app/src/main/java/eu/salif/sinhrz/interfaces/Args.java index ab3829a..cc9b7de 100644 --- a/app/src/main/java/eu/salif/sinhrz/Args.java +++ b/app/src/main/java/eu/salif/sinhrz/interfaces/Args.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.salif.sinhrz; +package eu.salif.sinhrz.interfaces; import java.io.PrintStream; import java.nio.file.Path; diff --git a/app/src/main/java/eu/salif/sinhrz/Localisation.java b/app/src/main/java/eu/salif/sinhrz/interfaces/Localisation.java similarity index 98% rename from app/src/main/java/eu/salif/sinhrz/Localisation.java rename to app/src/main/java/eu/salif/sinhrz/interfaces/Localisation.java index 7a5e015..90a67a3 100644 --- a/app/src/main/java/eu/salif/sinhrz/Localisation.java +++ b/app/src/main/java/eu/salif/sinhrz/interfaces/Localisation.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.salif.sinhrz; +package eu.salif.sinhrz.interfaces; public abstract class Localisation { diff --git a/app/src/main/java/eu/salif/sinhrz/Sinhrz.java b/app/src/main/java/eu/salif/sinhrz/interfaces/Sinhrz.java similarity index 89% rename from app/src/main/java/eu/salif/sinhrz/Sinhrz.java rename to app/src/main/java/eu/salif/sinhrz/interfaces/Sinhrz.java index 4b7ff60..432f274 100644 --- a/app/src/main/java/eu/salif/sinhrz/Sinhrz.java +++ b/app/src/main/java/eu/salif/sinhrz/interfaces/Sinhrz.java @@ -14,9 +14,12 @@ * limitations under the License. */ -package eu.salif.sinhrz; +package eu.salif.sinhrz.interfaces; + +import eu.salif.sinhrz.errors.SinhrzException; public interface Sinhrz { void setArgs(Args args) throws SinhrzException; + boolean sync() throws SinhrzException; } diff --git a/app/src/main/java/eu/salif/sinhrz/localisations/BulgarianLocalisation.java b/app/src/main/java/eu/salif/sinhrz/localisations/BulgarianLocalisation.java index 1338cb3..ca00553 100644 --- a/app/src/main/java/eu/salif/sinhrz/localisations/BulgarianLocalisation.java +++ b/app/src/main/java/eu/salif/sinhrz/localisations/BulgarianLocalisation.java @@ -16,7 +16,7 @@ package eu.salif.sinhrz.localisations; -import eu.salif.sinhrz.Localisation; +import eu.salif.sinhrz.interfaces.Localisation; public class BulgarianLocalisation extends Localisation { @Override @@ -106,7 +106,7 @@ public String INFO_COPYING_FROM_TO(String s, String f, String t) { @Override public String ERROR_IS_NOT_INIT(String s) { - return String.format("'%s' не е инициализирано", s); + return String.format("'%s' не е инициализирана", s); } @Override diff --git a/app/src/main/java/eu/salif/sinhrz/localisations/EnglishLocalisation.java b/app/src/main/java/eu/salif/sinhrz/localisations/EnglishLocalisation.java index 37a3547..c9b4cde 100644 --- a/app/src/main/java/eu/salif/sinhrz/localisations/EnglishLocalisation.java +++ b/app/src/main/java/eu/salif/sinhrz/localisations/EnglishLocalisation.java @@ -16,7 +16,7 @@ package eu.salif.sinhrz.localisations; -import eu.salif.sinhrz.Localisation; +import eu.salif.sinhrz.interfaces.Localisation; public class EnglishLocalisation extends Localisation { diff --git a/res/sinhrz b/res/sinhrz index 0bd6cac..e36a764 100755 --- a/res/sinhrz +++ b/res/sinhrz @@ -1,2 +1,2 @@ #!/bin/sh -exec /usr/bin/env java -cp ./sinhrz.jar eu.salif.sinhrz.App "$@" +exec java -cp /usr/lib/sinhrz/app.jar eu.salif.sinhrz.CliApp "$@" diff --git a/res/sinhrz-gui b/res/sinhrz-gui index 22b16a7..eb556e1 100755 --- a/res/sinhrz-gui +++ b/res/sinhrz-gui @@ -1,2 +1,2 @@ #!/bin/sh -exec /usr/bin/env java -cp ./sinhrz.jar eu.salif.sinhrz.gui.App "$@" +exec java -cp /usr/lib/sinhrz/app.jar eu.salif.sinhrz.GuiApp "$@" diff --git a/res/sinhrz.desktop b/res/sinhrz.desktop index 2322ea3..a0631ee 100755 --- a/res/sinhrz.desktop +++ b/res/sinhrz.desktop @@ -2,7 +2,7 @@ [Desktop Entry] Name=Sinhrz GenericName=Sinhrz -Comment=A simple folder synchronisation tool +Comment=A simple folder synchronization tool Icon=emblem-synchronizing Type=Application Categories=Utility