Saturday, February 4, 2012

New to GWT: Need Help

Hello

I try to write a little Application. I' ve the problem that I' don't
see all the hole page in the Browser. I've designed the page with the
UI Designer for Eclipse. There I see everything with the preview.

I only see the Toppanel (north), but not the SplitlayoutPanel (nor
the StackPanel or the Tree and also not the HTMLPanel) in the center!
When I debug the Source from my page in Chrome I see that the
Instructions for the widget in the panel are sent but I dont see them
on the screen.

Sorry for my english.

Someone knows what i'am doing worg?

Here is the code:

DesktopView.ui.xml:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:p1="urn:import:ch.asolution.pikett.client.ui">
<ui:style>

</ui:style>
<g:DockLayoutPanel unit="EM">
<g:north size="5">
<p1:TopPanel ui:field="toppanel"/>
</g:north>
<g:center>
<g:SplitLayoutPanel>
<g:west size="150">
<g:StackLayoutPanel unit="EM">
<g:stack>
<g:header size="3">Mitarbeiter</g:header>
<g:Tree animationEnabled="true" ui:field="mitarbeiterTree">
<g:TreeItem text="Mitarbeiter bearbeiten" state="true"/>
<g:TreeItem text="Mitarbeiter erstellen" state="true"/>
<g:TreeItem text="Mitarbeiter löschen" state="true"/>
</g:Tree>
</g:stack>

<g:stack>
<g:header size="3">Pikettplanung</g:header>
<g:Tree animationEnabled="true" ui:field="showTree">
<g:TreeItem text="Tagesansicht" state="true"/>
<g:TreeItem text="Monatsansicht" state="true"/>
</g:Tree>
</g:stack>
</g:StackLayoutPanel>
</g:west>
<g:center>
<g:HTMLPanel ui:field="detail"/>
</g:center>
</g:SplitLayoutPanel>
</g:center>
</g:DockLayoutPanel>
</ui:UiBinder>

DestopView.java
package ch.asolution.pikett.client.ui;

import ch.asolution.pikett.client.presenter.DesktopPresenter;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DockLayoutPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;

public class DesktopView extends Composite implements
DesktopPresenter.Display {

private static DesktopViewUiBinder uiBinder = GWT
.create(DesktopViewUiBinder.class);
@UiField
TopPanel toppanel;
@UiField
Tree mitarbeiterTree;
@UiField
Tree showTree;
@UiField
HasWidgets detail;

interface DesktopViewUiBinder extends
UiBinder<DockLayoutPanel, DesktopView> {
}

public DesktopView() {
DockLayoutPanel outer = uiBinder.createAndBindUi(this);
initWidget(outer);
}

@Override
public TopPanel getToppanel() {
return toppanel;
}

@Override
public HasWidgets getDetailPanel() {
return detail;
}

@Override
public HasSelectionHandlers<TreeItem> getMitarbeiter() {
return mitarbeiterTree;
}

@Override
public HasSelectionHandlers<TreeItem> getShow() {
return showTree;
}

}

DesktopPresenter.java
package ch.asolution.pikett.client.presenter;

import ch.asolution.pikett.client.ui.MitarbeiterView;
import ch.asolution.pikett.client.ui.TopPanel;
import ch.asolution.pikett.shared.User;

import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.Widget;

public class DesktopPresenter implements Presenter {

public interface Display {
TopPanel getToppanel();

HasSelectionHandlers<TreeItem> getMitarbeiter();

HasSelectionHandlers<TreeItem> getShow();

HasWidgets getDetailPanel();

Widget asWidget();
}

private HandlerManager eventBus;
private HandlerManager localEventBus;
private Display display;
private TopPanelPresenter topPanelPresenter;

private MitarbeiterPresenter mitarbeiterPresenter;

public DesktopPresenter(HandlerManager hm, Display d, User u) {
this.eventBus = hm;
this.display = d;
this.topPanelPresenter = new TopPanelPresenter(hm, d.getToppanel(),
u);
this.mitarbeiterPresenter = new MitarbeiterPresenter(hm,
new MitarbeiterView());
}

@Override
public void go(HasWidgets container) {
bind();
mitarbeiterPresenter.go(display.getDetailPanel());
container.clear();
container.add(display.asWidget());
}

private void bind() {
this.display.getMitarbeiter().addSelectionHandler(
new SelectionHandler<TreeItem>() {

@Override
public void onSelection(SelectionEvent<TreeItem> event) {
String text = event.getSelectedItem().getText();
}
});
this.display.getShow().addSelectionHandler(
new SelectionHandler<TreeItem>() {

@Override
public void onSelection(SelectionEvent<TreeItem> event) {
String text = event.getSelectedItem().getText();
}
});

}
}

TopPanelPresenter.java
package ch.asolution.pikett.client.presenter;

import ch.asolution.pikett.client.UserService;
import ch.asolution.pikett.client.event.LogoutEvent;
import ch.asolution.pikett.shared.User;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Widget;

public class TopPanelPresenter implements Presenter {

public interface Display {
HasText getWelcome();

HasClickHandlers getLogout();

Widget asWidget();
}

private final User user;
private final HandlerManager eventBus;
private final Display display;

public TopPanelPresenter(HandlerManager hm, Display display, User
user) {
this.user = user;
this.eventBus = hm;
this.display = display;
bind();
}

private void bind() {
this.display.getWelcome().setText("Willkommen " + user.getName());
this.display.getLogout().addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
logout();
}

});
}

private void logout() {
UserService.Util.getInstance().logout(user, new
AsyncCallback<Void>() {

@Override
public void onSuccess(Void result) {
eventBus.fireEvent(new LogoutEvent());
}

@Override
public void onFailure(Throwable caught) {
eventBus.fireEvent(new LogoutEvent());
}
});
}

@Override
public void go(HasWidgets container) {
bind();
container.clear();
container.add(display.asWidget());
}

}

TopPanel.java
package ch.asolution.pikett.client.ui;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;

import ch.asolution.pikett.client.presenter.TopPanelPresenter;
import com.google.gwt.uibinder.client.UiField;

public class TopPanel extends Composite implements
TopPanelPresenter.Display {

private static TopPanelUiBinder uiBinder = GWT
.create(TopPanelUiBinder.class);
@UiField
HasText welcome;
@UiField
HasClickHandlers logout;
@UiField
HasClickHandlers about;

interface TopPanelUiBinder extends UiBinder<HTMLPanel, TopPanel> {
}

public TopPanel() {
HTMLPanel panel = uiBinder.createAndBindUi(this);
about.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
Window.alert("Copyrigth a-solution.ch");

}
});
initWidget(panel);
}

@Override
public HasText getWelcome() {
return welcome;
}

@Override
public HasClickHandlers getLogout() {
return logout;
}

public Widget asWidget() {
return this;
}

}

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment