/*
* Copyright (c) 2011 PonySDK
* Owners:
* Luciano Broussal <luciano.broussal AT gmail.com>
* Mathieu Barbier <mathieu.barbier AT gmail.com>
* Nicolas Ciaravola <nicolas.ciaravola.pro AT gmail.com>
*
* WebSite:
* http://code.google.com/p/pony-sdk/
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.ponysdk.impl.webapplication.application;
import com.ponysdk.core.model.PUnit;
import com.ponysdk.core.ui.basic.*;
public class DefaultApplicationView implements ApplicationView {
protected PDockLayoutPanel panel;
protected PSimplePanel header;
protected PSimpleLayoutPanel menu;
protected PSimplePanel body;
protected PSimplePanel footer;
protected PSimplePanel logs;
protected PSplitLayoutPanel center;
private PUnit unit = PUnit.PX;
private int headerHeight = 30;
private int footerHeight = 20;
private int logsHeight = 130;
private int menuWidth = 190;
@Override
public PWidget asWidget() {
if (panel == null) {
buildUI();
}
return panel;
}
private void buildUI() {
panel = Element.newPDockLayoutPanel(unit);
buildHeader();
buildFooter();
buildCenter();
panel.add(center);
}
protected void buildFooter() {
footer = Element.newPSimpleLayoutPanel();
panel.addSouth(footer, footerHeight);
}
protected void buildHeader() {
header = Element.newPSimpleLayoutPanel();
panel.addNorth(header, headerHeight);
}
protected void buildCenter() {
center = Element.newPSplitLayoutPanel();
buildLogs();
buildMenu();
buildBody();
}
protected void buildBody() {
body = Element.newPSimpleLayoutPanel();
center.add(body);
}
protected void buildMenu() {
menu = Element.newPSimpleLayoutPanel();
center.addWest(menu, menuWidth);
}
protected void buildLogs() {
logs = Element.newPSimpleLayoutPanel();
center.addSouth(logs, logsHeight);
}
@Override
public PSimplePanel getHeader() {
return header;
}
@Override
public PSimplePanel getMenu() {
return menu;
}
@Override
public PSimplePanel getBody() {
return body;
}
@Override
public PSimplePanel getFooter() {
return footer;
}
@Override
public PSimplePanel getLogs() {
return logs;
}
public void setUnit(final PUnit unit) {
this.unit = unit;
}
public void setHeaderHeight(final int height) {
this.headerHeight = height;
}
public void setFooterHeight(final int height) {
this.footerHeight = height;
}
public void setLogsHeight(final int height) {
this.logsHeight = height;
}
public void setMenuWidth(final int menuWidth) {
this.menuWidth = menuWidth;
}
}