001 /* 002 * MenuWrapper 003 * 004 * Copyright (c) 2001, 2002, 2003, 2004 Marco Schmidt. 005 * All rights reserved. 006 */ 007 008 package net.sourceforge.jiu.apps; 009 010 /** 011 * Abstract menu wrapper. 012 * A menu consists of a number of menu elements, each of which have a text, 013 * an enabled status and an int constant from MenuIndexConstants associated with it. 014 * @author Marco Schmidt 015 */ 016 public abstract class MenuWrapper 017 { 018 /** 019 * Attempts to find the index of a given object that represents a menu element. 020 * @param o some object representing part of the menu 021 * @return corresponding index value from {@link MenuIndexConstants} on success 022 * or -1 on failure 023 */ 024 public abstract int findIndex(Object o); 025 026 /** 027 * For one of the values in {@link MenuIndexConstants}, returns the corresponding 028 * constant in {@link StringIndexConstants}. 029 * @param menuIndex int value from the MenuIndexConstants interface 030 * @return int value from the StringIndexConstants interface 031 */ 032 public int getStringIndex(int menuIndex) 033 { 034 switch(menuIndex) 035 { 036 case(MenuIndexConstants.FILE): return StringIndexConstants.FILE; 037 case(MenuIndexConstants.FILE_OPEN): return StringIndexConstants.OPEN; 038 case(MenuIndexConstants.FILE_SAVEAS): return StringIndexConstants.SAVE_AS; 039 case(MenuIndexConstants.FILE_SAVEAS_GIF): return StringIndexConstants.GIF; 040 case(MenuIndexConstants.FILE_SAVEAS_PALM): return StringIndexConstants.PALM; 041 case(MenuIndexConstants.FILE_SAVEAS_PBM): return StringIndexConstants.PORTABLE_BITMAP; 042 case(MenuIndexConstants.FILE_SAVEAS_PGM): return StringIndexConstants.PORTABLE_GRAYMAP; 043 case(MenuIndexConstants.FILE_SAVEAS_PNG): return StringIndexConstants.PORTABLE_NETWORK_GRAPHICS; 044 case(MenuIndexConstants.FILE_SAVEAS_PPM): return StringIndexConstants.PORTABLE_PIXMAP; 045 case(MenuIndexConstants.FILE_SAVEAS_SUNRASTER): return StringIndexConstants.SUN_RASTER; 046 case(MenuIndexConstants.FILE_SAVEAS_WINDOWSBMP): return StringIndexConstants.WINDOWS_BITMAP; 047 case(MenuIndexConstants.FILE_CLOSE): return StringIndexConstants.CLOSE; 048 case(MenuIndexConstants.FILE_EXIT): return StringIndexConstants.EXIT; 049 case(MenuIndexConstants.EDIT): return StringIndexConstants.EDIT; 050 case(MenuIndexConstants.EDIT_UNDO): return StringIndexConstants.EDIT_UNDO; 051 case(MenuIndexConstants.EDIT_REDO): return StringIndexConstants.EDIT_REDO; 052 case(MenuIndexConstants.COLOR): return StringIndexConstants.COLOR; 053 case(MenuIndexConstants.COLOR_ADJUST): return StringIndexConstants.ADJUST; 054 case(MenuIndexConstants.COLOR_ADJUST_BRIGHTNESS): return StringIndexConstants.BRIGHTNESS_MENU_ITEM; 055 case(MenuIndexConstants.COLOR_ADJUST_CONTRAST): return StringIndexConstants.CONTRAST_MENU_ITEM; 056 case(MenuIndexConstants.COLOR_ADJUST_GAMMA): return StringIndexConstants.GAMMA_MENU_ITEM; 057 case(MenuIndexConstants.COLOR_ADJUST_HUESATURATIONVALUE): return StringIndexConstants.HUE_SATURATION_VALUE_MENU_ITEM; 058 case(MenuIndexConstants.COLOR_HISTOGRAM): return StringIndexConstants.HISTOGRAM; 059 case(MenuIndexConstants.COLOR_HISTOGRAM_COUNTCOLORSUSED): return StringIndexConstants.COUNT_COLORS_USED; 060 case(MenuIndexConstants.COLOR_HISTOGRAM_EQUALIZE): return StringIndexConstants.EQUALIZE_HISTOGRAM_MENU_ITEM; 061 case(MenuIndexConstants.COLOR_HISTOGRAM_NORMALIZE): return StringIndexConstants.NORMALIZE_HISTOGRAM_MENU_ITEM; 062 case(MenuIndexConstants.COLOR_HISTOGRAM_TEXTUREPROPERTIES): return StringIndexConstants.TEXTURE_PROPERTIES_MENU_ITEM; 063 case(MenuIndexConstants.COLOR_HISTOGRAM_SAVEHISTOGRAMAS): return StringIndexConstants.SAVE_HISTOGRAM_AS_MENU_ITEM; 064 case(MenuIndexConstants.COLOR_HISTOGRAM_SAVECOOCCURRENCEMATRIXAS): return StringIndexConstants.SAVE_COOCCURRENCE_MATRIX_MENU_ITEM; 065 case(MenuIndexConstants.COLOR_HISTOGRAM_SAVECOOCCURRENCEFREQUENCYMATRIXAS): return StringIndexConstants.SAVE_COOCCURRENCE_FREQUENCY_MATRIX_MENU_ITEM; 066 case(MenuIndexConstants.COLOR_PALETTE): return StringIndexConstants.PALETTE_MENU_ITEM; 067 case(MenuIndexConstants.COLOR_PALETTE_SAVEAS): return StringIndexConstants.PALETTE_SAVE_AS_MENU_ITEM; 068 case(MenuIndexConstants.COLOR_PROMOTE): return StringIndexConstants.PROMOTE; 069 case(MenuIndexConstants.COLOR_PROMOTE_PROMOTETOPALETTED): return StringIndexConstants.PROMOTE_TO_PALETTED; 070 case(MenuIndexConstants.COLOR_PROMOTE_PROMOTETOGRAY8): return StringIndexConstants.PROMOTE_TO_GRAY8; 071 case(MenuIndexConstants.COLOR_PROMOTE_PROMOTETOGRAY16): return StringIndexConstants.PROMOTE_TO_GRAY16; 072 case(MenuIndexConstants.COLOR_PROMOTE_PROMOTETORGB24): return StringIndexConstants.PROMOTE_TO_RGB24; 073 case(MenuIndexConstants.COLOR_PROMOTE_PROMOTETORGB48): return StringIndexConstants.PROMOTE_TO_RGB48; 074 case(MenuIndexConstants.COLOR_REDUCE): return StringIndexConstants.REDUCE; 075 case(MenuIndexConstants.COLOR_REDUCE_REDUCETOBILEVELTHRESHOLD): return StringIndexConstants.REDUCE_TO_BILEVEL_THRESHOLD_MENU_ITEM; 076 case(MenuIndexConstants.COLOR_REDUCE_REDUCENUMBEROFSHADESOFGRAY): return StringIndexConstants.REDUCE_NUMBER_OF_SHADES_OF_GRAY_MENU_ITEM; 077 case(MenuIndexConstants.COLOR_REDUCE_CONVERTTOGRAYSCALE): return StringIndexConstants.CONVERT_TO_GRAYSCALE; 078 case(MenuIndexConstants.COLOR_REDUCE_MEDIANCUT): return StringIndexConstants.MEDIAN_CUT; 079 case(MenuIndexConstants.COLOR_REDUCE_OCTREE): return StringIndexConstants.OCTREE_COLOR_QUANTIZATION_MENU_ITEM; 080 case(MenuIndexConstants.COLOR_REDUCE_UNIFORMPALETTE): return StringIndexConstants.UNIFORM_PALETTE_COLOR_QUANTIZATION_MENU_ITEM; 081 case(MenuIndexConstants.COLOR_REDUCE_MAPTOARBITRARYPALETTE): return StringIndexConstants.MAP_TO_ARBITRARY_PALETTE_MENU_ITEM; 082 case(MenuIndexConstants.COLOR_INVERT): return StringIndexConstants.INVERT; 083 case(MenuIndexConstants.COLOR_CONVERTTOMINIMUMCOLORTYPE): return StringIndexConstants.CONVERT_TO_MINIMUM_COLOR_TYPE_MENU_ITEM; 084 case(MenuIndexConstants.TRANSFORMATIONS): return StringIndexConstants.TRANSFORMATIONS; 085 case(MenuIndexConstants.TRANSFORMATIONS_FLIP): return StringIndexConstants.FLIP; 086 case(MenuIndexConstants.TRANSFORMATIONS_MIRROR): return StringIndexConstants.MIRROR; 087 case(MenuIndexConstants.TRANSFORMATIONS_ROTATELEFT90): return StringIndexConstants.ROTATE_90_LEFT; 088 case(MenuIndexConstants.TRANSFORMATIONS_ROTATERIGHT90): return StringIndexConstants.ROTATE_90_RIGHT; 089 case(MenuIndexConstants.TRANSFORMATIONS_ROTATE180): return StringIndexConstants.ROTATE_180; 090 case(MenuIndexConstants.TRANSFORMATIONS_CROP): return StringIndexConstants.CROP_MENU_ITEM; 091 case(MenuIndexConstants.TRANSFORMATIONS_SHEAR): return StringIndexConstants.SHEAR_MENU_ITEM; 092 case(MenuIndexConstants.TRANSFORMATIONS_SCALE): return StringIndexConstants.SCALE; 093 case(MenuIndexConstants.FILTERS): return StringIndexConstants.FILTERS; 094 case(MenuIndexConstants.FILTERS_BLUR): return StringIndexConstants.BLUR; 095 case(MenuIndexConstants.FILTERS_SHARPEN): return StringIndexConstants.SHARPEN; 096 case(MenuIndexConstants.FILTERS_EDGEDETECTION): return StringIndexConstants.EDGE_DETECTION; 097 case(MenuIndexConstants.FILTERS_EMBOSS): return StringIndexConstants.EMBOSS; 098 case(MenuIndexConstants.FILTERS_PSYCHEDELICDISTILLATION): return StringIndexConstants.PSYCHEDELIC_DISTILLATION; 099 case(MenuIndexConstants.FILTERS_LITHOGRAPH): return StringIndexConstants.LITHOGRAPH; 100 case(MenuIndexConstants.FILTERS_HORIZONTALSOBEL): return StringIndexConstants.HORIZONTAL_SOBEL; 101 case(MenuIndexConstants.FILTERS_VERTICALSOBEL): return StringIndexConstants.VERTICAL_SOBEL; 102 case(MenuIndexConstants.FILTERS_HORIZONTALPREWITT): return StringIndexConstants.HORIZONTAL_PREWITT; 103 case(MenuIndexConstants.FILTERS_VERTICALPREWITT): return StringIndexConstants.VERTICAL_PREWITT; 104 case(MenuIndexConstants.FILTERS_MINIMUM): return StringIndexConstants.MINIMUM_FILTER_MENU_ITEM; 105 case(MenuIndexConstants.FILTERS_MAXIMUM): return StringIndexConstants.MAXIMUM_FILTER_MENU_ITEM; 106 case(MenuIndexConstants.FILTERS_MEDIAN): return StringIndexConstants.MEDIAN_FILTER_MENU_ITEM; 107 case(MenuIndexConstants.FILTERS_MEAN): return StringIndexConstants.MEAN_FILTER_MENU_ITEM; 108 case(MenuIndexConstants.FILTERS_OIL): return StringIndexConstants.OIL_FILTER_MENU_ITEM; 109 case(MenuIndexConstants.VIEW): return StringIndexConstants.VIEW; 110 case(MenuIndexConstants.VIEW_ZOOMIN): return StringIndexConstants.VIEW_ZOOMIN; 111 case(MenuIndexConstants.VIEW_ZOOMOUT): return StringIndexConstants.VIEW_ZOOMOUT; 112 case(MenuIndexConstants.VIEW_SETORIGINALSIZE): return StringIndexConstants.VIEW_SETORIGINALSIZE; 113 case(MenuIndexConstants.VIEW_INTERPOLATIONTYPE): return StringIndexConstants.VIEW_INTERPOLATIONTYPE; 114 case(MenuIndexConstants.VIEW_INTERPOLATIONTYPE_NEARESTNEIGHBOR): return StringIndexConstants.VIEW_INTERPOLATIONTYPE_NEARESTNEIGHBOR; 115 case(MenuIndexConstants.VIEW_INTERPOLATIONTYPE_BILINEAR): return StringIndexConstants.VIEW_INTERPOLATIONTYPE_BILINEAR; 116 case(MenuIndexConstants.VIEW_INTERPOLATIONTYPE_BICUBIC): return StringIndexConstants.VIEW_INTERPOLATIONTYPE_BICUBIC; 117 case(MenuIndexConstants.HELP): return StringIndexConstants.HELP; 118 case(MenuIndexConstants.HELP_ABOUT): return StringIndexConstants.ABOUT; 119 case(MenuIndexConstants.HELP_SYSTEMINFORMATION): return StringIndexConstants.SYSTEM_INFORMATION; 120 default: return -1; 121 } 122 } 123 124 /** 125 * Sets the enabled status of one of the menu items to either 126 * <code>true</code> or <code>false</code>. 127 * @param index menu index of the component whose status is to be reset 128 * @param enabled boolean with the new value 129 */ 130 public abstract void setEnabled(int index, boolean enabled); 131 132 /** 133 * Sets the text of one of the menu elements to a new value. 134 * This method is usually called when the language settings have changed and 135 * new words have to be assigned. 136 * @param index integer index of the menu element 137 * @param text new text value to be used for this element 138 */ 139 public abstract void setLabel(int index, String text); 140 }