/******************************************************************************* * Copyright 2011 Antti Havanko * * This file is part of Motiver.fi. * Motiver.fi is licensed under one open source license and one commercial license. * * Commercial license: This is the appropriate option if you want to use Motiver.fi in * commercial purposes. Contact license@motiver.fi for licensing options. * * Open source license: This is the appropriate option if you are creating an open source * application with a license compatible with the GNU GPL license v3. Although the GPLv3 has * many terms, the most important is that you must provide the source code of your application * to your users so they can be free to modify your application for their own needs. ******************************************************************************/ package com.delect.motiver.client.view; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Widget; import com.delect.motiver.client.AppController; import com.delect.motiver.client.presenter.IndexPresenter; import com.delect.motiver.client.res.MyResources; import com.extjs.gxt.ui.client.Style.HorizontalAlignment; import com.extjs.gxt.ui.client.util.Margins; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.Text; import com.extjs.gxt.ui.client.widget.VerticalPanel; import com.extjs.gxt.ui.client.widget.layout.HBoxLayout; import com.extjs.gxt.ui.client.widget.layout.HBoxLayout.HBoxLayoutAlign; import com.extjs.gxt.ui.client.widget.layout.HBoxLayoutData; import com.extjs.gxt.ui.client.widget.layout.RowData; import com.extjs.gxt.ui.client.widget.layout.RowLayout; public class IndexView extends IndexPresenter.IndexDisplay { private MessageBox box; private LayoutContainer content = new LayoutContainer(); private LayoutContainer footer = new LayoutContainer(); private LayoutContainer header = new LayoutContainer(); private LayoutContainer panelPreview = new LayoutContainer(); private LayoutContainer top = new LayoutContainer(); private LayoutContainer panelSignIn = new LayoutContainer(); public IndexView() { this.setLayout(new RowLayout()); //error top.setId("top"); header.add(top); //header header.setId("header"); this.add(header); //logo LayoutContainer panelLogo = new LayoutContainer(); panelLogo.setStyleAttribute("margin", "0 auto 0 auto"); panelLogo.setStyleAttribute("text-align", "center"); panelLogo.add(new Image(MyResources.INSTANCE.logoBig()), new RowData(-1, -1, new Margins(50, 0, 30, 0))); this.add(panelLogo); //content HBoxLayout layout = new HBoxLayout(); layout.setHBoxLayoutAlign(HBoxLayoutAlign.STRETCH); content.setLayout(layout); content.setId("content"); content.setHeight(580); this.add(content); //description LayoutContainer panelDesc = new LayoutContainer(); panelDesc.setLayout(new RowLayout()); panelDesc.setAutoHeight(true); panelDesc.setWidth(550); panelDesc.add(new Text(AppController.Lang.MotiverDesc()), new RowData(-1, -1, new Margins(10, 0, 10, 0))); // data Text title1 = new Text(AppController.Lang.Data()); title1.setStyleName("label-title-big"); panelDesc.add(title1, new HBoxLayoutData(new Margins(30, 0, 15, 0))); panelDesc.add(new Text(AppController.Lang.MotiverDescData()), new RowData(-1, -1, new Margins(0, 0, 10, 0))); // friends Text title2 = new Text(AppController.Lang.Friends()); title2.setStyleName("label-title-big"); panelDesc.add(title2, new HBoxLayoutData(new Margins(30, 0, 15, 0))); panelDesc.add(new Text(AppController.Lang.MotiverDescFriends()), new RowData(-1, -1, new Margins(0, 0, 10, 0))); // price Text title3 = new Text(AppController.Lang.Account()); title3.setStyleName("label-title-big"); panelDesc.add(title3, new HBoxLayoutData(new Margins(30, 0, 15, 0))); panelDesc.add(new Text(AppController.Lang.MotiverDescAccount()), new RowData(-1, -1, new Margins(0, 0, 10, 0))); content.add(panelDesc, new HBoxLayoutData(new Margins(0,20,0,0))); //right panel VerticalPanel panelRight = new VerticalPanel(); panelRight.setSpacing(10); panelPreview.setStyleAttribute("margin-top", "25px"); panelRight.setHorizontalAlign(HorizontalAlignment.CENTER); //preview video panelPreview.setSize(326, 268); panelPreview.setStyleAttribute("margin-bottom", "50px"); panelRight.add(panelPreview); //sign in panelRight.add(panelSignIn); content.add(panelRight, new HBoxLayoutData(new Margins(0, 75, 10, 20))); footer = new LayoutContainer(); footer.setId("footer"); footer.layout(); this.add(footer); } @Override public Widget asWidget() { return this; } @Override public LayoutContainer getFooterContainer() { return footer; } @Override public LayoutContainer getHeaderContainer() { return header; } @Override public LayoutContainer getInfoContainer() { return this; } @Override public LayoutContainer getPreviewVideoContainer() { return panelPreview; } @Override public LayoutContainer getSignInContainer() { return panelSignIn; } @Override public void onStop() { if(box != null && box.isVisible()) { box.close(); } } @Override public void showProgressBox(boolean show) { //hide if(box != null && box.isVisible()) { box.close(); } //show if(show) { box = MessageBox.wait(AppController.Lang.SigningIn(), AppController.Lang.PleaseWait(), AppController.Lang.Loading() + "..."); } } @Override public LayoutContainer getMessageContainer() { return top; } }