/*
* Licensed to the Apache Software Foundation ( ASF ) under one
* or more contributor license agreements . See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership . The ASF licenses this file
* to you 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 org.netbeans.modules.form;
import java.util.*;
import java.beans.EventSetDescriptor;
import java.lang.reflect.Method;
/**
* Represents one event of a component . Holds handlers attached to the event .
*
* @ author Tomas Pavek
*/
public class Event {
private static String[] NO_HANDLERS = {};
private RADComponent component;
private EventSetDescriptor eventSetDescriptor;
private Method listenerMethod;
private boolean inCEDL; // CEDL - common event dispatching listener
private List<String> eventHandlers;
Event(RADComponent component,
EventSetDescriptor eventSetDescriptor,
Method listenerMethod)
{
this .component = component;
this .eventSetDescriptor = eventSetDescriptor;
this .listenerMethod = listenerMethod;
}
// --------
public String getName() {
return listenerMethod.getName();
}
public String getId() {
return FormEvents.getEventIdName(listenerMethod);
}
public final RADComponent getComponent() {
return component;
}
public final EventSetDescriptor getEventSetDescriptor() {
return eventSetDescriptor;
}
public final Method getListenerMethod() {
return listenerMethod;
}
public final String getEventParameterType() {
Class [] paramTypes = listenerMethod != null ? listenerMethod.getParameterTypes() : null ;
if (paramTypes != null && paramTypes.length == 1 ) {
return paramTypes[0 ].getCanonicalName();
}
return null ;
}
public boolean hasEventHandlers() {
return eventHandlers != null && eventHandlers.size() > 0 ;
}
public boolean hasEventHandler(String handler) {
return eventHandlers != null ? eventHandlers.contains(handler) : false ;
}
public String[] getEventHandlers() {
if (eventHandlers == null || eventHandlers.isEmpty())
return NO_HANDLERS;
String[] handlerNames = new String[eventHandlers.size()];
eventHandlers.toArray(handlerNames);
return handlerNames;
}
// CEDL - common event dispatching listener
public final boolean isInCEDL() {
return inCEDL;
}
// --------
void setInCEDL(boolean isIn) {
inCEDL = isIn;
}
boolean addEventHandler(String handlerName) {
if (eventHandlers == null )
eventHandlers = new ArrayList<String>(1 );
else if (eventHandlers.contains(handlerName))
return false ;
eventHandlers.add(handlerName);
return true ;
}
boolean removeEventHandler(String handlerName) {
return eventHandlers != null && eventHandlers.remove(handlerName);
}
boolean renameEventHandler(String oldHandlerName, String newHandlerName) {
if (eventHandlers == null )
return false ;
int index = eventHandlers.indexOf(oldHandlerName);
if (index < 0 || eventHandlers.contains(newHandlerName))
return false ;
eventHandlers.set(index, newHandlerName);
return true ;
}
List getEventHandlerList() {
return eventHandlers;
}
}
Messung V0.5 in Prozent C=92 H=85 G=88
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland