Make custom target filter table expandable (#1267)
* initial draft to maximize custom target filer table for better UX in case of long keys/names * Set correct maximize icon identifier and fix problem with wrong db table structure. * Remove unnecessary local variable. * Fix db migration scripts * Fix losing the target tag table when mac and minimizing target table. * fixed minor styling, removed duplication Signed-off-by: Bogdan Bondar <Bogdan.Bondar@bosch.io> Signed-off-by: Michael Herdt <Michael.Herdt@bosch.io>
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE sp_target_type ALTER COLUMN name SET DATA TYPE VARCHAR(128);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE sp_target_type ALTER COLUMN name VARCHAR (128);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE sp_target_type MODIFY name VARCHAR(128);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE sp_target_type ALTER COLUMN name VARCHAR (128);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE sp_target_type ALTER COLUMN name VARCHAR (128) NOT NULL;
|
||||||
@@ -8,17 +8,11 @@
|
|||||||
*/
|
*/
|
||||||
package org.eclipse.hawkbit.ui.management;
|
package org.eclipse.hawkbit.ui.management;
|
||||||
|
|
||||||
import com.vaadin.server.Page;
|
|
||||||
import com.vaadin.server.Page.BrowserWindowResizeEvent;
|
|
||||||
import com.vaadin.server.Page.BrowserWindowResizeListener;
|
|
||||||
import com.vaadin.spring.annotation.SpringView;
|
|
||||||
import com.vaadin.spring.annotation.UIScope;
|
|
||||||
import com.vaadin.ui.HorizontalLayout;
|
|
||||||
import com.vaadin.ui.Layout;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
import org.eclipse.hawkbit.repository.DeploymentManagement;
|
import org.eclipse.hawkbit.repository.DeploymentManagement;
|
||||||
import org.eclipse.hawkbit.repository.DistributionSetInvalidationManagement;
|
import org.eclipse.hawkbit.repository.DistributionSetInvalidationManagement;
|
||||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||||
@@ -58,6 +52,14 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.vaadin.spring.events.EventBus.UIEventBus;
|
import org.vaadin.spring.events.EventBus.UIEventBus;
|
||||||
|
|
||||||
|
import com.vaadin.server.Page;
|
||||||
|
import com.vaadin.server.Page.BrowserWindowResizeEvent;
|
||||||
|
import com.vaadin.server.Page.BrowserWindowResizeListener;
|
||||||
|
import com.vaadin.spring.annotation.SpringView;
|
||||||
|
import com.vaadin.spring.annotation.UIScope;
|
||||||
|
import com.vaadin.ui.HorizontalLayout;
|
||||||
|
import com.vaadin.ui.Layout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Target status and deployment management view
|
* Target status and deployment management view
|
||||||
*/
|
*/
|
||||||
@@ -108,9 +110,9 @@ public class DeploymentView extends AbstractEventListenersAwareView implements B
|
|||||||
targetFilterQueryManagement, targetTypeManagement, targetTagManagement, targetManagement,
|
targetFilterQueryManagement, targetTypeManagement, targetTagManagement, targetManagement,
|
||||||
managementUIState.getTargetTagFilterLayoutUiState(), distributionSetTypeManagement);
|
managementUIState.getTargetTagFilterLayoutUiState(), distributionSetTypeManagement);
|
||||||
|
|
||||||
this.targetGridLayout = new TargetGridLayout(uiDependencies, targetManagement, targetTypeManagement, deploymentManagement,
|
this.targetGridLayout = new TargetGridLayout(uiDependencies, targetManagement, targetTypeManagement,
|
||||||
uiProperties, targetTagManagement, distributionSetManagement, uiExecutor, configManagement,
|
deploymentManagement, uiProperties, targetTagManagement, distributionSetManagement, uiExecutor,
|
||||||
targetManagementStateDataSupplier, systemSecurityContext,
|
configManagement, targetManagementStateDataSupplier, systemSecurityContext,
|
||||||
managementUIState.getTargetTagFilterLayoutUiState(), managementUIState.getTargetGridLayoutUiState(),
|
managementUIState.getTargetTagFilterLayoutUiState(), managementUIState.getTargetGridLayoutUiState(),
|
||||||
managementUIState.getTargetBulkUploadUiState(),
|
managementUIState.getTargetBulkUploadUiState(),
|
||||||
managementUIState.getDistributionGridLayoutUiState());
|
managementUIState.getDistributionGridLayoutUiState());
|
||||||
@@ -153,6 +155,8 @@ public class DeploymentView extends AbstractEventListenersAwareView implements B
|
|||||||
new EventViewAware(EventView.DEPLOYMENT), layoutVisibilityHandlers);
|
new EventViewAware(EventView.DEPLOYMENT), layoutVisibilityHandlers);
|
||||||
|
|
||||||
final Map<EventLayout, ResizeHandler> layoutResizeHandlers = new EnumMap<>(EventLayout.class);
|
final Map<EventLayout, ResizeHandler> layoutResizeHandlers = new EnumMap<>(EventLayout.class);
|
||||||
|
layoutResizeHandlers.put(EventLayout.TARGET_TAG_FILTER,
|
||||||
|
new ResizeHandler(this::maximizeCustomFilterLayout, this::minimizeCustomFilterLayout));
|
||||||
layoutResizeHandlers.put(EventLayout.TARGET_LIST,
|
layoutResizeHandlers.put(EventLayout.TARGET_LIST,
|
||||||
new ResizeHandler(this::maximizeTargetGridLayout, this::minimizeTargetGridLayout));
|
new ResizeHandler(this::maximizeTargetGridLayout, this::minimizeTargetGridLayout));
|
||||||
layoutResizeHandlers.put(EventLayout.DS_LIST,
|
layoutResizeHandlers.put(EventLayout.DS_LIST,
|
||||||
@@ -272,6 +276,10 @@ public class DeploymentView extends AbstractEventListenersAwareView implements B
|
|||||||
showTargetTagLayout();
|
showTargetTagLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (managementUIState.getTargetTagFilterLayoutUiState().isMaximized()) {
|
||||||
|
maximizeCustomFilterLayout();
|
||||||
|
}
|
||||||
|
|
||||||
if (managementUIState.getTargetGridLayoutUiState().isMaximized()) {
|
if (managementUIState.getTargetGridLayoutUiState().isMaximized()) {
|
||||||
maximizeTargetGridLayout();
|
maximizeTargetGridLayout();
|
||||||
}
|
}
|
||||||
@@ -312,6 +320,9 @@ public class DeploymentView extends AbstractEventListenersAwareView implements B
|
|||||||
if (distributionTagLayout != null) {
|
if (distributionTagLayout != null) {
|
||||||
hideDsTagLayout();
|
hideDsTagLayout();
|
||||||
}
|
}
|
||||||
|
if (targetTagFilterLayout != null) {
|
||||||
|
hideTargetTagLayout();
|
||||||
|
}
|
||||||
actionHistoryLayout.setVisible(false);
|
actionHistoryLayout.setVisible(false);
|
||||||
|
|
||||||
clearAllWidgetsRatios();
|
clearAllWidgetsRatios();
|
||||||
@@ -320,17 +331,46 @@ public class DeploymentView extends AbstractEventListenersAwareView implements B
|
|||||||
targetGridLayout.maximize();
|
targetGridLayout.maximize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void maximizeCustomFilterLayout() {
|
||||||
|
if (distributionGridLayout != null) {
|
||||||
|
distributionGridLayout.setVisible(false);
|
||||||
|
}
|
||||||
|
if (distributionTagLayout != null) {
|
||||||
|
hideDsTagLayout();
|
||||||
|
}
|
||||||
|
actionHistoryLayout.setVisible(false);
|
||||||
|
|
||||||
|
clearAllWidgetsRatios();
|
||||||
|
mainLayout.setExpandRatio(targetTagFilterLayout, 1F);
|
||||||
|
mainLayout.setExpandRatio(targetGridLayout, 0.5F);
|
||||||
|
|
||||||
|
targetTagFilterLayout.maximize();
|
||||||
|
}
|
||||||
|
|
||||||
private void clearAllWidgetsRatios() {
|
private void clearAllWidgetsRatios() {
|
||||||
mainLayout.iterator().forEachRemaining(layout -> mainLayout.setExpandRatio(layout, 0F));
|
mainLayout.iterator().forEachRemaining(layout -> mainLayout.setExpandRatio(layout, 0F));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void minimizeTargetGridLayout() {
|
private void minimizeTargetGridLayout() {
|
||||||
|
showNonTargetSpecificWidgetsAdaptingRatios();
|
||||||
|
|
||||||
|
if (targetTagFilterLayout != null && !managementUIState.getTargetTagFilterLayoutUiState().isHidden()) {
|
||||||
|
showTargetTagLayout();
|
||||||
|
targetTagFilterLayout.minimize();
|
||||||
|
}
|
||||||
|
|
||||||
|
targetGridLayout.minimize();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showNonTargetSpecificWidgetsAdaptingRatios() {
|
||||||
if (distributionGridLayout != null) {
|
if (distributionGridLayout != null) {
|
||||||
distributionGridLayout.setVisible(true);
|
distributionGridLayout.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (distributionTagLayout != null && !managementUIState.getDistributionTagLayoutUiState().isHidden()) {
|
if (distributionTagLayout != null && !managementUIState.getDistributionTagLayoutUiState().isHidden()) {
|
||||||
showDsTagLayout();
|
showDsTagLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
actionHistoryLayout.setVisible(true);
|
actionHistoryLayout.setVisible(true);
|
||||||
|
|
||||||
if (distributionGridLayout != null && distributionTagLayout != null) {
|
if (distributionGridLayout != null && distributionTagLayout != null) {
|
||||||
@@ -339,7 +379,12 @@ public class DeploymentView extends AbstractEventListenersAwareView implements B
|
|||||||
adaptTargetWidgetsRatios();
|
adaptTargetWidgetsRatios();
|
||||||
}
|
}
|
||||||
|
|
||||||
targetGridLayout.minimize();
|
}
|
||||||
|
|
||||||
|
private void minimizeCustomFilterLayout() {
|
||||||
|
showNonTargetSpecificWidgetsAdaptingRatios();
|
||||||
|
|
||||||
|
targetTagFilterLayout.minimize();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void maximizeDsGridLayout() {
|
private void maximizeDsGridLayout() {
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ public class FilterByStatusLayout extends VerticalLayout {
|
|||||||
targetFilterStatusLabel.addStyleName("target-status-filters-title");
|
targetFilterStatusLabel.addStyleName("target-status-filters-title");
|
||||||
|
|
||||||
addComponent(targetFilterStatusLabel);
|
addComponent(targetFilterStatusLabel);
|
||||||
setComponentAlignment(targetFilterStatusLabel, Alignment.MIDDLE_CENTER);
|
setComponentAlignment(targetFilterStatusLabel, Alignment.MIDDLE_LEFT);
|
||||||
|
|
||||||
final HorizontalLayout fiterByStatusLayout = buildFilterByStatusLayout();
|
final HorizontalLayout fiterByStatusLayout = buildFilterByStatusLayout();
|
||||||
|
|
||||||
|
|||||||
@@ -9,13 +9,18 @@
|
|||||||
package org.eclipse.hawkbit.ui.management.targettag.filter;
|
package org.eclipse.hawkbit.ui.management.targettag.filter;
|
||||||
|
|
||||||
import org.eclipse.hawkbit.ui.common.CommonUiDependencies;
|
import org.eclipse.hawkbit.ui.common.CommonUiDependencies;
|
||||||
|
import org.eclipse.hawkbit.ui.common.event.CommandTopics;
|
||||||
import org.eclipse.hawkbit.ui.common.event.EventLayout;
|
import org.eclipse.hawkbit.ui.common.event.EventLayout;
|
||||||
import org.eclipse.hawkbit.ui.common.event.EventView;
|
import org.eclipse.hawkbit.ui.common.event.EventView;
|
||||||
|
import org.eclipse.hawkbit.ui.common.event.LayoutResizeEventPayload;
|
||||||
|
import org.eclipse.hawkbit.ui.common.event.LayoutResizeEventPayload.ResizeType;
|
||||||
import org.eclipse.hawkbit.ui.common.grid.header.AbstractFilterHeader;
|
import org.eclipse.hawkbit.ui.common.grid.header.AbstractFilterHeader;
|
||||||
|
import org.eclipse.hawkbit.ui.common.grid.header.support.ResizeHeaderSupport;
|
||||||
import org.eclipse.hawkbit.ui.management.targettag.TargetTagWindowBuilder;
|
import org.eclipse.hawkbit.ui.management.targettag.TargetTagWindowBuilder;
|
||||||
import org.eclipse.hawkbit.ui.management.targettag.targettype.TargetTypeWindowBuilder;
|
import org.eclipse.hawkbit.ui.management.targettag.targettype.TargetTypeWindowBuilder;
|
||||||
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
|
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
|
||||||
import org.eclipse.hawkbit.ui.utils.UIMessageIdProvider;
|
import org.eclipse.hawkbit.ui.utils.UIMessageIdProvider;
|
||||||
|
import org.vaadin.spring.events.EventBus.UIEventBus;
|
||||||
|
|
||||||
import com.vaadin.ui.Window;
|
import com.vaadin.ui.Window;
|
||||||
|
|
||||||
@@ -31,25 +36,35 @@ public class TargetTagFilterHeader extends AbstractFilterHeader {
|
|||||||
|
|
||||||
private final transient TargetTypeWindowBuilder targetTypeWindowBuilder;
|
private final transient TargetTypeWindowBuilder targetTypeWindowBuilder;
|
||||||
|
|
||||||
|
private final transient ResizeHeaderSupport resizeHeaderSupport;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for TargetTagFilterHeader
|
* Constructor for TargetTagFilterHeader
|
||||||
* @param uiDependencies
|
*
|
||||||
|
* @param uiDependencies
|
||||||
* {@link CommonUiDependencies}
|
* {@link CommonUiDependencies}
|
||||||
* @param targetTagFilterLayoutUiState
|
* @param targetTagFilterLayoutUiState
|
||||||
* TargetTagFilterLayoutUiState
|
* {@link TargetTagFilterLayoutUiState}
|
||||||
* @param targetTagWindowBuilder
|
* @param targetTagWindowBuilder
|
||||||
|
* {@link TargetTagWindowBuilder}
|
||||||
* @param targetTypeWindowBuilder
|
* @param targetTypeWindowBuilder
|
||||||
|
* {@link TargetTypeWindowBuilder}
|
||||||
*/
|
*/
|
||||||
public TargetTagFilterHeader(final CommonUiDependencies uiDependencies,
|
public TargetTagFilterHeader(
|
||||||
final TargetTagFilterLayoutUiState targetTagFilterLayoutUiState,
|
final CommonUiDependencies uiDependencies,
|
||||||
final TargetTagWindowBuilder targetTagWindowBuilder, TargetTypeWindowBuilder targetTypeWindowBuilder) {
|
final TargetTagFilterLayoutUiState targetTagFilterLayoutUiState,
|
||||||
|
final TargetTagWindowBuilder targetTagWindowBuilder,
|
||||||
|
final TargetTypeWindowBuilder targetTypeWindowBuilder) {
|
||||||
super(uiDependencies.getI18n(), uiDependencies.getPermChecker(), uiDependencies.getEventBus());
|
super(uiDependencies.getI18n(), uiDependencies.getPermChecker(), uiDependencies.getEventBus());
|
||||||
|
|
||||||
this.targetTagFilterLayoutUiState = targetTagFilterLayoutUiState;
|
this.targetTagFilterLayoutUiState = targetTagFilterLayoutUiState;
|
||||||
this.targetTagWindowBuilder = targetTagWindowBuilder;
|
this.targetTagWindowBuilder = targetTagWindowBuilder;
|
||||||
this.targetTypeWindowBuilder = targetTypeWindowBuilder;
|
this.targetTypeWindowBuilder = targetTypeWindowBuilder;
|
||||||
|
|
||||||
|
this.resizeHeaderSupport = new ResizeHeaderSupport(i18n, UIComponentIdProvider.CUSTOM_FILTER_MAX_MIN_TABLE_ICON,
|
||||||
|
this::maximizeTable, this::minimizeTable, this::onLoadIsTableMaximized);
|
||||||
|
addHeaderSupport(resizeHeaderSupport);
|
||||||
|
|
||||||
buildHeader();
|
buildHeader();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,6 +113,24 @@ public class TargetTagFilterHeader extends AbstractFilterHeader {
|
|||||||
targetTagFilterLayoutUiState.setHidden(true);
|
targetTagFilterLayoutUiState.setHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void maximizeTable() {
|
||||||
|
eventBus.publish(CommandTopics.RESIZE_LAYOUT, this,
|
||||||
|
new LayoutResizeEventPayload(ResizeType.MAXIMIZE, getLayout(), EventView.DEPLOYMENT));
|
||||||
|
|
||||||
|
targetTagFilterLayoutUiState.setMaximized(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void minimizeTable() {
|
||||||
|
eventBus.publish(CommandTopics.RESIZE_LAYOUT, this,
|
||||||
|
new LayoutResizeEventPayload(ResizeType.MINIMIZE, getLayout(), EventView.DEPLOYMENT));
|
||||||
|
|
||||||
|
targetTagFilterLayoutUiState.setMaximized(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Boolean onLoadIsTableMaximized() {
|
||||||
|
return targetTagFilterLayoutUiState.isMaximized();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected EventLayout getLayout() {
|
protected EventLayout getLayout() {
|
||||||
return EventLayout.TARGET_TAG_FILTER;
|
return EventLayout.TARGET_TAG_FILTER;
|
||||||
|
|||||||
@@ -20,9 +20,10 @@ import org.eclipse.hawkbit.ui.common.filterlayout.AbstractFilterLayout;
|
|||||||
import org.eclipse.hawkbit.ui.common.layout.listener.GenericEventListener;
|
import org.eclipse.hawkbit.ui.common.layout.listener.GenericEventListener;
|
||||||
import org.eclipse.hawkbit.ui.management.ManagementUIState;
|
import org.eclipse.hawkbit.ui.management.ManagementUIState;
|
||||||
import org.eclipse.hawkbit.ui.management.targettag.TargetTagWindowBuilder;
|
import org.eclipse.hawkbit.ui.management.targettag.TargetTagWindowBuilder;
|
||||||
|
import org.eclipse.hawkbit.ui.management.targettag.targettype.TargetTypeWindowBuilder;
|
||||||
|
|
||||||
import com.vaadin.ui.ComponentContainer;
|
import com.vaadin.ui.ComponentContainer;
|
||||||
import org.eclipse.hawkbit.ui.management.targettag.targettype.TargetTypeWindowBuilder;
|
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Target Tag filter layout.
|
* Target Tag filter layout.
|
||||||
@@ -52,10 +53,10 @@ public class TargetTagFilterLayout extends AbstractFilterLayout {
|
|||||||
* TargetTagFilterLayoutUiState
|
* TargetTagFilterLayoutUiState
|
||||||
*/
|
*/
|
||||||
public TargetTagFilterLayout(final CommonUiDependencies uiDependencies, final ManagementUIState managementUIState,
|
public TargetTagFilterLayout(final CommonUiDependencies uiDependencies, final ManagementUIState managementUIState,
|
||||||
final TargetFilterQueryManagement targetFilterQueryManagement,
|
final TargetFilterQueryManagement targetFilterQueryManagement,
|
||||||
final TargetTypeManagement targetTypeManagement,
|
final TargetTypeManagement targetTypeManagement, final TargetTagManagement targetTagManagement,
|
||||||
final TargetTagManagement targetTagManagement, final TargetManagement targetManagement,
|
final TargetManagement targetManagement, final TargetTagFilterLayoutUiState targetTagFilterLayoutUiState,
|
||||||
final TargetTagFilterLayoutUiState targetTagFilterLayoutUiState, final DistributionSetTypeManagement distributionSetTypeManagement) {
|
final DistributionSetTypeManagement distributionSetTypeManagement) {
|
||||||
final TargetTagWindowBuilder targetTagWindowBuilder = new TargetTagWindowBuilder(uiDependencies,
|
final TargetTagWindowBuilder targetTagWindowBuilder = new TargetTagWindowBuilder(uiDependencies,
|
||||||
targetTagManagement);
|
targetTagManagement);
|
||||||
|
|
||||||
@@ -65,7 +66,8 @@ public class TargetTagFilterLayout extends AbstractFilterLayout {
|
|||||||
this.targetTagFilterHeader = new TargetTagFilterHeader(uiDependencies, targetTagFilterLayoutUiState,
|
this.targetTagFilterHeader = new TargetTagFilterHeader(uiDependencies, targetTagFilterLayoutUiState,
|
||||||
targetTagWindowBuilder, targetTypeWindowBuilder);
|
targetTagWindowBuilder, targetTypeWindowBuilder);
|
||||||
this.multipleTargetFilter = new MultipleTargetFilter(uiDependencies, targetFilterQueryManagement,
|
this.multipleTargetFilter = new MultipleTargetFilter(uiDependencies, targetFilterQueryManagement,
|
||||||
targetTagManagement, targetManagement, targetTagFilterLayoutUiState, targetTagWindowBuilder, targetTypeWindowBuilder, targetTypeManagement);
|
targetTagManagement, targetManagement, targetTagFilterLayoutUiState, targetTagWindowBuilder,
|
||||||
|
targetTypeWindowBuilder, targetTypeManagement);
|
||||||
|
|
||||||
this.filterTabChangedListener = new GenericEventListener<>(uiDependencies.getEventBus(),
|
this.filterTabChangedListener = new GenericEventListener<>(uiDependencies.getEventBus(),
|
||||||
EventTopics.TARGET_FILTER_TAB_CHANGED, this::onTargetFilterTabChanged);
|
EventTopics.TARGET_FILTER_TAB_CHANGED, this::onTargetFilterTabChanged);
|
||||||
@@ -113,4 +115,12 @@ public class TargetTagFilterLayout extends AbstractFilterLayout {
|
|||||||
filterTabChangedListener.unsubscribe();
|
filterTabChangedListener.unsubscribe();
|
||||||
multipleTargetFilter.unsubscribeListeners();
|
multipleTargetFilter.unsubscribeListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void maximize() {
|
||||||
|
setWidthFull();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void minimize() {
|
||||||
|
setWidth(SPUIDefinitions.FILTER_BY_TYPE_WIDTH, Unit.PIXELS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,12 +26,13 @@ public class TargetTagFilterLayoutUiState extends TagFilterLayoutUiState {
|
|||||||
private boolean isOverdueFilterClicked;
|
private boolean isOverdueFilterClicked;
|
||||||
private boolean isCustomFilterTabSelected;
|
private boolean isCustomFilterTabSelected;
|
||||||
private boolean isTargetTypeFilterTabSelected;
|
private boolean isTargetTypeFilterTabSelected;
|
||||||
|
private boolean isMaximized;
|
||||||
|
|
||||||
public Long getClickedTargetTypeFilterId() {
|
public Long getClickedTargetTypeFilterId() {
|
||||||
return clickedTargetTypeFilterId;
|
return clickedTargetTypeFilterId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setClickedTargetTypeFilterId(Long clickedTargetTypeFilterId) {
|
public void setClickedTargetTypeFilterId(final Long clickedTargetTypeFilterId) {
|
||||||
this.clickedTargetTypeFilterId = clickedTargetTypeFilterId;
|
this.clickedTargetTypeFilterId = clickedTargetTypeFilterId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,8 +110,16 @@ public class TargetTagFilterLayoutUiState extends TagFilterLayoutUiState {
|
|||||||
return isTargetTypeFilterTabSelected;
|
return isTargetTypeFilterTabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTargetTypeFilterTabSelected(boolean targetTypeFilterTabSelected) {
|
public void setTargetTypeFilterTabSelected(final boolean targetTypeFilterTabSelected) {
|
||||||
isTargetTypeFilterTabSelected = targetTypeFilterTabSelected;
|
isTargetTypeFilterTabSelected = targetTypeFilterTabSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMaximized(final boolean maximized) {
|
||||||
|
isMaximized = maximized;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMaximized() {
|
||||||
|
return isMaximized;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -780,10 +780,15 @@ public final class UIComponentIdProvider {
|
|||||||
public static final String TARGET_ATTRIBUTES_UPDATE = "target.attributes.update";
|
public static final String TARGET_ATTRIBUTES_UPDATE = "target.attributes.update";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Id of maximize/minimize icon of table - Software module table.
|
* Id of maximize/minimize icon of table - Target table.
|
||||||
*/
|
*/
|
||||||
public static final String TARGET_MAX_MIN_TABLE_ICON = "target.max.min.table.icon";
|
public static final String TARGET_MAX_MIN_TABLE_ICON = "target.max.min.table.icon";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Id of maximize/minimize icon of table - Custom filter table.
|
||||||
|
*/
|
||||||
|
public static final String CUSTOM_FILTER_MAX_MIN_TABLE_ICON = "custom.filter.max.min.table.icon";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Id of Assignment type in Software Module Details.
|
* Id of Assignment type in Software Module Details.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -115,4 +115,8 @@
|
|||||||
background-image: none;
|
background-image: none;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.target-status-filters-title {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user