litesoft
@ 947
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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.client.widgets.nonpublic; import org.litesoft.commonfoundation.typeutils.*; import java.util.*; import com.google.gwt.user.client.*; import com.google.gwt.user.client.ui.*; public abstract class AbstractSizeableComplexPanel extends AbstractSizeablePanel { private WidgetCollection mChildren = new WidgetCollection( this ); /** * Gets the list of children contained in this panel. * * @return a collection of child widgets */ protected WidgetCollection getChildren() { return mChildren; } protected Widget getWidget( int index ) { return getChildren().get( index ); } protected int getWidgetCount() { return getChildren().size(); } protected int getWidgetIndex( Widget child ) { return getChildren().indexOf( child ); } @Override public boolean anyChildren() { return (mChildren.size() != 0); } @SuppressWarnings({"unchecked"}) @Override public Iterator iterator() { return mChildren.iterator(); } @Override public boolean remove( Widget w ) { // Make sure this panel actually contains the child widget. if ( !mChildren.contains( w ) ) { return false; } // Disown it. disown( w ); mChildren.remove( w ); return true; } /** * Adds a new child widget to the panel. * * @param w the child widget to be added * @param container the element within which the child will be contained */ protected void add( Widget w, Element container ) { insert( w, container, mChildren.size() ); } /** * Inserts a new child widget into the panel. * * @param child the child widget to be added * @param container the element within which the child will be contained * @param beforeIndex the index before which the widget will be added */ protected void insert( Widget child, Element container, int beforeIndex ) { beforeIndex = adjustIndexIfChildInteracts( beforeIndex, child ); adopt( child, container ); mChildren.insert( child, beforeIndex ); } protected int adjustIndexIfChildInteracts( int pBeforeIndex, Widget pChild ) { validateInsertionIndex( pBeforeIndex ); if ( (pChild.getParent() == this) && (getWidgetIndex( pChild ) < pBeforeIndex) ) { return pBeforeIndex - 1; } return pBeforeIndex; } protected void validateReadIndex( int pIndex ) { Integers.validateIndex( pIndex, getWidgetCount(), false ); } protected void validateInsertionIndex( int pIndex ) { Integers.validateIndex( pIndex, getWidgetCount(), true ); } } |
Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/client/widgets/nonpublic/AbstractSizeableComplexPanel.java
Revision | Author | Commited | Message |
---|---|---|---|
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
819 Diff | GeorgeS | Sat 18 Aug, 2012 18:09:40 +0000 | |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
23 Diff | GeorgeS | Wed 24 Feb, 2010 00:34:32 +0000 | |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |