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 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.client.widgets.nonpublic; import com.google.gwt.user.client.*; import com.google.gwt.user.client.ui.*; public abstract class AbstractLowLevelSizeableComposite extends AbstractSizeableWidget implements WidgetCompositor { private Widget mWidget; @Override public Element getElement() { if ( mWidget == null ) { throw new IllegalStateException( "initWidget() was never called in " + getClass().getName() ); } return super.getElement(); } @Override public Widget[] getCompositedWidgets() { return new Widget[]{mWidget}; } /** * Sets the widget to be wrapped by the composite. The wrapped widget must be * set before calling any {@link Widget} methods on this object, or adding it * to a panel. This method may only be called once for a given composite. * * @param pWidget the widget to be wrapped */ protected void LLinitWidget( Widget pWidget ) { // Make sure the widget is not being set twice. if ( mWidget != null ) { throw new IllegalStateException( "Composite.initWidget() may only be called once." ); } pWidget.removeFromParent(); // Use the contained widget's element as the composite's element, // effectively merging them within the DOM. setElement( pWidget.getElement() ); //noinspection NonJREEmulationClassesInClientCode BackDoorToWidget.setParent( mWidget = pWidget, this ); // The Composite now owns this widget. initialize(); } @Override protected void onAttach() { super.onAttach(); //noinspection NonJREEmulationClassesInClientCode BackDoorToWidget.onAttach( mWidget ); // Call onAttach() on behalf of the contained widget. } @Override protected void onDetach() { super.onDetach(); //noinspection NonJREEmulationClassesInClientCode BackDoorToWidget.onDetach( mWidget ); // Call onDetach() on behalf of the contained widget. } public Widget LLgetWidget() { return mWidget; } } |