litesoft
@ 948
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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
/* * Copyright 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.gen2.table.client; import com.google.gwt.gen2.event.dom.client.*; import com.google.gwt.gen2.event.shared.*; import com.google.gwt.user.client.*; import com.google.gwt.user.client.ui.*; /** * All top-level incubator widgets should extend {@link Gen2TableWidget}. * {@link Gen2TableWidget} will include all the extra handler and styling support * needed by gen2 widgets. * * @deprecated gen2Widget's functionality has been subsumed by the 1.6 Widget * functionality */ @Deprecated public abstract class Gen2TableWidget extends Widget implements HasHandlerManager { private HandlerManager handlerManager; /** * Returns this widget's {@link HandlerManager} used for event management. * * @return the handler manager */ @Override public final HandlerManager getHandlerManager() { if ( handlerManager == null ) { handlerManager = createLegacyHandlerManager(); } return handlerManager; } @Override public void onBrowserEvent( Event nativeEvent ) { super.onBrowserEvent( nativeEvent ); if ( handlerManager != null ) { DomEvent.fireNativeEvent( nativeEvent, handlerManager ); } } @Override public void setStyleName( String name ) { setStylePrimaryName( name ); } // This code can probably not be compiled out, but this toString is // sufficiently more useful the cost seems worth it. @Override public String toString() { String accum = this.getStylePrimaryName() + " widget"; String id = this.getElement().getId(); if ( id != null && id.trim().length() > 0 ) { accum += "id " + id; } return accum; } /** * Adds a native event handler to the widget and sinks the corresponding * native event. If you do not wish to sink the native event, use the * addHandler method instead. * * @param <HandlerType> the type of handler to add * @param key the event key * @param handler the handler * * @return {@link HandlerRegistration} used to remove the handler */ protected <HandlerType extends EventHandler> HandlerRegistration addDomHandler( DomEvent.Type<?, HandlerType> key, final HandlerType handler ) { sinkEvents( key.getNativeEventType() ); return addHandler( key, handler ); } /** * Adds a handler. * * @param <HandlerType> the type of handler to add * @param type the event type * @param handler the handler * * @return {@link HandlerRegistration} used to remove the handler */ protected <HandlerType extends EventHandler> HandlerRegistration addHandler( AbstractEvent.Type<?, HandlerType> type, final HandlerType handler ) { return getHandlerManager().addHandler( type, handler ); } /** * <p> * Creates the {@link HandlerManager} used by this widget for event * management. * </p> * <p> * Note that {@link Gen2TableWidget} is deprecated and should not be used. The * HandlerManager has been moved to GWT trunk and included in {@link Widget}, * so Gen2TableWidget contains both the deprecated {@link HandlerManager} and the * non-deprecated {@link com.google.gwt.event.shared.HandlerManager}. * </p> * * @return the handler manager * * @see #createHandlerManager() */ protected HandlerManager createLegacyHandlerManager() { return new HandlerManager( this ); } /** * Fires an event. * * @param event the event */ protected void fireEvent( AbstractEvent event ) { if ( handlerManager != null ) { handlerManager.fireEvent( event ); } } /** * Is the event handled by one or more handlers? * * @param type event type * * @return does this event type have a current handler */ protected final boolean isEventHandled( AbstractEvent.Type type ) { return handlerManager == null ? false : handlerManager.isEventHandled( type ); } /** * Removes the given handler from the specified event type. Normally, * applications should call {@link HandlerRegistration#removeHandler()} * instead. * * @param <HandlerType> handler type * @param type the event type * @param handler the handler */ protected <HandlerType extends EventHandler> void removeHandler( AbstractEvent.Type<?, HandlerType> type, final HandlerType handler ) { if ( handlerManager == null ) { handlerManager = new HandlerManager( this ); } handlerManager.removeHandler( type, handler ); } } |