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 | |
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')
-rw-r--r-- | server/src/main/java/com/vaadin/event/CollapseEvent.java | 97 | ||||
-rw-r--r-- | server/src/main/java/com/vaadin/event/ExpandEvent.java | 96 |
2 files changed, 193 insertions, 0 deletions
diff --git a/server/src/main/java/com/vaadin/event/CollapseEvent.java b/server/src/main/java/com/vaadin/event/CollapseEvent.java new file mode 100644 index 0000000000..ba740142e3 --- /dev/null +++ b/server/src/main/java/com/vaadin/event/CollapseEvent.java @@ -0,0 +1,97 @@ +/* + * 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 collapsed. Note that expanded subtrees + * of the collapsed item will not trigger collapse events. + * + * @author Vaadin Ltd + * @since 8.1 + * @param <T> + * collapsed item type + */ +public class CollapseEvent<T> extends Component.Event { + + private final T collapsedItem; + + private final boolean userOriginated; + + /** + * Construct a collapse event. + * + * @param source + * the hierarchical this event originated from + * @param collapsedItem + * the item that was collapsed + * @param userOriginated + * whether the collapse was triggered by a user interaction or + * the server + */ + public CollapseEvent(Component source, T collapsedItem, + boolean userOriginated) { + super(source); + this.collapsedItem = collapsedItem; + this.userOriginated = userOriginated; + } + + /** + * Get the collapsed item that triggered this event. + * + * @return the collapsed item + */ + public T getCollapsedItem() { + return collapsedItem; + } + + /** + * 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 collapse event listener. + * + * @param <T> + * the collapsed item's type + */ + @FunctionalInterface + public interface CollapseListener<T> extends Serializable { + + public static final Method COLLAPSE_METHOD = ReflectTools.findMethod( + CollapseListener.class, "itemCollapse", CollapseEvent.class); + + /** + * Callback method for when an item has been collapsed. + * + * @param event + * the collapse event + */ + public void itemCollapse(CollapseEvent<T> event); + } +} 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); + } +} |