diff options
author | Teemu Suo-Anttila <tsuoanttila@users.noreply.github.com> | 2017-05-02 18:26:11 +0300 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-05-02 18:26:11 +0300 |
commit | bb43a537e05d9d60ef82f1acac41cea6343c8cbb (patch) | |
tree | 12617ba2c0b076dbf33d4aa4399061487616e112 /server/src/main/java/com/vaadin/event/ExpandEvent.java | |
parent | d5c7d4b68a2befa3ec874eae8a456614d0333233 (diff) | |
download | vaadin-framework-bb43a537e05d9d60ef82f1acac41cea6343c8cbb.tar.gz vaadin-framework-bb43a537e05d9d60ef82f1acac41cea6343c8cbb.zip |
Add an initial version of Tree component (#9212)
This patch introduces a Tree component, implemented as a Composite
using TreeGrid. As initial version of the component, some functionality
of the old Tree component has been left out for now.
Partly addresses #8617
Diffstat (limited to 'server/src/main/java/com/vaadin/event/ExpandEvent.java')
-rw-r--r-- | server/src/main/java/com/vaadin/event/ExpandEvent.java | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/server/src/main/java/com/vaadin/event/ExpandEvent.java b/server/src/main/java/com/vaadin/event/ExpandEvent.java new file mode 100644 index 0000000000..775c368a12 --- /dev/null +++ b/server/src/main/java/com/vaadin/event/ExpandEvent.java @@ -0,0 +1,96 @@ +/* + * Copyright 2000-2016 Vaadin Ltd. + * + * 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.vaadin.event; + +import java.io.Serializable; +import java.lang.reflect.Method; + +import com.vaadin.ui.Component; +import com.vaadin.util.ReflectTools; + +/** + * An event that is fired when an item is expanded. + * + * @author Vaadin Ltd + * @since 8.1 + * @param <T> + * the expanded item's type + */ +public class ExpandEvent<T> extends Component.Event { + + private final T expandedItem; + + private final boolean userOriginated; + + /** + * Construct an expand event. + * + * @param source + * the hierarchical component this event originated from + * @param expandedItem + * the item that was expanded + * @param userOriginated + * whether the expand was triggered by a user interaction or the + * server + */ + public ExpandEvent(Component source, T expandedItem, + boolean userOriginated) { + super(source); + this.expandedItem = expandedItem; + this.userOriginated = userOriginated; + } + + /** + * Get the expanded item that triggered this event. + * + * @return the expanded item + */ + public T getExpandedItem() { + return expandedItem; + } + + /** + * Returns whether this event was triggered by user interaction, on the + * client side, or programmatically, on the server side. + * + * @return {@code true} if this event originates from the client, + * {@code false} otherwise. + */ + public boolean isUserOriginated() { + return userOriginated; + } + + /** + * Item expand event listener. + * + * @param <T> + * the expanded item's type + */ + @FunctionalInterface + public interface ExpandListener<T> extends Serializable { + + public static final Method EXPAND_METHOD = ReflectTools.findMethod( + ExpandListener.class, "itemExpand", ExpandEvent.class); + + /** + * Callback method for when an item has been expanded. + * + * @param event + * the expand event + */ + public void itemExpand(ExpandEvent<T> event); + } +} |