Background of Problem
1 - My Ginjector is
TGinInjector.java
@GinModules({ TModule.class })
public interface TGinInjector extends Ginjector {
PlaceManager getPlaceManager();
EventBus getEventBus();
TConstants getTConstants();
Provider<MainPagePresenter> getMainPagePresenter();
/*
* Statement Module
*/
AsyncProvider<TStatementPresenter> getTStatementPresenter();
AsyncProvider<StatementPresenter> getStatementPresenter();
}
2 - My PresenterModule is :
TModule.java
public class TModule extends AbstractPresenterModule {
@Override
protected void configure() {
bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class);
bind(TokenFormatter.class).to(ParameterTokenFormatter.class).in(
Singleton.class);
bind(RootPresenter.class).to(TRootPresenter.class)
.asEagerSingleton();
bind(PlaceManager.class).to(TPlaceManager.class).in(
Singleton.class);
bindConstant().annotatedWith(DefaultPlace.class).to(
NameTokens.STATEMENT);
bindPresenter(MainPagePresenter.class, IMainPageView.class,
MainPageView.class, MainPagePresenter.MainProxy.class);
/*
* Statement Module
*/
bindPresenter(
TStatementPresenter.class,
ITStatementView.class,
TStatementTabView.class,
TStatementPresenter.ITStatementTabContentProxy.class);
bindPresenter(StatementPresenter.class, IStatementView.class,
StatementView.class,
StatementPresenter.IStatementTabContentProxyPlace.class);
}
3 - My PlaceManagerImpl is
TPlaceManager.java
public class TPlaceManager extends PlaceManagerImpl {
private final PlaceRequest defaultPlaceRequest;
@Inject
public TPlaceManager(EventBus eventBus, TokenFormatter tokenFormatter, @DefaultPlace String nameToken) {
super(eventBus, tokenFormatter);
defaultPlaceRequest = new PlaceRequest(nameToken);
}
@Override
public void revealDefaultPlace() {
revealPlace(defaultPlaceRequest);
}
}
4 - My TStatementPresenter for a Tab
TStatementPresenter.java
public class TStatementPresenter
extends
SubContainerPresenterBase<ITStatementView, TStatementPresenter.IStatementTabContentProxy>
implements ITStatementView.ITStatementUiHandlers {
@RequestTabs
public static final Type<RequestTabsHandler> TYPE_RequestTabsHandler = new Type<RequestTabsHandler>();
@ContentSlot
public static final Type<RevealContentHandler<?>> TYPE_SetTabContentHandler = new Type<RevealContentHandler<?>>();
@ProxyCodeSplit
public interface ITStatementTabContentProxy extends
TabContentProxy<TStatementPresenter> {
}
@Inject
public TStatementPresenter(EventBus eventBus, ITStatementView view,
ITStatementTabContentProxy proxy) {
super(eventBus, view, proxy, TYPE_SetTabContentHandler,
TYPE_RequestTabsHandler);
}
@TabInfo(container = MainPagePresenter.class, priority = 0, nameToken = NameTokens.T_STATEMENT)
static String getTabLabel(TGinInjector ginjector) {
return ginjector.getTConstants().tStatement();
}
@Override
protected void revealInParent() {
RevealContentEvent.fire(this, MainPagePresenter.TYPE_SetMainContent,
this);
}
}
5 - StatementPresenter.java for a subtab
/**
* @author prayag
* @date Sep 13, 2012
*/
public class StatementPresenter
extends
Presenter<IStatementView, StatementPresenter.IStatementTabContentProxyPlace>
implements IStatementView.IStatementUiHandlers {
@Inject
PlaceManager placeManager;
@RequestTabs
public static final Type<RequestTabsHandler> TYPE_RequestTabs = new
Type<RequestTabsHandler>();
@ContentSlot
public static final Type<RevealContentHandler<?>> TYPE_SetTabContent =
new Type<RevealContentHandler<?>>();
@Inject
public StatementPresenter(EventBus eventBus, IStatementView view,
IStatementTabContentProxyPlace proxy) {
super(eventBus, view, proxy);
getView().setUiHandlers(this);
}
@ProxyCodeSplit
@NameToken(NameTokens.STATEMENT)
public interface IStatementTabContentProxyPlace extends
TabContentProxyPlace<StatementPresenter> {
}
@TabInfo(container = TStatementPresenter.class)
static TabData getTabLabel(TGinInjector ginjector) {
return new TabDataBasic(ginjector.getTransconnectConstants()
.statement(), 0);
}
@Override
protected void revealInParent() {
RevealContentEvent.fire(this,
StatementPresenter.TYPE_SetTabContentHandler, this);
}
@TitleFunction
public String getTranslatedTitle(TGinInjector gInjector) {
return gInjector.getTConstants().statement();
}
}
ERROR
Stepwise I am getting following error in gwt with StatementView not loading:
11:00:42.314 [ERROR] [t] Uncaught exception escaped
java.lang.IllegalArgumentException: invoke arguments: JS value of type number, expected com.google.gwt.core.client.Scheduler.RepeatingCommand
at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:178)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:65)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:662)
followed by following error in a loop
11:44:02.797 [ERROR] [t] Uncaught exception escaped
com.google.gwt.dev.shell.HostedModeException: Something other than an int was returned from JSNI method '@com.google.gwt.core.client.JsArray::length()': JS value of type undefined, expected int
at com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266)
at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:247)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75)
at com.google.gwt.core.client.JsArray$.length$(JsArray.java)
at com.google.gwt.core.client.impl.SchedulerImpl.runRepeatingTasks(SchedulerImpl.java:161)
at com.google.gwt.core.client.impl.SchedulerImpl.flushPostEventPumpCommands(SchedulerImpl.java:392)
at com.google.gwt.core.client.impl.SchedulerImpl$Flusher.execute(SchedulerImpl.java:78)
at com.google.gwt.core.client.impl.SchedulerImpl.execute(SchedulerImpl.java:138)
at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:662)
Change StatementPresenter as following:
/**
* @author prayag
* @date Sep 13, 2012
*/
public class StatementPresenter
extends
Presenter<IStatementView, StatementPresenter.IStatementTabContentProxyPlace>
implements IStatementView.IStatementUiHandlers {
@Inject
PlaceManager placeManager;
/*remove RequestTabsHandler*/
@Inject
public StatementPresenter(EventBus eventBus, IStatementView view,
IStatementTabContentProxyPlace proxy) {
super(eventBus, view, proxy);
getView().setUiHandlers(this);
}
@ProxyCodeSplit
@NameToken(NameTokens.STATEMENT)
public interface IStatementTabContentProxyPlace extends
TabContentProxyPlace<StatementPresenter> {
}
@TabInfo(container = TStatementPresenter.class)
static TabData getTabLabel(TGinInjector ginjector) {
return new TabDataBasic(ginjector.getTransconnectConstants()
.statement(), 0);
}
@Override
protected void revealInParent() {
/*
* use TYPE_SetTabContentHandler of Main Tab TStatementPresenter
*/
RevealContentEvent.fire(this,
TStatementPresenter.TYPE_SetTabContentHandler, this);
}
@TitleFunction
public String getTranslatedTitle(TGinInjector gInjector) {
return gInjector.getTConstants().statement();
}
}
No comments:
Post a Comment