From 5fd7f3a5b38b4981d7d5c17ed49ae8c673772787 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Thu, 21 Apr 2016 14:50:48 +0200 Subject: [PATCH 01/12] Small UI inconsitencies and glitches cleanup - Consitent table muliselect Signed-off-by: Melanie Retter --- .../artifacts/event/SoftwareModuleEvent.java | 4 ++ .../event/SoftwareModuleTypeEvent.java | 2 +- .../smtable/SoftwareModuleTable.java | 12 ++++ .../smtable/SoftwareModuleTableLayout.java | 43 ++++++++++++- .../filterlayout/AbstractFilterButtons.java | 50 ++++++++++++++-- .../table/AbstractNamedVersionTable.java | 42 ++++++++++++- .../ui/common/table/AbstractTable.java | 1 + .../ui/common/table/AbstractTableLayout.java | 20 ++++++- .../dstable/DistributionSetTable.java | 14 +++++ .../dstable/DistributionSetTableLayout.java | 43 +++++++++++++ .../event/DistributionSetTableEvent.java | 60 +++++++++++++++++++ .../event/DistributionSetTypeEvent.java | 15 +---- .../event/SoftwareModuleTableEvent.java | 51 ++++++++++++++++ .../distributions/smtable/SwModuleTable.java | 17 +++++- .../smtable/SwModuleTableLayout.java | 42 +++++++++++++ .../management/dstable/DistributionTable.java | 8 +++ .../dstable/DistributionTableLayout.java | 41 +++++++++++++ .../event/DistributionTableEvent.java | 18 ++++++ .../management/targettable/TargetTable.java | 31 ++++++---- 19 files changed, 477 insertions(+), 37 deletions(-) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java create 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/event/SoftwareModuleEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java index 95770cb8f..1764f8998 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java @@ -28,6 +28,10 @@ public class SoftwareModuleEvent extends BaseEntityEvent { private SoftwareModuleEventType softwareModuleEventType; + public SoftwareModuleEvent() { + super(null, null); + } + /** * Creates software module event. * diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java index 88e076775..f1b8deb72 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java @@ -25,7 +25,7 @@ public class SoftwareModuleTypeEvent { * */ public enum SoftwareModuleTypeEnum { - ADD_SOFTWARE_MODULE_TYPE, DELETE_SOFTWARE_MODULE_TYPE, UPDATE_SOFTWARE_MODULE_TYPE + ADD_SOFTWARE_MODULE_TYPE, DELETE_SOFTWARE_MODULE_TYPE, UPDATE_SOFTWARE_MODULE_TYPE, SELECT_ALL } private SoftwareModuleType softwareModuleType; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java index 478438891..11ac5e571 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java @@ -35,6 +35,7 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; +import com.vaadin.event.Action; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; @@ -211,4 +212,15 @@ public class SoftwareModuleTable extends AbstractNamedVersionTable * i is the id of the table */ -public abstract class AbstractNamedVersionTable extends AbstractTable { +public abstract class AbstractNamedVersionTable extends AbstractTable + implements Handler { private static final long serialVersionUID = 780050712209750719L; + protected ShortcutAction actionSelectAll; + + protected ShortcutAction actionUnSelectAll; + + /** + * Initialize the component. + */ + @Override + protected void init() { + super.init(); + actionSelectAll = new ShortcutAction(i18n.get("action.target.table.selectall")); + actionUnSelectAll = new ShortcutAction(i18n.get("action.target.table.clear")); + setMultiSelect(true); + setSelectable(true); + } + @Override protected List getTableVisibleColumns() { final List columnList = super.getTableVisibleColumns(); @@ -44,4 +64,24 @@ public abstract class AbstractNamedVersionTable extends Table { private static final Logger LOG = LoggerFactory.getLogger(AbstractTable.class); + // TODO MR should be private and use with getter/setter @Autowired protected transient EventBus.SessionEventBus eventBus; 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 b9fa20f03..fa847b4ba 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 @@ -9,8 +9,11 @@ package org.eclipse.hawkbit.ui.common.table; 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.Handler; +import com.vaadin.event.ShortcutAction; import com.vaadin.ui.Alignment; import com.vaadin.ui.Panel; import com.vaadin.ui.VerticalLayout; @@ -27,6 +30,15 @@ public abstract class AbstractTableLayout extends VerticalLayout { private static final long serialVersionUID = 8611248179949245460L; + /** + * action for the shortcut key ctrl + 'A'. + */ + protected static final ShortcutAction ACTION_CTRL_A = new ShortcutAction("Select All", ShortcutAction.KeyCode.A, + new int[] { ShortcutAction.ModifierKey.CTRL }); + + @Autowired + private transient EventBus.SessionEventBus eventBus; + private AbstractTableHeader tableHeader; private AbstractTable table; @@ -93,12 +105,14 @@ public abstract class AbstractTableLayout extends VerticalLayout { * @return reference of {@link Handler} to handler the short cut keys. * Default is null. */ - protected Handler getShortCutKeysHandler() { - return null; - } + protected abstract Handler getShortCutKeysHandler(); public void setShowFilterButtonVisible(final boolean visible) { tableHeader.setFilterButtonsIconVisible(visible); } + public EventBus.SessionEventBus getEventBus() { + return eventBus; + } + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java index 01c242247..56abe5d25 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java @@ -31,6 +31,8 @@ import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent.SoftwareModule import org.eclipse.hawkbit.ui.common.table.AbstractNamedVersionTable; import org.eclipse.hawkbit.ui.common.table.AbstractTable; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; +import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent; +import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent.DistributionSetComponentEvent; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; import org.eclipse.hawkbit.ui.distributions.event.DistributionsViewAcceptCriteria; import org.eclipse.hawkbit.ui.distributions.event.DragEvent; @@ -55,6 +57,7 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; +import com.vaadin.event.Action; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; @@ -472,4 +475,15 @@ public class DistributionSetTable extends AbstractNamedVersionTable { + + /** + * DistributionSet table components events. + * + */ + public enum DistributionSetComponentEvent { + SELECT_ALL + } + + private DistributionSetComponentEvent distributionSetComponentEvent; + + /** + * Constructor. + * + * @param eventType + * the event type. + * @param entity + * the entity + */ + public DistributionSetTableEvent(final BaseEntityEventType eventType, final DistributionSet entity) { + super(eventType, entity); + } + + /** + * The component event. + * + * @param DistributionSetTableEvent + * the distributionSet component event. + */ + public DistributionSetTableEvent(final DistributionSetComponentEvent distributionSetComponentEvent) { + super(null, null); + this.distributionSetComponentEvent = distributionSetComponentEvent; + } + + public DistributionSetComponentEvent getDistributionSetComponentEvent() { + return distributionSetComponentEvent; + } + +} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java index 9cbd1f1bc..798d2a43d 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java @@ -30,16 +30,11 @@ public class DistributionSetTypeEvent { private final DistributionSetTypeEnum distributionSetTypeEnum; - private String distributionSetTypeName; - /** * @param distributionSetTypeEnum - * @param distributionSetTypeName */ - public DistributionSetTypeEvent(final DistributionSetTypeEnum distributionSetTypeEnum, - final String distributionSetTypeName) { + public DistributionSetTypeEvent(final DistributionSetTypeEnum distributionSetTypeEnum) { this.distributionSetTypeEnum = distributionSetTypeEnum; - this.distributionSetTypeName = distributionSetTypeName; } /** @@ -52,14 +47,6 @@ public class DistributionSetTypeEvent { this.distributionSetType = distributionSetType; } - public String getDistributionSetTypeName() { - return distributionSetTypeName; - } - - public void setDistributionSetTypeName(final String distributionSetTypeName) { - this.distributionSetTypeName = distributionSetTypeName; - } - public DistributionSetType getDistributionSetType() { return distributionSetType; } 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 new file mode 100644 index 000000000..d3347d52f --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/SoftwareModuleTableEvent.java @@ -0,0 +1,51 @@ +package org.eclipse.hawkbit.ui.distributions.event; + +import org.eclipse.hawkbit.repository.model.SoftwareModule; +import org.eclipse.hawkbit.ui.common.table.BaseEntityEvent; +import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; + +/** + * + * + * + */ +public class SoftwareModuleTableEvent extends BaseEntityEvent { + + /** + * SoftwareModule table components events. + * + */ + public enum SoftwareModuleComponentEvent { + SELECT_ALL + } + + private SoftwareModuleComponentEvent softwareModuleComponentEvent; + + /** + * Constructor. + * + * @param eventType + * the event type. + * @param entity + * the entity + */ + public SoftwareModuleTableEvent(final BaseEntityEventType eventType, final SoftwareModule entity) { + super(eventType, entity); + } + + /** + * The component event. + * + * @param SoftwareModuleComponentEvent + * the softwareModule component event. + */ + public SoftwareModuleTableEvent(final SoftwareModuleComponentEvent softwareModuleComponentEvent) { + super(null, null); + this.softwareModuleComponentEvent = softwareModuleComponentEvent; + } + + public SoftwareModuleComponentEvent getSoftwareModuleComponentEvent() { + return softwareModuleComponentEvent; + } + +} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java index eeea33723..d07111858 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/smtable/SwModuleTable.java @@ -26,6 +26,8 @@ import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; import org.eclipse.hawkbit.ui.distributions.event.DistributionsViewAcceptCriteria; import org.eclipse.hawkbit.ui.distributions.event.SaveActionWindowEvent; +import org.eclipse.hawkbit.ui.distributions.event.SoftwareModuleTableEvent; +import org.eclipse.hawkbit.ui.distributions.event.SoftwareModuleTableEvent.SoftwareModuleComponentEvent; import org.eclipse.hawkbit.ui.distributions.state.ManageDistUIState; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider; @@ -42,6 +44,8 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; +import com.vaadin.event.Action; +import com.vaadin.event.Action.Handler; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; @@ -62,7 +66,7 @@ import com.vaadin.ui.Window; */ @SpringComponent @ViewScope -public class SwModuleTable extends AbstractNamedVersionTable { +public class SwModuleTable extends AbstractNamedVersionTable implements Handler { private static final long serialVersionUID = 6785314784507424750L; @@ -388,4 +392,15 @@ public class SwModuleTable extends AbstractNamedVersionTable { + /** + * DistributionSet table components events. + * + */ + public enum DistributionTableComponentEvent { + SELECT_ALL + } + /** * Constructor. * @@ -31,4 +39,14 @@ public class DistributionTableEvent extends BaseEntityEvent { super(eventType, entity); } + /** + * The component event. + * + * @param DistributionSetTableEvent + * the distributionSet component event. + */ + public DistributionTableEvent(final DistributionTableComponentEvent distributionComponentEvent) { + super(null, null); + } + } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java index 3b9c18952..7fb2446f0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTable.java @@ -21,7 +21,6 @@ import java.util.stream.Collectors; import org.eclipse.hawkbit.eventbus.event.TargetCreatedEvent; import org.eclipse.hawkbit.eventbus.event.TargetDeletedEvent; import org.eclipse.hawkbit.eventbus.event.TargetInfoUpdateEvent; -import org.eclipse.hawkbit.repository.OffsetBasedPageRequest; import org.eclipse.hawkbit.repository.SpPermissionChecker; import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.model.DistributionSetIdName; @@ -63,7 +62,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory; import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer; import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition; @@ -353,6 +351,7 @@ public class TargetTable extends AbstractTable implements }; } + // TODO MR private void onTargetDeletedEvent(final List events) { final LazyQueryContainer targetContainer = (LazyQueryContainer) getContainerDataSource(); final List visibleItemIds = (List) getVisibleItemIds(); @@ -928,16 +927,24 @@ public class TargetTable extends AbstractTable implements * Select all rows in the table. */ public void selectAll() { - final PageRequest pageRequest = new OffsetBasedPageRequest(0, size(), - new Sort(SPUIDefinitions.TARGET_TABLE_CREATE_AT_SORT_ORDER, "createdAt")); - List targetIdList; - // is custom filter selected - if (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) { - targetIdList = getTargetIdsByCustomFilters(pageRequest); - } else { - targetIdList = getTargetIdsBySimpleFilters(pageRequest); - } - setValue(targetIdList); + // final PageRequest pageRequest = new OffsetBasedPageRequest(0, size(), + // new Sort(SPUIDefinitions.TARGET_TABLE_CREATE_AT_SORT_ORDER, + // "createdAt")); + // List targetIdList; + // // is custom filter selected + // if + // (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) + // { + // targetIdList = getTargetIdsByCustomFilters(pageRequest); + // } else { + // targetIdList = getTargetIdsBySimpleFilters(pageRequest); + // } + // setValue(targetIdList); + + // TODO MR + // As Vaadin Table only returns the current ItemIds which are visible + // you don't need to search explicit for them. + setValue(getItemIds()); } private List getTargetIdsBySimpleFilters(final PageRequest pageRequest) { From 1047219ad2701624e39a555e4264fbdab83d1ace Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Wed, 8 Jun 2016 13:02:29 +0200 Subject: [PATCH 02/12] STRG+A for selecting all table rows, remove contextMenu, remove empty lines Signed-off-by: Melanie Retter --- .../smtable/SoftwareModuleTable.java | 11 --- .../smtable/SoftwareModuleTableLayout.java | 3 - .../filterlayout/AbstractFilterButtons.java | 35 +------- .../table/AbstractNamedVersionTable.java | 17 +--- .../ui/common/table/AbstractTable.java | 1 - .../ui/common/table/AbstractTableHeader.java | 4 - .../ui/common/table/AbstractTableLayout.java | 4 - .../disttype/DSTypeFilterButtons.java | 3 - .../dstable/DistributionSetTable.java | 16 ---- .../dstable/DistributionSetTableLayout.java | 5 +- .../distributions/smtable/SwModuleTable.java | 17 +--- .../smtable/SwModuleTableLayout.java | 3 - .../management/dstable/DistributionTable.java | 12 +-- .../dstable/DistributionTableLayout.java | 3 - .../management/targettable/TargetTable.java | 89 +------------------ .../targettable/TargetTableHeader.java | 21 ++--- .../targettable/TargetTableLayout.java | 9 -- .../src/main/resources/messages_de.properties | 4 - 18 files changed, 18 insertions(+), 239 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java index 060aff55b..99fe185e5 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/smtable/SoftwareModuleTable.java @@ -35,7 +35,6 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; -import com.vaadin.event.Action; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; @@ -213,14 +212,4 @@ public class SoftwareModuleTable extends AbstractNamedVersionTable * i is the id of the table */ -public abstract class AbstractNamedVersionTable extends AbstractTable - implements Handler { +public abstract class AbstractNamedVersionTable extends AbstractTable { private static final long serialVersionUID = 780050712209750719L; - protected ShortcutAction actionSelectAll; - - protected ShortcutAction actionUnSelectAll; - /** * Initialize the component. */ @Override protected void init() { super.init(); - actionSelectAll = new ShortcutAction(i18n.get("action.target.table.selectall")); - actionUnSelectAll = new ShortcutAction(i18n.get("action.target.table.clear")); setMultiSelect(true); setSelectable(true); } @@ -64,11 +54,6 @@ public abstract class AbstractNamedVersionTable extends Table { private static final Logger LOG = LoggerFactory.getLogger(AbstractTable.class); - // TODO MR should be private and use with getter/setter @Autowired protected transient EventBus.SessionEventBus eventBus; diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java index b137594f8..3a12ca23e 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTableHeader.java @@ -36,10 +36,6 @@ import com.vaadin.ui.VerticalLayout; /** * Parent class for table header. - * - * - * - * */ public abstract class AbstractTableHeader extends VerticalLayout { 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 fa847b4ba..9406dcb93 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 @@ -21,10 +21,6 @@ import com.vaadin.ui.themes.ValoTheme; /** * Parent class for table layout. - * - * - * - * */ public abstract class AbstractTableLayout extends VerticalLayout { diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java index 25e081fa0..9b819e1b4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/disttype/DSTypeFilterButtons.java @@ -31,9 +31,6 @@ import com.vaadin.spring.annotation.ViewScope; /** * Distribution Set Type filter buttons. - * - * - * */ @SpringComponent @ViewScope diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java index e305039fd..a52c0b683 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/dstable/DistributionSetTable.java @@ -30,8 +30,6 @@ import org.eclipse.hawkbit.ui.common.DistributionSetIdName; import org.eclipse.hawkbit.ui.common.table.AbstractNamedVersionTable; import org.eclipse.hawkbit.ui.common.table.AbstractTable; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTableEvent.DistributionSetComponentEvent; import org.eclipse.hawkbit.ui.distributions.event.DistributionsUIEvent; import org.eclipse.hawkbit.ui.distributions.event.DistributionsViewAcceptCriteria; import org.eclipse.hawkbit.ui.distributions.event.DragEvent; @@ -56,7 +54,6 @@ import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; -import com.vaadin.event.Action; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; @@ -68,7 +65,6 @@ import com.vaadin.ui.UI; /** * Distribution set table. - * */ @SpringComponent @ViewScope @@ -471,18 +467,6 @@ public class DistributionSetTable extends AbstractNamedVersionTable implements Handler { +public class SwModuleTable extends AbstractNamedVersionTable { private static final long serialVersionUID = 6785314784507424750L; @@ -392,15 +388,4 @@ public class SwModuleTable extends AbstractNamedVersionTable implements Handler { +public class TargetTable extends AbstractTable { private static final Logger LOG = LoggerFactory.getLogger(TargetTable.class); private static final String TARGET_PINNED = "targetPinned"; @@ -127,15 +119,10 @@ public class TargetTable extends AbstractTable implements private Button targetPinnedBtn; private Boolean isTargetPinned = Boolean.FALSE; - private ShortcutAction actionSelectAll; - private ShortcutAction actionUnSelectAll; @Override protected void init() { super.init(); - addActionHandler(this); - actionSelectAll = new ShortcutAction(i18n.get("action.target.table.selectall")); - actionUnSelectAll = new ShortcutAction(i18n.get("action.target.table.clear")); setItemDescriptionGenerator(new AssignInstalledDSTooltipGenerator()); } @@ -260,22 +247,6 @@ public class TargetTable extends AbstractTable implements HawkbitCommonUtil.addTargetTableContainerProperties(container); } - @Override - public Action[] getActions(final Object target, final Object sender) { - return new Action[] { actionSelectAll, actionUnSelectAll }; - } - - @Override - public void handleAction(final Action action, final Object sender, final Object target) { - if (actionSelectAll.equals(action)) { - selectAll(); - eventBus.publish(this, new TargetTableEvent(TargetComponentEvent.SELLECT_ALL)); - } - if (actionUnSelectAll.equals(action)) { - unSelectAll(); - } - } - @Override protected void addCustomGeneratedColumns() { addGeneratedColumn(SPUIDefinitions.TARGET_STATUS_PIN_TOGGLE_ICON, @@ -354,7 +325,6 @@ public class TargetTable extends AbstractTable implements }; } - // TODO MR private void onTargetDeletedEvent(final List events) { final LazyQueryContainer targetContainer = (LazyQueryContainer) getContainerDataSource(); final List visibleItemIds = (List) getVisibleItemIds(); @@ -454,7 +424,7 @@ public class TargetTable extends AbstractTable implements pinBtn.setHeightUndefined(); pinBtn.setData(itemId); pinBtn.setId(SPUIComponentIdProvider.TARGET_PIN_ICON + "." + itemId); - pinBtn.addClickListener(event -> addPinClickListener(event)); + pinBtn.addClickListener(this::addPinClickListener); if (isPinned(((TargetIdName) itemId).getControllerId())) { pinBtn.addStyleName(TARGET_PINNED); isTargetPinned = Boolean.TRUE; @@ -931,62 +901,11 @@ public class TargetTable extends AbstractTable implements */ public void selectAll() { - // final PageRequest pageRequest = new OffsetBasedPageRequest(0, size(), - // new Sort(SPUIDefinitions.TARGET_TABLE_CREATE_AT_SORT_ORDER, - // "createdAt")); - // List targetIdList; - // // is custom filter selected - // if - // (managementUIState.getTargetTableFilters().getTargetFilterQuery().isPresent()) - // { - // targetIdList = getTargetIdsByCustomFilters(pageRequest); - // } else { - // targetIdList = getTargetIdsBySimpleFilters(pageRequest); - // } - // setValue(targetIdList); - - // TODO MR // As Vaadin Table only returns the current ItemIds which are visible // you don't need to search explicit for them. setValue(getItemIds()); } - private List getTargetIdsBySimpleFilters(final PageRequest pageRequest) { - final Long filterByDistId = managementUIState.getTargetTableFilters().getDistributionSet().isPresent() - ? managementUIState.getTargetTableFilters().getDistributionSet().get().getId() : null; - final List statusList = new ArrayList<>(); - if (isFilteredByStatus()) { - statusList.addAll(managementUIState.getTargetTableFilters().getClickedStatusTargetTags()); - } - final List tagList = new ArrayList<>(); - if (isFilteredByTags()) { - tagList.addAll(managementUIState.getTargetTableFilters().getClickedTargetTags()); - } - String searchText = managementUIState.getTargetTableFilters().getSearchText().isPresent() - ? managementUIState.getTargetTableFilters().getSearchText().get() : null; - if (!Strings.isNullOrEmpty(searchText)) { - searchText = String.format("%%%s%%", searchText); - } - final Boolean noTagSelected = managementUIState.getTargetTableFilters().isNoTagSelected(); - - final String[] tagArray = tagList.toArray(new String[tagList.size()]); - - List targetIdList; - targetIdList = targetManagement.findAllTargetIdsByFilters(pageRequest, statusList, searchText, filterByDistId, - noTagSelected, tagList.toArray(tagArray)); - Collections.reverse(targetIdList); - return targetIdList; - } - - private List getTargetIdsByCustomFilters(final PageRequest pageRequest) { - List targetIdList; - final TargetFilterQuery targetFilterQuery = managementUIState.getTargetTableFilters().getTargetFilterQuery() - .isPresent() ? managementUIState.getTargetTableFilters().getTargetFilterQuery().get() : null; - targetIdList = targetManagement.findAllTargetIdsByTargetFilterQuery(pageRequest, targetFilterQuery); - Collections.reverse(targetIdList); - return targetIdList; - } - /** * Clear all selections in the table. */ @@ -1073,10 +992,6 @@ public class TargetTable extends AbstractTable implements return targetManagement.countTargetsAll(); } - private static TargetIdName getLastSelectedItem(final Set values) { - return Iterables.getLast(values); - } - private boolean isFilteredByStatus() { return !managementUIState.getTargetTableFilters().getClickedStatusTargetTags().isEmpty(); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java index b6379729b..5b0aa285a 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java @@ -65,9 +65,6 @@ public class TargetTableHeader extends AbstractTableHeader { @Autowired private ManagementUIState managementUIState; - @Autowired - private transient EventBus.SessionEventBus eventBus; - @Autowired private ManagementViewAcceptCriteria managementViewAcceptCriteria; @@ -231,14 +228,14 @@ public class TargetTableHeader extends AbstractTableHeader { @Override protected void showFilterButtonsLayout() { managementUIState.setTargetTagFilterClosed(false); - eventBus.publish(this, ManagementUIEvent.SHOW_TARGET_TAG_LAYOUT); + eventbus.publish(this, ManagementUIEvent.SHOW_TARGET_TAG_LAYOUT); } @Override protected void resetSearchText() { if (managementUIState.getTargetTableFilters().getSearchText().isPresent()) { managementUIState.getTargetTableFilters().setSearchText(null); - eventBus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_TEXT); + eventbus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_TEXT); } } @@ -255,13 +252,13 @@ public class TargetTableHeader extends AbstractTableHeader { @Override public void maximizeTable() { managementUIState.setTargetTableMaximized(Boolean.TRUE); - eventBus.publish(this, new TargetTableEvent(BaseEntityEventType.MAXIMIZED,null)); + eventbus.publish(this, new TargetTableEvent(BaseEntityEventType.MAXIMIZED,null)); } @Override public void minimizeTable() { managementUIState.setTargetTableMaximized(Boolean.FALSE); - eventBus.publish(this, new TargetTableEvent(BaseEntityEventType.MINIMIZED,null)); + eventbus.publish(this, new TargetTableEvent(BaseEntityEventType.MINIMIZED,null)); } @Override @@ -277,12 +274,12 @@ public class TargetTableHeader extends AbstractTableHeader { @Override protected void searchBy(final String newSearchText) { managementUIState.getTargetTableFilters().setSearchText(newSearchText); - eventBus.publish(this, TargetFilterEvent.FILTER_BY_TEXT); + eventbus.publish(this, TargetFilterEvent.FILTER_BY_TEXT); } @Override protected void addNewItem(final ClickEvent event) { - eventBus.publish(this, DragEvent.HIDE_DROP_HINT); + eventbus.publish(this, DragEvent.HIDE_DROP_HINT); targetAddUpdateWindow.resetComponents(); final Window addTargetWindow = targetAddUpdateWindow.getWindow(); addTargetWindow.setCaption(i18n.get("caption.add.new.target")); @@ -402,12 +399,12 @@ public class TargetTableHeader extends AbstractTableHeader { getFilterDroppedInfo().addComponent(filteredDistLabel); getFilterDroppedInfo().addComponent(filterLabelClose); getFilterDroppedInfo().setExpandRatio(filteredDistLabel, 1.0f); - eventBus.publish(this, TargetFilterEvent.FILTER_BY_DISTRIBUTION); + eventbus.publish(this, TargetFilterEvent.FILTER_BY_DISTRIBUTION); } private void closeFilterByDistribution() { - eventBus.publish(this, DragEvent.HIDE_DROP_HINT); + eventbus.publish(this, DragEvent.HIDE_DROP_HINT); /* Remove filter by distribution information. */ getFilterDroppedInfo().removeAllComponents(); getFilterDroppedInfo().setSizeUndefined(); @@ -415,7 +412,7 @@ public class TargetTableHeader extends AbstractTableHeader { managementUIState.getTargetTableFilters().setDistributionSet(null); /* Reload the table */ - eventBus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_DISTRIBUTION); + eventbus.publish(this, TargetFilterEvent.REMOVE_FILTER_BY_DISTRIBUTION); } @Override 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 aaf5c6a9f..2bd86868c 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 @@ -18,26 +18,17 @@ 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.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; /** * Target table layout. - * - * - * */ @SpringComponent @ViewScope public class TargetTableLayout extends AbstractTableLayout { private static final long serialVersionUID = 2248703121998709112L; - /** - * action for the shortcut key ctrl + 'A'. - */ - private static final ShortcutAction ACTION_CTRL_A = new ShortcutAction("Select All", ShortcutAction.KeyCode.A, - new int[] { ShortcutAction.ModifierKey.CTRL }); @Autowired private transient EventBus.SessionEventBus eventBus; diff --git a/hawkbit-ui/src/main/resources/messages_de.properties b/hawkbit-ui/src/main/resources/messages_de.properties index 1ced68c43..d48303ae2 100644 --- a/hawkbit-ui/src/main/resources/messages_de.properties +++ b/hawkbit-ui/src/main/resources/messages_de.properties @@ -299,10 +299,6 @@ message.tag.use.bulk.upload = {0} cannot be deleted .It is in use in targets bul message.bulk.upload.tag.assignment.failed = Tag {0} assignment failed as tag no longer exists message.bulk.upload.tag.assignments.failed= Few tag assignments failed as tags no longer exists -# action info -action.target.table.selectall = Select all (Ctrl+A) -action.target.table.clear = Clear selections - #reused messages soft.module.jvm =Runtime soft.module.application =Application From c2d1e37a16a00433f45e378df6936b676d78140b Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Wed, 8 Jun 2016 13:15:38 +0200 Subject: [PATCH 03/12] Add License and JavaDoc Signed-off-by: Melanie Retter --- .../event/SoftwareModuleTableEvent.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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 index 70108acef..f722c3a23 100644 --- 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 @@ -1,3 +1,11 @@ +/** + * 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; import org.eclipse.hawkbit.repository.model.SoftwareModule; @@ -5,9 +13,7 @@ import org.eclipse.hawkbit.ui.common.table.BaseEntityEvent; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; /** - * - * - * + * Class which contains the Event when selecting all entries of a table */ public class SoftwareModuleTableEvent extends BaseEntityEvent { @@ -36,7 +42,7 @@ public class SoftwareModuleTableEvent extends BaseEntityEvent { /** * The component event. * - * @param SoftwareModuleComponentEvent + * @param softwareModuleComponentEvent * the softwareModule component event. */ public SoftwareModuleTableEvent(final SoftwareModuleComponentEvent softwareModuleComponentEvent) { From 3e5f1f75a07e2b7d148cff211a3990be3e896601 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Fri, 10 Jun 2016 15:47:40 +0200 Subject: [PATCH 04/12] Improve code select all table entries Signed-off-by: Melanie Retter --- .../artifacts/event/SoftwareModuleEvent.java | 6 +- .../event/SoftwareModuleTypeEvent.java | 8 +-- .../smtable/SoftwareModuleTableLayout.java | 3 +- .../filterlayout/AbstractFilterButtons.java | 24 ++++---- .../table/AbstractNamedVersionTable.java | 7 --- .../dstable/DistributionSetTableLayout.java | 7 +-- .../event/DistributionSetTableEvent.java | 60 ------------------- .../event/DistributionSetTypeEvent.java | 8 +-- 8 files changed, 19 insertions(+), 104 deletions(-) delete mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java index 1764f8998..c01257154 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java @@ -23,15 +23,11 @@ public class SoftwareModuleEvent extends BaseEntityEvent { * */ public enum SoftwareModuleEventType { - ARTIFACTS_CHANGED, ASSIGN_SOFTWARE_MODULE + ARTIFACTS_CHANGED, ASSIGN_SOFTWARE_MODULE, SELECT_ALL } private SoftwareModuleEventType softwareModuleEventType; - public SoftwareModuleEvent() { - super(null, null); - } - /** * Creates software module event. * diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java index f1b8deb72..7262aee72 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleTypeEvent.java @@ -12,20 +12,14 @@ import org.eclipse.hawkbit.repository.model.SoftwareModuleType; /** * Event to represent software module type add, update or delete. - * - * - * */ public class SoftwareModuleTypeEvent { /** * Software module type events in the Upload UI. - * - * - * */ public enum SoftwareModuleTypeEnum { - ADD_SOFTWARE_MODULE_TYPE, DELETE_SOFTWARE_MODULE_TYPE, UPDATE_SOFTWARE_MODULE_TYPE, SELECT_ALL + ADD_SOFTWARE_MODULE_TYPE, DELETE_SOFTWARE_MODULE_TYPE, UPDATE_SOFTWARE_MODULE_TYPE } private SoftwareModuleType softwareModuleType; 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 096550d7c..ec6b41e23 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,6 +11,7 @@ package org.eclipse.hawkbit.ui.artifacts.smtable; import javax.annotation.PostConstruct; import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; +import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent.SoftwareModuleEventType; import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout; import org.springframework.beans.factory.annotation.Autowired; @@ -72,7 +73,7 @@ public class SoftwareModuleTableLayout extends AbstractTableLayout { public void handleAction(final Action action, final Object sender, final Object target) { if (ACTION_CTRL_A.equals(action)) { smTable.selectAll(); - getEventBus().publish(this, new SoftwareModuleEvent()); + getEventBus().publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.SELECT_ALL, null)); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java index b637c88f6..2b0eee279 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java @@ -16,7 +16,6 @@ import javax.annotation.PreDestroy; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.decorators.SPUITagButtonStyle; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; -import org.eclipse.hawkbit.ui.utils.I18N; import org.eclipse.hawkbit.ui.utils.SPUIDefinitions; import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions; import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions; @@ -49,9 +48,6 @@ public abstract class AbstractFilterButtons extends Table { private AbstractFilterButtonClickBehaviour filterButtonClickBehaviour; - @Autowired - protected I18N i18n; - /** * Initialize layout of filter buttons. * @@ -198,16 +194,16 @@ public abstract class AbstractFilterButtons extends Table { setContainerDataSource(createButtonsLazyQueryContainer()); } - /** - * Select all rows in the table. - */ - public void selectAll() { - setValue(createButtonsLazyQueryContainer().getItemIds()); - } - - public void unSelectAll() { - setValue(null); - } + // /** + // * Select all rows in the table. + // */ + // public void selectAll() { + // setValue(createButtonsLazyQueryContainer().getItemIds()); + // } + // + // public void unSelectAll() { + // setValue(null); + // } /** * Id of the buttons table to be used in test cases. 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 f99e01fe7..3122841ae 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 @@ -62,11 +62,4 @@ public abstract class AbstractNamedVersionTable { - - /** - * DistributionSet table components events. - * - */ - public enum DistributionSetComponentEvent { - SELECT_ALL - } - - private DistributionSetComponentEvent distributionSetComponentEvent; - - /** - * Constructor. - * - * @param eventType - * the event type. - * @param entity - * the entity - */ - public DistributionSetTableEvent(final BaseEntityEventType eventType, final DistributionSet entity) { - super(eventType, entity); - } - - /** - * The component event. - * - * @param DistributionSetTableEvent - * the distributionSet component event. - */ - public DistributionSetTableEvent(final DistributionSetComponentEvent distributionSetComponentEvent) { - super(null, null); - this.distributionSetComponentEvent = distributionSetComponentEvent; - } - - public DistributionSetComponentEvent getDistributionSetComponentEvent() { - return distributionSetComponentEvent; - } - -} diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java index 798d2a43d..3df0a7dd3 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java @@ -11,19 +11,15 @@ package org.eclipse.hawkbit.ui.distributions.event; import org.eclipse.hawkbit.repository.model.DistributionSetType; /** - * - * + * DistributionSetTypeEvent */ public class DistributionSetTypeEvent { /** * DistributionSet type events in the Distribution UI. - * - * - * */ public enum DistributionSetTypeEnum { - ADD_DIST_SET_TYPE, DELETE_DIST_SET_TYPE, UPDATE_DIST_SET_TYPE, ON_VALUE_CHANGE + ADD_DIST_SET_TYPE, DELETE_DIST_SET_TYPE, UPDATE_DIST_SET_TYPE, ON_VALUE_CHANGE, SELECT_ALL } private DistributionSetType distributionSetType; From 1b5975523947795ecd5e38e2d20992e90448b23e Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Mon, 13 Jun 2016 17:49:09 +0200 Subject: [PATCH 05/12] Optimize multiselect Signed-off-by: Melanie Retter --- .../filterlayout/AbstractFilterButtons.java | 12 --------- .../dstable/DistributionSetTableLayout.java | 7 +++--- .../event/DistributionSetTableEvent.java | 25 +++++++++++++++++++ .../event/DistributionSetTypeEvent.java | 2 +- .../event/SoftwareModuleTableEvent.java | 25 +++---------------- .../dstable/DistributionTableLayout.java | 7 +++--- .../event/DistributionTableEvent.java | 23 ++--------------- .../ui/management/event/TargetTableEvent.java | 4 +-- 8 files changed, 41 insertions(+), 64 deletions(-) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java index 2b0eee279..aec0029d0 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/filterlayout/AbstractFilterButtons.java @@ -77,7 +77,6 @@ public abstract class AbstractFilterButtons extends Table { setDragMode(TableDragMode.NONE); setSelectable(false); setSizeFull(); - setMultiSelect(true); } private void setStyle() { @@ -194,17 +193,6 @@ public abstract class AbstractFilterButtons extends Table { setContainerDataSource(createButtonsLazyQueryContainer()); } - // /** - // * Select all rows in the table. - // */ - // public void selectAll() { - // setValue(createButtonsLazyQueryContainer().getItemIds()); - // } - // - // public void unSelectAll() { - // setValue(null); - // } - /** * Id of the buttons table to be used in test cases. * 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 ef6d3ae4a..cf365b081 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,8 +11,8 @@ 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.DistributionSetTypeEvent; -import org.eclipse.hawkbit.ui.distributions.event.DistributionSetTypeEvent.DistributionSetTypeEnum; +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; @@ -77,7 +77,8 @@ public class DistributionSetTableLayout extends AbstractTableLayout { public void handleAction(final Action action, final Object sender, final Object target) { if (ACTION_CTRL_A.equals(action)) { dsTable.selectAll(); - getEventBus().publish(this, new DistributionSetTypeEvent(DistributionSetTypeEnum.SELECT_ALL)); + getEventBus().publish(this, + new DistributionSetTableEvent(DistributionTableComponentEvent.SELECT_ALL)); } } 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 new file mode 100644 index 000000000..d1a5643a1 --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTableEvent.java @@ -0,0 +1,25 @@ +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/DistributionSetTypeEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java index 3df0a7dd3..c6a625b10 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/event/DistributionSetTypeEvent.java @@ -19,7 +19,7 @@ public class DistributionSetTypeEvent { * DistributionSet type events in the Distribution UI. */ public enum DistributionSetTypeEnum { - ADD_DIST_SET_TYPE, DELETE_DIST_SET_TYPE, UPDATE_DIST_SET_TYPE, ON_VALUE_CHANGE, SELECT_ALL + ADD_DIST_SET_TYPE, DELETE_DIST_SET_TYPE, UPDATE_DIST_SET_TYPE, ON_VALUE_CHANGE } private DistributionSetType distributionSetType; 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 index f722c3a23..772afd927 100644 --- 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 @@ -8,36 +8,20 @@ */ package org.eclipse.hawkbit.ui.distributions.event; -import org.eclipse.hawkbit.repository.model.SoftwareModule; -import org.eclipse.hawkbit.ui.common.table.BaseEntityEvent; -import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; - /** - * Class which contains the Event when selecting all entries of a table + * Class which contains the Event when selecting all entries of the + * softwareModule table */ -public class SoftwareModuleTableEvent extends BaseEntityEvent { +public class SoftwareModuleTableEvent { /** * SoftwareModule table components events. - * */ public enum SoftwareModuleComponentEvent { SELECT_ALL } - private SoftwareModuleComponentEvent softwareModuleComponentEvent; - - /** - * Constructor. - * - * @param eventType - * the event type. - * @param entity - * the entity - */ - public SoftwareModuleTableEvent(final BaseEntityEventType eventType, final SoftwareModule entity) { - super(eventType, entity); - } + private final SoftwareModuleComponentEvent softwareModuleComponentEvent; /** * The component event. @@ -46,7 +30,6 @@ public class SoftwareModuleTableEvent extends BaseEntityEvent { * the softwareModule component event. */ public SoftwareModuleTableEvent(final SoftwareModuleComponentEvent softwareModuleComponentEvent) { - super(null, null); this.softwareModuleComponentEvent = softwareModuleComponentEvent; } 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 213dda654..2cd34d3fa 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,8 +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.management.event.DistributionTableEvent; -import org.eclipse.hawkbit.ui.management.event.DistributionTableEvent.DistributionTableComponentEvent; +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; @@ -73,7 +73,8 @@ public class DistributionTableLayout extends AbstractTableLayout { public void handleAction(final Action action, final Object sender, final Object target) { if (ACTION_CTRL_A.equals(action)) { dsTable.selectAll(); - getEventBus().publish(this, new DistributionTableEvent(DistributionTableComponentEvent.SELECT_ALL)); + getEventBus().publish(this, + new DistributionSetTableEvent(DistributionTableComponentEvent.SELECT_ALL)); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTableEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTableEvent.java index e60f432e7..c35942682 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTableEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/event/DistributionTableEvent.java @@ -13,20 +13,11 @@ import org.eclipse.hawkbit.ui.common.table.BaseEntityEvent; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; /** - * - * - * + * Class which contains the Event when selecting all entries of the + * distributions table */ public class DistributionTableEvent extends BaseEntityEvent { - /** - * DistributionSet table components events. - * - */ - public enum DistributionTableComponentEvent { - SELECT_ALL - } - /** * Constructor. * @@ -39,14 +30,4 @@ public class DistributionTableEvent extends BaseEntityEvent { super(eventType, entity); } - /** - * The component event. - * - * @param DistributionSetTableEvent - * the distributionSet component event. - */ - public DistributionTableEvent(final DistributionTableComponentEvent distributionComponentEvent) { - super(null, null); - } - } 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 04dd917a9..4cfbeecf5 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 @@ -13,9 +13,7 @@ import org.eclipse.hawkbit.ui.common.table.BaseEntityEvent; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; /** - * - * - * + * Class which contains the Event when selecting all entries of the target table */ public class TargetTableEvent extends BaseEntityEvent { From 23b00999e66a72b7619e22df131a5a4aadcf1dc7 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 14 Jun 2016 11:02:16 +0200 Subject: [PATCH 06/12] fix softwaremodule Event Signed-off-by: Melanie Retter --- .../hawkbit/ui/artifacts/event/SoftwareModuleEvent.java | 2 +- .../ui/artifacts/smtable/SoftwareModuleTableLayout.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java index c01257154..95770cb8f 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/event/SoftwareModuleEvent.java @@ -23,7 +23,7 @@ public class SoftwareModuleEvent extends BaseEntityEvent { * */ public enum SoftwareModuleEventType { - ARTIFACTS_CHANGED, ASSIGN_SOFTWARE_MODULE, SELECT_ALL + ARTIFACTS_CHANGED, ASSIGN_SOFTWARE_MODULE } private SoftwareModuleEventType softwareModuleEventType; 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 ec6b41e23..a0ed1b4ec 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 @@ -10,9 +10,9 @@ package org.eclipse.hawkbit.ui.artifacts.smtable; import javax.annotation.PostConstruct; -import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent; -import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent.SoftwareModuleEventType; 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; @@ -73,7 +73,7 @@ public class SoftwareModuleTableLayout extends AbstractTableLayout { public void handleAction(final Action action, final Object sender, final Object target) { if (ACTION_CTRL_A.equals(action)) { smTable.selectAll(); - getEventBus().publish(this, new SoftwareModuleEvent(SoftwareModuleEventType.SELECT_ALL, null)); + getEventBus().publish(this, new SoftwareModuleTableEvent(SoftwareModuleComponentEvent.SELECT_ALL)); } } From c3f2c4fc70bb582ae61fe5a73eaffe8474c8d086 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 14 Jun 2016 13:24:58 +0200 Subject: [PATCH 07/12] 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)); } } From 2b33f3646b5f221556a4af92a381292affe3f755 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 14 Jun 2016 13:28:29 +0200 Subject: [PATCH 08/12] remove EventBus from AbstractTableLayout Signed-off-by: Melanie Retter --- .../hawkbit/ui/common/table/AbstractTableLayout.java | 8 -------- 1 file changed, 8 deletions(-) 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 b85006468..98874626d 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 @@ -10,7 +10,6 @@ package org.eclipse.hawkbit.ui.common.table; 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; @@ -33,9 +32,6 @@ public abstract class AbstractTableLayout extends VerticalLayout { protected static final ShortcutAction ACTION_CTRL_A = new ShortcutAction("Select All", ShortcutAction.KeyCode.A, new int[] { ShortcutAction.ModifierKey.CTRL }); - @Autowired - private transient EventBus.SessionEventBus eventBus; - private AbstractTableHeader tableHeader; private AbstractTable table; @@ -128,8 +124,4 @@ public abstract class AbstractTableLayout extends VerticalLayout { tableHeader.setFilterButtonsIconVisible(visible); } - public EventBus.SessionEventBus getEventBus() { - return eventBus; - } - } From e35ef0f7db8f780c03045d6a60e69c386621a694 Mon Sep 17 00:00:00 2001 From: Melanie Retter Date: Tue, 14 Jun 2016 19:10:21 +0200 Subject: [PATCH 09/12] only select all rows if table is multiselect Signed-off-by: Melanie Retter --- .../org/eclipse/hawkbit/ui/common/table/AbstractTable.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTable.java index 89e8be799..1121ac8a7 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/table/AbstractTable.java @@ -157,8 +157,10 @@ public abstract class AbstractTable extends Table { * Select all rows in the table. */ protected void selectAll() { - // only contains the ItemIds of the visible items in the table - setValue(getItemIds()); + if (isMultiSelect()) { + // only contains the ItemIds of the visible items in the table + setValue(getItemIds()); + } } private void setColumnProperties() { From c3d04a530f03afbec2e29fc2bd849d3febb98965 Mon Sep 17 00:00:00 2001 From: Jonathan Knoblauch Date: Wed, 15 Jun 2016 13:45:50 +0200 Subject: [PATCH 10/12] Changed f to F --- .../hawkbit/ui/management/targettable/TargetTableHeader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java index 5b0aa285a..16dc584ed 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/targettable/TargetTableHeader.java @@ -398,7 +398,7 @@ public class TargetTableHeader extends AbstractTableHeader { getFilterDroppedInfo().setSizeFull(); getFilterDroppedInfo().addComponent(filteredDistLabel); getFilterDroppedInfo().addComponent(filterLabelClose); - getFilterDroppedInfo().setExpandRatio(filteredDistLabel, 1.0f); + getFilterDroppedInfo().setExpandRatio(filteredDistLabel, 1.0F); eventbus.publish(this, TargetFilterEvent.FILTER_BY_DISTRIBUTION); } From deb1dde32646a7a5266e658642f6ccff57d4ec7e Mon Sep 17 00:00:00 2001 From: SirWayne Date: Tue, 21 Jun 2016 09:45:28 +0200 Subject: [PATCH 11/12] Add select all for mac osx Signed-off-by: SirWayne --- .../smtable/SoftwareModuleTableLayout.java | 5 -- .../ui/common/table/AbstractTableLayout.java | 85 +++++++++++-------- .../dstable/DistributionSetTableLayout.java | 5 -- .../smtable/SwModuleTableLayout.java | 6 -- .../dstable/DistributionTableLayout.java | 5 -- 5 files changed, 51 insertions(+), 55 deletions(-) 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 2672c4546..421fbc89c 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 @@ -42,9 +42,4 @@ public class SoftwareModuleTableLayout extends AbstractTableLayout { super.init(smTableHeader, smTable, softwareModuleDetails); } - @Override - protected void publishEvent() { - // nothing to publish - } - } 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 98874626d..905c5917c 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 @@ -9,11 +9,12 @@ package org.eclipse.hawkbit.ui.common.table; import org.eclipse.hawkbit.ui.common.detailslayout.AbstractTableDetailsLayout; -import org.springframework.beans.factory.annotation.Autowired; import com.vaadin.event.Action; import com.vaadin.event.Action.Handler; import com.vaadin.event.ShortcutAction; +import com.vaadin.server.Page; +import com.vaadin.server.WebBrowser; import com.vaadin.ui.Alignment; import com.vaadin.ui.Panel; import com.vaadin.ui.VerticalLayout; @@ -24,22 +25,16 @@ import com.vaadin.ui.themes.ValoTheme; */ public abstract class AbstractTableLayout extends VerticalLayout { - private static final long serialVersionUID = 8611248179949245460L; - - /** - * action for the shortcut key ctrl + 'A'. - */ - protected static final ShortcutAction ACTION_CTRL_A = new ShortcutAction("Select All", ShortcutAction.KeyCode.A, - new int[] { ShortcutAction.ModifierKey.CTRL }); + private static final long serialVersionUID = 1L; private AbstractTableHeader tableHeader; - private AbstractTable table; + private AbstractTable table; - private AbstractTableDetailsLayout detailsLayout; + private AbstractTableDetailsLayout detailsLayout; - protected void init(final AbstractTableHeader tableHeader, final AbstractTable table, - final AbstractTableDetailsLayout detailsLayout) { + protected void init(final AbstractTableHeader tableHeader, final AbstractTable table, + final AbstractTableDetailsLayout detailsLayout) { this.tableHeader = tableHeader; this.table = table; this.detailsLayout = detailsLayout; @@ -63,24 +58,24 @@ public abstract class AbstractTableLayout extends VerticalLayout { if (isShortCutKeysRequired()) { final Panel tablePanel = new Panel(); tablePanel.setStyleName("table-panel"); - tablePanel.setHeight(100.0f, Unit.PERCENTAGE); + tablePanel.setHeight(100.0F, Unit.PERCENTAGE); tablePanel.setContent(table); tablePanel.addActionHandler(getShortCutKeysHandler()); tablePanel.addStyleName(ValoTheme.PANEL_BORDERLESS); tableHeaderLayout.addComponent(tablePanel); tableHeaderLayout.setComponentAlignment(tablePanel, Alignment.TOP_CENTER); - tableHeaderLayout.setExpandRatio(tablePanel, 1.0f); + tableHeaderLayout.setExpandRatio(tablePanel, 1.0F); } else { tableHeaderLayout.addComponent(table); tableHeaderLayout.setComponentAlignment(table, Alignment.TOP_CENTER); - tableHeaderLayout.setExpandRatio(table, 1.0f); + tableHeaderLayout.setExpandRatio(table, 1.0F); } addComponent(tableHeaderLayout); addComponent(detailsLayout); setComponentAlignment(tableHeaderLayout, Alignment.TOP_CENTER); setComponentAlignment(detailsLayout, Alignment.TOP_CENTER); - setExpandRatio(tableHeaderLayout, 1.0f); + setExpandRatio(tableHeaderLayout, 1.0F); } /** @@ -99,29 +94,51 @@ public abstract class AbstractTableLayout extends VerticalLayout { * Default is null. */ 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 }; - } - }; + return new TableShortCutHandler(); } - protected abstract void publishEvent(); + protected void publishEvent() { + // can be override by subclasses + } public void setShowFilterButtonVisible(final boolean visible) { tableHeader.setFilterButtonsIconVisible(visible); } + private class TableShortCutHandler implements Handler { + + private static final String SELECT_ALL_TEXT = "Select All"; + private final ShortcutAction selectAllAction = new ShortcutAction(SELECT_ALL_TEXT, ShortcutAction.KeyCode.A, + new int[] { ShortcutAction.ModifierKey.CTRL }); + + private final ShortcutAction selectAllMacAction = new ShortcutAction(SELECT_ALL_TEXT, ShortcutAction.KeyCode.A, + new int[] { ShortcutAction.ModifierKey.META }); + + private static final long serialVersionUID = 1L; + + @Override + public void handleAction(final Action action, final Object sender, final Object target) { + if (!isSelecAllAction(action)) { + return; + } + table.selectAll(); + publishEvent(); + } + + private boolean isSelecAllAction(final Action action) { + return selectAllAction.equals(action) || selectAllMacAction.equals(action); + } + + @Override + public Action[] getActions(final Object target, final Object sender) { + + final WebBrowser webBrowser = Page.getCurrent().getWebBrowser(); + if (webBrowser.isMacOSX()) { + return new Action[] { selectAllMacAction }; + } + + return new Action[] { selectAllAction }; + } + } + } 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 66c8aff0e..e15189f6a 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 @@ -46,9 +46,4 @@ public class DistributionSetTableLayout extends AbstractTableLayout { super.init(dsTableHeader, dsTable, distributionDetails); } - @Override - protected void publishEvent() { - // nothing to publish - } - } 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 e0d4b8ac6..9d298207a 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 @@ -41,10 +41,4 @@ public class SwModuleTableLayout extends AbstractTableLayout { void init() { super.init(swModuleTableHeader, swModuleTable, swModuleDetails); } - - @Override - protected void publishEvent() { - // nothing to publish - } - } 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 fefbca972..0d9a782a1 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 @@ -42,9 +42,4 @@ public class DistributionTableLayout extends AbstractTableLayout { super.init(dsTableHeader, dsTable, distributionDetails); } - @Override - protected void publishEvent() { - // nothing to publish - } - } From b7ea17498367d6727cd7149534ecca6f5156662e Mon Sep 17 00:00:00 2001 From: SirWayne Date: Tue, 21 Jun 2016 13:42:26 +0200 Subject: [PATCH 12/12] Add a shortcut modifier util class to handle cross platform functionality. Signed-off-by: SirWayne --- .../ui/common/table/AbstractTableLayout.java | 20 ++------- .../ui/utils/ShortCutModifierUtils.java | 41 +++++++++++++++++++ 2 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/ShortCutModifierUtils.java 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 905c5917c..11c0083ec 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 @@ -9,12 +9,11 @@ package org.eclipse.hawkbit.ui.common.table; import org.eclipse.hawkbit.ui.common.detailslayout.AbstractTableDetailsLayout; +import org.eclipse.hawkbit.ui.utils.ShortCutModifierUtils; import com.vaadin.event.Action; import com.vaadin.event.Action.Handler; import com.vaadin.event.ShortcutAction; -import com.vaadin.server.Page; -import com.vaadin.server.WebBrowser; import com.vaadin.ui.Alignment; import com.vaadin.ui.Panel; import com.vaadin.ui.VerticalLayout; @@ -109,34 +108,21 @@ public abstract class AbstractTableLayout extends VerticalLayout { private static final String SELECT_ALL_TEXT = "Select All"; private final ShortcutAction selectAllAction = new ShortcutAction(SELECT_ALL_TEXT, ShortcutAction.KeyCode.A, - new int[] { ShortcutAction.ModifierKey.CTRL }); - - private final ShortcutAction selectAllMacAction = new ShortcutAction(SELECT_ALL_TEXT, ShortcutAction.KeyCode.A, - new int[] { ShortcutAction.ModifierKey.META }); + new int[] { ShortCutModifierUtils.getCtrlOrMetaModifier() }); private static final long serialVersionUID = 1L; @Override public void handleAction(final Action action, final Object sender, final Object target) { - if (!isSelecAllAction(action)) { + if (!selectAllAction.equals(action)) { return; } table.selectAll(); publishEvent(); } - private boolean isSelecAllAction(final Action action) { - return selectAllAction.equals(action) || selectAllMacAction.equals(action); - } - @Override public Action[] getActions(final Object target, final Object sender) { - - final WebBrowser webBrowser = Page.getCurrent().getWebBrowser(); - if (webBrowser.isMacOSX()) { - return new Action[] { selectAllMacAction }; - } - return new Action[] { selectAllAction }; } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/ShortCutModifierUtils.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/ShortCutModifierUtils.java new file mode 100644 index 000000000..b844caafd --- /dev/null +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/ShortCutModifierUtils.java @@ -0,0 +1,41 @@ +/** + * 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.utils; + +import com.vaadin.event.ShortcutAction; +import com.vaadin.server.Page; +import com.vaadin.server.WebBrowser; + +/** + * On different systems there are different modifier for short cuts. This + * utility class handles the cross-platform functionality. + */ +public final class ShortCutModifierUtils { + + private ShortCutModifierUtils() { + + } + + /** + * Returns the ctrl or meta modifier depending on the platform. + * + * @return on mac return + * {@link com.vaadin.event.ShortcutAction.ModifierKey#META} other + * platform return + * {@link com.vaadin.event.ShortcutAction.ModifierKey#CTRL} + */ + public static int getCtrlOrMetaModifier() { + final WebBrowser webBrowser = Page.getCurrent().getWebBrowser(); + if (webBrowser.isMacOSX()) { + return ShortcutAction.ModifierKey.META; + } + + return ShortcutAction.ModifierKey.CTRL; + } +}