species-discovery/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SpeciesDiscovery.java

117 lines
3.1 KiB
Java

package org.gcube.portlets.user.speciesdiscovery.client;
import org.gcube.portlets.user.speciesdiscovery.client.rpc.TaxonomySearchService;
import org.gcube.portlets.user.speciesdiscovery.client.rpc.TaxonomySearchServiceAsync;
import com.allen_sauer.gwt.log.client.Log;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.github.gwtbootstrap.client.ui.resources.Resources;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.core.client.ScriptInjector;
import com.google.gwt.event.logical.shared.ResizeEvent;
import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class SpeciesDiscovery implements EntryPoint {
public static final String SPECIES_DISCOVERY_DIV = "SpeciesDiscovery";
public static TaxonomySearchServiceAsync taxonomySearchService = GWT.create(TaxonomySearchService.class);
protected ContentPanel mainPanel;
/**
* This is the entry point method.
*/
public void onModuleLoad() {
Log.setUncaughtExceptionHandler();
boolean jQueryLoaded = isjQueryLoaded();
GWT.log("jQueryLoaded: "+jQueryLoaded);
// GWT.log("Injected : "+Resources.RESOURCES.jquery().getText());
if (!isjQueryLoaded()) {
ScriptInjector.fromString(Resources.RESOURCES.jquery().getText())
.setWindow(ScriptInjector.TOP_WINDOW)
.inject();
}
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
onModuleLoad2();
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent event) {
updateSize();
}
});
}
});
}
/**
* Checks if is j query loaded.
*
* @return true, if is j query loaded
*/
private native boolean isjQueryLoaded() /*-{
return (typeof $wnd['jQuery'] !== 'undefined');
}-*/;
public void onModuleLoad2() {
RootPanel root = RootPanel.get(SPECIES_DISCOVERY_DIV);
createSearchPanel();
if (root!=null){
GWT.log("SPECIES_DISCOVERY_DIV div found, we are on portal");
updateSize();
root.add(mainPanel);
} else{
GWT.log("SPECIES_DISCOVERY_DIV div not found, we are out of the portal");
//mainPanel.setWidth("100%");
mainPanel.setHeight(600);
// mainPanel.setWidth(930);
RootPanel.get().add(mainPanel);
}
}
protected void createSearchPanel()
{
mainPanel = SearchBorderLayoutPanel.getInstance();
}
public void updateSize() {
GWT.log("Resizing");
RootPanel discovery = RootPanel.get(SPECIES_DISCOVERY_DIV);
int topBorder = discovery.getAbsoluteTop();
int leftBorder = discovery.getAbsoluteLeft();
int rightScrollBar = 17;
int rootHeight = Window.getClientHeight() - topBorder - 34;
int rootWidth = Window.getClientWidth() - 2* leftBorder - rightScrollBar;
GWT.log("new size "+rootWidth+"x"+rootHeight);
mainPanel.setPixelSize(rootWidth, rootHeight);
}
}