Skip to content

Commit

Permalink
MID-2131 implementation.
Browse files Browse the repository at this point in the history
  • Loading branch information
erik committed Feb 20, 2015
1 parent 2b0f940 commit e47921b
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 23 deletions.
Expand Up @@ -19,13 +19,14 @@
<wicket:panel>
<div style="text-align: center;">
<ul class="pagination pagination-sm" style="margin: 0 0 20px">
<li wicket:id="previous"><a wicket:id="previousLink"><wicket:message key="NavigatorPanel.previous"/></a></li>
<li wicket:id="first"><a wicket:id="firstLink"><wicket:message key="NavigatorPanel.first"/></a></li>
<li wicket:id="dots" class="disabled"><span><wicket:message key="NavigatorPanel.dots"/></span></li>

<li wicket:id="first"><a wicket:id="firstLink"><wicket:message key="NavigatorPanel.firstLink"/></a></li>
<li wicket:id="previous"><a wicket:id="previousLink"><wicket:message key="NavigatorPanel.previousLink"/></a></li>
<li wicket:id="navigation">
<a wicket:id="pageLink"/>
</li>
<li wicket:id="next"><a wicket:id="nextLink"><wicket:message key="NavigatorPanel.next"/></a></li>
<li wicket:id="next"><a wicket:id="nextLink"><wicket:message key="NavigatorPanel.nextLink"/></a></li>
<li wicket:id="last"><a wicket:id="lastLink"><wicket:message key="NavigatorPanel.lastLink"/></a></li>
</ul>
</div>
</wicket:panel>
Expand Down
Expand Up @@ -42,7 +42,9 @@ public class NavigatorPanel extends Panel {
private static final String ID_PREVIOUS_LINK = "previousLink";
private static final String ID_FIRST = "first";
private static final String ID_FIRST_LINK = "firstLink";
private static final String ID_DOTS = "dots";
private static final String ID_LAST = "last";
private static final String ID_LAST_LINK = "lastLink";
// private static final String ID_DOTS = "dots";
private static final String ID_NAVIGATION = "navigation";
private static final String ID_PAGE_LINK = "pageLink";
private static final String ID_NEXT = "next";
Expand Down Expand Up @@ -78,10 +80,11 @@ public boolean isVisible() {
}

private void initLayout() {
initPrevious();
initFirst();
initPrevious();
initNavigation();
initNext();
initLast();
}

private void initPrevious() {
Expand Down Expand Up @@ -113,13 +116,13 @@ public boolean isEnabled() {

private void initFirst() {
WebMarkupContainer first = new WebMarkupContainer(ID_FIRST);
first.add(new VisibleEnableBehaviour() {
first.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {

@Override
public boolean isVisible() {
return BooleanUtils.isTrue(showPageListingModel.getObject()) && showFirstAndDots();
public String getObject() {
return isFirstEnabled() ? "" : "disabled";
}
});
}));
add(first);
AjaxLink firstLink = new AjaxLink(ID_FIRST_LINK) {

Expand All @@ -128,17 +131,14 @@ public void onClick(AjaxRequestTarget target) {
firstPerformed(target);
}
};
first.add(firstLink);

WebMarkupContainer dots = new WebMarkupContainer(ID_DOTS);
dots.add(new VisibleEnableBehaviour() {
firstLink.add(new VisibleEnableBehaviour() {

@Override
public boolean isVisible() {
return BooleanUtils.isTrue(showPageListingModel.getObject()) && showFirstAndDots();
public boolean isEnabled() {
return BooleanUtils.isTrue(showPageListingModel.getObject()) && isFirstEnabled();
}
});
add(dots);
first.add(firstLink);
}

private void initNavigation() {
Expand Down Expand Up @@ -239,6 +239,34 @@ public boolean isEnabled() {
next.add(nextLink);
}

private void initLast() {
WebMarkupContainer last = new WebMarkupContainer(ID_LAST);
last.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {

@Override
public String getObject() {
return isLastEnabled() ? "" : "disabled";
}
}));
add(last);

AjaxLink lastLink = new AjaxLink(ID_LAST_LINK) {

@Override
public void onClick(AjaxRequestTarget target) {
lastPerformed(target);
}
};
lastLink.add(new VisibleEnableBehaviour() {

@Override
public boolean isEnabled() {
return BooleanUtils.isTrue(showPageListingModel.getObject()) && isLastEnabled();
}
});
last.add(lastLink);
}

private boolean isPreviousEnabled() {
return pageable.getCurrentPage() > 0;
}
Expand All @@ -247,8 +275,12 @@ private boolean isNextEnabled() {
return pageable.getCurrentPage() + 1 < pageable.getPageCount();
}

private boolean showFirstAndDots() {
return pageable.getCurrentPage() >= PAGING_SIZE - 1;
private boolean isFirstEnabled() {
return pageable.getCurrentPage() > 0;
}

private boolean isLastEnabled(){
return pageable.getCurrentPage() +1 < pageable.getPageCount();
}

private void previousPerformed(AjaxRequestTarget target) {
Expand All @@ -259,6 +291,10 @@ private void firstPerformed(AjaxRequestTarget target) {
changeCurrentPage(target, 0);
}

private void lastPerformed(AjaxRequestTarget target){
changeCurrentPage(target, pageable.getPageCount() - 1);
}

private void nextPerformed(AjaxRequestTarget target) {
changeCurrentPage(target, pageable.getCurrentPage() + 1);
}
Expand Down
Expand Up @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
NavigatorPanel.previous=Previous
NavigatorPanel.dots=...
NavigatorPanel.next=Next
NavigatorPanel.first=1
NavigatorPanel.firstLink=<<
NavigatorPanel.previousLink=<
NavigatorPanel.nextLink=>
NavigatorPanel.lastLink=>>

0 comments on commit e47921b

Please sign in to comment.