package de.unisiegen.gtitool.ui.preferences.item;
import de.unisiegen.gtitool.logger.Logger;
import de.unisiegen.gtitool.ui.preferences.PreferenceManager;
/**
* Indicates which zoom factor is choosen.
*
* @author Christian Fehler
* @version $Id$
*/
public enum ZoomFactorItem
{
/**
* The zoom factor for 50 percent.
*/
ZOOM_50 ( 50 ),
/**
* The zoom factor for 100 percent.
*/
ZOOM_100 ( 100 ),
/**
* The zoom factor for 150 percent.
*/
ZOOM_150 ( 150 );
/**
* The {@link Logger} for this enum.
*/
private static final Logger logger = Logger.getLogger ( ZoomFactorItem.class );
/**
* Creates a new {@link ZoomFactorItem} of the given zoom factor value, or
* throws an exception if the zoom factor is not supported.
*
* @param zoomFactor The zoom factor value.
* @return A new {@link ZoomFactorItem}.
*/
public static ZoomFactorItem create ( int zoomFactor )
{
switch ( zoomFactor )
{
case 50 :
{
return ZOOM_50;
}
case 100 :
{
return ZOOM_100;
}
case 150 :
{
return ZOOM_150;
}
default :
{
logger.error ( "create", "zoom factor not supported" ); //$NON-NLS-1$ //$NON-NLS-2$
return PreferenceManager.DEFAULT_ZOOM_FACTOR_ITEM;
}
}
}
/**
* The zoom factor.
*/
private int factor;
/**
* Creates a new {@link ZoomFactorItem}.
*
* @param factor The zoom factor.
*/
private ZoomFactorItem ( int factor )
{
this.factor = factor;
}
/**
* Returns the zoom factor.
*
* @return The zoom factor.
*/
public int getFactor ()
{
return this.factor;
}
}