Skip to content

Commit 085a0ee

Browse files
committed
Enhance FullPaginationDecorator to handle custom css-tags defined through tag-attributes.
1 parent 70e3f20 commit 085a0ee

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

src/main/java/org/thymeleaf/dialect/springdata/decorator/FullPaginationDecorator.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ public final class FullPaginationDecorator implements PaginationDecorator {
1919
private static final String CSS_ATTR_PREFIX = SpringDataDialect.PREFIX + ":" + DEFAULT_CLASS + "-";
2020

2121
// define custom CSS tags
22+
private String cssLaquo = "page-item";
23+
private String cssRaquo = "page-item";
24+
private String cssPrevious = "page-item";
25+
private String cssNext = "page-item";
2226
private String cssPageItem = "page-item";
2327
private String cssPageLink = "page-link";
2428
private String cssDisabled = "disabled";
@@ -104,19 +108,19 @@ private String createPageLinks(final Page<?> page, final ITemplateContext contex
104108
}
105109

106110
private String getLaquo(Locale locale) {
107-
return Messages.getMessage(BUNDLE_NAME, "laquo", locale, cssPageItem, cssPageLink, cssDisabled);
111+
return Messages.getMessage(BUNDLE_NAME, "laquo", locale, cssLaquo, cssPageLink, cssDisabled);
108112
}
109113

110114
private String getLaquo(String firstPage, Locale locale) {
111-
return Messages.getMessage(BUNDLE_NAME, "laquo.link", locale, firstPage, cssPageItem, cssPageLink);
115+
return Messages.getMessage(BUNDLE_NAME, "laquo.link", locale, firstPage, cssLaquo, cssPageLink);
112116
}
113117

114118
private String getRaquo(Locale locale) {
115-
return Messages.getMessage(BUNDLE_NAME, "raquo", locale, cssPageItem, cssPageLink, cssDisabled);
119+
return Messages.getMessage(BUNDLE_NAME, "raquo", locale, cssRaquo, cssPageLink, cssDisabled);
116120
}
117121

118122
private String getRaquo(String lastPage, Locale locale) {
119-
return Messages.getMessage(BUNDLE_NAME, "raquo.link", locale, lastPage, cssPageItem, cssPageLink);
123+
return Messages.getMessage(BUNDLE_NAME, "raquo.link", locale, lastPage, cssRaquo, cssPageLink);
120124
}
121125

122126
private String getLink(int pageNumber, Locale locale) {
@@ -133,7 +137,7 @@ private String getPreviousPageLink(Page<?> page, final ITemplateContext context)
133137
int previousPage = page.getNumber()-1;
134138
String link = PageUtils.createPageUrl(context, previousPage);
135139

136-
return Messages.getMessage(BUNDLE_NAME, msgKey, locale, link, cssPageItem, cssPageLink, cssDisabled);
140+
return Messages.getMessage(BUNDLE_NAME, msgKey, locale, link, cssPrevious, cssPageLink, cssDisabled);
137141
}
138142

139143
private String getNextPageLink(Page<?> page, final ITemplateContext context) {
@@ -142,11 +146,27 @@ private String getNextPageLink(Page<?> page, final ITemplateContext context) {
142146
int nextPage = page.getNumber() + 1;
143147
String link = PageUtils.createPageUrl(context, nextPage);
144148

145-
return Messages.getMessage(BUNDLE_NAME, msgKey, locale, link, cssPageItem, cssPageLink, cssDisabled);
149+
return Messages.getMessage(BUNDLE_NAME, msgKey, locale, link, cssNext, cssPageLink, cssDisabled);
146150
}
147151

148152
private void configureCss(Map<String,String> attributeMap) {
149153

154+
if (attributeMap.get(CSS_ATTR_PREFIX + "laquo") != null) {
155+
this.cssLaquo = attributeMap.get(CSS_ATTR_PREFIX + "laquo");
156+
}
157+
158+
if (attributeMap.get(CSS_ATTR_PREFIX + "raquo") != null) {
159+
this.cssRaquo = attributeMap.get(CSS_ATTR_PREFIX + "raquo");
160+
}
161+
162+
if (attributeMap.get(CSS_ATTR_PREFIX + "previous") != null) {
163+
this.cssPrevious = attributeMap.get(CSS_ATTR_PREFIX + "previous");
164+
}
165+
166+
if (attributeMap.get(CSS_ATTR_PREFIX + "next") != null) {
167+
this.cssNext = attributeMap.get(CSS_ATTR_PREFIX + "next");
168+
}
169+
150170
if (attributeMap.get(CSS_ATTR_PREFIX + "page-item") != null) {
151171
this.cssPageItem = attributeMap.get(CSS_ATTR_PREFIX + "page-item");
152172
}

0 commit comments

Comments
 (0)