package com.jreactor.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalSplitPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.TreeListener;

public class UserInterface implements EntryPoint {

	public void onModuleLoad() {
		Command cmd = new Command() {
			public void execute() {
				Window.alert("You selected a menu item!");
			}
		};

		final MenuBar fileMenu = new MenuBar(true);
		fileMenu.addItem("Create", cmd);
		fileMenu.addItem("Save", cmd);
		fileMenu.addItem("Exit", cmd);

		final MenuBar viewMenu = new MenuBar(true);
		viewMenu.addItem("Refresh", cmd);

		final MenuBar optionsMenu = new MenuBar(true);
		optionsMenu.addItem("Settings", cmd);
		optionsMenu.addItem("About", cmd);

		final MenuBar menu = new MenuBar();
		menu.addItem("File", fileMenu);
		menu.addItem("View", viewMenu);
		menu.addItem("Options", optionsMenu);

		RootPanel.get().add(menu);
		
		final HorizontalSplitPanel panel = new HorizontalSplitPanel();
		panel.setTitle("Split Panel Example");
		panel.setWidth("100%");
		panel.setHeight("400px");
		panel.setSplitPosition("150px");
		RootPanel.get().add(panel);
		
		final TreeItem root = new TreeItem("/home");
		final TreeItem sub = new TreeItem("ghost");
		root.addItem(sub);
		root.addItem("javateam");
		root.addItem("googleboy");
		sub.addItem(".bash_profile");
		sub.addItem(".login");
		sub.addItem("ReadMe.txt");
		
		final Label editLabel = new Label("none");
		
	    final Tree categoryTree = new Tree();
	    categoryTree.addItem(root);
	    categoryTree.setSize("100%", "100%");
	    categoryTree.addTreeListener(new TreeListener() {
			public void onTreeItemSelected(TreeItem treeItem) {
				editLabel.setText(treeItem.getText());
			}

			public void onTreeItemStateChanged(TreeItem treeItem) {
				//nothing
			}
	    });
		panel.setLeftWidget(categoryTree);
		
		final Label label = new Label("Selected item:");
		
		final FlowPanel right = new FlowPanel();
		right.add(label);
		right.add(editLabel);
		right.setSize("100%", "100%");
		right.addStyleName("contentPanel");
		panel.setRightWidget(right);
	}
}
