From c3f2c4fc70bb582ae61fe5a73eaffe8474c8d086 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 14 Jun 2016 13:24:58 +0200 Subject: [PATCH] Refactor multiselect code Signed-off-by: Melanie Retter --- .../smtable/SoftwareModuleTableLayout.java | 40 +---------------- .../table/AbstractNamedVersionTable.java | 8 ---- .../ui/common/table/AbstractTable.java | 8 ++++ .../ui/common/table/AbstractTableLayout.java | 27 ++++++++++-- .../dstable/DistributionSetTableLayout.java | 43 ++----------------- .../event/DistributionSetTableEvent.java | 25 ----------- .../event/SoftwareModuleTableEvent.java | 40 ----------------- .../smtable/SwModuleTableLayout.java | 42 ++---------------- .../dstable/DistributionTableLayout.java | 41 +----------------- .../ui/management/event/TargetTableEvent.java | 2 +- .../management/footer/CountMessageLabel.java | 2 +- .../targettable/TargetTableLayout.java | 39 ++--------------- 12 files changed, 47 insertions(+), 270 deletions(-) delete mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java delete mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/SoftwareModuleTableEvent.java diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java index a0ed1b4ec..2672c4546 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTableLayout.java @@ -11,12 +11,8 @@ package org.eclipse.hawkbit.ui.artifacts.smtable; import javax.annotation.PostConstruct; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; -import org.eclipse.hawkbit.ui.distributions.event.SoftwareModuleTableEvent; -import org.eclipse.hawkbit.ui.distributions.event.SoftwareModuleTableEvent.SoftwareModuleComponentEvent; import org.springframework.beans.factory.annotation.Autowired; -import com.vaadin.event.Action; -import com.vaadin.event.Action.Handler; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; @@ -46,41 +42,9 @@ public class SoftwareModuleTableLayout extends AbstractTableLayout { super.init(smTableHeader, smTable, softwareModuleDetails); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * isShortCutKeysRequired() - */ @Override - protected boolean isShortCutKeysRequired() { - return true; + protected void publishEvent() { + // nothing to publish } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * getShortCutKeysHandler() - */ - @Override - protected Handler getShortCutKeysHandler() { - return new Handler() { - - private static final long serialVersionUID = 1L; - - @Override - public void handleAction(final Action action, final Object sender, final Object target) { - if (ACTION_CTRL_A.equals(action)) { - smTable.selectAll(); - getEventBus().publish(this, new SoftwareModuleTableEvent(SoftwareModuleComponentEvent.SELECT_ALL)); - } - } - - @Override - public Action[] getActions(final Object target, final Object sender) { - return new Action[] { ACTION_CTRL_A }; - } - }; - } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractNamedVersionTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractNamedVersionTable.java index 3122841ae..ae185a70f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractNamedVersionTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractNamedVersionTable.java @@ -54,12 +54,4 @@ public abstract class AbstractNamedVersionTable extends Table { } } + /** + * Select all rows in the table. + */ + protected void selectAll() { + // only contains the ItemIds of the visible items in the table + setValue(getItemIds()); + } + private void setColumnProperties() { final List columnList = getTableVisibleColumns(); final List swColumnIds = new ArrayList<>(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableLayout.java index 9406dcb93..b85006468 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableLayout.java @@ -12,6 +12,7 @@ import org.eclipse.hawkbit.ui.common.detailslayout.AbstractTableDetailsLayout; import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.spring.events.EventBus; +import com.vaadin.event.Action; import com.vaadin.event.Action.Handler; import com.vaadin.event.ShortcutAction; import com.vaadin.ui.Alignment; @@ -89,10 +90,10 @@ public abstract class AbstractTableLayout extends VerticalLayout { /** * If any short cut keys required on the table. * - * @return true if required else false. Default is 'false'. + * @return true if required else false. Default is 'true'. */ protected boolean isShortCutKeysRequired() { - return false; + return true; } /** @@ -101,7 +102,27 @@ public abstract class AbstractTableLayout extends VerticalLayout { * @return reference of {@link Handler} to handler the short cut keys. * Default is null. */ - protected abstract Handler getShortCutKeysHandler(); + protected Handler getShortCutKeysHandler() { + return new Handler() { + + private static final long serialVersionUID = 1L; + + @Override + public void handleAction(final Action action, final Object sender, final Object target) { + if (ACTION_CTRL_A.equals(action)) { + table.selectAll(); + publishEvent(); + } + } + + @Override + public Action[] getActions(final Object target, final Object sender) { + return new Action[] { ACTION_CTRL_A }; + } + }; + } + + protected abstract void publishEvent(); public void setShowFilterButtonVisible(final boolean visible) { tableHeader.setFilterButtonsIconVisible(visible); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java index cf365b081..66c8aff0e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTableLayout.java @@ -11,17 +11,13 @@ package org.eclipse.hawkbit.ui.distributions.dstable; import javax.annotation.PostConstruct; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent.DistributionTableComponentEvent; import org.springframework.beans.factory.annotation.Autowired; -import com.vaadin.event.Action; -import com.vaadin.event.Action.Handler; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; /** - * DistributionSet table layout. + * DistributionSet table layout */ @SpringComponent @ViewScope @@ -50,42 +46,9 @@ public class DistributionSetTableLayout extends AbstractTableLayout { super.init(dsTableHeader, dsTable, distributionDetails); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * isShortCutKeysRequired() - */ @Override - protected boolean isShortCutKeysRequired() { - return true; + protected void publishEvent() { + // nothing to publish } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * getShortCutKeysHandler() - */ - @Override - protected Handler getShortCutKeysHandler() { - return new Handler() { - - private static final long serialVersionUID = 1L; - - @Override - public void handleAction(final Action action, final Object sender, final Object target) { - if (ACTION_CTRL_A.equals(action)) { - dsTable.selectAll(); - getEventBus().publish(this, - new DistributionSetTableEvent(DistributionTableComponentEvent.SELECT_ALL)); - } - } - - @Override - public Action[] getActions(final Object target, final Object sender) { - return new Action[] { ACTION_CTRL_A }; - } - }; - } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java deleted file mode 100644 index d1a5643a1..000000000 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.eclipse.hawkbit.ui.distributions.event; - -public class DistributionSetTableEvent { - - private final DistributionTableComponentEvent distributionSetTableEvent; - - /** - * The component event. - * - * @param distributionSetTableEvent - * the distributionSet component event. - */ - public DistributionSetTableEvent(final DistributionTableComponentEvent distributionSetTableEvent) { - this.distributionSetTableEvent = distributionSetTableEvent; - } - - /** - * DistributionSet table components events. - * - */ - public enum DistributionTableComponentEvent { - SELECT_ALL - } - -} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/SoftwareModuleTableEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/SoftwareModuleTableEvent.java deleted file mode 100644 index 772afd927..000000000 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/SoftwareModuleTableEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.hawkbit.ui.distributions.event; - -/** - * Class which contains the Event when selecting all entries of the - * softwareModule table - */ -public class SoftwareModuleTableEvent { - - /** - * SoftwareModule table components events. - */ - public enum SoftwareModuleComponentEvent { - SELECT_ALL - } - - private final SoftwareModuleComponentEvent softwareModuleComponentEvent; - - /** - * The component event. - * - * @param softwareModuleComponentEvent - * the softwareModule component event. - */ - public SoftwareModuleTableEvent(final SoftwareModuleComponentEvent softwareModuleComponentEvent) { - this.softwareModuleComponentEvent = softwareModuleComponentEvent; - } - - public SoftwareModuleComponentEvent getSoftwareModuleComponentEvent() { - return softwareModuleComponentEvent; - } - -} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java index b2fab5cc9..e0d4b8ac6 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTableLayout.java @@ -11,17 +11,13 @@ package org.eclipse.hawkbit.ui.distributions.smtable; import javax.annotation.PostConstruct; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; -import org.eclipse.hawkbit.ui.distributions.event.SoftwareModuleTableEvent; -import org.eclipse.hawkbit.ui.distributions.event.SoftwareModuleTableEvent.SoftwareModuleComponentEvent; import org.springframework.beans.factory.annotation.Autowired; -import com.vaadin.event.Action; -import com.vaadin.event.Action.Handler; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; /** - * Implementation of software module Layout . + * Implementation of software module Layout */ @SpringComponent @ViewScope @@ -46,41 +42,9 @@ public class SwModuleTableLayout extends AbstractTableLayout { super.init(swModuleTableHeader, swModuleTable, swModuleDetails); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * isShortCutKeysRequired() - */ @Override - protected boolean isShortCutKeysRequired() { - return true; + protected void publishEvent() { + // nothing to publish } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * getShortCutKeysHandler() - */ - @Override - protected Handler getShortCutKeysHandler() { - return new Handler() { - - private static final long serialVersionUID = 1L; - - @Override - public void handleAction(final Action action, final Object sender, final Object target) { - if (ACTION_CTRL_A.equals(action)) { - swModuleTable.selectAll(); - getEventBus().publish(this, new SoftwareModuleTableEvent(SoftwareModuleComponentEvent.SELECT_ALL)); - } - } - - @Override - public Action[] getActions(final Object target, final Object sender) { - return new Action[] { ACTION_CTRL_A }; - } - }; - } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java index 2cd34d3fa..fefbca972 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/dstable/DistributionTableLayout.java @@ -11,12 +11,8 @@ package org.eclipse.hawkbit.ui.management.dstable; import javax.annotation.PostConstruct; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent.DistributionTableComponentEvent; import org.springframework.beans.factory.annotation.Autowired; -import com.vaadin.event.Action; -import com.vaadin.event.Action.Handler; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; @@ -46,42 +42,9 @@ public class DistributionTableLayout extends AbstractTableLayout { super.init(dsTableHeader, dsTable, distributionDetails); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * isShortCutKeysRequired() - */ @Override - protected boolean isShortCutKeysRequired() { - return true; + protected void publishEvent() { + // nothing to publish } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * getShortCutKeysHandler() - */ - @Override - protected Handler getShortCutKeysHandler() { - return new Handler() { - - private static final long serialVersionUID = 1L; - - @Override - public void handleAction(final Action action, final Object sender, final Object target) { - if (ACTION_CTRL_A.equals(action)) { - dsTable.selectAll(); - getEventBus().publish(this, - new DistributionSetTableEvent(DistributionTableComponentEvent.SELECT_ALL)); - } - } - - @Override - public Action[] getActions(final Object target, final Object sender) { - return new Action[] { ACTION_CTRL_A }; - } - }; - } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/TargetTableEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/TargetTableEvent.java index 4cfbeecf5..214d12106 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/TargetTableEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/TargetTableEvent.java @@ -22,7 +22,7 @@ public class TargetTableEvent extends BaseEntityEvent { * */ public enum TargetComponentEvent { - REFRESH_TARGETS, SELLECT_ALL, BULK_TARGET_CREATED, BULK_UPLOAD_COMPLETED, BULK_TARGET_UPLOAD_STARTED, BULK_UPLOAD_PROCESS_STARTED + REFRESH_TARGETS, SELECT_ALL, BULK_TARGET_CREATED, BULK_UPLOAD_COMPLETED, BULK_TARGET_UPLOAD_STARTED, BULK_UPLOAD_PROCESS_STARTED } private TargetComponentEvent targetComponentEvent; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/CountMessageLabel.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/CountMessageLabel.java index ed6d033bd..fccee7cb5 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/CountMessageLabel.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/CountMessageLabel.java @@ -95,7 +95,7 @@ public class CountMessageLabel extends Label { @EventBusListenerMethod(scope = EventScope.SESSION) void onEvent(final TargetTableEvent event) { - if (TargetTableEvent.TargetComponentEvent.SELLECT_ALL == event.getTargetComponentEvent() + if (TargetTableEvent.TargetComponentEvent.SELECT_ALL == event.getTargetComponentEvent() || TargetComponentEvent.REFRESH_TARGETS == event.getTargetComponentEvent()) { displayTargetCountStatus(); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java index 2bd86868c..8c3ec3a1a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableLayout.java @@ -16,8 +16,6 @@ import org.eclipse.hawkbit.ui.management.event.TargetTableEvent.TargetComponentE import org.springframework.beans.factory.annotation.Autowired; import org.vaadin.spring.events.EventBus; -import com.vaadin.event.Action; -import com.vaadin.event.Action.Handler; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; @@ -47,45 +45,14 @@ public class TargetTableLayout extends AbstractTableLayout { */ @PostConstruct void init() { + super.init(targetTableHeader, targetTable, targetDetails); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * isShortCutKeysRequired() - */ @Override - protected boolean isShortCutKeysRequired() { - return true; - } + protected void publishEvent() { - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.server.ui.common.table.AbstractTableLayout# - * getShortCutKeysHandler() - */ - @Override - protected Handler getShortCutKeysHandler() { - return new Handler() { - - private static final long serialVersionUID = 1L; - - @Override - public void handleAction(final Action action, final Object sender, final Object target) { - if (ACTION_CTRL_A.equals(action)) { - targetTable.selectAll(); - eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.SELLECT_ALL)); - } - } - - @Override - public Action[] getActions(final Object target, final Object sender) { - return new Action[] { ACTION_CTRL_A }; - } - }; + eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.SELECT_ALL)); } }