SourceForge: jiu/jiu: changeset 51:86f7e131326d
ReduceGrayscaleDialog: replaced constants with a DitheringMethod enum. java-1.5
authorKnut Arild Erstad <knutae@gmail.com>
Sat Aug 08 22:35:08 2009 +0200 (3 months ago)
branchjava-1.5
changeset 5186f7e131326d
parent 50306014bbfae6
child 526e420c51098f
ReduceGrayscaleDialog: replaced constants with a DitheringMethod enum.
net/sourceforge/jiu/gui/awt/AwtOperationProcessor.java
net/sourceforge/jiu/gui/awt/dialogs/ReduceGrayscaleDialog.java
     1.1 --- a/net/sourceforge/jiu/gui/awt/AwtOperationProcessor.java	Sat Aug 08 22:30:03 2009 +0200
     1.2 +++ b/net/sourceforge/jiu/gui/awt/AwtOperationProcessor.java	Sat Aug 08 22:35:08 2009 +0200
     1.3 @@ -24,6 +24,7 @@
     1.4  import net.sourceforge.jiu.color.reduction.*;
     1.5  import net.sourceforge.jiu.gui.awt.dialogs.*;
     1.6  import net.sourceforge.jiu.gui.awt.dialogs.MapToArbitraryPaletteDialog.PaletteType;
     1.7 +import net.sourceforge.jiu.gui.awt.dialogs.ReduceGrayscaleDialog.DitheringMethod;
     1.8  import net.sourceforge.jiu.codecs.*;
     1.9  import net.sourceforge.jiu.data.*;
    1.10  import net.sourceforge.jiu.filters.*;
    1.11 @@ -409,7 +410,7 @@
    1.12  		PixelImage image = state.getImage();
    1.13  		int maxBits = image.getBitsPerPixel() - 1;
    1.14  		ReduceGrayscaleDialog rgd = new ReduceGrayscaleDialog(frame, strings, 1, maxBits, 
    1.15 -			ReduceGrayscaleDialog.TYPE_FLOYD_STEINBERG_ERROR_DIFFUSION);
    1.16 +			DitheringMethod.FLOYD_STEINBERG_ERROR_DIFFUSION);
    1.17  		rgd.setVisible(true);
    1.18  		if (!rgd.hasPressedOk())
    1.19  		{
    1.20 @@ -419,7 +420,7 @@
    1.21  		ImageToImageOperation op = null;
    1.22  		switch (rgd.getDitheringMethod())
    1.23  		{
    1.24 -			case(ReduceGrayscaleDialog.TYPE_DITHERING_NONE):
    1.25 +			case NONE:
    1.26  			{
    1.27  				ReduceShadesOfGray rsog;
    1.28  				rsog = new ReduceShadesOfGray();
    1.29 @@ -427,14 +428,14 @@
    1.30  				op = rsog;
    1.31  				break;
    1.32  			}
    1.33 -			case(ReduceGrayscaleDialog.TYPE_ORDERED_DITHERING):
    1.34 +			case ORDERED:
    1.35  			{
    1.36  				OrderedDither od = new OrderedDither();
    1.37  				od.setOutputBits(numBits);
    1.38  				op = od;
    1.39  				break;
    1.40  			}
    1.41 -			case(ReduceGrayscaleDialog.TYPE_FLOYD_STEINBERG_ERROR_DIFFUSION):
    1.42 +			case FLOYD_STEINBERG_ERROR_DIFFUSION:
    1.43  			{
    1.44  				ErrorDiffusionDithering ed = new ErrorDiffusionDithering();
    1.45  				ed.setTemplateType(ErrorDiffusionType.FLOYD_STEINBERG);
    1.46 @@ -442,7 +443,7 @@
    1.47  				op = ed;
    1.48  				break;
    1.49  			}
    1.50 -			case(ReduceGrayscaleDialog.TYPE_STUCKI_ERROR_DIFFUSION):
    1.51 +			case STUCKI_ERROR_DIFFUSION:
    1.52  			{
    1.53  				ErrorDiffusionDithering ed = new ErrorDiffusionDithering();
    1.54  				ed.setTemplateType(ErrorDiffusionType.STUCKI);
    1.55 @@ -450,7 +451,7 @@
    1.56  				op = ed;
    1.57  				break;
    1.58  			}
    1.59 -			case(ReduceGrayscaleDialog.TYPE_BURKES_ERROR_DIFFUSION):
    1.60 +			case BURKES_ERROR_DIFFUSION:
    1.61  			{
    1.62  				ErrorDiffusionDithering ed = new ErrorDiffusionDithering();
    1.63  				ed.setTemplateType(ErrorDiffusionType.BURKES);
    1.64 @@ -458,7 +459,7 @@
    1.65  				op = ed;
    1.66  				break;
    1.67  			}
    1.68 -			case(ReduceGrayscaleDialog.TYPE_SIERRA_ERROR_DIFFUSION):
    1.69 +			case SIERRA_ERROR_DIFFUSION:
    1.70  			{
    1.71  				ErrorDiffusionDithering ed = new ErrorDiffusionDithering();
    1.72  				ed.setTemplateType(ErrorDiffusionType.SIERRA);
    1.73 @@ -466,7 +467,7 @@
    1.74  				op = ed;
    1.75  				break;
    1.76  			}
    1.77 -			case(ReduceGrayscaleDialog.TYPE_JARVIS_JUDICE_NINKE_ERROR_DIFFUSION):
    1.78 +			case JARVIS_JUDICE_NINKE_ERROR_DIFFUSION:
    1.79  			{
    1.80  				ErrorDiffusionDithering ed = new ErrorDiffusionDithering();
    1.81  				ed.setTemplateType(ErrorDiffusionType.JARVIS_JUDICE_NINKE);
    1.82 @@ -474,7 +475,7 @@
    1.83  				op = ed;
    1.84  				break;
    1.85  			}
    1.86 -			case(ReduceGrayscaleDialog.TYPE_STEVENSON_ARCE_ERROR_DIFFUSION):
    1.87 +			case STEVENSON_ARCE_ERROR_DIFFUSION:
    1.88  			{
    1.89  				ErrorDiffusionDithering ed = new ErrorDiffusionDithering();
    1.90  				ed.setTemplateType(ErrorDiffusionType.STEVENSON_ARCE);
     2.1 --- a/net/sourceforge/jiu/gui/awt/dialogs/ReduceGrayscaleDialog.java	Sat Aug 08 22:30:03 2009 +0200
     2.2 +++ b/net/sourceforge/jiu/gui/awt/dialogs/ReduceGrayscaleDialog.java	Sat Aug 08 22:35:08 2009 +0200
     2.3 @@ -23,7 +23,10 @@
     2.4  import java.awt.event.ActionListener;
     2.5  import java.awt.event.AdjustmentEvent;
     2.6  import java.awt.event.AdjustmentListener;
     2.7 +
     2.8 +import net.sourceforge.jiu.apps.StringIndexConstants;
     2.9  import net.sourceforge.jiu.apps.Strings;
    2.10 +import net.sourceforge.jiu.util.EnumHelper;
    2.11  
    2.12  /**
    2.13   * A dialog to enter the parameters for a grayscale reduction operation.
    2.14 @@ -31,37 +34,37 @@
    2.15   */
    2.16  public class ReduceGrayscaleDialog extends Dialog implements ActionListener, AdjustmentListener
    2.17  {
    2.18 -	public static final int TYPE_DITHERING_NONE = 0;
    2.19 -	public static final int TYPE_ORDERED_DITHERING = 1;
    2.20 -	public static final int TYPE_FLOYD_STEINBERG_ERROR_DIFFUSION = 2;
    2.21 -	public static final int TYPE_STUCKI_ERROR_DIFFUSION = 3;
    2.22 -	public static final int TYPE_BURKES_ERROR_DIFFUSION = 4;
    2.23 -	public static final int TYPE_SIERRA_ERROR_DIFFUSION = 5;
    2.24 -	public static final int TYPE_JARVIS_JUDICE_NINKE_ERROR_DIFFUSION = 6;
    2.25 -	public static final int TYPE_STEVENSON_ARCE_ERROR_DIFFUSION = 7;
    2.26 -	public final int[][] DITHERING_METHODS =
    2.27 +	/**
    2.28 +	 * Enumerates the possible dithering methods.
    2.29 +	 */
    2.30 +	public enum DitheringMethod
    2.31  	{
    2.32 +		NONE (Strings.DITHERING_NONE),
    2.33 +		ORDERED (Strings.ORDERED_DITHERING),
    2.34 +		FLOYD_STEINBERG_ERROR_DIFFUSION (Strings.FLOYD_STEINBERG_ERROR_DIFFUSION),
    2.35 +		STUCKI_ERROR_DIFFUSION (Strings.STUCKI_ERROR_DIFFUSION),
    2.36 +		BURKES_ERROR_DIFFUSION (Strings.BURKES_ERROR_DIFFUSION),
    2.37 +		SIERRA_ERROR_DIFFUSION (Strings.SIERRA_ERROR_DIFFUSION),
    2.38 +		JARVIS_JUDICE_NINKE_ERROR_DIFFUSION (Strings.JARVIS_JUDICE_NINKE_ERROR_DIFFUSION),
    2.39 +		STEVENSON_ARCE_ERROR_DIFFUSION (Strings.STEVENSON_ARCE_ERROR_DIFFUSION);
    2.40 +		
    2.41 +		private int stringConstant;
    2.42 +		
    2.43 +		private DitheringMethod(int stringConstant)
    2.44  		{
    2.45 -		 TYPE_DITHERING_NONE,
    2.46 -		 TYPE_ORDERED_DITHERING,
    2.47 -		 TYPE_FLOYD_STEINBERG_ERROR_DIFFUSION,
    2.48 -		 TYPE_STUCKI_ERROR_DIFFUSION,
    2.49 -		 TYPE_BURKES_ERROR_DIFFUSION,
    2.50 -		 TYPE_SIERRA_ERROR_DIFFUSION,
    2.51 -		 TYPE_JARVIS_JUDICE_NINKE_ERROR_DIFFUSION,
    2.52 -		 TYPE_STEVENSON_ARCE_ERROR_DIFFUSION
    2.53 -		},
    2.54 +			this.stringConstant = stringConstant;
    2.55 +		}
    2.56 +		
    2.57 +		/**
    2.58 +		 * Get a string resource index which describes the enum value.
    2.59 +		 * @return a {@link StringIndexConstants} value.
    2.60 +		 */
    2.61 +		public int getStringConstant()
    2.62  		{
    2.63 -		 Strings.DITHERING_NONE,
    2.64 -		 Strings.ORDERED_DITHERING,
    2.65 -		 Strings.FLOYD_STEINBERG_ERROR_DIFFUSION,
    2.66 -		 Strings.STUCKI_ERROR_DIFFUSION,
    2.67 -		 Strings.BURKES_ERROR_DIFFUSION,
    2.68 -		 Strings.SIERRA_ERROR_DIFFUSION,
    2.69 -		 Strings.JARVIS_JUDICE_NINKE_ERROR_DIFFUSION,
    2.70 -		 Strings.STEVENSON_ARCE_ERROR_DIFFUSION
    2.71 +			return stringConstant;
    2.72  		}
    2.73 -	};
    2.74 +	}
    2.75 +
    2.76  	private Strings strings;
    2.77  	private Button ok;
    2.78  	private Button cancel;
    2.79 @@ -80,7 +83,7 @@
    2.80  	 * @param ditheringMethodSelection initial selection of dithering method
    2.81  	 */
    2.82  	public ReduceGrayscaleDialog(Frame owner, Strings strings, int bits, int  maxBits,
    2.83 -		int ditheringMethodSelection)
    2.84 +		DitheringMethod ditheringMethodSelection)
    2.85  	{
    2.86  		super(owner, strings.get(Strings.REDUCE_NUMBER_OF_SHADES_OF_GRAY), true);
    2.87  		pressedOk = false;
    2.88 @@ -100,12 +103,12 @@
    2.89  
    2.90  		panel.add(new Label(strings.get(Strings.DITHERING_METHOD)));
    2.91  		ditheringMethod = new Choice();
    2.92 -		for (int i = 0; i < DITHERING_METHODS[0].length; i++)
    2.93 +		for (DitheringMethod method: DitheringMethod.values())
    2.94  		{
    2.95 -			ditheringMethod.add(strings.get(DITHERING_METHODS[1][i]));
    2.96 -			if (ditheringMethodSelection == i)
    2.97 +			ditheringMethod.add(strings.get(method.getStringConstant()));
    2.98 +			if (method == ditheringMethodSelection)
    2.99  			{
   2.100 -				ditheringMethod.select(i);
   2.101 +				ditheringMethod.select(method.ordinal());
   2.102  			}
   2.103  		}
   2.104  		panel.add(ditheringMethod);
   2.105 @@ -164,9 +167,9 @@
   2.106  			(screenSize.height / 2) - (height / 2));
   2.107  	}
   2.108  
   2.109 -	public int getDitheringMethod()
   2.110 +	public DitheringMethod getDitheringMethod()
   2.111  	{
   2.112 -		return DITHERING_METHODS[0][ditheringMethod.getSelectedIndex()];
   2.113 +		return EnumHelper.fromOrdinal(DitheringMethod.values(), ditheringMethod.getSelectedIndex());
   2.114  	}
   2.115  
   2.116  	public int getNumBits()