Java tutorial
/******************************************************************************* * Copyright 2013 Ednovo d/b/a Gooru. All rights reserved. * * http://www.goorulearning.org/ * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ******************************************************************************/ package org.ednovo.gooru.application.client.home; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.ednovo.gooru.application.client.PlaceTokens; import org.ednovo.gooru.application.client.gin.AppClientFactory; import org.ednovo.gooru.application.client.gin.BaseViewWithHandlers; import org.ednovo.gooru.application.shared.i18n.MessageProperties; import org.ednovo.gooru.application.shared.model.content.ClasspageListDo; import org.ednovo.gooru.application.shared.model.library.JSONStandardsDo; import org.ednovo.gooru.application.shared.model.library.LibraryUserDo; import org.ednovo.gooru.application.shared.model.library.SubjectDo; import org.ednovo.gooru.application.shared.model.search.AutoSuggestKeywordSearchDo; import org.ednovo.gooru.application.shared.model.search.SearchDo; import org.ednovo.gooru.application.shared.model.user.UserDo; import org.ednovo.gooru.client.SearchAsyncCallback; import org.ednovo.gooru.client.SimpleAsyncCallback; import org.ednovo.gooru.client.SimpleRunAsyncCallback; import org.ednovo.gooru.client.mvp.faq.CopyRightPolicyVc; import org.ednovo.gooru.client.mvp.faq.TermsAndPolicyVc; import org.ednovo.gooru.client.mvp.faq.TermsOfUse; import org.ednovo.gooru.client.mvp.home.HeaderUc; import org.ednovo.gooru.client.mvp.home.ResetPasswordVc; import org.ednovo.gooru.client.mvp.home.SampleReportView; import org.ednovo.gooru.client.mvp.home.event.HeaderTabType; import org.ednovo.gooru.client.mvp.home.event.HomeEvent; import org.ednovo.gooru.client.mvp.home.library.LibraryView; import org.ednovo.gooru.client.mvp.search.event.SetHeaderZIndexEvent; import org.ednovo.gooru.client.uc.AppMultiWordSuggestOracle; import org.ednovo.gooru.client.uc.AppSuggestBox; import org.ednovo.gooru.client.uc.H2Panel; import org.ednovo.gooru.client.uc.PPanel; import org.ednovo.gooru.client.ui.PeListPanel; import org.ednovo.gooru.client.util.MixpanelUtil; import org.ednovo.gooru.shared.util.StringUtil; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Document; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.http.client.Request; import com.google.gwt.http.client.RequestBuilder; import com.google.gwt.http.client.RequestCallback; import com.google.gwt.http.client.RequestException; import com.google.gwt.http.client.Response; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONParser; import com.google.gwt.json.client.JSONValue; import com.google.gwt.storage.client.Storage; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window.ScrollEvent; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.SuggestOracle; import com.google.gwt.user.client.ui.SuggestOracle.Suggestion; import com.google.gwt.user.client.ui.Widget; /** * @author Search Team ` * */ public class HomeView extends BaseViewWithHandlers<HomeUiHandlers> implements IsHomeView, SelectionHandler<SuggestOracle.Suggestion> { @UiField HTMLPanel gooruPanel, homeContainer, panelLandingPage, contributorsContainer, panelStandardLibraries, panelDistrictLibraries, panelPartnerLibraries; @UiField Button btnSignUp, btnMoreOnCollections, viewSampleResportsBtn; @UiField H2Panel lblHeading; @UiField PPanel lblSubHeading, panelCopyRight, panelCopyRightR; // @UiField TextBoxWithPlaceholder txtSearch; @UiField Button btnSearch; @UiField Anchor achLearn, achTerms, achPrivacy, achCopyright;//achDataPolicy // @UiField TextBox txtEmbedLink; @UiField HTML htmlDescription; LibraryView libraryView = null; private TermsOfUse termsOfUse; private SearchDo<AutoSuggestKeywordSearchDo> autoSuggestKeywordDo = new SearchDo<AutoSuggestKeywordSearchDo>(); private SearchAsyncCallback<SearchDo<AutoSuggestKeywordSearchDo>> autoKeyWordSuggestionAsyncCallback; private AppMultiWordSuggestOracle autokeySuggestOracle; String searchData = ""; private String GOORU_SEARCH = "-<n> Gooru Search</n>"; @UiField(provided = true) public AppSuggestBox txtSearch; String jsonDataString = null; boolean isGetLibApiCalling = false; Map<String, String> allSubject = new HashMap<String, String>(); Map<String, String> allCourse = new HashMap<String, String>(); private static HomeViewUiBinder uiBinder = GWT.create(HomeViewUiBinder.class); interface HomeViewUiBinder extends UiBinder<Widget, HomeView> { } private MessageProperties i18n = GWT.create(MessageProperties.class); /** * Class constructor */ public HomeView() { autokeySuggestOracle = new AppMultiWordSuggestOracle(true); setEditSearchTxtBox(new AppSuggestBox(autokeySuggestOracle) { @Override public HandlerRegistration addClickHandler(ClickHandler handler) { return null; } @Override public void keyAction(String text, KeyUpEvent event) { MixpanelUtil.Search_autocomplete_select(); autokeySuggestOracle.clear(); autoSuggestKeywordDo.setQuery(text); searchData = getEditSearchTxtBox().getText(); autoSuggestKeywordDo.setType("resource"); if (text != null && text.trim().length() > 0) { requestAutoSuggestKeyword(autoSuggestKeywordDo); } else { getEditSearchTxtBox().hideSuggestionList(); } } }); getEditSearchTxtBox().addSelectionHandler(this); getEditSearchTxtBox().setPopupStyleName("shelfEditSearchTextBox"); Window.addWindowScrollHandler(new Window.ScrollHandler() { @Override public void onWindowScroll(ScrollEvent event) { getEditSearchTxtBox().hideSuggestionList(); if (panelPartnerLibraries.getWidgetCount() <= 0 && !isGetLibApiCalling) { getUiHandlers().generatePartnerLibraries(); isGetLibApiCalling = true; } } }); setWidget(uiBinder.createAndBindUi(this)); gooruPanel.getElement().setId("gooruPanel"); getEditSearchTxtBox().addKeyDownHandler(new SearchKeyDownHandler()); panelLandingPage.setVisible(true); gooruPanel.setVisible(false); setIds(); generateSubjectsData(); generateCourseData(); generateStandardLibraries(); generateDistrictLibraries(); String emailId = AppClientFactory.getPlaceManager().getRequestParameter("emailId"); if (emailId != null) { AppClientFactory.getInjector().getUserService().getRefershToken( AppClientFactory.getLoggedInUser().getGooruUId(), new SimpleAsyncCallback<String>() { @Override public void onSuccess(String result) { UserDo user = AppClientFactory.getLoggedInUser(); user.setRefreshToken(result); AppClientFactory.setLoggedInUser(user); } }); } Date todaysYear = new Date(); String copyRightTxt = i18n.GL1246() + "" + (todaysYear.getYear() + 1900); panelCopyRight.setText(copyRightTxt); panelCopyRight.getElement().setId("lblCopyRightYearText"); StringUtil.setAttributes(panelCopyRight.getElement(), "lblCopyRightYearText", copyRightTxt, copyRightTxt); panelCopyRightR.setText(copyRightTxt); panelCopyRightR.getElement().setId("lblCopyRightYearText"); StringUtil.setAttributes(panelCopyRightR.getElement(), "lblCopyRightYearText", copyRightTxt, copyRightTxt); homeContainer.getElement().setId("headerMainPanel"); } /** * @function displayPartnerLibraries * * @created_date : Aug 12, 2014 * * @description * * @param : ArrayList<LibraryUserDo> partnersList * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ @Override public void displayPartnerLibraries(ArrayList<LibraryUserDo> partnersList) { isGetLibApiCalling = false; if (partnersList != null) { for (int i = 0; i < partnersList.size(); i++) { final LibraryUserDo libraryUserDo = partnersList.get(i); PeListPanel pTag = new PeListPanel(); Anchor anchor = new Anchor(); anchor.setText(libraryUserDo.getDisplayName()); String url = "#" + libraryUserDo.getUsername(); anchor.setHref(url); pTag.add(anchor); panelPartnerLibraries.add(pTag); } } } /** * * @function generateDistrictLibraries * * @created_date : 11-Nov-2014 * * @description * * * @parm(s) : * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ private void generateDistrictLibraries() { try { new RequestBuilder(RequestBuilder.GET, "./images/json/district-libraries.json").sendRequest("", new RequestCallback() { @Override public void onResponseReceived(Request req, Response resp) { List<JSONStandardsDo> stdList = getList(resp.getText()); for (int k = 0; k < stdList.size(); k++) { PeListPanel pTag = new PeListPanel(); Anchor anchor = new Anchor(); anchor.setText(stdList.get(k).getLabel()); String url = StringUtil.generateMessage(stdList.get(k).getLink(), stdList.get(k).getCourseId() + "", stdList.get(k).getSubjectId() + ""); if (stdList.get(k).getExtraParms() != null) { url = url + "&" + stdList.get(k).getExtraParms(); } anchor.setHref(url); pTag.add(anchor); panelDistrictLibraries.add(pTag); } } @Override public void onError(Request res, Throwable throwable) { } }); } catch (RequestException e) { jsonDataString = null; } } /** * @function generateStandardLibraries * * @created_date : Aug 5, 2014 * * @description * * * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ private void generateStandardLibraries() { try { new RequestBuilder(RequestBuilder.GET, "./images/json/standards.json").sendRequest("", new RequestCallback() { @Override public void onResponseReceived(Request req, Response resp) { List<JSONStandardsDo> stdList = getList(resp.getText()); for (int k = 0; k < stdList.size(); k++) { PeListPanel pTag = new PeListPanel(); Anchor anchor = new Anchor(); anchor.setText(stdList.get(k).getLabel()); String url = StringUtil.generateMessage(stdList.get(k).getLink(), stdList.get(k).getCourseId() + "", stdList.get(k).getSubjectId() + ""); if (stdList.get(k).getExtraParms() != null) { url = url + "&" + stdList.get(k).getExtraParms(); } anchor.setHref(url); pTag.add(anchor); panelStandardLibraries.add(pTag); } } @Override public void onError(Request res, Throwable throwable) { } }); } catch (RequestException e) { jsonDataString = null; } } /** * @function getJSONDataFromFile * * @created_date : Aug 5, 2014 * * @description * * * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ private String getJSONDataFromFile() { try { new RequestBuilder(RequestBuilder.GET, "./images/json/standards.json").sendRequest("", new RequestCallback() { @Override public void onResponseReceived(Request req, Response resp) { jsonDataString = resp.getText(); } @Override public void onError(Request res, Throwable throwable) { } }); } catch (RequestException e) { jsonDataString = null; } return jsonDataString; } /** * * @function getList * * @created_date : Aug 5, 2014 * * @description * * * @param jsonResponse * @return * * @return : List<JSONStandardsDo> * * @throws : <Mentioned if any exceptions> * * * * */ @SuppressWarnings("deprecation") public List<JSONStandardsDo> getList(String jsonResponse) { List<JSONStandardsDo> stdList = new ArrayList<JSONStandardsDo>(); JSONValue jsonValue = JSONParser.parse(jsonResponse); JSONArray jsonArray = jsonValue.isArray(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject obj = jsonArray.get(i).isObject(); if (obj != null) { JSONStandardsDo stdObj = new JSONStandardsDo(); JSONValue label = obj.get("label").isString(); JSONNumber courseId = obj.get("courseId").isNumber(); JSONNumber subjectId = obj.get("subjectId").isNumber(); JSONValue link = obj.get("link").isString(); JSONValue extraParms = obj.get("extraParms").isString(); stdObj.setLabel(label.isString().stringValue()); stdObj.setCourseId((int) courseId.isNumber().getValue()); stdObj.setSubjectId((int) subjectId.isNumber().getValue()); stdObj.setLink(link.isString().stringValue()); stdObj.setExtraParms(extraParms != null ? extraParms.isString().stringValue() : null); stdList.add(stdObj); } } return stdList; } /** * @function generateCourseData * * @created_date : Jul 29, 2014 * * @description * * * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ private class SearchKeyDownHandler implements KeyDownHandler { @Override public void onKeyDown(final KeyDownEvent event) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { AppClientFactory.fireEvent(new SetHeaderZIndexEvent(0, true)); if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) { if (getEditSearchTxtBox().getText() != null && getEditSearchTxtBox().getText().length() > 0) { savePlaceRequest(); MixpanelUtil.Perform_Search(getEditSearchTxtBox().getText().trim().toLowerCase(), "LandingPage"); Map<String, String> params = new HashMap<String, String>(); params = updateParams(params); if (AppClientFactory.getCurrentPlaceToken() .equalsIgnoreCase(PlaceTokens.SEARCH_RESOURCE)) { AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.SEARCH_RESOURCE, params); } else { String queryVal = params.get("query"); Map<String, String> map = params; map.put("query", queryVal); AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.SEARCH_COLLECTION, map); } AppClientFactory.fireEvent(new HomeEvent(HeaderTabType.NONE)); getEditSearchTxtBox().hideSuggestionList(); } } } }); } } private void generateCourseData() { } /** * @function generateSubjectsData * * @created_date : Jul 29, 2014 * * @description * * * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ private void generateSubjectsData() { List<SubjectDo> subList = new ArrayList<SubjectDo>(); for (int i = 0; i < 4; i++) { // Subject } allSubject.put("Science", "20001"); allSubject.put("Language Arts", "30186"); allSubject.put("Math", "20002"); allSubject.put("Social Sciences", "25681"); } /** * */ @Override public void setInSlot(Object slot, Widget content) { if (slot == getUiHandlers().getContributorsSlot()) { contributorsContainer.add(content); } } /** * @function setIds * * @created_date : Jul 28, 2014 * * @description * * * * @return : void * * @throws : <Mentioned if any exceptions> * * * * */ private void setIds() { StringUtil.setAttributes(btnSignUp.getElement(), "btnHomeSignUp", i18n.GL0186(), i18n.GL0186()); StringUtil.setAttributes(btnSearch.getElement(), "btnSearch", i18n.GL0176(), i18n.GL0176()); StringUtil.setAttributes(lblHeading.getElement(), "lblHeading", i18n.GL2046(), i18n.GL2046()); StringUtil.setAttributes(lblSubHeading.getElement(), "lblSubHeading", i18n.GL2047(), i18n.GL2047()); getEditSearchTxtBox().getElement().setAttribute("placeholder", i18n.GL2073()); getEditSearchTxtBox().getElement().setId("txtEditSearch"); htmlDescription.setHTML(i18n.GL2102()); StringUtil.setAttributes(htmlDescription.getElement(), "htmlDescription", i18n.GL2102_1(), i18n.GL2102_1()); if (AppClientFactory.isAnonymous()) { btnSignUp.setVisible(true); } else { btnSignUp.setVisible(false); } Window.enableScrolling(true); } /* (non-Javadoc) * @see org.ednovo.gooru.client.gin.BaseViewWithHandlers#onLoad() */ @Override public void onLoad() { } @Override public void resetPassword(final String resetToken) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { new ResetPasswordVc(resetToken); } }); } /* (non-Javadoc) * @see org.ednovo.gooru.client.mvp.home.IsHomeView#loadFeaturedContributors() */ @Override public void loadFeaturedContributors(String callBack, String placeToken) { // libraryView.loadContributorsPage(callBack,placeToken); } @UiHandler("btnSignUp") public void onClickSignUp(ClickEvent event) { Map<String, String> map = StringUtil.splitQuery(Window.Location.getHref()); map.put("callback", "signup"); map.put("type", "1"); AppClientFactory.getPlaceManager().revealPlace(AppClientFactory.getCurrentPlaceToken(), map); } @UiHandler("btnSearch") public void onClickSearch(ClickEvent event) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { AppClientFactory.fireEvent(new SetHeaderZIndexEvent(0, true)); if (getEditSearchTxtBox().getText() != null && getEditSearchTxtBox().getText().length() > 0) { savePlaceRequest(); MixpanelUtil.Perform_Search(getEditSearchTxtBox().getText().trim().toLowerCase(), "LandingPage"); Map<String, String> params = new HashMap<String, String>(); params = updateParams(params); if (AppClientFactory.getCurrentPlaceToken().equalsIgnoreCase(PlaceTokens.SEARCH_RESOURCE)) { AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.SEARCH_RESOURCE, params); } else { String queryVal = params.get("query"); Map<String, String> map = params; map.put("query", queryVal); AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.SEARCH_COLLECTION, map); } AppClientFactory.fireEvent(new HomeEvent(HeaderTabType.NONE)); getEditSearchTxtBox().hideSuggestionList(); } } }); } public void savePlaceRequest() { String currentPlaceToken = AppClientFactory.getPlaceManager().getCurrentPlaceRequest().getNameToken(); if (currentPlaceToken.equals(PlaceTokens.SEARCH_COLLECTION) || currentPlaceToken.equals(PlaceTokens.SEARCH_RESOURCE)) { } else { AppClientFactory.getPlaceManager() .setSearchMovedPlaceRequest(AppClientFactory.getPlaceManager().getCurrentPlaceRequest()); } } /** * Set pagination for search * * @param params * variable for Map<String,String> * @return pagination values */ public Map<String, String> updateParams(Map<String, String> params) { HeaderUc.editSearchTxtBox.setText(getEditSearchText()); params.put("category", "All"); params.put("query", getEditSearchText()); return params; } /** * @return search keyword */ public String getEditSearchText() { String searchText = getEditSearchTxtBox().getText(); if (searchText != null && searchText.length() > 0) { return searchText; } else { return null; } } @UiHandler("btnMoreOnCollections") public void onClickMoreOnCollections(ClickEvent event) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { AppClientFactory .setPreviousPlaceRequest(AppClientFactory.getPlaceManager().getCurrentPlaceRequest()); Storage stockStore = Storage.getLocalStorageIfSupported(); if (stockStore != null) { stockStore.setItem("tabKey", "resourceTab"); } AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.SHELF); } }); } @UiHandler("btnMoreOnClasses") public void onClickMoreOnClasses(ClickEvent event) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { if (!AppClientFactory.isAnonymous()) { AppClientFactory.getInjector().getClasspageService().v2GetAllClass("10", "0", new SimpleAsyncCallback<ClasspageListDo>() { @Override public void onSuccess(ClasspageListDo result) { if (result.getSearchResults() != null) { if (result.getSearchResults().size() > 0) { AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.CLASSHOME); } else { AppClientFactory.getPlaceManager().redirectPlace(PlaceTokens.STUDY); } } else { AppClientFactory.getPlaceManager().redirectPlace(PlaceTokens.STUDY); } } }); //AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.CLASSHOME); } else { AppClientFactory.getPlaceManager().redirectPlace(PlaceTokens.STUDY); } } }); } @UiHandler("achLearn") public void onClickLearn(ClickEvent event) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { int scrollTop = 0; try { scrollTop = Document.get().getElementById("getStarted").getAbsoluteTop(); } catch (Exception e) { AppClientFactory.printSevereLogger("achLearn Click Event :" + e.getMessage()); } Window.scrollTo(0, scrollTop - 40); } }); } @UiHandler("viewSampleResportsBtn") public void onClickViewSampleReportBtn(ClickEvent event) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { Window.scrollTo(0, 0); SampleReportView sampleReportView = new SampleReportView(); } }); } @UiHandler("achTerms") public void onClickTermsLink(ClickEvent envent) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { Window.enableScrolling(false); AppClientFactory.fireEvent(new SetHeaderZIndexEvent(99, false)); termsOfUse = new TermsOfUse() { @Override public void openParentPopup() { // TODO Auto-generated method stub } }; termsOfUse.show(); termsOfUse.center(); } }); } @UiHandler("achPrivacy") public void onClickPrivacyLink(ClickEvent envent) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { Window.enableScrolling(false); AppClientFactory.fireEvent(new SetHeaderZIndexEvent(99, false)); TermsAndPolicyVc termsAndPolicyVc = new TermsAndPolicyVc(false) { @Override public void openParentPopup() { } }; termsAndPolicyVc.show(); termsAndPolicyVc.center(); } }); } // @UiHandler("achDataPolicy") // public void onClickDataPolicyLink(ClickEvent envent){ // // } @UiHandler("achCopyright") public void onClickCopyrightLink(ClickEvent envent) { GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { Window.enableScrolling(false); AppClientFactory.fireEvent(new SetHeaderZIndexEvent(99, false)); CopyRightPolicyVc copyRightPolicy = new CopyRightPolicyVc() { @Override public void openParentPopup() { //No need to set. } }; copyRightPolicy.center(); copyRightPolicy.show(); } }); } public AppSuggestBox getEditSearchTxtBox() { return txtSearch; } public void setEditSearchTxtBox(AppSuggestBox editSearchTxtBox) { this.txtSearch = editSearchTxtBox; } public void requestAutoSuggestKeyword(SearchDo<AutoSuggestKeywordSearchDo> searchDo) { getAutoSuggestionKeyWordAsyncCallback().execute(searchDo); } public void setAutoKeyWordSuggestions(SearchDo<AutoSuggestKeywordSearchDo> autoSuggestKeywordDo) { autokeySuggestOracle.clear(); this.autoSuggestKeywordDo = autoSuggestKeywordDo; searchData = searchData + GOORU_SEARCH; autokeySuggestOracle.add(searchData); if (this.autoSuggestKeywordDo.getSearchResults() != null) { for (AutoSuggestKeywordSearchDo autoSuggestKeywordSearchDo : autoSuggestKeywordDo.getSearchResults()) { autokeySuggestOracle.add(autoSuggestKeywordSearchDo.getKeyword()); } } getEditSearchTxtBox().showSuggestionList(); } /** * @return suggestion standards for the collection as map string */ public SearchAsyncCallback<SearchDo<AutoSuggestKeywordSearchDo>> getAutoSuggestionKeyWordAsyncCallback() { if (autoKeyWordSuggestionAsyncCallback == null) { autoKeyWordSuggestionAsyncCallback = new SearchAsyncCallback<SearchDo<AutoSuggestKeywordSearchDo>>() { @Override protected void run(SearchDo<AutoSuggestKeywordSearchDo> searchDo) { AppClientFactory.getInjector().getSearchService().getSuggestedAutokeyword(searchDo, this); } @Override public void onCallSuccess(SearchDo<AutoSuggestKeywordSearchDo> result) { setAutoKeyWordSuggestions(result); } }; } return autoKeyWordSuggestionAsyncCallback; } @Override public void onSelection(SelectionEvent<Suggestion> event) { final String searchText = txtSearch.getText().replaceAll("-<n> Gooru Search</n>", ""); txtSearch.setText(searchText.trim()); GWT.runAsync(new SimpleRunAsyncCallback() { @Override public void onSuccess() { Window.enableScrolling(true); AppClientFactory.fireEvent(new SetHeaderZIndexEvent(0, true)); if (txtSearch.getText() != null && txtSearch.getText().length() > 0) { MixpanelUtil.Perform_Search(txtSearch.getText().trim().toLowerCase(), "HeaderUc"); Map<String, String> params = new HashMap<String, String>(); params = updateParams(params); savePlaceRequest(); if (AppClientFactory.getCurrentPlaceToken().equalsIgnoreCase(PlaceTokens.COLLECTION_SEARCH)) { AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.COLLECTION_SEARCH, params); } else { String queryVal = params.get("query"); //queryVal = queryVal.replaceAll("%5C1", "&"); Map<String, String> map = params; map.put("query", queryVal); AppClientFactory.getPlaceManager().revealPlace(PlaceTokens.SEARCH_COLLECTION, map); } txtSearch.setText(""); AppClientFactory.fireEvent(new HomeEvent(HeaderTabType.DISCOVER)); txtSearch.hideSuggestionList(); } MixpanelUtil.mixpanelEvent("Select_Autocomplete_Search"); getEditSearchTxtBox().setText(searchText.trim()); } }); } /** * This method is to get the btnSignUp */ @Override public Button getBtnSignUp() { return btnSignUp; } /** * This method is to set the btnSignUp */ public void setBtnSignUp(Button btnSignUp) { this.btnSignUp = btnSignUp; } }