Output
01.07.2025 | 01.07.2025 | ||
01.07.2025 10:50 | 01.07.2025 10:50 |
Date & Time
Validation is possible in <jp:inputCalendar with mindate and maxdate. A jtp:label can be linked with a for attribute and the id of the inputCalendar + "pCalendar".
To enforce a date sequence, this concept can be used:
<h:form id="fInput">
<p:panel header="Input" styleClass="jeesl-panel">
<f:facet name="actions">
<j:svg type="jeeslSave" listener="#{componentTimeBean.save()}" update=":sComponents"/>
</f:facet>
<p:panelGrid columns="4" columnClasses="jeeslGrid25,jeeslGrid25,jeeslGrid25,jeeslGrid25">
<p:outputLabel value=""/>
<p:outputLabel value="Date"/>
<p:outputLabel value="LocalDate"/>
<p:outputLabel value="LocalDateTime"/>
<p:outputLabel value="#{appSettingsBean.patternDate}"/>
<jp:inputCalendar value="#{componentTimeBean.d1}" pattern="#{appSettingsBean.patternDate}"/>
<jp:inputCalendar value="#{componentTimeBean.ld1}" pattern="#{appSettingsBean.patternDate}"/>
<h:outputText value=""/>
<p:outputLabel value="#{appSettingsBean.patternDateMinute}"/>
<jp:inputCalendar value="#{componentTimeBean.d2}" pattern="#{appSettingsBean.patternDateMinute}"/>
<h:outputText value=""/>
<jp:inputCalendar value="#{componentTimeBean.ldt2}" pattern="#{appSettingsBean.patternDateMinute}"/>
</p:panelGrid>
<j:inputGrid>
<p:outputLabel value="showWeek"/>
<jp:inputCalendar value="#{componentTimeBean.d1}" pattern="#{appSettingsBean.patternDate}" showWeek="true"/>
<p:outputLabel value="navigator"/>
<jp:inputCalendar value="#{componentTimeBean.d1}" pattern="#{appSettingsBean.patternDate}" navigator="true"/>
</j:inputGrid>
</p:panel>
</h:form>
<p:panel header="Output" styleClass="jeesl-panel">
<p:panelGrid columns="4" columnClasses="jeeslGrid25,jeeslGrid25,jeeslGrid25,jeeslGrid25">
<p:outputLabel value=""/>
<p:outputLabel value="Date"/>
<p:outputLabel value="LocalDate"/>
<p:outputLabel value="LocalDateTime"/>
<p:outputLabel value="default"/>
<jp:outputDate value="#{componentTimeBean.d1}" type="both"/>
<jp:outputDate value="#{componentTimeBean.ld1}"/>
<h:outputText value=""/>
<p:outputLabel value="default"/>
<jp:outputDate value="#{componentTimeBean.d2}" type="both" withMinute="true"/>
<h:outputText value=""/>
<jp:outputDate value="#{componentTimeBean.ldt2}" withMinute="true"/>
</p:panelGrid>
</p:panel>
<h:form id="fValidation">
<p:panel header="Validation" styleClass="jeesl-panel">
<f:facet name="actions">
<j:svg type="jeeslSave" listener="#{componentTimeBean.save()}" update="@form"/>
</f:facet>
<p:messages redisplay="false" severity="warn,error" showSummary="true" showDetail="false" closable="true"/>
<j:inputGrid >
<jtp:label for="ic:pCalendar" entity="CalCalendar"/>
<jp:inputCalendar id="ic" value="#{componentTimeBean.sbh.dateFrom}"
mindate="#{componentTimeBean.sbh.minFrom}"
maxdate="#{componentTimeBean.sbh.maxFrom}"
pattern="#{appSettingsBean.patternDate}"/>
</j:inputGrid>
</p:panel>
</h:form>
@Named @ViewScoped
public class ComponentTimeBean extends AbstractJeeBean implements SbDateSelectionBean
{
final static Logger logger = LoggerFactory.getLogger(ComponentTimeBean.class);
private static final long serialVersionUID = 1L;
private final SbDateHandler sbh; public SbDateHandler getSbh() {return sbh;}
private Date d1;
public Date getD1() {return d1;}
public void setD1(Date d1) {this.d1 = d1;}
private LocalDate ld1;
public LocalDate getLd1() {return ld1;}
public void setLd1(LocalDate ld1) {this.ld1 = ld1;}
private Date d2;
public Date getD2() {return d2;}
public void setD2(Date d2) {this.d2 = d2;}
private LocalDateTime ldt2;
public LocalDateTime getLdt2() {return ldt2;}
public void setLdt2(LocalDateTime ldt2) {this.ldt2 = ldt2;}
private String stringJuDate; public String getStringJuDate() {return stringJuDate;}
private String stringJtDate; public String getStringJtDate() {return stringJtDate;}
public ComponentTimeBean()
{
sbh = SbDateHandler.instance(this).initToday();
sbh.setMinFrom(sbh.getDateFrom().minusDays(3));
sbh.setMaxFrom(sbh.getDateFrom().plusDays(2));
}
@PostConstruct
public void init()
{
super.initSecurity();
d1 = new Date();
ld1 = LocalDate.now();
d2 = new Date();
ldt2 = LocalDateTime.now();
}
@Override
public void callbackDateChanged(SbDateSelection handler) {}
public void save()
{
logger.info("Save");
}
}