diff --git a/shukan/ShukanData.java b/shukan/ShukanData.java index 47ff72fb7ff236eacfd66fae701c92a6991e785c..58d2dcbe1c1013ed2fe6b3cb79e90707357deeee 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 ccf15f3c5b8811e36765c1b23eaf01a51341e4d7..d7869b7600a41839b1534129d914c3886465f567 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 8dd25a06e5d566b875ea43f45469ca1c6458b2e2..7ab1bf5ab07ed149b461eb4e179533accb3b46f6 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(); }