/*
* Copyright 2011 Serbian Object Laboratories (SOL)
*
* Licensed under the GPL licence
*
* http://www.gnu.org/licenses/gpl.html
*/
package companyorganization;
import rs.sol.soloist.helpers.init.DefaultContextInit;
import rs.sol.soloist.helpers.init.Initializer;
import rs.sol.soloist.helpers.init.InitializerFailedException;
import rs.sol.soloist.server.builtindomains.builtindatatypes.Text;
import rs.sol.soloist.server.guiconfiguration.components.GUIApplicationComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUIDeckComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUIHTMLComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUIImageComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUILabelComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUILinkComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUIPanelComponent;
import rs.sol.soloist.server.guiconfiguration.components.GUIStatusBarComponent;
import rs.sol.soloist.server.guiconfiguration.layout.CellLayoutData;
import rs.sol.soloist.server.guiconfiguration.layout.HorizontalAlignment;
import rs.sol.soloist.server.guiconfiguration.layout.VerticalAlignment;
import rs.sol.soloist.server.guiconfiguration.style.GUIContext;
import rs.sol.soloist.server.server.SoloistServiceServlet;
public class ApplicationInit implements Initializer {
private static final String COPYRIGHT_TEXT = "Copyright © 2011 - Serbian Object Laboratories (SOL) - Licence ";
private static final String TITLE = "SOLoist Demo - Company Organization";
private GUIApplicationComponent application;
private GUIContext context;
private GUIPanelComponent mainPanel;
private GUIPanelComponent titlePanel;
private GUIDeckComponent centralPanel;
public void init() throws InitializerFailedException {
application = new GUIApplicationComponent();
SoloistServiceServlet.registerApplication(application);
application.name.set(Text.fromString("CompanyOrganization"));
application.title.set(Text.fromString("Company Organization"));
context = new GUIContext();
context.supercontext.set(DefaultContextInit.getRoot());
application.context.set(context);
mainPanel = GUIPanelComponent.createVertical(application);
mainPanel.styleName.set(Text.fromString("main_panel"));
// Title
titlePanel = GUIPanelComponent.createHorizontal(mainPanel);
titlePanel.styleName.set(Text.fromString("titlePanel"));
CellLayoutData.setAlignment(titlePanel, VerticalAlignment.TOP);
CellLayoutData.setCellSize(titlePanel, "100%", "80");
// Logo
GUIImageComponent leftLogoComponent = GUIImageComponent.create(titlePanel);
leftLogoComponent.url.set(Text.fromString("res/img/logo-left.png"));
leftLogoComponent.styleName.set(Text.fromString("logo-image"));
CellLayoutData.setCellSize(leftLogoComponent, "200", null);
GUILabelComponent pageTitle = GUILabelComponent.create(titlePanel, TITLE, null);
pageTitle.styleName.set(Text.fromString("page_title"));
GUILinkComponent poweredBy = GUILinkComponent.create(titlePanel, "Powered by SOLoist", "http://www.soloist4uml.com/");
poweredBy.styleName.set(Text.fromString("poweredBy"));
CellLayoutData.setAlignment(poweredBy, VerticalAlignment.BOTTOM);
// Central panel
centralPanel = GUIDeckComponent.create(GUIPanelComponent.createFlow(mainPanel));
centralPanel.styleName.set(Text.fromString("centralPanel"));
// Bottom panel
GUIPanelComponent bottomPanel = GUIPanelComponent.createVertical(mainPanel);
bottomPanel.styleName.set(Text.fromString("bottomPanel"));
GUIPanelComponent statusBarPanel = GUIPanelComponent.createHorizontal(bottomPanel);
statusBarPanel.styleName.set(Text.fromString("status_bar_panel"));
CellLayoutData.setCellSize(statusBarPanel, "100%", null);
GUILabelComponent statusBarLabel = GUILabelComponent.create(statusBarPanel, "Status bar: ", null);
CellLayoutData.setCellSize(statusBarLabel, "75px", null);
statusBarLabel.styleName.set(Text.fromString("status_bar_label"));
GUIStatusBarComponent statusBar = GUIStatusBarComponent.create(statusBarPanel);
statusBar.styleName.set(Text.fromString("status_bar"));
GUIHTMLComponent html = new GUIHTMLComponent();
html.parent.set(statusBarPanel);
html.html.set(Text.fromString(COPYRIGHT_TEXT));
html.styleName.set(Text.fromString("footer_panel"));
CellLayoutData.setAlignment(html, HorizontalAlignment.LEFT);
CellLayoutData.setSize(html, "400", null);
}
}