Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/GWT/Client/src/org/litesoft/GWT/client/util/SameSize.java

Diff revisions: vs.
  @@ -1,95 +1,95 @@
1 - package org.litesoft.GWT.client.util;
2 -
3 - import com.google.gwt.user.client.ui.*;
4 -
5 - import java.util.*;
6 -
7 - public class SameSize extends com.google.gwt.user.client.Timer {
8 - public static void these( Collection<Widget> pWidgets ) {
9 - if ( pWidgets != null ) {
10 - these( pWidgets.toArray( new Widget[pWidgets.size()] ) );
11 - }
12 - }
13 -
14 - public static void these( Widget... pWidgets ) {
15 - if ( pWidgets != null ) {
16 - List<Widget> zNonNull = new ArrayList<Widget>( pWidgets.length );
17 - for ( Widget zWidget : pWidgets ) {
18 - if ( zWidget != null ) {
19 - zNonNull.add( zWidget );
20 - }
21 - }
22 - if ( zNonNull.size() > 1 ) {
23 - new SameSize( zNonNull ).run();
24 - }
25 - }
26 - }
27 -
28 - private static final int MAX_INT = Integer.MAX_VALUE / 2;
29 -
30 - private final List<Widget> mWidgets;
31 -
32 - private SameSize( List<Widget> pWidgets ) {
33 - mWidgets = pWidgets;
34 - }
35 -
36 - private int mDelay = 50;
37 - private int mMaxX, mMaxY;
38 - private boolean mAnyResizingNeeded;
39 - private boolean mSizingWorking;
40 -
41 - @Override
42 - public void run() {
43 - mAnyResizingNeeded = false;
44 - mSizingWorking = true;
45 -
46 - Widget zWidget;
47 - for ( int i = 0; i < mWidgets.size(); i++ ) {
48 - if ( null == (zWidget = get( i )) ) {
49 - return;
50 - }
51 - mMaxX = checkSize( mMaxX, zWidget.getOffsetWidth() );
52 - mMaxY = checkSize( mMaxY, zWidget.getOffsetHeight() );
53 - }
54 - if ( mSizingWorking ) {
55 - if ( !mAnyResizingNeeded ) {
56 - return;
57 - }
58 - for ( int i = 0; i < mWidgets.size(); i++ ) {
59 - if ( null == (zWidget = get( i )) ) {
60 - return;
61 - }
62 - if ( mMaxX > zWidget.getOffsetWidth() ) {
63 - zWidget.setWidth( mMaxX + "px" );
64 - }
65 - if ( mMaxY > zWidget.getOffsetHeight() ) {
66 - zWidget.setHeight( mMaxY + "px" );
67 - }
68 - }
69 - }
70 - if ( mDelay < MAX_INT ) {
71 - schedule( mDelay += mDelay ); // Double each time
72 - }
73 - }
74 -
75 - private int checkSize( int pMaxSize, int pOffsetSize ) {
76 - if ( pOffsetSize < 10 ) {
77 - mSizingWorking = false;
78 - return pMaxSize;
79 - }
80 - if ( pMaxSize == 0 ) {
81 - return pOffsetSize;
82 - }
83 - mAnyResizingNeeded |= (pOffsetSize != pMaxSize);
84 - return Math.max( pOffsetSize, pMaxSize );
85 - }
86 -
87 - private Widget get( int pIndex ) {
88 - Widget zWidget = mWidgets.get( pIndex );
89 - if ( zWidget.isAttached() ) {
90 - return zWidget;
91 - }
92 - System.out.println( "Not Attached: " + zWidget );
93 - return null;
94 - }
95 - }
1 + package org.litesoft.GWT.client.util;
2 +
3 + import com.google.gwt.user.client.ui.*;
4 +
5 + import java.util.*;
6 +
7 + public class SameSize extends com.google.gwt.user.client.Timer {
8 + public static void these( Collection<Widget> pWidgets ) {
9 + if ( pWidgets != null ) {
10 + these( pWidgets.toArray( new Widget[pWidgets.size()] ) );
11 + }
12 + }
13 +
14 + public static void these( Widget... pWidgets ) {
15 + if ( pWidgets != null ) {
16 + List<Widget> zNonNull = new ArrayList<Widget>( pWidgets.length );
17 + for ( Widget zWidget : pWidgets ) {
18 + if ( zWidget != null ) {
19 + zNonNull.add( zWidget );
20 + }
21 + }
22 + if ( zNonNull.size() > 1 ) {
23 + new SameSize( zNonNull ).run();
24 + }
25 + }
26 + }
27 +
28 + private static final int MAX_INT = Integer.MAX_VALUE / 2;
29 +
30 + private final List<Widget> mWidgets;
31 +
32 + private SameSize( List<Widget> pWidgets ) {
33 + mWidgets = pWidgets;
34 + }
35 +
36 + private int mDelay = 50;
37 + private int mMaxX, mMaxY;
38 + private boolean mAnyResizingNeeded;
39 + private boolean mSizingWorking;
40 +
41 + @Override
42 + public void run() {
43 + mAnyResizingNeeded = false;
44 + mSizingWorking = true;
45 +
46 + Widget zWidget;
47 + for ( int i = 0; i < mWidgets.size(); i++ ) {
48 + if ( null == (zWidget = get( i )) ) {
49 + return;
50 + }
51 + mMaxX = checkSize( mMaxX, zWidget.getOffsetWidth() );
52 + mMaxY = checkSize( mMaxY, zWidget.getOffsetHeight() );
53 + }
54 + if ( mSizingWorking ) {
55 + if ( !mAnyResizingNeeded ) {
56 + return;
57 + }
58 + for ( int i = 0; i < mWidgets.size(); i++ ) {
59 + if ( null == (zWidget = get( i )) ) {
60 + return;
61 + }
62 + if ( mMaxX > zWidget.getOffsetWidth() ) {
63 + zWidget.setWidth( mMaxX + "px" );
64 + }
65 + if ( mMaxY > zWidget.getOffsetHeight() ) {
66 + zWidget.setHeight( mMaxY + "px" );
67 + }
68 + }
69 + }
70 + if ( mDelay < MAX_INT ) {
71 + schedule( mDelay += mDelay ); // Double each time
72 + }
73 + }
74 +
75 + private int checkSize( int pMaxSize, int pOffsetSize ) {
76 + if ( pOffsetSize < 10 ) {
77 + mSizingWorking = false;
78 + return pMaxSize;
79 + }
80 + if ( pMaxSize == 0 ) {
81 + return pOffsetSize;
82 + }
83 + mAnyResizingNeeded |= (pOffsetSize != pMaxSize);
84 + return Math.max( pOffsetSize, pMaxSize );
85 + }
86 +
87 + private Widget get( int pIndex ) {
88 + Widget zWidget = mWidgets.get( pIndex );
89 + if ( zWidget.isAttached() ) {
90 + return zWidget;
91 + }
92 + System.out.println( "Not Attached: " + zWidget );
93 + return null;
94 + }
95 + }