001 // Copyright May 21, 2006 The Apache Software Foundation
002 //
003 // Licensed under the Apache License, Version 2.0 (the "License");
004 // you may not use this file except in compliance with the License.
005 // You may obtain a copy of the License at
006 //
007 // http://www.apache.org/licenses/LICENSE-2.0
008 //
009 // Unless required by applicable law or agreed to in writing, software
010 // distributed under the License is distributed on an "AS IS" BASIS,
011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 // See the License for the specific language governing permissions and
013 // limitations under the License.
014 package org.apache.tapestry.event;
015
016 import java.util.Map;
017
018 import org.apache.commons.lang.builder.ToStringBuilder;
019 import org.apache.commons.lang.builder.ToStringStyle;
020
021
022 /**
023 * Represents a browser generated event "target". Most browser events will
024 * have an event.target property, which is what this represents.
025 *
026 * @author jkuhnert
027 */
028 public class EventTarget
029 {
030 private final Map _properties;
031
032 /**
033 * Creates a new target with an immutable set
034 * of properties.
035 *
036 * @param properties The properties of the target.
037 */
038 public EventTarget(Map properties)
039 {
040 _properties = properties;
041 }
042
043 /**
044 * Gets a target object property. (Could be things like "id"
045 * for html dom nodes, etc..)
046 * @param key The key of the property.
047 * @return The property value, or null if it doesn't exist.
048 */
049 public Object get(String key)
050 {
051 return _properties.get(key);
052 }
053
054 public String toString()
055 {
056 return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
057 .append("properties", _properties)
058 .toString();
059 }
060 }