Skip to content

Commit 9f27b53

Browse files
authored
Plotting Improvements - Series line type scale and UI (#2817)
- QueryChartDialog helpers for show/hide points in line chart and per series line type option
1 parent 69255fa commit 9f27b53

1 file changed

Lines changed: 28 additions & 2 deletions

File tree

src/org/labkey/test/components/react/QueryChartDialog.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,20 @@ public boolean isLegendPosVisible()
171171
return elementCache().legendBottomRadio.isDisplayed() && elementCache().legendRightRadio.isDisplayed();
172172
}
173173

174+
public QueryChartDialog setPointsHidden(boolean hidden)
175+
{
176+
if (hidden)
177+
elementCache().pointsHideRadio.check();
178+
else
179+
elementCache().pointsShowRadio.check();
180+
return this;
181+
}
182+
183+
public boolean hasPointsHiddenOption()
184+
{
185+
return elementCache().pointsHideRadio.isDisplayed() && elementCache().pointsShowRadio.isDisplayed();
186+
}
187+
174188
/**
175189
* Set the axis scale to 'linear' or 'log' for the given axis
176190
* @param label the axis label
@@ -661,14 +675,24 @@ public boolean hasLineColorAndStyleSelectOption()
661675
return elementCache().reactSelectByLabel("Line Color and Style", true) != null;
662676
}
663677

664-
public QueryChartDialog selectLineColorAndStyleOption(String option, String hexColor)
678+
public QueryChartDialog selectLineColorAndStyleOption(String option, String hexColor, String lineType)
665679
{
666680
var seriesDropdown = elementCache().reactSelectByLabel("Line Color and Style");
667681
// series select component uses a custom option renderer
668-
seriesDropdown.setOptionLocator((String type) -> Locator.byClass("chart-builder-type-option").withAttribute("data-series-shape", type));
682+
seriesDropdown.setOptionLocator((String type) -> Locator.byClass("chart-builder-type-option").withAttribute("data-series-option", type));
669683
seriesDropdown.select(option);
684+
670685
if (hexColor != null)
671686
setColor(elementCache().seriesColorPicker, hexColor);
687+
688+
// lineType component uses a custom option renderer
689+
if (lineType != null)
690+
{
691+
var lineTypeDropdown = elementCache().reactSelectByLabel("Line Type");
692+
lineTypeDropdown.setOptionLocator((String type) -> Locator.byClass("chart-builder-type-option").withAttribute("data-series-linetype", type));
693+
lineTypeDropdown.select(lineType);
694+
}
695+
672696
return this;
673697
}
674698

@@ -747,6 +771,8 @@ public WebElement svg()
747771
public RadioButton scaleManualRadio = RadioButton.RadioButton(Locator.radioButtonByNameAndValue("scaleType", "manual")).refindWhenNeeded(fieldOptionPopover);
748772
public RadioButton legendRightRadio = RadioButton.RadioButton(Locator.radioButtonByNameAndValue("legendPos", "right")).refindWhenNeeded(settingsPanel);
749773
public RadioButton legendBottomRadio = RadioButton.RadioButton(Locator.radioButtonByNameAndValue("legendPos", "bottom")).refindWhenNeeded(settingsPanel);
774+
public RadioButton pointsShowRadio = RadioButton.RadioButton(Locator.radioButtonByNameAndValue("hideDataPoints", "false")).refindWhenNeeded(settingsPanel);
775+
public RadioButton pointsHideRadio = RadioButton.RadioButton(Locator.radioButtonByNameAndValue("hideDataPoints", "true")).refindWhenNeeded(settingsPanel);
750776
public Input scaleRangeMinInput = Input(Locator.input("scaleMin"), getDriver()).refindWhenNeeded(fieldOptionPopover);
751777
public Input scaleRangeMaxInput = Input(Locator.input("scaleMax"), getDriver()).refindWhenNeeded(fieldOptionPopover);
752778
public Input yLabelInput = Input(Locator.input("y-label"), getDriver()).refindWhenNeeded(fieldOptionPopover);

0 commit comments

Comments
 (0)