001/* 002 * #%L 003 * GwtMaterial 004 * %% 005 * Copyright (C) 2015 - 2017 GwtMaterialDesign 006 * %% 007 * Licensed under the Apache License, Version 2.0 (the "License"); 008 * you may not use this file except in compliance with the License. 009 * You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 * #L% 019 */ 020package gwt.material.design.client.data; 021 022import com.google.gwt.event.shared.HandlerRegistration; 023import gwt.material.design.client.data.events.CategoryClosedHandler; 024import gwt.material.design.client.data.events.CategoryOpenedHandler; 025import gwt.material.design.client.data.events.ColumnSortHandler; 026import gwt.material.design.client.data.events.ComponentsRenderedHandler; 027import gwt.material.design.client.data.events.RenderedHandler; 028import gwt.material.design.client.data.events.RowCollapsedHandler; 029import gwt.material.design.client.data.events.RowCollapsingHandler; 030import gwt.material.design.client.data.events.RowContextMenuHandler; 031import gwt.material.design.client.data.events.RowDoubleClickHandler; 032import gwt.material.design.client.data.events.RowExpandedHandler; 033import gwt.material.design.client.data.events.RowExpandingHandler; 034import gwt.material.design.client.data.events.RowLongPressHandler; 035import gwt.material.design.client.data.events.RowSelectHandler; 036import gwt.material.design.client.data.events.RowShortPressHandler; 037import gwt.material.design.client.data.events.SelectAllHandler; 038 039import java.util.List; 040 041/** 042 * @author Ben Dol 043 */ 044public interface EventHandlers<T> { 045 046 /** 047 * Add a handler that is triggered when select all rows is executed. 048 */ 049 HandlerRegistration addSelectAllHandler(SelectAllHandler<T> handler); 050 051 /** 052 * Adda a handler that is triggered when a row is selected. 053 */ 054 HandlerRegistration addRowSelectHandler(RowSelectHandler<T> handler); 055 056 /** 057 * Add a handler that triggers when a row is expanding. 058 */ 059 HandlerRegistration addRowExpandingHandler(RowExpandingHandler<T> handler); 060 061 /** 062 * Add a handler that triggers when a row has expanded. 063 */ 064 HandlerRegistration addRowExpandedHandler(RowExpandedHandler<T> handler); 065 066 /** 067 * Add a handler that triggers when a row is collapsing. 068 */ 069 HandlerRegistration addRowCollapseHandler(RowCollapsingHandler<T> handler); 070 071 /** 072 * Add a handler that triggers when a row has collapsed. 073 */ 074 HandlerRegistration addRowCollapsedHandler(RowCollapsedHandler<T> handler); 075 076 /** 077 * Add a handler that triggers when a row is right clicked. 078 */ 079 HandlerRegistration addRowContextMenuHandler(RowContextMenuHandler<T> handler); 080 081 /** 082 * Add a handler that triggers when a row is double clicked. 083 */ 084 HandlerRegistration addRowDoubleClickHandler(RowDoubleClickHandler<T> handler); 085 086 /** 087 * Add a handler that triggers when a row is long pressed. 088 */ 089 HandlerRegistration addRowLongPressHandler(RowLongPressHandler<T> handler); 090 091 /** 092 * Add a handler that triggers when a row is short pressed. 093 */ 094 HandlerRegistration addRowShortPressHandler(RowShortPressHandler<T> handler); 095 096 /** 097 * Add a handler that triggers when a column is sorted. 098 */ 099 HandlerRegistration addColumnSortHandler(ColumnSortHandler<T> handler); 100 101 /** 102 * Add a handler that triggers when a category is opened. 103 */ 104 HandlerRegistration addCategoryOpenedHandler(CategoryOpenedHandler handler); 105 106 /** 107 * Add a handler that triggers when a category is closed. 108 */ 109 HandlerRegistration addCategoryClosedHandler(CategoryClosedHandler handler); 110 111 /** 112 * Add a handler that triggers when all the components have rendered, 113 * this can fire multiple times depending on the table settings.<br><br> 114 * Also see {@link #addRenderedHandler(RenderedHandler)}. 115 */ 116 HandlerRegistration addComponentsRenderedHandler(ComponentsRenderedHandler handler); 117 118 /** 119 * Add a handler that triggers when all the row data has rendered after calling 120 * {@link gwt.material.design.client.data.AbstractDataView#setRowData(int, List)}.<br> 121 * This will only fire once per call even if the data is re-rendered in the cases of sorting, etc. 122 */ 123 HandlerRegistration addRenderedHandler(RenderedHandler handler); 124}