/** * TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L. * Copyright (C) 2007 Autentia Real Bussiness Solution S.L. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.autentia.jsf.component.ocupation; import javax.faces.context.FacesContext; import javax.faces.el.ValueBinding; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.myfaces.shared_tomahawk.util._ComponentUtils; /** * Coupation Calendar Tag * * @author german */ public class HtmlOcupationCalendar extends org.apache.myfaces.custom.calendar.HtmlInputCalendar { private static final Log log = LogFactory .getLog(HtmlOcupationCalendar.class); public static final String COMPONENT_TYPE = HtmlOcupationCalendar.class.getName(); public static final String DEFAULT_RENDERER_TYPE = HtmlOcupationCalendarRenderer.class .getName(); /** User bean binding */ private OcupationModel ocupation = null; /** week-end days style class */ private String weekEndCellClass = null; /** vacation days style class */ private Integer workingDayHours = null; /** extra days to show in component */ private String extraDays = null; /** style ti set extra days */ private String extraDaysCellClass = null; /** */ private String vacancesCellClass = null; /** */ private String fullWorkCellClass = null; /** */ private String partialWorkCellClass = null; /** constructor */ public HtmlOcupationCalendar() { if (log.isDebugEnabled()) { log.debug("HtmlInputCalendar - setRendererType=\"" + DEFAULT_RENDERER_TYPE + "\"."); } setRendererType(DEFAULT_RENDERER_TYPE); } @Override public String getFamily() { if (log.isDebugEnabled()) { log.debug("getFamily - return=\"" + COMPONENT_TYPE + "\"."); } return COMPONENT_TYPE; } /** * sets style class * * @param weekEndCellClass * class to set */ public void setWeekEndCellClass(String weekEndCellClass) { this.weekEndCellClass = weekEndCellClass; } /** * gets style class * * @return weekEndCellClass class to set */ public String getWeekEndCellClass() { if (weekEndCellClass != null) return weekEndCellClass; ValueBinding vb = getValueBinding("weekEndCellClass"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } /** * sets working day hours * * @param workingDayHours * hours to set */ public void setWorkingDayHours(String workingDayHours) { this.workingDayHours = Integer.valueOf(workingDayHours); } /** * gets style class * * @return vacationDayCellClass class to set */ public String getWorkingDayHours() { if (workingDayHours != null) return workingDayHours.toString(); ValueBinding vb = getValueBinding("workingDayHours"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } /** * @return the User bean */ public OcupationModel getOcupation() { if (log.isDebugEnabled()) { log.debug("component - getVacationModel bean=\"" + ocupation + "\""); } if (ocupation != null) return ocupation; ValueBinding vb = getValueBinding("ocupationModel"); return vb != null ? (OcupationModel) vb.getValue(getFacesContext()) : null; } /** * @param bean * the User bean to set */ public void setOcupation(OcupationModel ocupation) { if (log.isDebugEnabled()) { log.debug("component - setVacations bean=\"" + ocupation + "\""); } this.ocupation = ocupation; } public String getExtraDays() { if (extraDays != null) return extraDays; ValueBinding vb = getValueBinding("extraDays"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } public void setExtraDays(String extraDays) { this.extraDays = extraDays; } public String getExtraDaysCellClass() { if (extraDaysCellClass != null) return extraDaysCellClass; ValueBinding vb = getValueBinding("extraDaysCellClass"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } public void setExtraDaysCellClass(String extraDaysCellClass) { this.extraDaysCellClass = extraDaysCellClass; } public String getVacancesCellClass() { if (vacancesCellClass != null) return vacancesCellClass; ValueBinding vb = getValueBinding("vacancesCellClass"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } public void setVacancesCellClass(String vacancesCellClass) { this.vacancesCellClass = vacancesCellClass; } public String getFullWorkCellClass() { if (fullWorkCellClass != null) return fullWorkCellClass; ValueBinding vb = getValueBinding("fullWorkCellClass"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } public void setFullWorkCellClass(String fullWorkCellClass) { this.fullWorkCellClass = fullWorkCellClass; } public String getPartialWorkCellClass() { if (partialWorkCellClass != null) return partialWorkCellClass; ValueBinding vb = getValueBinding("partialWorkCellClass"); return vb != null ? _ComponentUtils.getStringValue(getFacesContext(), vb) : null; } public void setPartialWorkCellClass(String partialWorkCellClass) { this.partialWorkCellClass = partialWorkCellClass; } public void setWorkingDayHours(Integer workingDayHours) { this.workingDayHours = workingDayHours; } /* * (non-Javadoc) * * @see javax.faces.component.UIComponentBase#restoreState(javax.faces.context.FacesContext, * java.lang.Object) */ @Override public void restoreState(FacesContext context, Object state) { Object values[] = (Object[]) state; super.restoreState(context, values[0]); ocupation = (OcupationModel) values[1]; weekEndCellClass = (String) values[2]; workingDayHours = (Integer) values[3]; extraDays = (String) values[4]; extraDaysCellClass = (String) values[5]; vacancesCellClass = (String) values[6]; fullWorkCellClass = (String) values[7]; partialWorkCellClass = (String) values[8]; } /* * (non-Javadoc) * * @see javax.faces.component.UIComponentBase#saveState(javax.faces.context.FacesContext) */ @Override public Object saveState(FacesContext context) { Object values[] = new Object[26]; values[0] = super.saveState(context); values[1] = ocupation; values[2] = weekEndCellClass; values[3] = workingDayHours; values[4] = extraDays; values[5] = extraDaysCellClass; values[6] = vacancesCellClass; values[7] = fullWorkCellClass; values[8] = partialWorkCellClass; return ((Object) (values)); } }