litesoft
@ 950
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.forms.client.components.nonpublic; import org.litesoft.GWT.client.widgets.Button; import org.litesoft.GWT.client.widgets.*; import com.google.gwt.dom.client.*; import com.google.gwt.event.dom.client.*; import com.google.gwt.user.client.ui.*; public class DialogButtonPanel extends HorizontalPanel { private Button[] mButtons; public DialogButtonPanel( ClickHandler pClickHandler, Button... pButtons ) { boolean anyAdded = false; if ( null != (mButtons = pButtons) ) { for ( Button zButton : pButtons ) { if ( zButton != null ) { if ( anyAdded ) { add( new Spacer( 5 ) ); } zButton.addClickHandler( pClickHandler ); add( zButton ); anyAdded = true; } } } if ( !anyAdded ) { throw new IllegalArgumentException( "No Buttons on the DialogButtonPanel" ); } getElement().getStyle().setMarginTop( 2, Style.Unit.PX ); // todo: Warning can mess up Sizeing } public boolean isOurButton( Widget pSender ) { for ( Button zButton : mButtons ) { if ( pSender == zButton ) { return true; } } return false; } private Button buildButton( String[] pButtonTexts, int pIndex, ClickHandler pClickHandler ) { String zText = pButtonTexts[pIndex]; if ( zText == null ) { return null; } DefButtonNamedTypedAbstractTextable zDefButton; if ( pButtonTexts.length == 1 ) { zDefButton = Button.named( "DialogButtonOnly" ).green(); } else if ( (pButtonTexts.length - 1) == pIndex ) { zDefButton = Button.named( "DialogButtonLast" ).green(); } else if ( pIndex == 0 ) { zDefButton = Button.named( "DialogButtonFirst" ).red(); } else { zDefButton = Button.named( "DialogButtonMiddle" ).blue(); } return zDefButton.text( zText ).add( pClickHandler ).create(); } @Override protected void onAttach() { super.onAttach(); sizeAllButtons( mButtons ); } public static void sizeAllButtons( Button[] pButtons ) { boolean zAllSame = true; int zFirstAt = -1; int zMaxWidth = 0; Integer[] zWidths = new Integer[pButtons.length]; for ( int i = 0; i < pButtons.length; i++ ) { Button zButton = pButtons[i]; if ( zButton != null ) { int zWidth = zButton.getOffsetWidth(); if ( zWidth < 1 ) { System.err.println( "************** DialogButtonPanel.sizeAllButtons **************" ); return; } zWidths[i] = zWidth; if ( zAllSame ) { if ( zFirstAt == -1 ) { zFirstAt = i; zMaxWidth = zWidth; } else if ( !(zAllSame = zWidth == zWidths[zFirstAt]) ) { zMaxWidth = Math.max( zMaxWidth, zWidth ); } } } } if ( !zAllSame ) { for ( int i = 0; i < pButtons.length; i++ ) { Integer zWidth = zWidths[i]; if ( (zWidth != null) && (zMaxWidth != zWidth) ) { pButtons[i].setWidth( "" + zMaxWidth ); } } } } } |
Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/forms/client/components/nonpublic/DialogButtonPanel.java
Revision | Author | Commited | Message |
---|---|---|---|
950 Diff | GeorgeS | Thu 19 Jun, 2014 17:57:04 +0000 | New Lines |
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
243 Diff | GeorgeS | Sun 05 Jun, 2011 20:29:12 +0000 | |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
142 Diff | GeorgeS | Sun 13 Mar, 2011 23:01:57 +0000 | |
132 Diff | GeorgeS | Mon 07 Mar, 2011 15:53:42 +0000 | |
105 Diff | GeorgeS | Thu 17 Feb, 2011 20:51:19 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
23 | GeorgeS | Wed 24 Feb, 2010 00:34:32 +0000 |