/** * Sencha GXT 3.0.0b - Sencha for GWT * Copyright(c) 2007-2012, Sencha, Inc. * licensing@sencha.com * * http://www.sencha.com/products/gxt/license/ */ package com.sencha.gxt.desktopapp.client.browser; import com.google.gwt.user.client.ui.Frame; import com.google.gwt.user.client.ui.Widget; import com.sencha.gxt.desktopapp.client.filemanager.images.Images; import com.sencha.gxt.widget.core.client.Window; import com.sencha.gxt.widget.core.client.event.HideEvent; import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; import com.sencha.gxt.widget.core.client.event.ShowEvent; import com.sencha.gxt.widget.core.client.event.ShowEvent.ShowHandler; public class BrowserViewImpl implements BrowserView, HideHandler, ShowHandler { private BrowserPresenter browserPresenter; private Window window; private Frame frame; public BrowserViewImpl(BrowserPresenter browserPresenter) { this.browserPresenter = browserPresenter; } @Override public Widget asWidget() { return getWindow(); } @Override public void close() { getWindow().hide(); } @Override public String getValue() { return getFrame().getUrl(); } @Override public void onHide(HideEvent event) { getBrowserPresenter().unbind(); } @Override public void onShow(ShowEvent event) { getBrowserPresenter().bind(); } @Override public void setTitle(String title) { getWindow().setHeadingText(title); } @Override public void setValue(String url) { getFrame().setUrl(url); } private BrowserPresenter getBrowserPresenter() { return browserPresenter; } private Frame getFrame() { if (frame == null) { frame = new Frame(); } return frame; } private Window getWindow() { if (window == null) { window = new Window(); window.getHeader().setIcon(Images.getImageResources().page_white()); window.setMinimizable(true); window.setMaximizable(true); window.setOnEsc(false); window.setPixelSize(500, 400); window.addHideHandler(this); window.addShowHandler(this); window.setWidget(getFrame()); } return window; } }