> In this fix, the common code required for scaled border rendering is unified 
> and added to SwingUtilities3. This is achieved by adding a functional 
> interface to SwingUtilities3 and calling the the respective paintBorder 
> function passed as parameter to method.  
> 
> Following are the usual steps for any border scaling -
> 
> - Resetting transform.
> - Calculating new width, height, x & y-translations.
> - Perform the required border rendering.
> - And at the end restore the previous transform.
> 
> To test the refactored code, 3 separate border scaling instances were taken 
> (details below) and the SwingUtilities3.paintBorder, (containing the common 
> functionality) was applied. All the tests associated with the respective 
> border changes pass.
> 
> 1. EtchedBorder - [PR#7449](https://github.com/openjdk/jdk/pull/7449) - Test: 
> ScaledEtchedBorderTest.java
> 2. LineBorder - [PR#10681](https://github.com/openjdk/jdk/pull/10681) - Test: 
> ScaledLineBorderTest & ScaledTextFieldBorderTest.java
> 3. JInternalFrame Border - 
> [PR#10274](https://github.com/openjdk/jdk/pull/10274) - Test: 
> InternalFrameBorderTest.java
> 
> The advantage of this solution is - it avoids code repetition and can be 
> reused across all the border classes requiring border scaling fix.

Harshitha Onkar has updated the pull request incrementally with one additional 
commit since the last revision:

  review changes

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/11571/files
  - new: https://git.openjdk.org/jdk/pull/11571/files/19665a61..103ca437

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11571&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11571&range=00-01

  Stats: 12 lines in 2 files changed: 3 ins; 5 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/11571.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11571/head:pull/11571

PR: https://git.openjdk.org/jdk/pull/11571

Reply via email to