From bf24ecdab09e3b7772b34bac2b87b264d83092cd Mon Sep 17 00:00:00 2001 From: Seelenoede Date: Wed, 21 Aug 2019 15:00:31 +0200 Subject: [PATCH] - Fixed things GUIn the Engine class - changed from Swing GUI to JavaFX GUI - added release 0.3 --- releases/GetYourFilesOutThere 0.3.jar | Bin 0 -> 6909 bytes .../getyourfilesoutthere/Engine.java | 9 +- .../seelenoede/getyourfilesoutthere/GUI.fxml | 58 ++++++ .../seelenoede/getyourfilesoutthere/Main.java | 95 ++++++++++ .../getyourfilesoutthere/MainForm.java | 167 ------------------ 5 files changed, 158 insertions(+), 171 deletions(-) create mode 100644 releases/GetYourFilesOutThere 0.3.jar create mode 100644 src/eu/seelenoede/getyourfilesoutthere/GUI.fxml create mode 100644 src/eu/seelenoede/getyourfilesoutthere/Main.java delete mode 100644 src/eu/seelenoede/getyourfilesoutthere/MainForm.java diff --git a/releases/GetYourFilesOutThere 0.3.jar b/releases/GetYourFilesOutThere 0.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..db0800c5e503895a268d261fb100a46914a21a63 GIT binary patch literal 6909 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 I!+rktKej6Ol>h($ literal 0 HcmV?d00001 diff --git a/src/eu/seelenoede/getyourfilesoutthere/Engine.java b/src/eu/seelenoede/getyourfilesoutthere/Engine.java index 39cc175..4371c34 100644 --- a/src/eu/seelenoede/getyourfilesoutthere/Engine.java +++ b/src/eu/seelenoede/getyourfilesoutthere/Engine.java @@ -12,7 +12,7 @@ public class Engine { private SettingsFilter filter; public Engine() { - + filter = new SettingsFilter(); } /** @@ -27,7 +27,7 @@ public class Engine { String parentDir = dir.getCanonicalFile().getParent(); File[] files; - if(filter.extensions.size() == 1 && filter.extensions.get(0).equals("")) + if(filter.extensions.size() == 0) files = dir.listFiles(); else files = dir.listFiles(filter); @@ -45,9 +45,10 @@ public class Engine { } protected void setExtensionSettings(String extensionString) { - String[] extensions = extensionString.split(","); - if (extensions.length == 0) + if(extensionString.equals("")) { return; + } + String[] extensions = extensionString.split(","); for(String extension:extensions) { filter.extensions.add(extension.trim()); } diff --git a/src/eu/seelenoede/getyourfilesoutthere/GUI.fxml b/src/eu/seelenoede/getyourfilesoutthere/GUI.fxml new file mode 100644 index 0000000..8f91c17 --- /dev/null +++ b/src/eu/seelenoede/getyourfilesoutthere/GUI.fxml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + +
+ +
+ + +
diff --git a/src/eu/seelenoede/getyourfilesoutthere/Main.java b/src/eu/seelenoede/getyourfilesoutthere/Main.java new file mode 100644 index 0000000..62684e3 --- /dev/null +++ b/src/eu/seelenoede/getyourfilesoutthere/Main.java @@ -0,0 +1,95 @@ +package eu.seelenoede.getyourfilesoutthere; + +import java.io.File; +import java.io.IOException; + +import javax.swing.JFileChooser; + +import javafx.application.Application; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.stage.Stage; + +public class Main extends Application { + + private boolean alreadyRunning; + private File[] dirs; + private Engine engine; + + @FXML Label lblDone; + @FXML TextField textField_dirs; + @FXML TextField textField_extensions; + + @FXML + public void initialize() { + engine = new Engine(); + alreadyRunning = false; + } + + @Override + public void start(Stage primaryStage) throws IOException { + Parent root = FXMLLoader.load(getClass().getResource("GUI.fxml")); + + Scene scene = new Scene(root); + primaryStage.setTitle("Get Your Files Out There"); + primaryStage.setScene(scene); + primaryStage.show(); + } + + public static void main(String[] args) { + launch(args); + } + + @FXML + private void handleBrowseButtonAction(ActionEvent event) { + selectDirs(); + } + + @FXML + private void handleStartButtonAction(ActionEvent event) { + Thread noBlock = new Thread() { + public void run() { + engine.setExtensionSettings(textField_extensions.getText()); + resetElements(); + engine.extractFiles(dirs); + alreadyRunning = false; + lblDone.setVisible(true); + } + }; + if ((!alreadyRunning) & (dirs!=null)) { + noBlock.start(); + alreadyRunning = true; + } + } + + private void resetElements() { + lblDone.setVisible(false); + } + + private void selectDirs() { + if(alreadyRunning){ + return; + } + JFileChooser chooser = new JFileChooser(); + chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + chooser.setMultiSelectionEnabled(true); + int val = chooser.showOpenDialog(null); + + if (val == JFileChooser.APPROVE_OPTION) { + dirs = chooser.getSelectedFiles(); + String selectedDirs = ""; + for (File dir:dirs) + { + selectedDirs = selectedDirs + "\"" + dir.getAbsolutePath() + "\"; "; + } + textField_dirs.setText(selectedDirs); + } + } + + +} diff --git a/src/eu/seelenoede/getyourfilesoutthere/MainForm.java b/src/eu/seelenoede/getyourfilesoutthere/MainForm.java deleted file mode 100644 index 11121a6..0000000 --- a/src/eu/seelenoede/getyourfilesoutthere/MainForm.java +++ /dev/null @@ -1,167 +0,0 @@ -package eu.seelenoede.getyourfilesoutthere; - -import java.io.File; - -import javax.swing.JFrame; -import javax.swing.JTextField; - -import java.awt.BorderLayout; - -import javax.swing.JPanel; -import javax.swing.JLabel; -import javax.swing.JButton; -import javax.swing.SwingUtilities; - -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; -import java.awt.Color; - -import javax.swing.JFileChooser; -import javax.swing.BoxLayout; -import java.awt.FlowLayout; - -public class MainForm { - - private JFrame frmGetYourFiles; - private JTextField textField; - private JTextField textField_extensions; - private JButton btnBrowse; - private JButton btnStart; - private JLabel lblDone; - - private boolean alreadyRunning; - private File[] dirs; - private Engine engine; - - /** - * Launch the application. - */ - public static void main(String[] args) { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - try { - MainForm window = new MainForm(); - window.frmGetYourFiles.setVisible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - } - - /** - * Create the application. - */ - public MainForm() { - engine = new Engine(); - initialize(); - initActions(); - } - - /** - * Initialize the contents of the frame. - */ - private void initialize() { - alreadyRunning = false; - frmGetYourFiles = new JFrame("Get Your Files Out There"); - frmGetYourFiles.setTitle("Get Your Files Out There"); - frmGetYourFiles.getContentPane().setBackground(Color.LIGHT_GRAY); - frmGetYourFiles.setResizable(false); - frmGetYourFiles.setBackground(Color.WHITE); - frmGetYourFiles.setBounds(100, 100, 489, 150); - frmGetYourFiles.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frmGetYourFiles.setLocationRelativeTo(null); - frmGetYourFiles.getContentPane().setLayout(new BorderLayout(0, 0)); - - JPanel panel = new JPanel(); - frmGetYourFiles.getContentPane().add(panel, BorderLayout.NORTH); - panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); - - JPanel panel_path = new JPanel(); - panel.add(panel_path); - panel_path.setBackground(Color.WHITE); - - JLabel lblPath = new JLabel("Path: "); - panel_path.add(lblPath); - - textField = new JTextField(); - textField.setEditable(false); - panel_path.add(textField); - textField.setColumns(30); - - btnBrowse = new JButton("Browse"); - btnBrowse.setBackground(Color.LIGHT_GRAY); - panel_path.add(btnBrowse); - - JPanel panel_settings = new JPanel(); - panel_settings.setBackground(Color.WHITE); - panel.add(panel_settings); - panel_settings.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); - - JLabel lblSettings = new JLabel("Extensions: "); - panel_settings.add(lblSettings); - - textField_extensions = new JTextField(); - panel_settings.add(textField_extensions); - textField_extensions.setColumns(35); - - btnStart = new JButton("Start"); - frmGetYourFiles.getContentPane().add(btnStart, BorderLayout.SOUTH); - btnStart.setSelected(true); - btnStart.setBackground(Color.LIGHT_GRAY); - - frmGetYourFiles.getRootPane().setDefaultButton(btnStart); - - JPanel panel_progress = new JPanel(); - panel_progress.setBackground(Color.WHITE); - frmGetYourFiles.getContentPane().add(panel_progress, BorderLayout.CENTER); - - lblDone = new JLabel(""); - panel_progress.add(lblDone); - } - - private void initActions() { - btnBrowse.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if(alreadyRunning){ - return; - } - JFileChooser chooser = new JFileChooser(); - chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - chooser.setMultiSelectionEnabled(true); - int val = chooser.showOpenDialog(null); - - if (val == JFileChooser.APPROVE_OPTION) { - dirs = chooser.getSelectedFiles(); - String selectedDirs = ""; - for (File dir:dirs) - { - selectedDirs = selectedDirs + "\"" + dir.getAbsolutePath() + "\"; "; - } - textField.setText(selectedDirs); - } - } - }); - - btnStart.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - Thread noBlock = new Thread() { - public void run() { - engine.setExtensionSettings(textField_extensions.getText()); - resetElements(); - engine.extractFiles(dirs); - } - }; - if ((!alreadyRunning) & (dirs!=null)) { - noBlock.start(); - alreadyRunning = true; - } - - } - }); - } - - private void resetElements() { - lblDone.setText(""); - } -} \ No newline at end of file