Example usage for org.joda.time DateMidnight DateMidnight

List of usage examples for org.joda.time DateMidnight DateMidnight

Introduction

In this page you can find the example usage for org.joda.time DateMidnight DateMidnight.

Prototype

public DateMidnight() 

Source Link

Document

Constructs an instance set to the current system millisecond time using ISOChronology in the default time zone.

Usage

From source file:net.sourceforge.fenixedu.presentationTier.Action.publico.RoomSiteViewerDispatchAction.java

License:Open Source License

public ActionForward roomViewer(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    User userView = getUserView(request);

    String roomName = request.getParameter("roomName");
    if (roomName == null) {
        roomName = (String) request.getAttribute("roomName");
    }/*from  w  w  w.j  a v a 2 s  .  c o  m*/
    request.setAttribute("roomName", roomName);
    RoomKey roomKey = null;

    if (roomName != null) {
        roomKey = new RoomKey(roomName);

        ISiteComponent bodyComponent = new InfoSiteRoomTimeTable();
        DynaActionForm indexForm = (DynaActionForm) form;
        Integer indexWeek = (Integer) indexForm.get("indexWeek");
        // Integer executionPeriodID = (Integer)
        // indexForm.get("selectedExecutionPeriodID");
        String executionPeriodIDString = request.getParameter("selectedExecutionPeriodID");
        if (executionPeriodIDString == null) {
            executionPeriodIDString = (String) request.getAttribute("selectedExecutionPeriodID");
        }
        String executionPeriodID = (executionPeriodIDString != null) ? executionPeriodIDString : null;
        if (executionPeriodID == null) {
            try {
                // executionPeriodID = (Integer)
                // indexForm.get("selectedExecutionPeriodID");
                executionPeriodID = indexForm.get("selectedExecutionPeriodID").equals("") ? null
                        : (String) indexForm.get("selectedExecutionPeriodID");
            } catch (IllegalArgumentException ex) {
            }
        }
        Calendar today = new DateMidnight().toCalendar(null);
        ArrayList weeks = new ArrayList();

        InfoExecutionPeriod executionPeriod;
        if (executionPeriodID == null) {
            executionPeriod = ReadCurrentExecutionPeriod.run();
            executionPeriodID = executionPeriod.getExternalId();
            try {
                indexForm.set("selectedExecutionPeriodID", executionPeriod.getExternalId().toString());
            } catch (IllegalArgumentException ex) {
            }
        } else {
            executionPeriod = ReadExecutionPeriodByOID.run(executionPeriodID);
        }

        // weeks
        Calendar begin = Calendar.getInstance();
        begin.setTime(executionPeriod.getBeginDate());
        Calendar end = Calendar.getInstance();
        end.setTime(executionPeriod.getEndDate());
        ArrayList weeksLabelValueList = new ArrayList();
        begin.add(Calendar.DATE, Calendar.MONDAY - begin.get(Calendar.DAY_OF_WEEK));
        int i = 0;
        boolean selectedWeek = false;
        while (begin.before(end) || begin.before(Calendar.getInstance())) {
            Calendar day = Calendar.getInstance();
            day.setTimeInMillis(begin.getTimeInMillis());
            weeks.add(day);
            String beginWeekString = DateFormatUtils.format(begin.getTime(), "dd/MM/yyyy");
            begin.add(Calendar.DATE, 5);
            String endWeekString = DateFormatUtils.format(begin.getTime(), "dd/MM/yyyy");
            weeksLabelValueList.add(
                    new LabelValueBean(beginWeekString + " - " + endWeekString, new Integer(i).toString()));
            begin.add(Calendar.DATE, 2);
            if (!selectedWeek && indexWeek == null && Calendar.getInstance().before(begin)) {
                indexForm.set("indexWeek", new Integer(i));
                selectedWeek = true;
            }
            i++;
        }

        final Collection<ExecutionSemester> executionSemesters = rootDomainObject.getExecutionPeriodsSet();
        final List<LabelValueBean> executionPeriodLabelValueBeans = new ArrayList<LabelValueBean>();
        for (final ExecutionSemester ep : executionSemesters) {
            if (ep.getState().equals(PeriodState.OPEN) || ep.getState().equals(PeriodState.CURRENT)) {
                executionPeriodLabelValueBeans.add(new LabelValueBean(
                        ep.getName() + " " + ep.getExecutionYear().getYear(), ep.getExternalId().toString()));
            }
        }
        request.setAttribute(PresentationConstants.LABELLIST_EXECUTIONPERIOD, executionPeriodLabelValueBeans);

        request.setAttribute(PresentationConstants.LABELLIST_WEEKS, weeksLabelValueList);
        if (indexWeek != null) {
            final int xpto = indexWeek.intValue();
            if (xpto < weeks.size()) {
                today = (Calendar) weeks.get(xpto);
            } else {
                today = (Calendar) weeks.iterator().next();
                indexForm.set("indexWeek", new Integer(0));
            }
        }

        try {
            SiteView siteView = (SiteView) RoomSiteComponentServiceByExecutionPeriodID.run(bodyComponent,
                    roomKey, today, executionPeriodID);

            request.setAttribute("siteView", siteView);

        } catch (NonExistingServiceException e) {
            throw new NonExistingActionException(e);
        } catch (FenixServiceException e) {
            throw new FenixActionException(e);
        }
        return mapping.findForward("roomViewer");
    }
    throw new FenixActionException();

}

From source file:op.care.nursingprocess.PnlSchedule.java

License:Open Source License

private void txtLDateFocusLost(FocusEvent evt) {
    SYSCalendar.handleDateFocusLost(evt, new DateMidnight(), new DateMidnight().plusWeeks(4));
}

From source file:op.care.nursingprocess.PnlSchedule.java

License:Open Source License

private void initPanel() {

    pnlBemerkung.setBorder(new TitledBorder(SYSTools.xx(internalClassID + ".bordertitle4textfield")));

    ArrayList<Date> timelist = SYSCalendar.getTimeList();
    cmbUhrzeit.setModel(new DefaultComboBoxModel(timelist.toArray()));
    cmbUhrzeit.setRenderer(SYSCalendar.getTimeRenderer());

    spinTaeglich.setModel(new SpinnerNumberModel(1, 1, 365, 1));
    spinWoche.setModel(new SpinnerNumberModel(1, 1, 52, 1));
    spinMonat.setModel(new SpinnerNumberModel(1, 1, 12, 1));
    spinMonatTag.setModel(new SpinnerNumberModel(1, 1, 31, 1));

    spinTaeglich.setValue(Math.max(is.getTaeglich(), 1));
    spinWoche.setValue(Math.max(is.getWoechentlich(), 1));
    spinMonat.setValue(Math.max(is.getMonatlich(), 1));
    spinMonatTag.setValue(Math.max(is.getTagNum(), 1));

    tabWdh.setSelectedIndex(TAB_DAILY);/*from ww  w.j a va 2  s. com*/

    if (is.getWoechentlich() > 0) {
        cbMon.setSelected(is.getMon() > 0);
        cbDie.setSelected(is.getDie() > 0);
        cbMit.setSelected(is.getMit() > 0);
        cbDon.setSelected(is.getDon() > 0);
        cbFre.setSelected(is.getFre() > 0);
        cbSam.setSelected(is.getSam() > 0);
        cbSon.setSelected(is.getSon() > 0);
        tabWdh.setSelectedIndex(TAB_WEEKLY);
    }

    if (is.getMonatlich() > 0) {
        if (is.getTagNum() > 0) {

            spinMonatTag.setValue(is.getTagNum());
            cmbTag.setSelectedIndex(0);
        } else {

            if (is.getMon() > 0) {
                cmbTag.setSelectedIndex(1);
                spinMonatTag.setValue(is.getMon());
            } else if (is.getDie() > 0) {
                cmbTag.setSelectedIndex(2);
                spinMonatTag.setValue(is.getDie());
            } else if (is.getMit() > 0) {
                cmbTag.setSelectedIndex(3);
                spinMonatTag.setValue(is.getMit());
            } else if (is.getDon() > 0) {
                cmbTag.setSelectedIndex(4);
                spinMonatTag.setValue(is.getDon());
            } else if (is.getFre() > 0) {
                cmbTag.setSelectedIndex(5);
                spinMonatTag.setValue(is.getFre());
            } else if (is.getSam() > 0) {
                cmbTag.setSelectedIndex(6);
                spinMonatTag.setValue(is.getSam());
            } else if (is.getSon() > 0) {
                cmbTag.setSelectedIndex(7);
                spinMonatTag.setValue(is.getSon());
            }
        }
        tabWdh.setSelectedIndex(TAB_MONTHLY);
    }

    txtLDate.setText(DateFormat.getDateInstance()
            .format(new Date(Math.max(is.getLDatum().getTime(), new DateMidnight().getMillis()))));

    txtNachtMo.setText(is.getNachtMo().toString());
    txtMorgens.setText(is.getMorgens().toString());
    txtMittags.setText(is.getMittags().toString());
    txtNachmittags.setText(is.getNachmittags().toString());
    txtAbends.setText(is.getAbends().toString());
    txtNachtAb.setText(is.getNachtAb().toString());
    txtUhrzeit.setText(is.getUhrzeitAnzahl().toString());

    txtMorgens.setBackground(SYSConst.lightblue);
    txtMittags.setBackground(SYSConst.gold7);
    txtNachmittags.setBackground(SYSConst.melonrindgreen);
    txtAbends.setBackground(SYSConst.bermuda_sand);
    txtNachtAb.setBackground(SYSConst.bluegrey);

    Date now = null;
    if (is.getUhrzeitAnzahl() > 0) {
        now = is.getUhrzeit();
    } else {
        now = new Date();
    }

    for (Date zeit : timelist) {
        if (SYSCalendar.compareTime(zeit, now) >= 0) {
            now = zeit;
            break;
        }
    }
    cmbUhrzeit.setSelectedItem(now);
    lblUhrzeit.setText(SYSTools.xx("misc.msg.Number"));

    txtBemerkung.setText(is.getBemerkung());

    lblMinutes.setText(SYSTools.xx("misc.msg.Minute(s)"));
    txtMinutes.setText(is.getDauer().toPlainString());

    tbFloating = GUITools.getNiceToggleButton(SYSTools.xx(internalClassID + ".floatinginterventions"));
    tbFloating.setSelected(is.isFloating());
    panelMain.add(tbFloating, CC.xy(3, 5));

    splitRegularPos = SYSTools.showSide(splitRegular,
            is.getUhrzeit() != null ? SYSTools.RIGHT_LOWER_SIDE : SYSTools.LEFT_UPPER_SIDE);
}

From source file:op.care.supervisor.DlgHOReport.java

License:Open Source License

private void initDialog() {
    txtReport.setText(SYSTools.catchNull(handover.getText()));
    pnlPIT = new PnlPIT(handover.getPit(), new Date(), new DateMidnight().minusWeeks(1).toDate());
    add(pnlPIT, CC.xywh(3, 3, 1, 1, CC.DEFAULT, CC.FILL));
    //        cmbHomes.setFont(SYSConst.ARIAL14);
    //        HomesTools.setComboBox(cmbHomes);
}

From source file:op.tools.SYSCalendar.java

License:Open Source License

/**
 * A "sane" birthday is not older than 120 years and not younger than 15 years.
 *
 * @param date/*from   www . ja va  2s  .co m*/
 * @return
 */
public static boolean isBirthdaySane(Date date) {
    if (date == null)
        return false;
    //TODO: those min and max values must not be hardcoded in future
    int maxage = 120;
    int minage = 15;
    DateMidnight min = new DateMidnight().minusYears(minage);
    DateMidnight max = new DateMidnight().minusYears(maxage);
    DateMidnight d = new DateMidnight(date);

    return d.isAfter(max) && d.isBefore(min);
}

From source file:op.tools.SYSCalendar.java

License:Open Source License

public static void handleDateFocusLost(FocusEvent evt, DateMidnight min, DateMidnight max) {
    DateTime dt;/* w ww .j  av a2 s. c  o m*/
    if (max == null) {
        max = new DateMidnight();
    }
    try {
        dt = new DateTime(parseDate(((JTextField) evt.getSource()).getText()));
    } catch (NumberFormatException ex) {
        OPDE.getDisplayManager().addSubMessage(new DisplayMessage(SYSTools.xx("misc.msg.wrongdate")));
        dt = new DateTime();
    }
    if (dt.isAfter(max)) {
        dt = new DateTime();
        DisplayMessage dm = new DisplayMessage(
                dt.isAfterNow() ? SYSTools.xx("misc.msg.futuredate") : SYSTools.xx("misc.msg.wrongdate"));
        OPDE.getDisplayManager().addSubMessage(dm);
    }
    if (dt.isBefore(min)) {
        dt = new DateTime();
        OPDE.getDisplayManager().addSubMessage(new DisplayMessage(SYSTools.xx("misc.msg.DateTooOld")));
    }

    ((JTextField) evt.getSource()).setText(DateFormat.getDateInstance().format(dt.toDate()));
}

From source file:org.apereo.portal.portlets.activity.ActivityController.java

License:Apache License

private PortalActivity buildPortalActivity(PortletRequest request, int timeframe) {
    PortletPreferences prefs = request.getPreferences();
    DateTime begin, end;// w w w. j a  v a 2  s  .c o m
    final AggregationInterval interval;
    final List<PortalGroupActivity> groupActivities = new ArrayList<PortalGroupActivity>();

    switch (timeframe) {
    case NOW: {
        end = new DateTime();
        begin = end.minusHours(1);
        interval = AggregationInterval.FIVE_MINUTE;
        break;
    }
    case TODAY: {
        begin = new DateMidnight().toDateTime();
        end = begin.plusDays(1);
        interval = AggregationInterval.DAY;
        break;
    }
    case YESTERDAY: {
        end = new DateMidnight().toDateTime().minusSeconds(1);
        begin = end.minusDays(1);
        interval = AggregationInterval.DAY;
        break;
    }
    default: {
        end = new DateTime();
        begin = end.minusHours(1);
        interval = AggregationInterval.HOUR;
        break;
    }
    }

    String masterGroup = prefs.getValue(PREFERENCE_MASTER_GROUP, DEFAULT_PREFERENCE_MASTER_GROUP);
    List<String> displayGroups = Arrays
            .asList(prefs.getValues(PREFERENCE_DISPLAY_GROUPS, DEFAULT_PREFERENCE_DISPLAY_GROUPS));
    boolean displayOther = Boolean
            .valueOf(prefs.getValue(PREFERENCE_DISPLAY_OTHER, DEFAULT_PREFERENCE_DISPLAY_OTHER));
    int masterTotal = 0;
    int absTotal = 0;
    int subTotal = 0;

    switch (timeframe) {
    case NOW:
        for (AggregatedGroupMapping group : concurrentUserAggregationDao.getAggregatedGroupMappings()) {

            ConcurrentUserAggregationKey key = new ConcurrentUserAggregationKeyImpl(interval, group);
            final List<ConcurrentUserAggregation> aggregations = concurrentUserAggregationDao
                    .getAggregations(begin, end, key);

            // NB:  We only care about the most recent entry (??)
            if (aggregations.size() != 0) {
                final ConcurrentUserAggregation aggregation = aggregations.get(0);
                int groupTotal = aggregation.getConcurrentUsers();
                absTotal += aggregation.getConcurrentUsers();
                if (group.getGroupName().equalsIgnoreCase(masterGroup)) {
                    masterTotal = groupTotal;
                } else {
                    subTotal += groupTotal;
                }

                if (!group.getGroupName().equals(masterGroup)) {
                    if (displayGroups.isEmpty() || displayGroups.contains(group.getGroupName())) {
                        final PortalGroupActivity groupActivity = new PortalGroupActivity(group.getGroupName(),
                                groupTotal);
                        groupActivities.add(groupActivity);
                    }
                }
            }
        }
        break;
    default:
        String uniqueLoginsPref = prefs.getValue(PREFERENCE_UNIQUE_LOGINS, DEFAULT_PREFERENCE_UNIQUE_LOGINS);
        Boolean uniqueLogins = Boolean.valueOf(uniqueLoginsPref);

        for (AggregatedGroupMapping group : loginAggregationDao.getAggregatedGroupMappings()) {

            final LoginAggregationKey key = new LoginAggregationKeyImpl(interval, group);
            final List<LoginAggregation> aggregations = loginAggregationDao.getAggregations(begin, end, key);

            // NB:  We only care about the most recent entry (??)
            if (aggregations.size() != 0) {
                final LoginAggregation aggregation = aggregations.get(0);
                int groupTotal = getAggregationLoginCount(aggregation, uniqueLogins);
                absTotal += groupTotal;
                if (group.getGroupName().equalsIgnoreCase(masterGroup)) {
                    masterTotal = groupTotal;
                } else {
                    subTotal += groupTotal;
                }

                if (!group.getGroupName().equals(masterGroup)) {
                    if (displayGroups.isEmpty() || displayGroups.contains(group.getGroupName())) {
                        PortalGroupActivity groupActivity = new PortalGroupActivity(group.getGroupName(),
                                groupTotal);
                        groupActivities.add(groupActivity);
                    }
                }
            }
        }
        break;
    }

    if (displayOther) {
        int otherTotal = masterTotal - subTotal;
        if (otherTotal > 0) {
            PortalGroupActivity otherGroup = new PortalGroupActivity("Other", otherTotal);
            groupActivities.add(otherGroup);
        }
    }

    Collections.sort(groupActivities);
    Collections.reverse(groupActivities);
    int total = masterTotal > 0 ? masterTotal : absTotal;
    final PortalActivity activity = new PortalActivity(total, groupActivities);
    return activity;
}

From source file:org.apereo.portal.portlets.statistics.BaseStatisticsReportController.java

License:Apache License

/**
 * Set the start/end date and the interval to have selected by default if they are not already
 * set//from w w w . j  a v  a  2 s.c  o m
 */
protected final void setReportFormDateRangeAndInterval(final F report) {
    //Determine default interval based on the intervals available for this aggregation
    if (report.getInterval() == null) {
        report.setInterval(AggregationInterval.DAY);
        final Set<AggregationInterval> intervals = this.getIntervals();
        for (final AggregationInterval preferredInterval : PREFERRED_INTERVAL_ORDER) {
            if (intervals.contains(preferredInterval)) {
                report.setInterval(preferredInterval);
                break;
            }
        }
    }

    //Set the report end date as today
    final DateMidnight reportEnd;
    if (report.getEnd() == null) {
        reportEnd = new DateMidnight();
        report.setEnd(reportEnd);
    } else {
        reportEnd = report.getEnd();
    }

    //Determine the best start date based on the selected interval
    if (report.getStart() == null) {
        final DateMidnight start;
        switch (report.getInterval()) {
        case MINUTE: {
            start = reportEnd.minusDays(1);
            break;
        }
        case FIVE_MINUTE: {
            start = reportEnd.minusDays(2);
            break;
        }
        case HOUR: {
            start = reportEnd.minusWeeks(1);
            break;
        }
        case DAY: {
            start = reportEnd.minusMonths(1);
            break;
        }
        case WEEK: {
            start = reportEnd.minusMonths(3);
            break;
        }
        case MONTH: {
            start = reportEnd.minusYears(1);
            break;
        }
        case ACADEMIC_TERM: {
            start = reportEnd.minusYears(2);
            break;
        }
        case CALENDAR_QUARTER: {
            start = reportEnd.minusYears(2);
            break;
        }
        case YEAR: {
            start = reportEnd.minusYears(10);
            break;
        }
        default: {
            start = reportEnd.minusWeeks(1);
        }
        }

        report.setStart(start);
    }
}

From source file:org.efaps.esjp.bpm.listener.PotentialOwnerListener_Base.java

License:Apache License

@Override
public Return execute(final Parameter _parameter) throws EFapsException {
    final Return ret = new Return();
    final List<?> owners = (List<?>) _parameter.get(ParameterValues.BPM_VALUES);
    if (!owners.isEmpty()) {
        final List<String> uuids = new ArrayList<String>();
        final List<AbstractUserObject> newOwners = new ArrayList<AbstractUserObject>();
        for (final Object owner : owners) {
            newOwners.add((AbstractUserObject) owner);
            uuids.add(((AbstractUserObject) owner).getUUID().toString());
        }//w ww.  ja v  a2 s  .co  m
        final DateTime date = new DateMidnight().toDateTime();

        final QueryBuilder queryBldr = new QueryBuilder(CIBPM.DelegateAutomaticAbstract);
        queryBldr.addWhereAttrEqValue(CIBPM.DelegateAutomaticAbstract.FromUserUUID, uuids.toArray());
        queryBldr.addWhereAttrGreaterValue(CIBPM.DelegateAutomaticAbstract.ValidFrom,
                date.minusDays(1).minusSeconds(1));
        queryBldr.addWhereAttrLessValue(CIBPM.DelegateAutomaticAbstract.ValidUntil,
                date.plusDays(1).plusSeconds(1));
        final CachedMultiPrintQuery multi = queryBldr.getCachedPrint(BPM.CACHEKEY4DELEGATE).setLifespan(8)
                .setLifespanUnit(TimeUnit.HOURS);
        multi.addAttribute(CIBPM.DelegateAutomaticAbstract.ToUserUUID,
                CIBPM.DelegateAutomaticAbstract.ValidFrom, CIBPM.DelegateAutomaticAbstract.ValidUntil);
        multi.executeWithoutAccessCheck();
        while (multi.next()) {
            final DateTime validFrom = multi.<DateTime>getAttribute(CIBPM.DelegateAutomaticAbstract.ValidFrom);
            final DateTime validUntil = multi
                    .<DateTime>getAttribute(CIBPM.DelegateAutomaticAbstract.ValidUntil);
            if (validFrom.toLocalDateTime().isBefore(new LocalDateTime())
                    && validUntil.toLocalDateTime().isAfter(new LocalDateTime())) {
                final String tuUserUUID = multi
                        .<String>getAttribute(CIBPM.DelegateAutomaticAbstract.ToUserUUID);
                newOwners.add(AbstractUserObject.getUserObject(UUID.fromString(tuUserUUID)));
            }
        }
        ret.put(ReturnValues.VALUES, newOwners);
    }
    return ret;
}

From source file:org.fenixedu.academic.ui.struts.action.publico.RoomSiteViewerDispatchAction.java

License:Open Source License

public ActionForward roomViewer(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    String roomId = request.getParameter("roomId");
    String roomName = request.getParameter("roomName");
    if (roomId == null) {
        roomId = (String) request.getAttribute("roomId");
    }//from  w w w.  j  a va  2s  . c o m
    if (roomName == null) {
        roomName = (String) request.getAttribute("roomName");

    }
    request.setAttribute("roomName", roomName);
    request.setAttribute("roomId", roomId);
    RoomKey roomKey = null;
    Space room = null;
    if (roomName != null || roomId != null) {
        if (roomName != null) {
            roomKey = new RoomKey(roomName);
        }
        if (roomId != null) {
            room = FenixFramework.getDomainObject(roomId);
            if (!FenixFramework.isDomainObjectValid(room)) {
                room = null;
            }
        }
        InfoSiteRoomTimeTable bodyComponent = new InfoSiteRoomTimeTable();
        DynaActionForm indexForm = (DynaActionForm) form;
        Integer indexWeek = (Integer) indexForm.get("indexWeek");
        // Integer executionPeriodID = (Integer)
        // indexForm.get("selectedExecutionPeriodID");
        String executionPeriodIDString = request.getParameter("selectedExecutionPeriodID");
        if (executionPeriodIDString == null) {
            executionPeriodIDString = (String) request.getAttribute("selectedExecutionPeriodID");
        }
        String executionPeriodID = (executionPeriodIDString != null) ? executionPeriodIDString : null;
        if (executionPeriodID == null) {
            try {
                // executionPeriodID = (Integer)
                // indexForm.get("selectedExecutionPeriodID");
                executionPeriodID = indexForm.get("selectedExecutionPeriodID").equals("") ? null
                        : (String) indexForm.get("selectedExecutionPeriodID");
            } catch (IllegalArgumentException ex) {
            }
        }
        Calendar today = new DateMidnight().toCalendar(null);
        ArrayList weeks = new ArrayList();

        InfoExecutionPeriod executionPeriod;
        if (executionPeriodID == null) {
            executionPeriod = ReadCurrentExecutionPeriod.run();
            executionPeriodID = executionPeriod.getExternalId();
            try {
                indexForm.set("selectedExecutionPeriodID", executionPeriod.getExternalId().toString());
            } catch (IllegalArgumentException ex) {
            }
        } else {
            executionPeriod = ReadExecutionPeriodByOID.run(executionPeriodID);
        }

        // weeks
        Calendar begin = Calendar.getInstance();
        begin.setTime(executionPeriod.getBeginDate());
        Calendar end = Calendar.getInstance();
        end.setTime(executionPeriod.getEndDate());
        ArrayList weeksLabelValueList = new ArrayList();
        begin.add(Calendar.DATE, Calendar.MONDAY - begin.get(Calendar.DAY_OF_WEEK));
        int i = 0;
        boolean selectedWeek = false;
        while (begin.before(end) || begin.before(Calendar.getInstance())) {
            Calendar day = Calendar.getInstance();
            day.setTimeInMillis(begin.getTimeInMillis());
            weeks.add(day);
            String beginWeekString = DateFormatUtils.format(begin.getTime(), "dd/MM/yyyy");
            begin.add(Calendar.DATE, 5);
            String endWeekString = DateFormatUtils.format(begin.getTime(), "dd/MM/yyyy");
            weeksLabelValueList.add(
                    new LabelValueBean(beginWeekString + " - " + endWeekString, new Integer(i).toString()));
            begin.add(Calendar.DATE, 2);
            if (!selectedWeek && indexWeek == null && Calendar.getInstance().before(begin)) {
                indexForm.set("indexWeek", new Integer(i));
                selectedWeek = true;
            }
            i++;
        }

        final Collection<ExecutionSemester> executionSemesters = Bennu.getInstance().getExecutionPeriodsSet();
        final List<LabelValueBean> executionPeriodLabelValueBeans = new ArrayList<LabelValueBean>();
        for (final ExecutionSemester ep : executionSemesters) {
            if (ep.getState().equals(PeriodState.OPEN) || ep.getState().equals(PeriodState.CURRENT)) {
                executionPeriodLabelValueBeans.add(new LabelValueBean(
                        ep.getName() + " " + ep.getExecutionYear().getYear(), ep.getExternalId().toString()));
            }
        }
        request.setAttribute(PresentationConstants.LABELLIST_EXECUTIONPERIOD, executionPeriodLabelValueBeans);

        request.setAttribute(PresentationConstants.LABELLIST_WEEKS, weeksLabelValueList);
        if (indexWeek != null) {
            final int xpto = indexWeek.intValue();
            if (xpto < weeks.size()) {
                today = (Calendar) weeks.get(xpto);
            } else {
                today = (Calendar) weeks.iterator().next();
                indexForm.set("indexWeek", new Integer(0));
            }
        }

        try {
            InfoSiteRoomTimeTable component = null;
            if (room != null) {
                component = run(room, today, executionPeriodID);
            } else {
                if (roomKey != null) {
                    component = run(roomKey, today, executionPeriodID);
                }
            }
            request.setAttribute("component", component);
        } catch (NonExistingServiceException e) {
            throw new NonExistingActionException(e);
        } catch (FenixServiceException e) {
            throw new FenixActionException(e);
        }
        return mapping.findForward("roomViewer");
    }
    throw new FenixActionException();

}