1- /*
1+ /**
22 * Copyright 2019 Philipp Salvisberg <philipp.salvisberg@trivadis.com>
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
1313 * See the License for the specific language governing permissions and
1414 * limitations under the License.
1515 */
16- package org .utplsql .sqldev .ui .runner
16+ package org .utplsql .sqldev .ui .runner ;
1717
18- import java .awt .Color
19- import java .awt .GradientPaint
20- import java .awt .Graphics
21- import java .awt .Graphics2D
22- import java .awt .Insets
23- import javax .swing .JToolBar
24- import javax .swing .UIManager
25- import javax .swing .border .BevelBorder
26- import javax .swing .border .EmptyBorder
18+ import com .google .common .base .Objects ;
19+ import java .awt .Color ;
20+ import java .awt .GradientPaint ;
21+ import java .awt .Graphics ;
22+ import java .awt .Graphics2D ;
23+ import java .awt .Insets ;
24+ import javax .swing .JToolBar ;
25+ import javax .swing .LookAndFeel ;
26+ import javax .swing .UIManager ;
27+ import javax .swing .border .BevelBorder ;
28+ import javax .swing .border .EmptyBorder ;
2729
28- class GradientToolbar extends JToolBar {
29-
30- private def isOracleLookAndFeel () {
31- val laf = UIManager .lookAndFeel ?.name
32- if (laf == "Oracle Look and Feel version 2" ) {
33- return true
34- } else {
35- return false
36- }
37- }
38-
39- new () {
40- super ()
41- if (oracleLookAndFeel ) {
42- this .border = new EmptyBorder (new Insets (2 , 2 , 2 , 2 )) // top, left, bottom, right
43- } else {
44- this .border = new BevelBorder (BevelBorder .RAISED )
45- }
46- }
47-
48- override paintComponent (Graphics g ) {
49- if (oracleLookAndFeel ) {
50- // emulate Oracle toolbar
51- // 1. default for non-opaque components
52- if (!opaque ) {
53- super .paintComponent (g )
54- return
55- }
56-
57- // 2. paint gradient background from top to bottom with separator line at the bottom
58- val g2d = g as Graphics2D
59- val w = width
60- val h = height - 1
61- val int h2 = height / 2
62- val colorTop = new Color (237 , 237 , 237 )
63- val colorMiddle = new Color (244 , 244 , 244 )
64- val colorBottom = new Color (254 , 254 , 254 )
65- val colorBottomLine = Color .LIGHT_GRAY
66- val gp1 = new GradientPaint (0 , 0 , colorTop , 0 , h2 , colorMiddle )
67- g2d .paint = gp1
68- g2d .fillRect (0 , 0 , w , h2 )
69- val gp2 = new GradientPaint (0 , h2 , colorMiddle , 0 , h , colorBottom )
70- g2d .paint = gp2
71- g2d .fillRect (0 , h2 , w , h )
72- g2d .paint = colorBottomLine
73- g2d .fillRect (0 , h , w , h +1 )
74-
75- // 3. do rest, changing opaque to ensure background is not overwritten
76- setOpaque (false )
77- super .paintComponent (g )
78- setOpaque (true )
79- } else {
80- // default logic
81- super .paintComponent (g )
82- }
83- }
84-
85- }
30+ @ SuppressWarnings ("all" )
31+ public class GradientToolbar extends JToolBar {
32+ private boolean isOracleLookAndFeel () {
33+ LookAndFeel _lookAndFeel = UIManager .getLookAndFeel ();
34+ String _name = null ;
35+ if (_lookAndFeel !=null ) {
36+ _name =_lookAndFeel .getName ();
37+ }
38+ final String laf = _name ;
39+ boolean _equals = Objects .equal (laf , "Oracle Look and Feel version 2" );
40+ if (_equals ) {
41+ return true ;
42+ } else {
43+ return false ;
44+ }
45+ }
46+
47+ public GradientToolbar () {
48+ super ();
49+ boolean _isOracleLookAndFeel = this .isOracleLookAndFeel ();
50+ if (_isOracleLookAndFeel ) {
51+ Insets _insets = new Insets (2 , 2 , 2 , 2 );
52+ EmptyBorder _emptyBorder = new EmptyBorder (_insets );
53+ this .setBorder (_emptyBorder );
54+ } else {
55+ BevelBorder _bevelBorder = new BevelBorder (BevelBorder .RAISED );
56+ this .setBorder (_bevelBorder );
57+ }
58+ }
59+
60+ @ Override
61+ public void paintComponent (final Graphics g ) {
62+ boolean _isOracleLookAndFeel = this .isOracleLookAndFeel ();
63+ if (_isOracleLookAndFeel ) {
64+ boolean _isOpaque = this .isOpaque ();
65+ boolean _not = (!_isOpaque );
66+ if (_not ) {
67+ super .paintComponent (g );
68+ return ;
69+ }
70+ final Graphics2D g2d = ((Graphics2D ) g );
71+ final int w = this .getWidth ();
72+ int _height = this .getHeight ();
73+ final int h = (_height - 1 );
74+ int _height_1 = this .getHeight ();
75+ final int h2 = (_height_1 / 2 );
76+ final Color colorTop = new Color (237 , 237 , 237 );
77+ final Color colorMiddle = new Color (244 , 244 , 244 );
78+ final Color colorBottom = new Color (254 , 254 , 254 );
79+ final Color colorBottomLine = Color .LIGHT_GRAY ;
80+ final GradientPaint gp1 = new GradientPaint (0 , 0 , colorTop , 0 , h2 , colorMiddle );
81+ g2d .setPaint (gp1 );
82+ g2d .fillRect (0 , 0 , w , h2 );
83+ final GradientPaint gp2 = new GradientPaint (0 , h2 , colorMiddle , 0 , h , colorBottom );
84+ g2d .setPaint (gp2 );
85+ g2d .fillRect (0 , h2 , w , h );
86+ g2d .setPaint (colorBottomLine );
87+ g2d .fillRect (0 , h , w , (h + 1 ));
88+ this .setOpaque (false );
89+ super .paintComponent (g );
90+ this .setOpaque (true );
91+ } else {
92+ super .paintComponent (g );
93+ }
94+ }
95+ }
0 commit comments