diff --git a/src/main/java/Exceptions/ProjectionNotSpecified.java b/src/main/java/Exceptions/ProjectionNotSpecified.java
new file mode 100644
index 0000000..1f70946
--- /dev/null
+++ b/src/main/java/Exceptions/ProjectionNotSpecified.java
@@ -0,0 +1,7 @@
+package Exceptions;
+
+public class ProjectionNotSpecified extends Exception {
+ public ProjectionNotSpecified() {
+ super("Can't edit without a specified projection !");
+ }
+}
diff --git a/src/main/java/GUI/Agenda/Agenda.java b/src/main/java/GUI/Agenda/Agenda.java
index 1c5b770..b72229c 100644
--- a/src/main/java/GUI/Agenda/Agenda.java
+++ b/src/main/java/GUI/Agenda/Agenda.java
@@ -2,6 +2,7 @@ package GUI.Agenda;
import DB.Competition;
import DB.Projection;
+import Exceptions.ProjectionNotSpecified;
import GUI.ProjectionHandler;
import GUI.Types.CompetType;
import GUI.Types.ProjectionType;
@@ -159,13 +160,16 @@ public class Agenda extends JPanel {
}
}
- protected void openDialog(ProjectionType projectionType) {
- ProjectionHandler dialog = new ProjectionHandler(projectionType, this);
- dialog.pack();
- dialog.setVisible(true);
+ public void openDialog(ProjectionType projectionType) {
+ try {
+ ProjectionHandler dialog = new ProjectionHandler(projectionType, this);
+ dialog.pack();
+ dialog.setVisible(true);
+ } catch (ProjectionNotSpecified ignored) {
+ }
}
- protected void openDialog(ProjectionType projectionType, Projection projection) {
+ public void openDialog(ProjectionType projectionType, Projection projection) {
ProjectionHandler dialog = new ProjectionHandler(projectionType, this, projection);
dialog.pack();
dialog.setVisible(true);
diff --git a/src/main/java/GUI/GUI.java b/src/main/java/GUI/GUI.java
index b939d2c..6417f6f 100644
--- a/src/main/java/GUI/GUI.java
+++ b/src/main/java/GUI/GUI.java
@@ -20,17 +20,12 @@ public class GUI extends JFrame implements ActionListener {
private JMenuBar menuBar = new JMenuBar();
private JMenu menuFichier = new JMenu("File");
private JMenuItem menuItemAddProj = new JMenuItem("Add projection");
- private JMenuItem menuItemEditProj = new JMenuItem("Edit projection");
private JMenuItem menuItemRemoveProj = new JMenuItem("Remove projection");
private int currentPage;
private Agenda agenda;
String headers[] = {"Matin", "Midi", "Milieu
Après-midi", "Fin
Après-midi", "Soirée"};
private CompetType currentCompetition = CompetType.LM;
- public static void main(String[] args) {
- new GUI();
- }
-
public GUI() {
super();
construct();
@@ -39,7 +34,6 @@ public class GUI extends JFrame implements ActionListener {
private void renderMenu() {
menuBar.add(menuFichier);
menuFichier.add(menuItemAddProj);
- menuFichier.add(menuItemEditProj);
menuFichier.add(menuItemRemoveProj);
setJMenuBar(menuBar);
}
@@ -63,7 +57,6 @@ public class GUI extends JFrame implements ActionListener {
LMButton.addActionListener(this);
UCRButton.addActionListener(this);
menuItemAddProj.addActionListener(this);
- menuItemEditProj.addActionListener(this);
menuItemRemoveProj.addActionListener(this);
setVisible(true);
}
@@ -77,8 +70,7 @@ public class GUI extends JFrame implements ActionListener {
this.currentPage = agenda.getCurrentPage();
this.repaint();
this.revalidate();
- }
- else if (source == nextButton) {
+ } else if (source == nextButton) {
this.currentPage++;
Agenda agenda = new Agenda(agendaPanel, this.currentPage, this.currentCompetition);
this.currentPage = agenda.getCurrentPage();
@@ -104,17 +96,9 @@ public class GUI extends JFrame implements ActionListener {
this.repaint();
this.revalidate();
} else if (source == this.menuItemAddProj) {
- ProjectionHandler dialog = new ProjectionHandler(ProjectionType.ADD, agenda);
- dialog.pack();
- dialog.setVisible(true);
- } else if (source == this.menuItemEditProj) {
- ProjectionHandler dialog = new ProjectionHandler(ProjectionType.EDIT, agenda);
- dialog.pack();
- dialog.setVisible(true);
+ agenda.openDialog(ProjectionType.ADD);
} else if (source == this.menuItemRemoveProj) {
- ProjectionHandler dialog = new ProjectionHandler(ProjectionType.REMOVE, agenda);
- dialog.pack();
- dialog.setVisible(true);
+ agenda.openDialog(ProjectionType.REMOVE);
}
}
}
diff --git a/src/main/java/GUI/ProjectionHandler.java b/src/main/java/GUI/ProjectionHandler.java
index 93b6568..680dd4a 100644
--- a/src/main/java/GUI/ProjectionHandler.java
+++ b/src/main/java/GUI/ProjectionHandler.java
@@ -1,6 +1,7 @@
package GUI;
import DB.*;
+import Exceptions.ProjectionNotSpecified;
import GUI.Agenda.Agenda;
import GUI.Types.ProjectionType;
@@ -38,7 +39,9 @@ public class ProjectionHandler extends JDialog {
private Agenda agenda;
private Projection projection = null;
- public ProjectionHandler(ProjectionType projectionType, Agenda agenda) {
+ public ProjectionHandler(ProjectionType projectionType, Agenda agenda) throws ProjectionNotSpecified {
+ if (projectionType == ProjectionType.EDIT)
+ throw new ProjectionNotSpecified();
this.projectionType = projectionType;
this.agenda = agenda;
createUIComponents();
@@ -167,10 +170,7 @@ public class ProjectionHandler extends JDialog {
new Projection(date, competition, room, movie, slot);
break;
case EDIT:
- if (projection != null)
- projection.delete();
- else
- (Projection.find(date, competition, room, movie, slot)).delete();
+ projection.delete();
new Projection(date, competition, room, movie, slot);
break;
case REMOVE: