Clone Tools
  • last updated 10 mins ago
Constraints: committers
Constraints: files
Constraints: dates
FLEX-35375 CAUSE: DataGrids didn't dispatch a VALUE_COMMIT event when a new dataProvider cleared the selection, thus allowing the selectedItem, selectedIndex, selectedItems, selectedIndexes to become null without a notification. Which also means that if there was any binding set up for any of those variables, it won't be triggered. SOLUTION: we now dispatch a VALUE_COMMIT event when a new dataProvider ends up clearing the selection. NOTE: also added a unit test for this bug, which fails without the fix and passes with the above fix.

  1. … 2 more files in changeset.
Update nightly build to 4.17.0

  1. … 22 more files in changeset.
Update version to 4.16.1

  1. … 20 more files in changeset.
FLEX-35362 CAUSE: the DropDownController signals that the DropDownListBase is open immediately, even before the latter has actually made that change on stage. Since the opening takes one or two frames, it leaves a few milliseconds in which code which relies on that open/closed state erroneously assumes that it can use elements that should be on stage or initialized. In this case it's the layout property, which, due to the skin of the DropDownList, is only initialized once the drop down is actually open.

SOLUTION: we check whether the layout is not-null, and if it is, we select items in the list as if it were closed.


-also edited some comments, simplified Array instantiation, and removed an empty constructor.

-now the unit test will pass.

  1. … 1 more file in changeset.
FLEX-35306 Reverting the fix for FLEX-19651 because it introduced the FLEX-35306 regression.

CAUSE: Due to the fix for FLEX-19651, when the data provider is reset on a (DropDown)List right after the selected item (from this new data provider) is set, a validation cycle is forced on the list immediately before the new data provider is assigned to it. As a consequence, ListBase.commitProperties() fails when trying to find the selected item in the data provider (because, for now, it's still the old one, which doesn't have the new item), thus clearing the selection. But if the list had requireSelection set to true, then the first item in the old provider will be selected nonetheless. And if there was a two-way binding between the list and the model, then the model will at this point be rewritten, most probably wrongly.

SOLUTION: we're reverting the fix for FLEX-19651, which was a minor bug, and seeing if any mustella or unit tests fail. If so, we'll find other ways to fix FLEX-19651.

NOTES: FLEX-19651 doesn't have enough data to reproduce it, so I can't know for sure if it's still there or not. But after playing a bit with multiple selection and data provider changes, as the ticket suggests, there doesn't appear to be any major difference.

FLEX-35260 When calling localToGlobal() on gridColumnHeaderGroup, the result does not reflect its horizontal scroll position, which means that we need to include it manually (in GridHeaderViewLayout.getHeaderIndexAt()). However, the 'x' function argument is assumed to include it, so we're not adding it anymore when calling GridDimensionsView.getColumnIndexAt().

FLEX-35280 FLEX-35260 Recent changes to FLEX-35267 made it so that the y value in GridHeaderViewLayout.getHeaderIndexAt() started to be considered, when before it was simply ignored. But one caller of this function, GridColumnHeaderGroup.eventToHeaderLocations(), simply used '0' for that argument, instead of the real value, knowing that (before these changes) it wasn't being considered. Now the real value is used.

FLEX-35267 Updated unit test to support horizontal scrolling and two new grid profiles. Currently tests fail, but for perplexing reasons (seems like a failure to validate, despite the unit test calling validateNow() way too many times...).

  1. … 1 more file in changeset.
FLEX-35267 Updated unit test - made it easier to read, and now we're also testing GridColumnHeaderGroup.containsGlobalCoordinates(). For the test to pass I've improved the logic in GridHeaderViewLayout.getHeaderIndexAt() which, in turn, made a few functions redundant in GridColumnHeaderGroup. All tests currently pass.

  1. … 1 more file in changeset.
FLEX-35260 Now we are taking into account paddingTop and paddingBottom in getHeaderIndexAt(). Unit test updated as well (and passes, including a second data grid configuration).

  1. … 1 more file in changeset.
FLEX-35260 Now the unit test passes, having been updated to check the column header view boundaries. Other changes: -Now we're ignoring the grid header's right padding, because it doesn't make a visual difference (except in the edge case where, together with the left and right padding, the column widths are wider than the grid's width, in which case the grid header expands beyond the grid limits), but we are starting to take into account bottom and top padding. -Renamed some variables and functions for clarity in GridColumnHeaderView and GridDimensions. -Improved error messages in the unit test

  1. … 1 more file in changeset.
FLEX-35260 GridHeaderViewLayout.getHeaderIndexAt() (which calls GridDimensions.getColumnIndexAt()) used to return a valid headerIndex (when it was expected to return -1) for an y < 0. Fixed.

FLEX-35260 GridHeaderViewLayout.getHeaderIndexAt() (which calls GridDimensions.getColumnIndexAt()) used to return a valid headerIndex (when it was expected to return -1) for an x < 0. Fixed.

FLEX-35267 FLEX-35260 FLEX-35029 1. GridHeaderViewLayout.getHeaderIndexAt() now verifies if the coordinates are over the GridColumnHeaderView's left or right padding. 2. Renamed GridColumnHeaderGroup.mouseEventHeaderView() to getHeaderViewUnderGlobalCoordinates(), while also changing the parameter to be a Point instead of a MouseEvent. This is so that areCoordinatesOverAHeaderView(), areCoordinatesOverLeftPadding() and areCoordinatesOverRightPadding() can use it too. 3. Expanded some variable names in GridColumnHeaderGroup.

Fix regression issue. Turns out LabelUtil.itemToLabel has side effects and text was not updated on control unless called

FLEX-34880 Added an asdoc recommendation that developers use Sort and SortField as immutable objects, although the current API allows for mutability.

  1. … 2 more files in changeset.
Revert FLEX-34880 part 3

This reverts commit 2b09e327281211d26d65dd5d061b02d645cbdd39.

  1. … 8 more files in changeset.
Revert FLEX-34880 part 1 This reverts commit 0b5a634dabb00c04a492a08375e29c6885c1486f.

  1. … 9 more files in changeset.
FLEX-34738 Fix BusyIndicator so the skin / timer is removed when it's removed from stage while still spinning.

    • -4
    • +17
  1. … 1 more file in changeset.
FLEX-34880 Placed the other ISortField setters behind mx_internal and removed them from the interface.

  1. … 9 more files in changeset.
FLEX-34880 Placed only one state setter (SortField.compareFunction) behind mx_internal (thus also renaming it to SortField.compareFunction_) to provide the template for the others. Also removed it from the interface (ISortField).

  1. … 8 more files in changeset.
FLEX-35126 Removing unused variables, making elligible functions static, correcting an asdoc typo, and removing superfluous multiplication by 1.

  1. … 3 more files in changeset.
FLEX-34088 The fix for this bug became superfluous when the fix for FLEX-34078 was implemented, which also catered to this bug. So it can be safely removed (and should, because it causes other bugs - see the ticket).

FLEX-34088 Added unit test to reproduce the bug. Currently it passes, but I tested locally with some modifications to DropDownController and can certify it does indeed fail when it should - namely, when both the fix for FLEX-34088 and FLEX-34078 are removed. In other words, the fix for FLEX-34078 also fixes this issue, making the current fix superfluous. I'll remove it in the next commit.

  1. … 1 more file in changeset.
FLEX-33311 CAUSE: It is possible for a call to ConstraintLayout.parseElementConstraints() to trigger, after a long series of other functions, a validation cycle on the same component whose layout is that ConstraintLayout instance. (If you want to see that series of stack traces, open stack.xml on the Jira ticket.) When this happens, either ConstraintLayout.measure() or ConstraintLayout.updateDisplayList() ends up calling clearConstraintCache(). (This is expected behaviour when there's no convoluted stack trace which ends up re-validating the same component, as we have here.) Now, when this inner validation cycle ends, and the outer call to parseConstraints() continues execution, it does so with all the cache variables nulled. This can result in a fatal if there is still a layout element remaining in parseConstraints() to parse via parseElementConstraints(). The latter function needs the cache Vector "rowBaselines", which is now null.


To cater for the special case when the call to parseConstraints() triggers another call to the same function, on the same ConstraintLayout instance, we use a counter to know when we're back in the outer call (when the counter is 0).


-The unit test now passes.

-Also removed an unused local variable.

    • -8
    • +18
FLEX-33311 Correcting some typos in the asdoc.

FLEX-35082: Changed the way regex was being used to compare the given pattern for dataProvider objects in the findRowIndex / findRowIndices methods.

FLEX-31948 Removing the fatal by checking whether the column exists. Plus some minor code changes while reading code: simplifying if clauses, removing superfluous brackets, adding semicolons.

  1. … 3 more files in changeset.
FLEX-26808 Added unit tests to make sure that the selection (made either programmatically or through ctrl-clicking on the grid) is preserved when the user starts dragging the items. The tests pass locally.

-Also added VectorUtil.toArrayObject() to convert a Vector.<Object> to an Array (uses the same private function as VectorUtil.toArrayInt(), so I haven't added unit tests).

-Added a missing semicolon in

  1. … 2 more files in changeset.
FLEX-34926 fixed misplaced [PercentProxy] metatag