001// Copyright 2004, 2005 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 015package org.apache.tapestry.components; 016 017/** 018 * Different types of JavaScript events that an {@link ILinkComponent} can provide handlers for. 019 * 020 * @author Howard Lewis Ship 021 * @since 0.2.9 022 */ 023 024public class LinkEventType 025{ 026 private final String _name; 027 028 private final String _attributeName; 029 030 /** 031 * Type for <code>onMouseOver</code>. This may also be called "focus". 032 */ 033 034 public static final LinkEventType MOUSE_OVER = new LinkEventType("MOUSE_OVER", "onMouseOver"); 035 036 /** 037 * Type for <code>onMouseOut</code>. This may also be called "blur". 038 */ 039 040 public static final LinkEventType MOUSE_OUT = new LinkEventType("MOUSE_OUT", "onMouseOut"); 041 042 /** 043 * Type for <code>onClick</code>. 044 * 045 * @since 1.0.1 046 */ 047 048 public static final LinkEventType CLICK = new LinkEventType("CLICK", "onClick"); 049 050 /** 051 * Type for <code>onDblClick</code>. 052 * 053 * @since 1.0.1 054 */ 055 056 public static final LinkEventType DOUBLE_CLICK = new LinkEventType("DOUBLE_CLICK", "onDblClick"); 057 058 /** 059 * Type for <code>onMouseDown</code>. 060 * 061 * @since 1.0.1. 062 */ 063 064 public static final LinkEventType MOUSE_DOWN = new LinkEventType("MOUSE_DOWN", "onMouseDown"); 065 066 /** 067 * Type for <code>onMouseUp</code>. 068 * 069 * @since 1.0.1 070 */ 071 072 public static final LinkEventType MOUSE_UP = new LinkEventType("MOUSE_UP", "onMouseUp"); 073 074 /** 075 * Constructs a new type of event. The name should match the static final variable (i.e., 076 * MOUSE_OVER) and the attributeName is the name of the HTML attribute to be managed (i.e., 077 * "onMouseOver"). 078 * <p> 079 * This method is protected so that subclasses can be created to provide additional managed 080 * event types. 081 */ 082 083 protected LinkEventType(String name, String attributeName) 084 { 085 086 _name = name; 087 _attributeName = attributeName; 088 } 089 090 /** 091 * Returns the name of the HTML attribute corresponding to this type. 092 */ 093 094 public String getAttributeName() 095 { 096 return _attributeName; 097 } 098 099 public String toString() 100 { 101 return "LinkEventType[" + _name + "]"; 102 } 103}