aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/main/java/com/vaadin/event
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>2017-05-02 18:26:11 +0300
committerHenri Sara <henri.sara@gmail.com>2017-05-02 18:26:11 +0300
commitbb43a537e05d9d60ef82f1acac41cea6343c8cbb (patch)
tree12617ba2c0b076dbf33d4aa4399061487616e112 /server/src/main/java/com/vaadin/event
parentd5c7d4b68a2befa3ec874eae8a456614d0333233 (diff)
downloadvaadin-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.java97
-rw-r--r--server/src/main/java/com/vaadin/event/ExpandEvent.java96
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);
+ }
+}