From f2ba3bbf35391baa0d06aa30ff3088979b69d91e Mon Sep 17 00:00:00 2001
From: piquerez <corentin.piquerez1@etu.univ-lorraine.fr>
Date: Mon, 29 May 2023 16:06:56 +0200
Subject: [PATCH] rajout de cours OK

---
 shukan/ShukanData.java   |  4 ++--
 shukan/ShukanModule.java | 13 ++++++++-----
 shukan/ShukanView.java   |  3 ++-
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/shukan/ShukanData.java b/shukan/ShukanData.java
index 47ff72f..58d2dcb 100644
--- a/shukan/ShukanData.java
+++ b/shukan/ShukanData.java
@@ -439,9 +439,9 @@ 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)
+  public void setOnMiddle (int curs, int mod, int act, int index)
   {
-    this.mod[curs][mod].setOnMiddle (act);
+    this.mod[curs][mod].setOnMiddle (act, index);
   }
 
   /** Sets an activity to be displayed on right */
diff --git a/shukan/ShukanModule.java b/shukan/ShukanModule.java
index ccf15f3..d7869b7 100644
--- a/shukan/ShukanModule.java
+++ b/shukan/ShukanModule.java
@@ -312,16 +312,20 @@ public class ShukanModule
     onLeft[act] = true;
   }
   /** Sets an activity to be displayed on middle */
-  public void setOnMiddle (int act) {
+  public void setOnMiddle (int act, int index) {
     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++) {
+      for (int i = 0; i < index; i++) {
         tmpLeft[i] = onLeft[i];
         tmpRight[i] = onRight[i];
       }
-      tmpRight[act] = false;
-      tmpLeft[act] = false;
+      tmpRight[index] = false;
+      tmpLeft[index] = false;
+      for (int i = index+1; i < onLeft.length+1; i++) {
+        tmpLeft[i] = onLeft[i-1];
+        tmpRight[i] = onRight[i-1];
+      }
       onLeft = tmpLeft;
       onRight = tmpRight;
     } else {
@@ -455,7 +459,6 @@ public class ShukanModule
   {
     int n1 = sched.identify (a1);
     int n2 = sched.identify (a2);
-    System.out.println (n1 + " <--> " + n2);
     int val = activ[n1];
     activ[n1] = activ[n2];
     activ[n2] = val;
diff --git a/shukan/ShukanView.java b/shukan/ShukanView.java
index 8dd25a0..7ab1bf5 100644
--- a/shukan/ShukanView.java
+++ b/shukan/ShukanView.java
@@ -471,10 +471,11 @@ public class ShukanView extends JPanel
         int cursus = data.cursusNumber();
         int mod_start = data.moduleStart(cursus, num_mod);
         if (mod_start!=0) mod_start-=data.startWeekNumber();
+        int nb_act = data.scheduleInWeek(num_mod, mod_start).length;
 
         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);
+        data.setOnMiddle(cursus, num_mod, data.activityCount(cursus, num_mod)-1, nb_act);
         repaint();
         f.dispose();
       }
-- 
GitLab