1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
public class CalendrierAdmin_Day extends ActivityAdmin {
/**
* Des trucs...
**/
private EventDAO eDao;
private TableLayout tlHours;
private ArrayList<Event> listEvents;
/**
* D'autres trucs...
**/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendrieradmin_day);
// On récupère tous les Events de la base de données relatif au jour donné
eDao = new EventDAO(CalendrierAdmin_Day.this);
eDao.open();
listEvents = eDao.selectAllOfThisDay(getDateClicked());
tlHours = (TableLayout)findViewById(R.id.CalendrierAdminDay_TableLayout_Hours);
populate(listEvents);
}
public void populate(ArrayList<Event> listEvents) {
tlHours.removeAllViews();
int current_event_index = 0;
Calendar cal = Calendar.getInstance();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = ((metrics.widthPixels / 2) / 4) * 3;
int minutesDebJour = (int) ((timestamp_deb / 1000) / 60);
int minutesFinJour = (int) ((timestamp_fin / 1000) / 60);
int current_min = minutesDebJour;
boolean pair = true;
while(current_min < minutesFinJour && current_event_index < listEvents.size()) {
Event e = listEvents.get(current_event_index);
cal.setTime(e.getDateDeb());
int minutesEventDeb = (int) ((cal.getTimeInMillis() / 1000) / 60);
if(current_min < minutesEventDeb) { // si il y a un "trou" dans le planning
final EmptyRow emptyRow = new EmptyRow(this, minutesDebJour, minutesFinJour, current_min, minutesEventDeb - current_min, width, tlHours);
current_min = minutesEventDeb; // la minute courante devient celle de l'évènement
emptyRow.setHandler(new RowHandler(this, emptyRow));
}
EventColor color;
if(pair) {
pair = false;
color = EventColor.BLUE;
}
else {
pair = true;
color = EventColor.GREEN;
}
//C'est vraiment ici que c'est intéressant
final EventRow eventRow = new EventRow(this, minutesDebJour, minutesFinJour, EventType.NORMAL, width, e, color, tlHours);
tlHours.addView(eventRow);
//
eventRow.setHandler(new RowHandler(this, eventRow));
current_min += e.getDuree();
current_event_index++;
}
//On fini éventuellement de remplir le planning
if(current_min < minutesFinJour) {
EmptyRow emptyRow = new EmptyRow(this, minutesDebJour, minutesFinJour, current_min, minutesFinJour - current_min, width, tlHours);
//tlHours.addView(emptyRow);
emptyRow.setHandler(new RowHandler(this, emptyRow));
}
}
} |
Partager