/**
 * 
 */
package com.planimod.ui.views.admin.product;

import java.util.Arrays;
import java.util.List;

import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.window.IShellProvider;

import com.patrikdufresne.managers.ManagedObject;
import com.patrikdufresne.util.Localized;
import com.planimod.core.PlanimodManagers;
import com.planimod.core.Product;
import com.planimod.ui.theme.Resources;
import com.planimod.ui.views.AbstractAddAction;

/**
 * Action to create a new Rider object and add it to the database.
 * 
 * @author dufresne
 * 
 */
public class AddProductAction extends AbstractAddAction {
	/**
	 * Create a new action.
	 * 
	 * @param shellProvider
	 *            a shell provider in case the action need to display a message
	 *            box.
	 */
	public AddProductAction(PlanimodManagers managers,
			IShellProvider shellProvider, ISelectionProvider selectionProvider) {
		super(managers, shellProvider, selectionProvider);
		setText(Localized.get(AddProductAction.class, "AddProductAction.text")); //$NON-NLS-1$
		setToolTipText(Localized.get(AddProductAction.class,
				"AddProductAction.tooltipText")); //$NON-NLS-1$
		setImageDescriptor(Resources
				.getImageDescriptor(Resources.ICON_LIST_ADD_16));
	}

	/**
	 * This implementation always return true.
	 * 
	 * @see net.ekwos.gymkhana.ui.views.AbstractAddAction#canCreateObject()
	 */
	@Override
	protected boolean canCreateObject() {
		return true;
	}

	/**
	 * This implementation create rider object.
	 * 
	 * @see net.ekwos.gymkhana.ui.views.AbstractAddAction#createObjects()
	 */
	@Override
	protected List<? extends ManagedObject> createObjects() {
		Product p = new Product();
		p.setName(Localized.get(AddProductAction.class,
				"AddProductAction.newProductName")); //$NON-NLS-1$
		return Arrays.asList(p);
	}

}