Я новичок в GWT, и я искал все, чтобы ответить, но я все еще не могу найти его.
Моя проблема: в настоящее время мы работаем над системой расписания функций в GWT, и я пытаюсь создать интерфейс. В настоящее время у нас есть 4 класса (+a основной класс) для 4 разных "просмотров" на веб-странице. Расписание, навигатор, закладки и поиск. Мой вопрос: есть ли способ, чтобы каждый из этих классов (или виджетов) не занимал позицию div-класса, который я создал в html/css.
Текущий html/css, который генерируется из GWT:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="Main.css">
<script type="text/javascript" language="javascript" src="main/main.nocache.js"></script>
</head>
<body>
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
</body>
</html>
Есть ли способ заставить GWT генерировать div для каждого из классов, которые вы можете вложить в другой код css/html, который вы создали?
Например: добавление панели навигации над каландровой частью.
Я развиваюсь с помощью GWT Framework, и я не думаю, что вы можете смешивать вещи. GWT позволяет вам создавать все ваши представления на Java (даже в стиле css, даже если он чист, чтобы определить его (и возможно) в таблице стилей css). Вы должны посмотреть эту страницу: Проект GWT - макеты
В гайке ваши четыре класса должны расширить класс Widget. Как только вы это сделаете, вы можете создать (например) DockLayoutPanel, который станет вашим основным контейнером. Ниже приведен быстрый пример (отсюда):
public class DockLayoutPanelExample implements EntryPoint {
public void onModuleLoad() {
// Attach five widgets to a DockLayoutPanel, one in each direction. Lay
// them out in 'em' units.
DockLayoutPanel p = new DockLayoutPanel(Unit.EM);
p.addNorth(new HTML("north"), 2);
p.addSouth(new HTML("south"), 2);
p.addEast(new HTML("east"), 2);
p.addWest(new HTML("west"), 2);
p.add(new HTML("center"));
// Attach the LayoutPanel to the RootLayoutPanel. The latter will listen for
// resize events on the window to ensure that its children are informed of
// possible size changes.
RootLayoutPanel rp = RootLayoutPanel.get();
rp.add(p);
}
}
Здесь они добавляют HTML-объекты (эквивалент в html в основном div) к макету. Вместо добавления объектов HTML добавьте четыре объекта, расширяющих Виджет.
В GWT каждый объект Java имеет эквивалент в HTML или Javascript, и это преобразование выполняется во время компиляции.
Ваши взгляды могут очень наследовать атрибуты div... дать вашим атрибутам идентификатор, т.е. те атрибуты, которые наследуют позиции главной страницы.