package org.inbio.m3s.gwt.client; import java.util.List; import org.inbio.gwt.galleries.client.dto.DisplayInfo; import org.inbio.gwt.galleries.client.widget.ImageThumbnail; import org.inbio.m3s.gwt.client.rpcinterface.SearchMediaRPC; import org.inbio.m3s.gwt.client.rpcinterface.SearchMediaRPCAsync; import org.inbio.m3s.gwt.client.widgets.info.SystemStatistics; import org.inbio.m3s.gwt.client.widgets.info.UserStatistics; import org.inbio.m3s.gwt.client.widgets.login.LoginManager; import org.inbio.m3s.gwt.client.widgets.login.listener.LoginWidgetListener; import org.inbio.m3s.gwt.client.widgets.login.ui.LoginWidget; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Label; public class Home extends Composite implements LoginWidgetListener, AsyncCallback { private HTMLPanel main; // private LoginManager login; private LoginWidget loginWidget; // TODO: all this texts must be loaded from a inteernationalizacion file private String title = "P\u00E1gina Principal de la aplicacion"; private String titleDiv = HTMLPanel.createUniqueId(); private String rightPanelTitle = "Ultimas im\u00E1genes ingresadas:"; private String rightPanelTitleDiv = HTMLPanel.createUniqueId(); // private String leftPanelTitle = "Ultimas im\u00E1genes ingresadas:"; private String leftPanelContentDiv = HTMLPanel.createUniqueId(); private UserStatistics userStats; private SystemStatistics systemStats; //rpc service private SearchMediaRPCAsync rpc; public Home(LoginManager login) { // the MainPanel main = new HTMLPanel( "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" + "<tr>" + "<td width=\"85%\" align=\"left\" valign=\"top\" bgcolor=\"#4B619A\" class=\"MainPanel\">" + "<!-- Titulo de la Pagina-->" + "<table width=\"100%\" border=\"0\" cellpadding=\"10\" cellspacing=\"0\">" + "<tr>" + "<td height=\"28\" colspan=\"2\">" + "<div id=\"" + titleDiv + "\"></div>" + "</td>" + "</tr>" + "<!-- Zona de los paneles centrales -->" + "<tr>" + "<!-- Panel Izquierdo -->" + "<td width=\"51%\" height=\"65\" align=\"left\" valign=\"top\">" + "<div class=\"contenido\" id=\"layer1\">" + "<p>" + "<a href=\"#\">Ayuda*</a>" + "<br><a href=\"#\">Políticas de uso*</a><br>" + "<a href=\"#\">Protocolo de captura de información*</a>" + "</p>" + "<div id=\"" + leftPanelContentDiv + "\"></div>" + "</div>" + "</td>" + "<!-- Panel derecho -->" + "<td width=\"49%\" align=\"left\" valign=\"top\">" + "<div class=\"contenido\" id=\"layer1\">" + "<div id=\"" + rightPanelTitleDiv + "\"></div>" + "</div>" + "</td>" + "</tr> <!-- FIN de Zona de los paneles centrales -->" + "</table>" + "<!-- Cerrando la tabla de todo -->" + "</td>" + "</tr>" + "</table>"); initWidget(main); // Adding widgets to the divs defined in the mainPanel: Label theTitle = new Label(title); theTitle.setStyleName("MainPanel-Title"); main.add(theTitle, titleDiv); // Left Panel if (LoginManager.getUserName() == null) { loginWidget = new LoginWidget(login, this); main.add(loginWidget, leftPanelContentDiv); } loadSystemStatistics(); // Right Panel Label theRightPanelTitle = new Label(rightPanelTitle); theRightPanelTitle.setStyleName("Home-RightPanelTitle"); main.add(theRightPanelTitle, rightPanelTitleDiv); loadGenericImagesGallery(); } /** * Login Widget is telling: please close me!!! * * @param reason * why the widget wants to be closed */ public void closeWidget(String reason) { loginWidget.removeFromParent(); loadUserStatistics(LoginManager.getUserName()); } /** * Inserts a user statistics widget on the Left Panel * * @param username */ private void loadUserStatistics(String username) { userStats = new UserStatistics(); userStats.addInfoRow("Imagenes Ingresadas:", "-"); userStats.addInfoRow("Videos Ingresad os:", "-"); userStats.addInfoRow("Audios Ingresados:", "-"); main.add(userStats, leftPanelContentDiv); } /** * * */ public void removeUserStatistics() { userStats.removeFromParent(); } /** * Inserts a system statistics widget on the Left Panel * */ private void loadSystemStatistics() { systemStats = new SystemStatistics(); main.add(systemStats, leftPanelContentDiv); System.out.println("loadSystemStatistics"); } /** * Creates a generic images gallery in the rigth panel * */ private void loadGenericImagesGallery() { //(1) Initialize the RPC service. rpc = (SearchMediaRPCAsync) GWT.create(SearchMediaRPC.class); //(2) Specify the URL at which our service implementation is running. // Note that the target URL must reside on the same domain and port from // which the host page was served. ServiceDefTarget endpoint = (ServiceDefTarget) rpc; String moduleRelativeURL = GWT.getModuleBaseURL() + "searchMediaRPC"; endpoint.setServiceEntryPoint(moduleRelativeURL); rpc.getLastPublicMedia(8, this); } public void onFailure(Throwable arg0) { // TODO Auto-generated method stub } public void onSuccess(Object arg0) { List<DisplayInfo> fromServer = (List<DisplayInfo>) arg0; DisplayInfo dib; ImageThumbnail it; System.out.println("\nCantiad de resultados>"+fromServer.size()); for(int i= 0; i < fromServer.size(); i++ ){ dib = (DisplayInfo) fromServer.get(i); dib.setUrl(GWT.getModuleBaseURL()+"getImage?size=thumb&id=" + dib.getId()); it = new ImageThumbnail(dib); main.add(it, rightPanelTitleDiv); System.out.println("Se insertó la imagen con id: "+dib.getId()); } } }