package net.thesocialos.client.view; import net.thesocialos.client.CacheLayer; import net.thesocialos.client.TheSocialOS; import net.thesocialos.client.presenter.SearchBoxPresenter.Display; import net.thesocialos.shared.model.User; import com.google.gwt.cell.client.AbstractCell; import com.google.gwt.core.client.GWT; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.cellview.client.CellList; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.StackLayoutPanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; public class SearchBoxView extends Composite implements Display { interface SearchBoxUiBinder extends UiBinder<Widget, SearchBoxView> { } private static SearchBoxUiBinder uiBinder = GWT.create(SearchBoxUiBinder.class); @UiField(provided = true) CellList<User> cellList = new CellList<User>(new AbstractCell<User>() { @Override public void render(Context context, User value, SafeHtmlBuilder sb) { if (value == null) return; if (CacheLayer.ContactCalls.isContact(value.getOwnKey())) sb .appendHtmlConstant("<table class='chat_state_online' width= '100%'>"); else sb.appendHtmlConstant("<table class='chat_state_offline' width= '100%'>"); // Add the contact image. sb.appendHtmlConstant("<tr><td rowspan='3'>"); if (value.getUrlAvatar() == null) sb .appendHtmlConstant("<img src='./images/anonymous_avatar.png' width='30' height='35' />"); else sb.appendHtmlConstant("<img src=" + value.getUrlAvatar() + " width='30' height='35' />"); sb.appendHtmlConstant("</td>"); // Add the name and address. sb.appendHtmlConstant("<td style='font-size:95%;'>"); sb.appendEscaped(value.getName() + " " + value.getLastName()); sb.appendHtmlConstant("</td></tr><tr><td>"); sb.appendEscaped(value.getEmail()); sb.appendHtmlConstant("</td></tr></table>"); } }); @UiField Label lblFriends; @UiField VerticalPanel searchPanel; @UiField(provided = true) CellList<Object> cellList_1 = new CellList<Object>(new AbstractCell<Object>() { @Override public void render(Context context, Object value, SafeHtmlBuilder sb) { // TODO } }); @UiField TextBox txtSearch; @UiField Label lblInvite; @UiField Label lblInfo; @UiField Image imgAvatar; @UiField StackLayoutPanel stackLayout; @UiField HTMLPanel htmlPanel; public SearchBoxView() { initWidget(uiBinder.createAndBindUi(this)); lblInvite.setText(TheSocialOS.getConstants().invite()); lblInfo.setText(TheSocialOS.getConstants().info()); txtSearch.setText(TheSocialOS.getConstants().entherTheText()); } @Override public Image getAvatarIMG() { // TODO Auto-generated method stub return imgAvatar; } @Override public CellList<User> getComponentsList() { // TODO Auto-generated method stub return cellList; } @Override public Label getLabelFriends() { // TODO Auto-generated method stub return lblFriends; } @Override public Label getLabelGroups() { // TODO Auto-generated method stub return null; } @Override public Label getLabelInfo() { // TODO Auto-generated method stub return lblInfo; } @Override public Label getLabelInvite() { // TODO Auto-generated method stub return lblInvite; } @Override public VerticalPanel getSearchBoxPanel() { // TODO Auto-generated method stub return searchPanel; } @Override public StackLayoutPanel getStackLayout() { // TODO Auto-generated method stub return stackLayout; } @Override public void setComponentsList(CellList<User> cellList) { // TODO Auto-generated method stub this.cellList = cellList; } @Override public TextBox getSearchBox() { // TODO Auto-generated method stub return txtSearch; } @Override public HTMLPanel getHtmlPanel() { // TODO Auto-generated method stub return htmlPanel; } }