diff --git a/jar/JNUSTool.jar b/jar/JNUSTool.jar index 718d764..8e4d0da 100644 Binary files a/jar/JNUSTool.jar and b/jar/JNUSTool.jar differ diff --git a/src/de/mas/jnustool/Progress.java b/src/de/mas/jnustool/Progress.java index 36c2870..0ff2f98 100644 --- a/src/de/mas/jnustool/Progress.java +++ b/src/de/mas/jnustool/Progress.java @@ -86,7 +86,20 @@ public class Progress { } public void finish() { - setCurrent(getTotalOfSingle()); + setCurrent(getTotalOfSingle()); + } + + private boolean inprogress = false; + + public void operationStart() { + inprogress = true; + } + public void operationFinish() { + inprogress = false; + } + + public boolean isInProgress(){ + return inprogress; } } diff --git a/src/de/mas/jnustool/Starter.java b/src/de/mas/jnustool/Starter.java index 2516f7a..dacd427 100644 --- a/src/de/mas/jnustool/Starter.java +++ b/src/de/mas/jnustool/Starter.java @@ -22,7 +22,7 @@ public class Starter { private static String updateCSVPath; public static void main(String[] args) { - Logger.log("JNUSTool 0.0.3 - pre alpha - by Maschell"); + Logger.log("JNUSTool 0.0.4 - pre alpha - by Maschell"); Logger.log(""); try { readConfig(); diff --git a/src/de/mas/jnustool/gui/NUSGUI.java b/src/de/mas/jnustool/gui/NUSGUI.java index 803174a..e82b319 100644 --- a/src/de/mas/jnustool/gui/NUSGUI.java +++ b/src/de/mas/jnustool/gui/NUSGUI.java @@ -17,7 +17,12 @@ import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; import de.mas.jnustool.FEntry; +import de.mas.jnustool.Logger; import de.mas.jnustool.NUSTitle; +import de.mas.jnustool.Progress; +import de.mas.jnustool.ProgressUpdateListener; + +import javax.swing.JProgressBar; public class NUSGUI extends JFrame { @@ -47,25 +52,47 @@ public class NUSGUI extends JFrame { panel.add(qPane); splitPane.setLeftComponent(panel); + JPanel panel_1 = new JPanel(); + panel.add(panel_1, BorderLayout.SOUTH); + JButton btnNewButton = new JButton("Download"); - panel.add(btnNewButton, BorderLayout.SOUTH); + panel_1.add(btnNewButton); + + JProgressBar progressBar = new JProgressBar(); + panel_1.add(progressBar); + + progressBar.setValue(0); + Progress progress = new Progress(); + progress.setProgressUpdateListener(new ProgressUpdateListener() { + + @Override + public void updatePerformed(Progress p) { + progressBar.setValue((int)p.statusInPercent()); + } + }); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - new Thread(new Runnable() { public void run() { - - List list = new ArrayList<>(); - TreePath[] paths = cbt.getCheckedPaths(); - for (TreePath tp : paths) { - Object obj = tp.getPath()[tp.getPath().length-1]; - if(((DefaultMutableTreeNode)obj).getUserObject() instanceof FEntry){ - list.add((FEntry) ((DefaultMutableTreeNode)obj).getUserObject()); - } - } - - nus.decryptFEntries(list, null); - }}).start(); - + if(!progress.isInProgress()){ + progress.clear(); + progress.operationStart(); + new Thread(new Runnable() { public void run() { + + List list = new ArrayList<>(); + TreePath[] paths = cbt.getCheckedPaths(); + for (TreePath tp : paths) { + Object obj = tp.getPath()[tp.getPath().length-1]; + if(((DefaultMutableTreeNode)obj).getUserObject() instanceof FEntry){ + list.add((FEntry) ((DefaultMutableTreeNode)obj).getUserObject()); + } + } + nus.decryptFEntries(list, progress); + progress.operationFinish(); + Logger.messageBox("Finished"); + }}).start(); + }else{ + Logger.messageBox("Operation still in progress, please wait"); + } } }); JScrollPane outputPane = new JScrollPane(output, diff --git a/src/de/mas/jnustool/gui/UpdateChooser.java b/src/de/mas/jnustool/gui/UpdateChooser.java index 9ecb2df..9f063ae 100644 --- a/src/de/mas/jnustool/gui/UpdateChooser.java +++ b/src/de/mas/jnustool/gui/UpdateChooser.java @@ -27,6 +27,7 @@ import javax.swing.ScrollPaneConstants; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import de.mas.jnustool.Logger; import de.mas.jnustool.Progress; import de.mas.jnustool.ProgressUpdateListener; import de.mas.jnustool.Starter; @@ -154,20 +155,21 @@ public class UpdateChooser extends JPanel { btnDownloadMeta.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - if(progressBar_1.getValue() == 0 || progressBar_1.getValue() == 100){ - progressBar_1.setValue(1); + if(!progress.isInProgress()){ progress.clear(); + progress.operationStart(); new Thread(new Runnable(){ @Override public void run() { Starter.downloadMeta(output_,progress); - JOptionPane.showMessageDialog(window, "Finished"); + progress.operationFinish(); + Logger.messageBox("Finished"); } }).start(); }else{ - JOptionPane.showMessageDialog(window, "Operation still in progress, please wait"); + Logger.messageBox("Operation still in progress, please wait"); } } });