00001 #include "resourcereservationmodel.h"
00002
00003 #include <domain/resource.h>
00004 #include <domain/user.h>
00005 #include <domain/duration.h>
00006 #include <domain/reservation.h>
00007
00008 using namespace control;
00009
00010 ResourceReservationModel::ResourceReservationModel (const domain::Resource* resource)
00011 {
00012 reservations = resource->reservations();
00013 }
00014
00015 int ResourceReservationModel::columnCount (const QModelIndex& parent) const
00016 {
00017 if (!parent.isValid())
00018 return LastColumn;
00019
00020 return 0;
00021 }
00022
00023 int ResourceReservationModel::rowCount (const QModelIndex& parent) const
00024 {
00025 if (!parent.isValid())
00026 return reservations.size();
00027
00028 return 0;
00029 }
00030
00031 QVariant ResourceReservationModel::data (const QModelIndex& index, int role) const
00032 {
00033 const domain::Reservation* reservation = reservationForIndex(index);
00034
00035 if (role == Qt::DisplayRole)
00036 {
00037 switch (index.column())
00038 {
00039 case Task: return reservation->task()->id();
00040 case Time: return reservation->time();
00041 case Duration: return reservation->duration().toString();
00042
00043 default: return QVariant();
00044 }
00045 }
00046 else
00047 return QVariant();
00048 }
00049
00050 QVariant ResourceReservationModel::headerData (int section,
00051 Qt::Orientation orientation, int role) const
00052 {
00053 if (orientation == Qt::Horizontal && role == Qt::DisplayRole)
00054 {
00055 switch (section)
00056 {
00057 case Task: return "Task";
00058 case Time: return "Time";
00059 case Duration: return "Duration";
00060
00061 default: return QVariant();
00062 }
00063 }
00064 else
00065 return QVariant();
00066 }
00067
00068 const domain::Reservation* ResourceReservationModel::reservationForIndex
00069 (const QModelIndex& index) const
00070 {
00071 return reservations[index.row()];
00072 }
00073