ru.portal.gwt.gwtportal.client.AdminForm.java Source code

Java tutorial

Introduction

Here is the source code for ru.portal.gwt.gwtportal.client.AdminForm.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.portal.gwt.gwtportal.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.i18n.client.HasDirection;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.core.client.resources.ThemeStyles;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer.BorderLayoutData;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.NorthSouthContainer;
import com.sencha.gxt.widget.core.client.menu.Menu;
import com.sencha.gxt.widget.core.client.menu.MenuBar;
import com.sencha.gxt.widget.core.client.menu.MenuBarItem;
import com.sencha.gxt.widget.core.client.menu.MenuItem;
import java.util.Date;

/**
 * ?   ?
 *
 * @author Igor Salnikov <admin@isalnikov.com>
 */
public class AdminForm implements IsWidget {

    private BorderLayoutContainer container;
    private DynamicTreeView tableTreeView;
    private DynamicGridView tableGridView;
    private DynamicEditorView dynamicEditorView;

    private HTML logsHtml;

    public AdminForm() {
    }

    @Override
    public Widget asWidget() {
        if (container == null) {

            tableTreeView = new DynamicTreeView();
            tableGridView = new DynamicGridView();
            dynamicEditorView = new DynamicEditorView();

            container = new BorderLayoutContainer();
            container.setContextMenu(null);
            container.setBorders(true);

            //top menu
            MenuBar bar = new MenuBar();
            bar.addStyleName(ThemeStyles.get().style().borderBottom());
            MenuBarItem item = new MenuBarItem("??");

            Menu menu = new Menu();
            //          //menu.addSelectionHandler(handler);
            //
            MenuItem prop = new MenuItem("User property");
            menu.add(prop);
            //
            item.setMenu(menu);
            bar.add(item);

            //
            BorderLayoutData northData = new BorderLayoutData(20);
            northData.setMargins(new Margins(5));
            northData.setCollapsible(false);
            northData.setCollapseMini(false);
            //
            BorderLayoutData westData = new BorderLayoutData(350);
            westData.setCollapsible(true);
            westData.setCollapseMini(true);
            westData.setSplit(true);
            westData.setMargins(new Margins(5));
            westData.setMinSize(100);
            westData.setMaxSize(350);
            //
            MarginData centerData = new MarginData(5);
            //
            BorderLayoutData eastData = new BorderLayoutData(150);
            eastData.setMargins(new Margins(5));
            eastData.setCollapsible(true);
            eastData.setCollapseMini(true);
            eastData.setSplit(true);
            //  ? ?  
            BorderLayoutData southData = new BorderLayoutData(100);
            southData.setMargins(new Margins(5));
            southData.setCollapsible(true);
            southData.setCollapseMini(true);
            southData.setSplit(true);
            //
            NorthSouthContainer north = new NorthSouthContainer();
            north.setResize(false);
            north.setNorthWidget(bar);
            //
            ContentPanel west = new ContentPanel();
            west.add(tablesTreeView());
            //
            ContentPanel center = new ContentPanel();
            center.setResize(false);
            center.add(tablesGridView());

            ContentPanel south = new ContentPanel();
            ContentPanel east = new ContentPanel();

            //
            logsHtml = new HTML("loggin...", HasDirection.Direction.LTR) {
                @Override
                public void setHTML(String html) {
                    if (html != null && "clear".equals(html)) {
                        super.setHTML(" ");
                        return;
                    }
                    StringBuilder log = new StringBuilder(this.getHTML());
                    log.append("<br/>");
                    log.append((new Date()).toLocaleString()).append(" : ");
                    log.append(html);
                    super.setHTML(log.toString());
                }
            };
            ScrollPanel logScrollPanel = new ScrollPanel(logsHtml);
            south.add(logScrollPanel);

            east.add(editorView());
            //

            container.setNorthWidget(north, northData);
            container.setWestWidget(west, westData);
            container.setCenterWidget(center, centerData);
            container.setEastWidget(east, eastData);
            container.setSouthWidget(south, southData);

            addSelectionHandlers();

        }

        return container;
    }

    private IsWidget tablesTreeView() {
        return tableTreeView.asWidget();
    }

    private IsWidget tablesGridView() {
        return tableGridView.asWidget();
    }

    private IsWidget editorView() {
        return dynamicEditorView.asWidget();
    }

    private void addSelectionHandlers() {

        tableTreeView.addSelectionHandler(new SelectionHandler<TableFieldsDto>() {

            @Override
            public void onSelection(SelectionEvent<TableFieldsDto> event) {
                TableFieldsDto select = event.getSelectedItem();
                //                GWT.log(select.getClassName());
                logsHtml.setHTML(select.getClassName());
                if (TableDto.class.equals(select.getClass())) {
                    tableGridView.refreshGrid(select.getClassName());
                }
            }
        });

        tableGridView.addSelectionHandler(new SelectionHandler() {
            @Override
            public void onSelection(SelectionEvent event) {
                //   GWT.log(event.getSelectedItem().toString());
                logsHtml.setHTML(event.getSelectedItem().toString());
                //TODO  ? ?   ? ?  ? ...
                TableFieldsDto item = tableTreeView.getSelectedItem();
                dynamicEditorView.refreshEditForm(item, event.getSelectedItem());
            }
        });

    }
}