1- Datepicker In Jmesa / Datepicker pour les filtres date dans un tableau jmesa
2- Jmesa i18n internationalization / internalisation in Struts
Datepicker In Jmesa / Mettre une Datepicker pour les filtres de type date dans un tableau jmesa
Détail :
JMesa est un tableau HTML dynamique qui permet de filtrer, trier,
pagines, exporter et éditer les données mais vous devez. jmesa est une
API mûrement réfléchie qui est très facile à utiliser et peut être
modifié pour vos propres besoins.
Dans la page JSP :
<jmesa:tableFacade
id="worksheet"
editable="false"
items="${items}"
maxRows="25"
exportTypes=""
maxRowsIncrements="25,50,100"
stateAttr="restore"
toolbar="com.xx.portal.util.
id="worksheet"
editable="false"
items="${items}"
maxRows="25"
exportTypes=""
maxRowsIncrements="25,50,100"
stateAttr="restore"
toolbar="com.xx.portal.util.
filterMatcherMap="com.xx.
var="pdaCycleInfo">
......
<jmesa:htmlColumn property="importDate" title="Import Date"
editable="false" width="150px" pattern="yyyy-MM-dd" cellEditor="org.jmesa.view.
filterEditor="com.xx.portal.
/>
.............
public class PDADateFilterMatcherMap implements FilterMatcherMap
{
public Map<MatcherKey, FilterMatcher> getFilterMatchers()
{
Map<MatcherKey, FilterMatcher> filterMatcherMap = new HashMap<MatcherKey, FilterMatcher>();
filterMatcherMap.put(new MatcherKey(Date.class, "importDate"), new DateFilterMatcher("yyyy-MM-dd"
return filterMatcherMap;
}
}
.............
public class DatePickerFilterEditor extends AbstractFilterEditor
{
@Override
public HtmlColumn getColumn()
{
return (HtmlColumn)super.getColumn();
}
public Object getValue()
{
HtmlBuilder html = new HtmlBuilder();
Limit limit = getCoreContext().getLimit();
HtmlColumn column = getColumn();
String property = column.getProperty();
Filter filter = limit.getFilterSet().
String filterValue = "";
if (filter != null)
{
filterValue = filter.getValue();
}
html.div().styleClass("
html.onclick("jQuery.jmesa.
html.close();
html.append(escapeHtml(
html.divEnd();
return html.toString();
}
}
--------------
Dans le fichier javascript jquery.jmesa.js , ajouter ce bout de code
createDynDateFilter : function(filter, id, property) {
if (dynDateFilter) {
return;
}
dynDateFilter = new classes.DynFilter(filter, id, property , format , local);
var cell = $(filter);
var width = cell.width();
var originalValue = cell.text();
/* Enforce the width with a style. */
cell.width(width);
cell.parent().width(width);
cell.css('overflow', 'visible');
cell.html('<div id="dynFilterDateDiv"><input id="dynFilterDateInput" name="filter" style="width:' + (width + 2) + 'px" value="" /></div>');
var input = $('#dynFilterDateInput');
$("#dynFilterDateInput").
dateFormat: format
}));
input.val(originalValue);
input.focus();
$(input).keypress(function(
if (event.keyCode == 13) { /* Press the enter key. */
var changedValue = input.val();
cell.text('');
cell.css('overflow', 'hidden');
cell.text(changedValue);
$.jmesa.addFilterToLimit(
$.jmesa.onInvokeAction(
dynDateFilter = null;
}
});
$(input).change(function() {
var changedValue = input.val();
cell.text('');
cell.css('overflow', 'hidden');
cell.text(changedValue);
$.jmesa.addFilterToLimit(
$.jmesa.onInvokeAction(
dynDateFilter = null;
});
Jmesa i18n internationalization / internalisation in Struts
Détail :
jmesa offre la possibilité d’internationaliser ses applications.
il faut créer une classe i18NHelper :
public class i18NHelper {
private static MessageResources getMessageResources (HttpServletRequest request) {
return (MessageResources) request.getAttribute (Globals.MESSAGES_KEY);
}
public static String getLocalizedMessage(Locale locale, String messageKey , MessageResources messageResources)throws Exception {
if(locale == null) return messageKey;
String localizedMessage = null;
if(messageResources != null) {
localizedMessage = messageResources.getMessage(
return (MessageResources) request.getAttribute (Globals.MESSAGES_KEY);
}
public static String getLocalizedMessage(Locale locale, String messageKey , MessageResources messageResources)throws Exception {
if(locale == null) return messageKey;
String localizedMessage = null;
if(messageResources != null) {
localizedMessage = messageResources.getMessage(
}
if(localizedMessage == null) {
localizedMessage = "N/A";
}
return localizedMessage;
}
}
dans la page jsp :
<%@ page import="com.web.service.i18N.
<% MessageResources msgR = (MessageResources) getServletContext().
<bean:define id="nameBean" type="java.lang.String" value="<%=i18NHelper.
<jmesa:tableFacade
id="worksheet"
editable="false"
items="${items}"
maxRows="25"
exportTypes=""
maxRowsIncrements="25,50,100"
stateAttr="restore"
toolbar="com.web.service.
filterMatcherMap="com.web.
var="pdaCycleInfo">
<jmesa:htmlColumn property="name" title="${nameBean}"
editable="false" width="150px"
/>
Aucun commentaire:
Enregistrer un commentaire