/**
 * THE StoreItemPanel.java WRITEME...
 */
package com.tootsville.tootsbook.client.panel;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.tootsville.tootsbook.client.TootsBook;
import com.tootsville.tootsbook.client.util.StoreItem;

/**
 * WRITEME: Document this type. twheys@gmail.com Feb 25, 2010
 * 
 * @author <a href="mailto:twheys@gmail.com@resinteractive.com">Tim
 *         Heys</a>
 * 
 */
public class StoreItemPanel extends Composite {
	/**
	 * 
	 */
	protected StoreItem storeItem;

	/**
	 * <pre>
	 * twheys@gmail.com Feb 25, 2010
	 * </pre>
	 * 
	 * A StoreItemPanel WRITEME...
	 * 
	 */
	public StoreItemPanel () {
		// no op
	}

	/**
	 * <pre>
	 * twheys@gmail.com Feb 25, 2010
	 * </pre>
	 * 
	 * A StoreItemPanel WRITEME...
	 * 
	 * @param item WRITEME
	 */
	public StoreItemPanel (final StoreItem item) {
		storeItem = item;
		final VerticalPanel verticalTable = new VerticalPanel ();
		verticalTable
				.setHorizontalAlignment (HasHorizontalAlignment.ALIGN_CENTER);
		final FocusPanel panel = new FocusPanel (verticalTable);
		panel.addClickHandler (getClickHandler ());
		initWidget (panel);
		verticalTable.add (new Image (storeItem.getItemURL ()));
		final Label priceLabel = new Label ("" + item.getItemPrice ());
		priceLabel.setStyleName ("primary-text");
		verticalTable.add (priceLabel);
		setTitle (storeItem.getItemName ());
		setStyleName ("store-item");
	}

	/**
	 * <pre>
	 * twheys@gmail.com Feb 25, 2010
	 * </pre>
	 * 
	 * TO getClickHandler WRITEME...
	 * 
	 * @return WRITEME
	 */
	private ClickHandler getClickHandler () {
		return new ClickHandler () {
			@Override
			public void onClick (final ClickEvent event) {
				TootsBook.showPopup (new StoreItemPreviewPopup (
						storeItem));
			}
		};

	}
}
