@@ -10,12 +10,14 @@ import java.awt.Insets
1010import java.awt.GridBagConstraints
1111import java.awt.Dimension
1212import java.awt.GridBagLayout
13+ import java.awt.Point
1314
1415// import javax.swing.*
1516import javax.swing.border.EmptyBorder
1617import javax.swing.border.LineBorder
1718import javax.swing.border.CompoundBorder
1819import javax.swing.SwingUtilities as SU
20+ import javax.swing.JPanel
1921
2022import groovy.swing.SwingBuilder
2123
@@ -30,6 +32,7 @@ class ToM_ui{
3032 static final int maxContentPaneHeigth = 50000
3133 static final String myPaneName = ' myContentPanel'
3234 static final String myButtonPanelName = ' aButtonPane'
35+ static final String myNextPanelName = ' nextPane'
3336
3437 static SwingBuilder swing = new SwingBuilder ()
3538
@@ -113,11 +116,14 @@ class ToM_ui{
113116 }
114117
115118
116- def static adjustHeight (comp ){
119+ def static adjustHeight (comp , boolean backToTop = false ){
120+ if (backToTop) scrollContentPaneBackToTop(comp)
117121 TabPane . repaint()
118122 def timer = new Timer ()
119123 timer. runAfter(1000 ) {
120124 resizeContentPanel(comp, comp. height + 200 )
125+ if (backToTop) scrollContentPaneBackToTop(comp)
126+ // TabPane.revalidate() <--- no funciona
121127 TabPane . repaint()
122128 }
123129 }
@@ -212,7 +218,7 @@ class ToM_ui{
212218 def static getNextButtonPanel (tabName , closeLabel , closeToolTip , nextLabel , nextToolTip , nextButtonAction ){
213219 def panel = swing. panel(
214220 border : new LineBorder (Color . gray, 1 ),
215- name : myButtonPanelName ,
221+ name : myNextPanelName ,
216222 ) {
217223 borderLayout()
218224 panel(
@@ -242,4 +248,34 @@ class ToM_ui{
242248 }
243249
244250
251+ def static getNextButtonPanel (myP ){
252+ return myP. components. find{it. name == myNextPanelName}
253+ }
254+
255+ def static setNextPagePanelEnabled (JPanel myP , boolean isEnabled ){
256+ setPanelEnabled(getNextButtonPanel(myP), isEnabled)
257+ }
258+
259+ def static setPanelEnabled (JPanel panel , boolean isEnabled ) {
260+ panel. setEnabled(isEnabled)
261+
262+ panel. components. each{ comp ->
263+ if (comp instanceof JPanel ) {
264+ setPanelEnabled(comp, isEnabled)
265+ }
266+ comp. setEnabled(isEnabled)
267+ }
268+ }
269+
270+ def static anyCompPending (myP ){
271+ return myP. components. any{it. hasProperty(' pending' ) && it. pending}
272+ }
273+ // scrollPane
274+ def static getScrollPaneViewport (comp ){
275+ return SU . getAncestorOfClass(javax.swing.JViewport , comp)
276+ }
277+
278+ def static scrollContentPaneBackToTop (comp ){
279+ getScrollPaneViewport(comp). setViewPosition(new Point (0 ,0 ))
280+ }
245281}
0 commit comments