+++ /dev/null
-package tim.prune.gui.map;
-
-import javax.swing.ImageIcon;
-
-import tim.prune.gui.IconManager;
-
-/**
- * Class to provide a library of waypoint icon definitions
- */
-public abstract class WpIconLibrary
-{
- /** Types of waypoint */
- public static final int WAYPT_DEFAULT = 0;
- public static final int WAYPT_RING_POINT = 1;
- public static final int WAYPT_PLECTRUM = 2;
- public static final int WAYPT_CIRCLE = 3;
- public static final int WAYPT_PIN = 4;
- public static final int WAYPT_NUMBER_OF_ICONS = WAYPT_PIN + 1;
-
- /** Sizes of icon */
- public static final int SIZE_SMALL = 0;
- public static final int SIZE_MEDIUM = 1;
- public static final int SIZE_LARGE = 2;
-
- /** Array of x and y offsets for the icons */
- private static int[] _PIXEL_OFFSETS = null;
-
- /** Static block to initialise offsets */
- static
- {
- _PIXEL_OFFSETS = new int[] {0, 0, 0, 0, 0, 0, // default
- 8, 13, 12, 22, 14, 26, // ringpt
- 7, 15, 12, 24, 14, 27, // plectrum
- 8, 8, 12, 12, 14, 14, // ring
- 2, 15, 4, 23, 4, 27 // pin
- };
- }
-
- /** @return array of Integers representing waypoint types */
- public static Integer[] getWaypointTypes()
- {
- return new Integer[] {WAYPT_DEFAULT, WAYPT_RING_POINT, WAYPT_PLECTRUM, WAYPT_CIRCLE, WAYPT_PIN};
- }
-
- /**
- * @param inType icon type
- * @return the name of the specified icon, used for settings dialog
- */
- public static String getIconName(int inType)
- {
- switch (inType)
- {
- case WAYPT_RING_POINT: return "ringpt";
- case WAYPT_PLECTRUM: return "plectrum";
- case WAYPT_CIRCLE: return "ring";
- case WAYPT_PIN: return "pin";
- case WAYPT_DEFAULT:
- default: return "default";
- }
- }
-
- /**
- * @param inType icon type
- * @param inSize icon size (small/medium/large)
- * @return icon definition for the specified icon
- */
- public static WpIconDefinition getIconDefinition(int inType, int inSize)
- {
- String iconName = getIconName(inType);
- String sizeSuffix = null;
- switch (inSize)
- {
- case SIZE_SMALL: sizeSuffix = "_s"; break;
- case SIZE_MEDIUM: sizeSuffix = "_m"; break;
- case SIZE_LARGE: sizeSuffix = "_l"; break;
- default: sizeSuffix = "_m"; inSize = SIZE_MEDIUM; break;
- }
- // Look up offsets in the static array
- int xOffset = 0, yOffset = 0;
- try {
- xOffset = _PIXEL_OFFSETS[inType * 6 + inSize * 2];
- yOffset = _PIXEL_OFFSETS[inType * 6 + inSize * 2 + 1];
- }
- catch (ArrayIndexOutOfBoundsException obe) {} // ignore, leave offsets at 0
- WpIconDefinition iconDef = new WpIconDefinition(iconName, xOffset, yOffset);
- // Get icon
- ImageIcon icon = IconManager.getImageIcon(IconManager.WAYPOINT_ICON_PREFIX
- + iconDef.getName() + sizeSuffix + IconManager.WAYPOINT_ICON_SUFFIX);
- iconDef.setIcon(icon);
- return iconDef;
- }
-}