diff --git a/out/production/sae2.01-developpement-application/data/2223_S2/version.txt b/out/production/sae2.01-developpement-application/data/2223_S2/version.txt index f0ef3e7711a0ca164cb6272a92699a32997de10f..e0c414faacdad4931c2e3f6f19d051e401cab4a3 100644 --- a/out/production/sae2.01-developpement-application/data/2223_S2/version.txt +++ b/out/production/sae2.01-developpement-application/data/2223_S2/version.txt @@ -1,2 +1,2 @@ -20 -230525 +23 +230527 diff --git a/shukan/ShukanController.java b/shukan/ShukanController.java index 24c87780b0535277d9f7a1c39a83fbf119d5f9d4..2d70eb427fb5dae377a34e9244e9b95d0c6dd811 100644 --- a/shukan/ShukanController.java +++ b/shukan/ShukanController.java @@ -207,7 +207,10 @@ public class ShukanController else if (e.getSource()== bar.buttons[1]) System.out.println("back"); else if (e.getSource()==bar.buttons[2]) - System.out.println("plus"); + { + canvas.getNewActivity(); + canvas.repaint(); + } else if (e.getSource()==bar.buttons[3]) System.out.println("delete"); else if (e.getSource()==bar.buttons[4]) {if (data.followLeft ()) canvas.repaint ();} diff --git a/shukan/ShukanData.java b/shukan/ShukanData.java index 072e550dc0419f575ec797491582e94162e184e4..47ff72fb7ff236eacfd66fae701c92a6991e785c 100644 --- a/shukan/ShukanData.java +++ b/shukan/ShukanData.java @@ -438,6 +438,11 @@ public class ShukanData { this.mod[curs][mod].setOnLeft (act); } + /** Sets an activity to be displayed on right */ + public void setOnMiddle (int curs, int mod, int act) + { + this.mod[curs][mod].setOnMiddle (act); + } /** Sets an activity to be displayed on right */ public void setOnRight (int curs, int mod, int act) diff --git a/shukan/ShukanModule.java b/shukan/ShukanModule.java index 77a8513020fc90015b146ed18ce7bc2c4bba1a8c..2e58cd6b914f6db27d5d2aaec51a8efe4940ea0e 100644 --- a/shukan/ShukanModule.java +++ b/shukan/ShukanModule.java @@ -58,7 +58,7 @@ public class ShukanModule /** Specific activity : SAe practical work in standard room */ public final static int ACT_SQ = 12; // TQ de SAE en salle de cours /** Activity types */ - private final static String[] TYPES = {"CM", "EV2", "EV1", + public final static String[] TYPES = {"CM", "EV2", "EV1", "TD", "TM", "TV", "SD", "SM", "TP4", "TP2", "TQ2", "SP", "SQ"}; /** Activity symbol */ @@ -91,8 +91,8 @@ public class ShukanModule if (numT == -1) return (false); if (num == activ.length) { - int[] tmp = new int[activ.length + DEFAULT_ACTIVITY_NUMBER]; - int[][] tmpaff = new int[activ.length + DEFAULT_ACTIVITY_NUMBER][]; + int[] tmp = new int[activ.length + 1]; + int[][] tmpaff = new int[activ.length + 1][]; for (int i = 0; i < activ.length; i++) { tmp[i] = activ[i]; @@ -311,7 +311,27 @@ public class ShukanModule onRight[act] = false; onLeft[act] = true; } - + /** Sets an activity to be displayed on middle */ + public void setOnMiddle (int act) { + for (int i =0; i<onLeft.length; i++) System.out.println("left : "+onLeft[i]+" right : "+onRight[i]); + if (act >= onLeft.length) { + boolean[] tmpRight = new boolean[onLeft.length + 1]; + boolean[] tmpLeft = new boolean[onLeft.length + 1]; + for (int i = 0; i < onLeft.length; i++) { + tmpLeft[i] = onLeft[i]; + tmpRight[i] = onRight[i]; + } + tmpRight[act] = false; + tmpLeft[act] = false; + onLeft = tmpLeft; + onRight = tmpRight; + } else { + onLeft[act] = false; + onRight[act] = false; + } + System.out.println("---------------------"); + for (int i =0; i<onLeft.length; i++) System.out.println("left : "+onLeft[i]+" right : "+onRight[i]); + } /** Sets an activity to be displayed on right */ public void setOnRight (int act) { diff --git a/shukan/ShukanView.java b/shukan/ShukanView.java index cdf4d7bdccb8978b2c71a82a529336a73f2a53b4..cb45a9de5d6f322053452c6bb11ed6e08871b40e 100644 --- a/shukan/ShukanView.java +++ b/shukan/ShukanView.java @@ -3,6 +3,8 @@ import javax.swing.*; import javax.swing.plaf.ColorUIResource; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; /** Graphical view for Shukan planner. @@ -448,4 +450,45 @@ public class ShukanView extends JPanel BACK_COLOR = c; repaint(); } + + /** Creates a new activity with window */ + public void getNewActivity(){ + JFrame f = new JFrame("Informations concernant le nouveau cours"); + JPanel global_mod = new JPanel(); + JPanel global_act = new JPanel(); + JLabel mod = new JLabel("A quel matiere voulez vous rajouter un cours ?"); + JLabel act = new JLabel("Quel cours voulez vous ajouter? "); + JComboBox mod_info = new JComboBox(data.moduleNames(data.cursusNumber())); + JComboBox act_info = new JComboBox(ShukanModule.TYPES); + JButton valider = new JButton("Valider"); + + valider.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + int num_mod = mod_info.getSelectedIndex(); + int num_act = act_info.getSelectedIndex(); + int cursus = data.cursusNumber(); + int mod_start = data.moduleStart(cursus, num_mod); + + + data.addActivity(cursus, num_mod, data.activityCount(cursus, num_mod), ShukanModule.TYPES[num_act]); + data.scheduleActivity(cursus, num_mod, data.activityCount(cursus, num_mod)-1, mod_start); + data.setOnMiddle(cursus, num_mod, data.activityCount(cursus, num_mod)-1); + repaint(); + f.dispose(); + + } + }); + + global_mod.add(mod); + global_mod.add(mod_info); + global_act.add(act); + global_act.add(act_info); + f.add(global_mod, BorderLayout.NORTH); + f.add(global_act, BorderLayout.CENTER); + f.add(valider, BorderLayout.SOUTH); + f.setVisible(true); + f.setSize(new Dimension(400, 150)); + + } }