Auto-resizing of the statistic suggest box and other style improvements of the data mining UI

This commit is contained in:
Lennart Hensler committed 2018-08-09 19:47:13 +02:00
1 parent 23debc649a
commit ccbb9b7910
4 files changed
+68 -40

No files matched your search

@@ -40,7 +40,10 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
public class MultiDimensionalGroupingProvider extends AbstractDataMiningComponent<SerializableSettings>
implements GroupingProvider {
private static final String GROUPING_PROVIDER_ELEMENT_STYLE = "groupingProviderElement";
private static final String GroupingProviderStyle = "groupingProvider";
private static final String GroupingProviderLabelStyle = "groupingProviderLabel";
private static final String GroupingProviderElementStyle = "groupingProviderElement";
private static final NaturalComparator NaturalComparator = new NaturalComparator();
private static final Comparator<FunctionDTO> DimensionComparator = (d1, d2) -> {
// Null values (to deselect the dimension) on top
@@ -79,10 +82,10 @@ public class MultiDimensionalGroupingProvider extends AbstractDataMiningComponen
dimensionToGroupByBoxes = new ArrayList<ValueListBox<FunctionDTO>>();
mainPanel = new FlowPanel();
mainPanel.addStyleName("groupingProvider");
mainPanel.addStyleName(GroupingProviderStyle);
Label groupByLabel = new Label(this.getDataMiningStringMessages().groupBy());
groupByLabel.addStyleName(GROUPING_PROVIDER_ELEMENT_STYLE);
groupByLabel.addStyleName("queryProviderElementLabel");
groupByLabel.addStyleName(GroupingProviderLabelStyle);
groupByLabel.addStyleName("emphasizedLabel");
mainPanel.add(groupByLabel);
@@ -161,11 +164,17 @@ public class MultiDimensionalGroupingProvider extends AbstractDataMiningComponen
}
private void clear() {
mainPanel.clear();
dimensionToGroupByBoxes.clear();
clearDimensionBoxes();
availableDimensions.clear();
}
private void clearDimensionBoxes() {
for (ValueListBox<FunctionDTO> dimensionBox : dimensionToGroupByBoxes) {
dimensionBox.removeFromParent();
}
dimensionToGroupByBoxes.clear();
}
@Override
public Iterable<FunctionDTO> getAvailableDimensions() {
return Collections.unmodifiableList(availableDimensions);
@@ -208,7 +217,7 @@ public class MultiDimensionalGroupingProvider extends AbstractDataMiningComponen
}
});
dimensionToGroupByBox.addStyleName(GROUPING_PROVIDER_ELEMENT_STYLE);
dimensionToGroupByBox.addStyleName(GroupingProviderElementStyle);
return dimensionToGroupByBox;
}
@@ -252,7 +261,7 @@ public class MultiDimensionalGroupingProvider extends AbstractDataMiningComponen
final ValueListBox<FunctionDTO> dimensionListBox = i.next();
if (Util.equalsWithNull(dimension, dimensionListBox.getValue())) {
i.remove();
mainPanel.remove(dimensionListBox);
dimensionListBox.removeFromParent();
updateAcceptableValues();
notifyListeners();
}
@@ -265,8 +274,7 @@ public class MultiDimensionalGroupingProvider extends AbstractDataMiningComponen
dimensionsToSelect = queryDefinition.getDimensionsToGroupBy();
selectionCallback = callback;
if (!isAwaitingReload && !isUpdating && currentRetrieverChainDefinition.equals(newRetrieverChain)) {
mainPanel.clear();
dimensionToGroupByBoxes.clear();
clearDimensionBoxes();
ValueListBox<FunctionDTO> firstDimensionToGroupByBox = createDimensionToGroupByBox();
addDimensionToGroupByBoxAndUpdateAcceptableValues(firstDimensionToGroupByBox);
@@ -69,8 +69,10 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
public class QueryDefinitionProviderWithControls extends AbstractQueryDefinitionProvider<AdvancedDataMiningSettings>
implements WithControls {
private static final double HeaderPanelHeight = 45;
private static final double FooterPanelHeight = 50;
private static final double HeaderPanelHeight = 41;
private static final double InitialQueryDefinitionViewerWidth = 600;
private static final double InitialStatisticProviderWidth = 800;
private static final double FooterPanelHeight = 60;
private static final int SplitterSize = 10;
private final Panel mainPanel;
@@ -103,7 +105,7 @@ public class QueryDefinitionProviderWithControls extends AbstractQueryDefinition
providerListener = new ProviderListener();
// Creating the header panel, that contains the retriever chain provider and the controls
controlsPanel = new FlowPanel();
controlsPanel.addStyleName("definitionProviderControls");
controlsPanel.addStyleName("dataMiningMarginBase");
this.settingsControl = settingsControl;
addControl(this.settingsControl.getEntryWidget());
@@ -144,7 +146,8 @@ public class QueryDefinitionProviderWithControls extends AbstractQueryDefinition
statisticProvider = new SuggestBoxStatisticProvider(parent, context, dataMiningService,
errorReporter, settingsControl, settingsManager);
statisticProvider.getEntryWidget().addStyleName("statisticProvider");
Widget statisticProviderWidget = statisticProvider.getEntryWidget();
statisticProviderWidget.addStyleName("dataMiningMarginBase");
statisticProvider.addStatisticChangedListener(providerListener);
groupingProvider = new MultiDimensionalGroupingProvider(parent, context, dataMiningService,
@@ -159,7 +162,7 @@ public class QueryDefinitionProviderWithControls extends AbstractQueryDefinition
filterSplitPanel = new SplitLayoutPanel(SplitterSize);
filterSplitPanel.addSouth(groupingProvider.getEntryWidget(), FooterPanelHeight);
filterSplitPanel.addEast(queryDefinitionViewer.getEntryWidget(), 600);
filterSplitPanel.addEast(queryDefinitionViewer.getEntryWidget(), InitialQueryDefinitionViewerWidth);
filterSplitPanel.setWidgetHidden(queryDefinitionViewer.getEntryWidget(), true);
filterSplitPanel.add(filterSelectionProvider.getEntryWidget());
@@ -172,8 +175,7 @@ public class QueryDefinitionProviderWithControls extends AbstractQueryDefinition
applyQueryBusyIndicator.add(labeledBusyIndicator);
SplitLayoutPanel headerPanel = new SplitLayoutPanel(SplitterSize);
headerPanel.addStyleName("dataMiningMarginBase");
headerPanel.addWest(statisticProvider.getEntryWidget(), 800);
headerPanel.addWest(statisticProviderWidget, InitialStatisticProviderWidth);
headerPanel.add(controlsPanel);
DockLayoutPanel contentPanel = new DockLayoutPanel(Unit.PX);
@@ -21,6 +21,7 @@ import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MenuItem;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.SuggestBox.DefaultSuggestionDisplay;
import com.google.gwt.user.client.ui.ValueListBox;
import com.google.gwt.user.client.ui.Widget;
@@ -62,7 +63,10 @@ import com.sap.sse.gwt.client.suggestion.CustomSuggestBox;
public class SuggestBoxStatisticProvider extends AbstractDataMiningComponent<CompositeSettings>
implements StatisticProvider {
private static final String STATISTIC_PROVIDER_ELEMENT_STYLE = "statisticProviderElement";
private static final String StatisticProviderStyle = "statisticProvider";
private static final String StatisticProviderLabelStyle = "statisticProviderLabel";
private static final String StatisticProviderElementStyle = "statisticProviderElement";
private static final String SuggestBoxContainerStyle = "statisticSuggestBoxContainer";
private final DataMiningServiceAsync dataMiningService;
private final ErrorReporter errorReporter;
@@ -103,9 +107,9 @@ public class SuggestBoxStatisticProvider extends AbstractDataMiningComponent<Com
retrieverLevelSettingsComponents = new ArrayList<>();
mainPanel = new FlowPanel();
mainPanel.addStyleName(StatisticProviderStyle);
Label label = new Label(getDataMiningStringMessages().calculateThe());
label.addStyleName(STATISTIC_PROVIDER_ELEMENT_STYLE);
label.addStyleName("queryProviderElementLabel");
label.addStyleName(StatisticProviderLabelStyle);
label.addStyleName("emphasizedLabel");
mainPanel.add(label);
@@ -130,13 +134,17 @@ public class SuggestBoxStatisticProvider extends AbstractDataMiningComponent<Com
}
});
extractionFunctionSuggestBox.setLimit(Integer.MAX_VALUE);
extractionFunctionSuggestBox.addStyleName(STATISTIC_PROVIDER_ELEMENT_STYLE);
extractionFunctionSuggestBox.setWidth("540px");
mainPanel.add(extractionFunctionSuggestBox);
extractionFunctionSuggestBox.addStyleName(StatisticProviderElementStyle);
extractionFunctionSuggestBox.setWidth("100%");
SimplePanel suggestBoxContainer = new SimplePanel(extractionFunctionSuggestBox);
suggestBoxContainer.addStyleName(StatisticProviderElementStyle);
suggestBoxContainer.addStyleName(SuggestBoxContainerStyle);
mainPanel.add(suggestBoxContainer);
availableAggregators = new ArrayList<>();
aggregatorListBox = createAggregatorListBox();
aggregatorListBox.addStyleName(STATISTIC_PROVIDER_ELEMENT_STYLE);
aggregatorListBox.addStyleName(StatisticProviderElementStyle);
mainPanel.add(aggregatorListBox);
}