r2708 - in trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config: . model
Author: tchemit Date: 2013-07-26 14:43:48 +0200 (Fri, 26 Jul 2013) New Revision: 2708 Url: http://nuiton.org/projects/jaxx/repository/revisions/2708 Log: fixes #2797: Can veto the change of a category Modified: trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java Modified: trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java =================================================================== --- trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java 2013-07-23 16:59:30 UTC (rev 2707) +++ trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/ConfigUIHandler.java 2013-07-26 12:43:48 UTC (rev 2708) @@ -78,10 +78,25 @@ private Container topContainer; + /** + * To be able to veto a change of a category. + * + * @since 2.6 + */ + public static interface ChangeCategoryCallBack { + boolean canChangeCategory(String categoryName); + } + + private ChangeCategoryCallBack changeCategoryCallBack; + public ConfigUIHandler(ConfigUI ui) { this.ui = ui; } + public void setChangeCategoryCallBack(ChangeCategoryCallBack changeCategoryCallBack) { + this.changeCategoryCallBack = changeCategoryCallBack; + } + public void initUI(String defaultCategory) { ConfigUIModel model = ui.getModel(); @@ -97,11 +112,15 @@ // check if catgeory can be quit boolean canContinue = !isSelected() || canQuitCategory(); if (canContinue) { + // was authorized to leave previous category if (log.isDebugEnabled()) { log.debug("new index : " + index); } - // was authorized to continue - super.setSelectedIndex(index); + String categoryName = ConfigUIHandler.this.ui.getModel().getCategoryName(index); + if (changeCategoryCallBack == null || changeCategoryCallBack.canChangeCategory(categoryName)) { + // can change category + super.setSelectedIndex(index); + } } } }); Modified: trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java =================================================================== --- trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java 2013-07-23 16:59:30 UTC (rev 2707) +++ trunk/jaxx-config/src/main/java/jaxx/runtime/swing/config/model/ConfigUIModel.java 2013-07-26 12:43:48 UTC (rev 2708) @@ -433,4 +433,8 @@ protected CallBacksManager getCallBacksManager() { return callBacksManager; } + + public String getCategoryName(int index) { + return Lists.newArrayList(categories.keySet()).get(index); + } }
participants (1)
-
tchemit@users.nuiton.org