WICKET-6333 Use onConfigure() to set the visibility of ExportToolbar instead of overriding isVisible()
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c34b6321 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c34b6321 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c34b6321 Branch: refs/heads/master Commit: c34b63212db693f332462af1c994ed320c3bedc8 Parents: f2adf1c Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Mar 6 09:44:49 2017 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Mon Mar 20 21:42:32 2017 +0100 ---------------------------------------------------------------------- .../data/table/export/ExportToolbar.java | 34 +++++++++++++------- 1 file changed, 23 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/c34b6321/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/export/ExportToolbar.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/export/ExportToolbar.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/export/ExportToolbar.java index aa71669..faad10e 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/export/ExportToolbar.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/export/ExportToolbar.java @@ -212,32 +212,44 @@ public class ExportToolbar extends AbstractToolbar .setBody(dataExporter.getDataFormatNameModel()); } + @Override + protected void onConfigure() + { + super.onConfigure(); + + calculateVisibility(); + } + /** * This toolbar is only visible if there are rows in the data set and if there are exportable columns in the * data table and if there are data exporters added to the toolbar. */ - @Override - public boolean isVisible() + protected void calculateVisibility() { + final boolean isVisible; if (dataExporters.isEmpty()) { - return false; + isVisible = false; } - - if (getTable().getRowCount() == 0) + else if (getTable().getRowCount() == 0) { - return false; + isVisible = false; } - - for (IColumn<?, ?> col : getTable().getColumns()) + else { - if (col instanceof IExportableColumn) + boolean foundExportableColumn = false; + for (IColumn<?, ?> col : getTable().getColumns()) { - return true; + if (col instanceof IExportableColumn) + { + foundExportableColumn = true; + break; + } } + isVisible = foundExportableColumn; } - return false; + setVisible(isVisible); } @Override
