Skip to content

Commit c5ca11c

Browse files
committed
Added a SearchNoResultEvent on MaterialSearch component.
1 parent c13cc3c commit c5ca11c

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package gwt.material.design.client.events;
2+
3+
/*
4+
* #%L
5+
* GwtMaterial
6+
* %%
7+
* Copyright (C) 2015 GwtMaterialDesign
8+
* %%
9+
* Licensed under the Apache License, Version 2.0 (the "License");
10+
* you may not use this file except in compliance with the License.
11+
* You may obtain a copy of the License at
12+
*
13+
* http://www.apache.org/licenses/LICENSE-2.0
14+
*
15+
* Unless required by applicable law or agreed to in writing, software
16+
* distributed under the License is distributed on an "AS IS" BASIS,
17+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
* See the License for the specific language governing permissions and
19+
* limitations under the License.
20+
* #L%
21+
*/
22+
23+
24+
import com.google.gwt.event.shared.EventHandler;
25+
import com.google.gwt.event.shared.GwtEvent;
26+
import com.google.gwt.event.shared.HasHandlers;
27+
import gwt.material.design.client.events.SearchNoResultEvent.SearchNoResultHandler;
28+
29+
public class SearchNoResultEvent extends GwtEvent<SearchNoResultHandler> {
30+
31+
public interface SearchNoResultHandler extends EventHandler {
32+
void onSearchNoResult(SearchNoResultEvent event);
33+
}
34+
35+
public static final Type<SearchNoResultHandler> TYPE = new Type<>();
36+
37+
public static void fire(HasHandlers source) {
38+
source.fireEvent(new SearchNoResultEvent());
39+
}
40+
41+
@Override
42+
public Type<SearchNoResultHandler> getAssociatedType() {
43+
return TYPE;
44+
}
45+
46+
@Override
47+
protected void dispatch(SearchNoResultHandler handler) {
48+
handler.onSearchNoResult(this);
49+
}
50+
}

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSearch.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import gwt.material.design.client.constants.IconType;
3232
import gwt.material.design.client.constants.InputType;
3333
import gwt.material.design.client.events.SearchFinishEvent;
34+
import gwt.material.design.client.events.SearchNoResultEvent;
3435
import gwt.material.design.client.ui.html.Label;
3536

3637
import java.util.ArrayList;
@@ -169,6 +170,11 @@ public void onClick(ClickEvent event) {
169170
reset(selLink.getText());
170171
}
171172

173+
// Fire an event if theres no search result
174+
if(searchResult.getWidgetCount() == 0){
175+
SearchNoResultEvent.fire(MaterialSearch.this);
176+
}
177+
172178
// Selection logic using key down event to navigate the search results
173179
int totalItems = searchResult.getWidgetCount();
174180
if(event.getNativeEvent().getKeyCode() == KeyCodes.KEY_DOWN){
@@ -195,7 +201,7 @@ public void onClick(ClickEvent event) {
195201

196202
// Resets the search result panel
197203
private void reset(String keyword){
198-
SearchFinishEvent.fire(MaterialSearch.this);
204+
SearchNoResultEvent.fire(MaterialSearch.this);
199205
curSel = -1;
200206
setText(keyword);
201207
searchResult.clear();
@@ -280,6 +286,13 @@ public List<SearchObject> getTempSearches() {
280286
public HandlerRegistration addSearchFinishHandler(SearchFinishEvent.SearchFinishHandler handler) {
281287
return addHandler(handler, SearchFinishEvent.TYPE);
282288
}
289+
290+
/**
291+
* This handler will be triggered when there's no search result
292+
*/
293+
public HandlerRegistration addSearchNoResultHandler(SearchNoResultEvent.SearchNoResultHandler handler) {
294+
return addHandler(handler, SearchNoResultEvent.TYPE);
295+
}
283296
}
284297

285298

0 commit comments

Comments
 (0)