/**
 * 
 */
package org.saig.jump.plugin.DisegnaPoligono;

import javax.swing.Icon;

import org.saig.jump.widgets.util.DialogFactory;

import com.vividsolutions.jump.workbench.JUMPWorkbench;
import com.vividsolutions.jump.workbench.plugin.EnableCheck;
import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory;
import com.vividsolutions.jump.workbench.plugin.PlugIn;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
import com.vividsolutions.jump.workbench.ui.cursortool.editing.DrawPolygonTool;
import com.vividsolutions.jump.workbench.ui.cursortool.editing.FeatureDrawingUtil;
import com.vividsolutions.jump.workbench.ui.images.IconLoader;

/**
 * @author giovanni
 *
 */
public class DisegnaPoligonoPlugIn extends DrawPolygonTool implements PlugIn {


	protected DisegnaPoligonoPlugIn(FeatureDrawingUtil featureDrawingUtil) {
		super(featureDrawingUtil);
	}

	/** Nome Plugin  */
    public final static String NAME = "Nuovo Poligono";

    /** Icona Plugin */
    public final static Icon ICON = IconLoader.icon("DrawPolygon.gif");

    @Override
    public String getName() {
        return NAME;
    }

    @Override
    public Icon getIcon() {
        return ICON;
    }
    
	@Override
	public Icon getDisabledIcon() {
		return null;
	}
    
	@Override
	public void initialize(PlugInContext context) throws Exception 
	{
	/**Aggiungo il plugin alla toolbar */
     context.getWorkbenchFrame().getToolBar().addPlugIn(this, context.getWorkbenchContext());
	}

	@Override
	public boolean execute(PlugInContext context) throws Exception
	{
	//Visualizzo un messaggio con il codice e l'area dell'elemento    
      DialogFactory.showInformationDialog(context.getWorkbenchFrame(), 
               							  "Nuovo poligono ",        
                        				  "Disegna poligono");   
	  return true;
	}

	@Override
	public void finish(PlugInContext context) 
	{
	/**Rimuovo il plugin dall toolbar */
      context.getWorkbenchFrame().getToolBar().removePlugIn(this);
	}
 
	@Override
	public EnableCheck getCheck() 
	{
	  EnableCheckFactory factory = new EnableCheckFactory(JUMPWorkbench.getFrameInstance()
	                                    .getContext());

	  return factory.createTaskWindowMustBeActiveCheck();
	}

}
