Короче говоря, проблема: у меня есть два модуля, наследующих общий модуль (без точки входа), и по одной главной странице для каждого. Независимо от того, что он загружает, он загружает оба одновременно на странице. Я просто хочу, чтобы они загружались и показывались отдельно, а не вместе на всех страницах ..
Когда я запускаю Login.html, он запускает оба этих модуля (они разделяют пространство браузера по вертикали) и дважды загружает правильную точку входа (Login extends Entrypoint).
Когда я запускаю Main.html, он запускает оба этих модуля, каждый с главной точкой входа ...
Я подозреваю, что проблема заключается в структуре проекта, но мы не хотим разбивать один проект / приложение на несколько проектов только из-за модулей.
Логин:
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='Login'>
<inherits name='fqdn.Common' />
<stylesheet src='../Common.css' />
<!-- Specify the app entry point class. -->
<entry-point class='fqdn.Login' />
<module>
Основной:
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='Main>
<inherits name='fqdn.Common' />
<stylesheet src='../Common.css' />
<!-- Specify the app entry point class. -->
<entry-point class='fqdn.Main' />
<module>
Login.html:
<html>
<head>
<link type="text/css" rel="stylesheet" href="css/Common.css">
<script type="text/javascript" language="javascript" src="Login/Login.nocache.js"></script>
</head>
<body>
...
</body>
</html>
Main.html:
<html>
<head>
<link type="text/css" rel="stylesheet" href="css/Common.css">
<script type="text/javascript" language="javascript" src="Main/Main.nocache.js"></script>
</head>
<body>
...
</body>
</html>
Я должен признать, что обе точки входа имеют один и тот же каталог и множество классов, но не один и тот же материал Ginjector. Они называются myproject.client.Login и myproject.client.Main.
Это причина отказа GWT? Я был бы рад узнать хорошее решение или обходной путь для этой ситуации :)
Обновление: добавлены фрагменты Main.java
public class Main implements EntryPoint {
private Logger logger = Logger.getLogger(Main.class.getName());
private final GinMainInjector injector = GinMainInjector.INSTANCE;
private Place defaultPlace = GWT.create(TicketPlace.class);
private SimplePanel appWidget;
private EventBus eventBus;
public void onModuleLoad() {
logger.finest("Starting Main...");
eventBus = injector.getEventBus();
MainActivityMapper activityMapper = GWT.create(MainActivityMapper.class);
activityMapper.insertInjector(injector);
PlaceController placeController = injector.getPlaceController();
createAppWidgetPanel();
startActivityManager(activityMapper, eventBus);
startHistoryHandler(placeController, eventBus);
}
private void startActivityManager(ActivityMapper activityMapper, EventBus eventBus) {
ActivityManager activityManager = new ActivityManager(activityMapper, eventBus);
activityManager.setDisplay(appWidget);
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(appWidget);
}
}
fqdn.Main
иfqdn.Login
, где вы добавляете верхний компонент. Я хочу знать, что вы добавляете / показываетеComposite/SimplePanel
на странице? - person Braj   schedule 07.04.2014