From e47921b5822ae322e6829d0dc4d720091cb85c85 Mon Sep 17 00:00:00 2001 From: erik Date: Fri, 20 Feb 2015 14:28:40 +0100 Subject: [PATCH] MID-2131 implementation. --- .../component/data/paging/NavigatorPanel.html | 9 +-- .../component/data/paging/NavigatorPanel.java | 66 ++++++++++++++----- .../data/paging/NavigatorPanel.properties | 8 +-- 3 files changed, 60 insertions(+), 23 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.html index 3699c2400cc..b6ae2e38600 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.html @@ -19,13 +19,14 @@
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java index 4fc19191256..0b30e7b2e55 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.java @@ -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"; @@ -78,10 +80,11 @@ public boolean isVisible() { } private void initLayout() { - initPrevious(); initFirst(); + initPrevious(); initNavigation(); initNext(); + initLast(); } private void initPrevious() { @@ -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() { @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) { @@ -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() { @@ -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() { + + @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; } @@ -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) { @@ -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); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.properties b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.properties index ff9de0a9996..4a48f40e656 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.properties +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/paging/NavigatorPanel.properties @@ -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=>>