Olá a todos, pesquisei bastante antes mas infelizmente não encontrei a solução para este problema.
Tirei como base o exemplo do site do rich Faces - estou usando jsf1.2 com rich 3.3.3
Tenho o rich:calendar desta forma:
<rich:calendar value="#{Pedagogico$CentralApontamentoPresenca.datasSelecionadaCalendario}" dataModel="#{Pedagogico$CentralApontamentoPresenca.calendarModel}" popup="false" cellWidth="100px" cellHeight="100px" showWeekDaysBar="true" showWeeksBar="false" onchanged="if (event.rich.date) {ajaxSubmit();}"
oncurrentdateselect="return false" id="organizer" valueChangeListener="#{Pedagogico$CentralApontamentoPresenca.calendarModel.valueChanged}" showFooter="false" >
<f:facet name="header">
<h:outputText value="{currentMonthControl}" style="font-weight:bold;"/>
</f:facet>
<a4j:outputPanel layout="block" id="cell" onclick="#{rich:component('organizer')}.resetSelectedDate()" style="height: 100%;" styleClass="organizer-cell">
<div>
<br/>
<h:outputText value="{day}" style="align:center"/>
</div>
<div> </div>
<div>
<h:outputText value="{data.shortDescription.escapeHTML()}" />
</div>
<div>
<h:outputText value="{data.description.escapeHTML()}"/>
</div>
</a4j:outputPanel>
</rich:calendar>
e quando clico no mês corrente que aparece no “header” do calendário ele me da a opção de escolha do meses e anos não importando qual a escolha ele sempre se mantém no mês corrente como posso estar resolvendo isso?
Segue o modal:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package wpos.controle.model;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.faces.event.ValueChangeEvent;
import org.richfaces.model.CalendarDataModel;
import org.richfaces.model.CalendarDataModelItem;
/**
*
* @author fcscjunior
*/
public class CalendarDataModelImpl implements CalendarDataModel {
/* (non-Javadoc)
* @see org.richfaces.component.CalendarDataModel#getData(java.util.Date[])
*/
private CalendarDataModelItem[] items;
private String currentDescription;
private String currentShortDescription;
private Date currentDate;
private boolean currentDisabled;
/* (non-Javadoc)
* @see org.richfaces.model.CalendarDataModel#getData(java.util.Date[])
*/
@Override
public CalendarDataModelItem[] getData(Date[] dateArray) {
if (dateArray == null) {
return null;
}
if (items==null) {
items = new CalendarDataModelItem[dateArray.length];
for (int i = 0; i < dateArray.length; i++) {
items[i] = createDataModelItem(dateArray[i]);
}
}
return items;
}
/**
* @param date
* @return CalendarDataModelItem for date
*/
protected CalendarDataModelItem createDataModelItem(Date date) {
CalendarDataModelItemImpl item = new CalendarDataModelItemImpl();
Map data = new HashMap();
data.put("shortDescription", "Nothing planned");
data.put("description", "");
Calendar c = Calendar.getInstance();
c.setTime(date);
item.setDay(c.get(Calendar.DAY_OF_MONTH));
item.setEnabled(true);
item.setStyleClass("rel-hol");
item.setData(data);
return item;
}
/* (non-Javadoc)
* @see org.richfaces.model.CalendarDataModel#getToolTip(java.util.Date)
*/
@Override
public Object getToolTip(Date date) {
// TODO Auto-generated method stub
return null;
}
/**
* @return items
*/
public CalendarDataModelItem[] getItems() {
return items;
}
/**
* @param setter for items
*/
public void setItems(CalendarDataModelItem[] items) {
this.items = items;
}
/**
* @param valueChangeEvent handling
*/
public void valueChanged(ValueChangeEvent event) {
System.out.println(event.getNewValue()+"selected");
setCurrentDate((Date)event.getNewValue());
Calendar calendar = Calendar.getInstance();
calendar.setTime(getCurrentDate());
setCurrentDescription((String)((HashMap)items[calendar.get(Calendar.DAY_OF_MONTH)-1].getData()).get("description"));
setCurrentShortDescription((String)((HashMap)items[calendar.get(Calendar.DAY_OF_MONTH)-1].getData()).get("shortDescription"));
}
/**
* Storing changes action
*/
public void storeDayDetails() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getCurrentDate());
((HashMap)items[calendar.get(Calendar.DAY_OF_MONTH)-1].getData()).put("shortDescription", getCurrentShortDescription());
((HashMap)items[calendar.get(Calendar.DAY_OF_MONTH)-1].getData()).put("description", getCurrentDescription());
}
/**
* @return currentDescription
*/
public String getCurrentDescription() {
return currentDescription;
}
/**
* @param currentDescription
*/
public void setCurrentDescription(String currentDescription) {
this.currentDescription = currentDescription;
}
/**
* @return currentDisabled
*/
public boolean isCurrentDisabled() {
return currentDisabled;
}
/**
* @param currentDisabled
*/
public void setCurrentDisabled(boolean currentDisabled) {
this.currentDisabled = currentDisabled;
}
/**
* @return currentShortDescription
*/
public String getCurrentShortDescription() {
return currentShortDescription;
}
/**
* @param currentShortDescription
*/
public void setCurrentShortDescription(String currentShortDescription) {
this.currentShortDescription = currentShortDescription;
}
/**
* @return currentDate
*/
public Date getCurrentDate() {
return currentDate;
}
/**
* @param currentDate
*/
public void setCurrentDate(Date currentDate) {
this.currentDate = currentDate;
}
}
Obrigado