private void loadListBreakDownElements(ActionContext context) throws Exception { logger.debug("AdminAction"); Collection dbData = null; Collection listBreakDownElementsItems = null; BreakdownElementItem breakDownElementItem = null; // Initialisation du form si celui-ci est nul if (context.form() == null) { context.session().setAttribute(context.mapping().getAttribute(), new AdminForm()); } // R?cup?ration du form bean n?cessaire pour fournir les informations ? la JSP AdminForm adminForm = (AdminForm) context.form(); dbData = BreakdownElementManager.getInstance().getList(BusinessConstantes.TABLE_BREAKDOWN); // Constitue une liste de BreakDownElementItem ? partir des donn?es stock?es en BD Iterator iter = dbData.iterator(); listBreakDownElementsItems = new ArrayList(); HashMap breakDownElementsMap = new HashMap(); while (iter.hasNext()) { BreakdownElement breakdownElement = (BreakdownElement) iter.next(); breakDownElementItem = new BreakdownElementItem(); breakDownElementItem.setId(breakdownElement.getId().toString()); breakDownElementItem.setPrefix(breakdownElement.getPrefix()); breakDownElementItem.setName(breakdownElement.getName()); breakDownElementItem.setDetails(breakdownElement.getDetails()); breakDownElementItem.setStartDate(breakdownElement.getStartDate()); breakDownElementItem.setEndDate(breakdownElement.getEndDate()); breakDownElementItem.setKind(breakdownElement.getKind().getName()); if (breakdownElement.getEndDate() != null) { // Le projet est finie dons certaines options seront inaccessibles breakDownElementItem.setFinished(true); } else { breakDownElementItem.setFinished(false); } listBreakDownElementsItems.add(breakDownElementItem); // Construction de la hash map stockant la liste des BreakDownElements breakDownElementsMap.put(breakdownElement.getId(), breakdownElement); } // Conversion de la liste en tableau d'items DisplayObject[] result = new BreakdownElementItem[listBreakDownElementsItems.size()]; listBreakDownElementsItems.toArray(result); // Cr?ation de la liste initialis?e avec les valeurs ? afficher ListBreakDownElementsModel model = new ListBreakDownElementsModel(result); adminForm.setDataModelListBreakDownElements(model); // Sauvegarde d'une HashMap stockant la liste des BreakDownElements context.session().setAttribute(PresentationConstantes.KEY_BDE_MAP, breakDownElementsMap); }
/** * Terminer un projet * * @param context * @param id : identifiant du projet * @throws IOException * @throws ServletException */ public void listBreakDownElements_onFinish(ControlActionContext context, String id) throws IOException, ServletException { try { BreakdownElement bde = BreakdownElementManager.getInstance() .getBreakDownElementById(new Integer(Integer.parseInt(id))); if (bde.getEndDate() == null) { bde.setEndDate(new Date()); // On met à jour le projet BreakdownElementManager.getInstance().update(bde); // On termine toutes les activités sans fin Collection activities = ActivityManager.getInstance().getAllActivitiesByBDE(new Integer(Integer.parseInt(id))); for (Iterator i = activities.iterator(); i.hasNext(); ) { Activity a = ((Activity) i.next()); if (a.getOnGoing().equals(BusinessConstantes.OUI)) { a.process(); // Met a jour en BD l'etat de l'activite ActivityManager.getInstance().update(a); } } } } catch (DoublonException e) { context.addGlobalError("errors.persistance.doublon"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); } catch (NumberFormatException e) { context.addGlobalError("errors.persistance.global"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); } catch (PersistanceException e) { context.addGlobalError("errors.persistance.global"); context.forwardByName(PresentationConstantes.FORWARD_ERROR); } context.forwardByName(PresentationConstantes.FORWARD_FINISH_BREAKDOWN); }