From b96cc7fcea668c61985f17553521894345e2d085 Mon Sep 17 00:00:00 2001 From: piquerez <corentin.piquerez1@etu.univ-lorraine.fr> Date: Tue, 30 May 2023 17:37:27 +0200 Subject: [PATCH] sauvegarde nouveaux cours OK --- data/2223_S2/version.txt | 4 +- .../data/2223_S2/version.txt | 4 +- shukan/ShukanData.java | 12 ++++-- shukan/ShukanModule.java | 40 ++++++++++++++++--- shukan/ShukanView.java | 12 ++++-- 5 files changed, 56 insertions(+), 16 deletions(-) diff --git a/data/2223_S2/version.txt b/data/2223_S2/version.txt index e0c414f..d451762 100644 --- a/data/2223_S2/version.txt +++ b/data/2223_S2/version.txt @@ -1,2 +1,2 @@ -23 -230527 +24 +230530 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 e0c414f..d451762 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 @@ -23 -230527 +24 +230530 diff --git a/shukan/ShukanData.java b/shukan/ShukanData.java index 58d2dcb..73719d9 100644 --- a/shukan/ShukanData.java +++ b/shukan/ShukanData.java @@ -101,6 +101,12 @@ public class ShukanData return (mod[cursNum][modNum].addActivity (actNum, type)); } + /** Adds a new activity to a module */ + public boolean addNewActivity (int cursNum, int modNum, int actNum, String type) + { + return (mod[cursNum][modNum].addNewActivity (actNum, type)); + } + /** Closes the activities of a module */ public void closeActivities (int cursNum, int modNum, int size) { @@ -114,7 +120,7 @@ public class ShukanData mod[cursNum][modNum].autoPlan (); } - /** Schedules the activities of a module */ + /** ScheduleSchedules the activities of a module */ public void setSchedule (int cursNum, int modNum, int[] weeks) { mod[cursNum][modNum].schedule (weeks); @@ -439,9 +445,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, int index) + public void setOnMiddle (int curs, int mod, int act, boolean ajout) { - this.mod[curs][mod].setOnMiddle (act, index); + this.mod[curs][mod].setOnMiddle (act, ajout); } /** Sets an activity to be displayed on right */ diff --git a/shukan/ShukanModule.java b/shukan/ShukanModule.java index d7869b7..34f0343 100644 --- a/shukan/ShukanModule.java +++ b/shukan/ShukanModule.java @@ -106,6 +106,34 @@ public class ShukanModule return (true); } + /** Adds a new activity */ + public boolean addNewActivity (int num, String type) + { + int numT = -1; + int j; + for (int i = 0; i < TYPES.length && numT == -1; i++) + if (type.equals (TYPES[i])) numT = i; + if (numT == -1) return (false); + + int[] tmp = new int[activ.length + 1]; + int[][] tmpaff = new int[activ.length + 1][]; + for (int i = 0; i < activ.length+1; i++) + { + if (i!=num){ + j = i; + if (i>num) j--; + tmp[i] = activ[j]; + tmpaff[i] = affect[j]; + } + } + + activ = tmp; + affect = tmpaff; + activ[num] = numT; + affect[num] = new int[0]; + return (true); + } + /** Adjusts the activity array. * @param size Number of activities to be planned. */ @@ -312,17 +340,17 @@ public class ShukanModule onLeft[act] = true; } /** Sets an activity to be displayed on middle */ - public void setOnMiddle (int act, int index) { - if (act >= onLeft.length) { + public void setOnMiddle (int act, boolean ajout) { + if (ajout) { boolean[] tmpRight = new boolean[onLeft.length + 1]; boolean[] tmpLeft = new boolean[onLeft.length + 1]; - for (int i = 0; i < index; i++) { + for (int i = 0; i < act; i++) { tmpLeft[i] = onLeft[i]; tmpRight[i] = onRight[i]; } - tmpRight[index] = false; - tmpLeft[index] = false; - for (int i = index+1; i < onLeft.length+1; i++) { + tmpRight[act] = false; + tmpLeft[act] = false; + for (int i = act+1; i < onLeft.length+1; i++) { tmpLeft[i] = onLeft[i-1]; tmpRight[i] = onRight[i-1]; } diff --git a/shukan/ShukanView.java b/shukan/ShukanView.java index 4ce43d3..1b73030 100644 --- a/shukan/ShukanView.java +++ b/shukan/ShukanView.java @@ -483,9 +483,15 @@ public class ShukanView extends JPanel 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, nb_act); + + data.addNewActivity(cursus, num_mod, nb_act, ShukanModule.TYPES[num_act]); + data.scheduleActivity(cursus, num_mod, nb_act, mod_start); + data.setOnMiddle(cursus, num_mod, nb_act, true); + int[] weeks = data.schedule(num_mod); + data.unscheduleActivities(cursus, num_mod); + data.setSchedule(cursus, num_mod, weeks); + + repaint(); f.dispose(); } -- GitLab