1 /* 2 * Copyright 2006 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy of 6 * the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16 package com.google.gwt.user.client.ui; 17 18 import java.util.Iterator; 19 20 /** 21 * A widget that implements this interface contains 22 * {@link com.google.gwt.user.client.ui.Widget widgets} and can enumerate them. 23 */ 24 public interface HasWidgets { 25 26 /** 27 * Adds a child widget. 28 * 29 * @param w the widget to be added 30 * @throws UnsupportedOperationException if this method is not supported (most 31 * often this means that a specific overload must be called) 32 */ 33 void add(Widget w); 34 35 /** 36 * Removes all child widgets. 37 */ 38 void clear(); 39 40 /** 41 * Gets an iterator for the contained widgets. This iterator is required to 42 * implement {@link Iterator#remove()}. 43 */ 44 Iterator iterator(); 45 46 /** 47 * Removes a child widget. 48 * 49 * @param w the widget to be removed 50 * @return <code>true</code> if the widget was present 51 */ 52 boolean remove(Widget w); 53 } 54