diff --git a/src/main/java/ui/MarkingFrame.java b/src/main/java/ui/MarkingFrame.java index 2bc1c29..6123798 100644 --- a/src/main/java/ui/MarkingFrame.java +++ b/src/main/java/ui/MarkingFrame.java @@ -13,6 +13,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -42,6 +43,8 @@ private final SubmissionFrame parent; private final String assessment; private final JCheckBox cbExpandable; + + private boolean isComplete = false; @SuppressWarnings("Convert2Lambda") public MarkingFrame(SubmissionFrame parent, String assessment) { @@ -144,6 +147,7 @@ private void save() { if (!resultDao.isComplete()) { + this.isComplete = false; int res = JOptionPane.showConfirmDialog(MarkingFrame.this, "You haven't entered values for all criteria. Are you sure you want save?", "Incomplete", JOptionPane.OK_CANCEL_OPTION); if (JOptionPane.OK_OPTION == res) { resultDao.save(student.getSubmissionId()); @@ -151,6 +155,7 @@ dispose(); } } else { + this.isComplete = true; resultDao.save(student.getSubmissionId()); parent.refresh(); Collection> result = resultDao.getResult(student.getId()); @@ -243,13 +248,15 @@ private void saveAndEmail() { save(); - new Thread(new Runnable() { - @Override - public void run() { + // only send email if the marking is complete + if (isComplete) { + + CompletableFuture.runAsync(() -> { createReport(); emailReport(); - } - }).start(); + }); + + } }