/**
 *
 */
package com.tootsville.tootsbook.client.pages;

import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.tootsville.tootsbook.client.TootsBook;
import com.tootsville.tootsbook.client.panel.AvatarBox;
import com.tootsville.tootsbook.client.panel.Box;
import com.tootsville.tootsbook.client.util.UserProfile;

/**
 * WRITEME: Document this type. twheys@gmail.com Jan 19, 2010
 * 
 * @author <a href="mailto:twheys@gmail.com@resinteractive.com">Tim
 *         Heys</a>
 */
public class CollectionsPage extends VerticalPanel {
	/**
	 * WRITEME: Document this type. twheys@gmail.com Jan 19, 2010
	 * 
	 * @author <a href="mailto:twheys@gmail.com@resinteractive.com">Tim
	 *         Heys</a>
	 */
	public enum Page {
		/**
		 * WRITEME twheys@gmail.com
		 */
		KATOOTELS {
			/**
			 * @see java.lang.Enum#toString()
			 */
			@Override
			public String toString () {
				return "Katootels";
			}
		},

		/**
		 * WRITEME twheys@gmail.com
		 */
		PIVITPALS {
			/**
			 * @see java.lang.Enum#toString()
			 */
			@Override
			public String toString () {
				return "PivitPals";
			}
		},
		/**
		 * WRITEME twheys@gmail.com
		 */
		PIVITZ {
			/**
			 * @see java.lang.Enum#toString()
			 */
			@Override
			public String toString () {
				return "Pivitz";
			}
		},

		/**
		 * WRITEME twheys@gmail.com
		 */
		POSTERS {
			/**
			 * @see java.lang.Enum#toString()
			 */
			@Override
			public String toString () {
				return "Posters";
			}
		},

		/**
		 * WRITEME twheys@gmail.com
		 */
		TOOTFINDS {
			/**
			 * @see java.lang.Enum#toString()
			 */
			@Override
			public String toString () {
				return "Toot Finds";
			}
		}
	}

	/**
	 * WRITEME twheys@gmail.com
	 */
	private Box avatarBox;

	/**
	 * WRITEME twheys@gmail.com
	 */
	private Box contentBox;

	/**
	 * WRITEME twheys@gmail.com
	 */
	private FlowPanel contentPanel;

	/**
	 * WRITEME twheys@gmail.com
	 */
	private final Page page;

	/**
	 * WRITEME twheys@gmail.com
	 */
	private final UserProfile user;

	/**
	 * WRITEME twheys@gmail.com
	 * 
	 * @param userInfo WRITEME twheys@gmail.com
	 * @param pageType WRITEME twheys@gmail.com
	 */
	public CollectionsPage (final UserProfile userInfo,
			final Page pageType) {
		user = userInfo;
		page = pageType;

		TootsBook.loadBoxStylesStyleSheet (user.getBoxStyleURL ());
		TootsBook.loadPageBGStyleSheet (user.getPageStyleURL ());
		TootsBook.loadTitleBGStyleSheet (user.getTitleStyleURL ());
		Window.setTitle ("Collections - TootsBook® www.Tootsville.com");

		buildAvatarPanel ();
		add (avatarBox);

		buildContentPanel ();
		add (contentBox);

		loadContent (pageType);

		TootsBook.hideLoadingBar ();
	}

	/**
	 * <pre>
	 * twheys@gmail.com Dec 31, 2009
	 * </pre>
	 * 
	 * TO buildAvatarPanel WRITEME...
	 */
	private void buildAvatarPanel () {
		final AvatarBox avatarPanel = new AvatarBox (
				String.valueOf (user.getUserID ()),
				user.getAvatarBgURL ());
		avatarPanel.setStyleName ("avatar-portrait");

		// put this panel in the UI container
		avatarBox = new Box (avatarPanel, "Player Card", "", "");

		// build the container.
		avatarBox.pack ();
	}

	/**
	 * <pre>
	 * twheys@gmail.com Jan 19, 2010
	 * </pre>
	 * 
	 * TO buildContentPanel WRITEME...
	 */
	private void buildContentPanel () {
		contentPanel = new FlowPanel ();

		contentPanel.setSize ("880px", "500px");

		contentBox = new Box (contentPanel, "Collections:        "
				+ page.toString ());

		// build the container.
		contentBox.pack ();
	}

	/**
	 * <pre>
	 * twheys@gmail.com Jan 19, 2010
	 * </pre>
	 * 
	 * TO loadContent WRITEME...
	 * 
	 * @param pageType WRITEME twheys@gmail.com
	 */
	private void loadContent (final Page pageType) {
		// GET DATA FROM SERVER

	}
}
