package edu.byu.cs.roots.opg.model; import java.awt.Cursor; import java.awt.Image; import java.awt.Point; import java.awt.Toolkit; import java.io.IOException; import java.io.InputStream; import java.net.URL; import javax.imageio.ImageIO; public enum OpgCursor { Z_IN("/edu/byu/cs/roots/opg/image/z_in.png", new Point(10, 10), "Zoom In"), Z_OUT("/edu/byu/cs/roots/opg/image/z_out.png", new Point(10, 10), "Zoom Out"), MOVE("/edu/byu/cs/roots/opg/image/handc.png", new Point(10, 10),"Hand"), MOVE_GRAB("/edu/byu/cs/roots/opg/image/handcc.png", new Point(10, 10),"Hand grab"), ARROWTEXT("/edu/byu/cs/roots/opg/image/arrowtextc.png", new Point(10, 0), "Arrow-Text"), TEXT("/edu/byu/cs/roots/opg/image/textc.png", new Point(2, 5), "Text"), ARROW("/edu/byu/cs/roots/opg/image/arrowc.png", new Point(0, 0),"Arrow"), PRUNE("/edu/byu/cs/roots/opg/image/prune.png", new Point(5,5), "Prune"); private Cursor cursor; private OpgCursor(String path, Point hotspot, String name){ // ClassLoader loader = ClassLoader.getSystemClassLoader(); //InputStream in = loader.getResourceAsStream(path); URL fontUrl = this.getClass().getResource(path); //System.out.println("FontUrl: " + fontUrl); Image image = null; try { InputStream in = fontUrl.openStream(); image = ImageIO.read(in); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getLocalizedMessage()); System.out.println(e.getMessage()); System.out.println(e.getCause()); } Cursor cursor = Cursor.getDefaultCursor(); if (image != null) { cursor = Toolkit.getDefaultToolkit().createCustomCursor(image, hotspot, name); System.out.println("Loading cursor "+ name); } else { System.out.println("Failed to load "+ name); } this.cursor = cursor; } public Cursor getCursor(){ return cursor; } }