/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.gui.util.sqleditor.components; import net.codjo.dataprocess.common.eventsbinder.EventBinderException; import net.codjo.dataprocess.common.eventsbinder.EventsBinder; import net.codjo.dataprocess.common.eventsbinder.annotations.OnError; import net.codjo.dataprocess.common.eventsbinder.annotations.events.OnAction; import net.codjo.dataprocess.gui.util.ErrorDialog; /** * */ public abstract class NavigationPanelLogic { private int nbOfPage; private int currentPosition; private NavigationPanelGui navigationPanelGui; protected NavigationPanelLogic(EventsBinder eventsBinder) throws EventBinderException { currentPosition = 1; navigationPanelGui = new NavigationPanelGui(); eventsBinder.bind(this, navigationPanelGui); } public int getCurrentPosition() { return currentPosition; } public void setNbOfPage(int nbOfPage) { this.nbOfPage = nbOfPage; getNavigationPanelGui().manageEnablingButtons(currentPosition, nbOfPage); } public NavigationPanelGui getNavigationPanelGui() { return navigationPanelGui; } @OnAction(propertiesBound = "firstButton") public void goFirst() { int oldPos = currentPosition; currentPosition = 1; getNavigationPanelGui().manageEnablingButtons(currentPosition, nbOfPage); onPageChanged(oldPos, currentPosition); } @OnAction(propertiesBound = "previousButton") public void goPrevious() { int oldPos = currentPosition; currentPosition--; getNavigationPanelGui().manageEnablingButtons(currentPosition, nbOfPage); onPageChanged(oldPos, currentPosition); } @OnAction(propertiesBound = "nextButton") public void goNext() { int oldPos = currentPosition; currentPosition++; getNavigationPanelGui().manageEnablingButtons(currentPosition, nbOfPage); onPageChanged(oldPos, currentPosition); } @OnAction(propertiesBound = "lastButton") public void goLast() { int oldPos = currentPosition; currentPosition = nbOfPage; getNavigationPanelGui().manageEnablingButtons(currentPosition, nbOfPage); onPageChanged(oldPos, currentPosition); } public abstract void onPageChanged(int from, int to); @OnError public void exceptionRaisedWhileInvokingMethod(Throwable ex) { ErrorDialog.show(null, "Error", ex); } }