1 21 22 package org.armedbear.j; 23 24 import java.awt.Color ; 25 26 public final class ImageMode extends AbstractMode implements Constants, Mode 27 { 28 private static final String MENU_NAME = "ImageMode"; 29 private static final ImageMode mode = new ImageMode(); 30 31 private ImageMode() 32 { 33 super(IMAGE_MODE, IMAGE_MODE_NAME); 34 setProperty(Property.VERTICAL_RULE, 0); 35 } 36 37 public static final ImageMode getMode() 38 { 39 return mode; 40 } 41 42 protected void setKeyMapDefaults(KeyMap km) 43 { 44 km.mapKey('c', "imageCycleBackground"); 45 km.mapKey('f', "imageFit"); 46 km.mapKey('r', "imageRestore"); 47 km.mapKey('=', "imageZoomIn"); 48 km.mapKey('-', "imageZoomOut"); 49 } 50 51 public String getMenuName() 52 { 53 return MENU_NAME; 54 } 55 56 public MenuBar createMenuBar(Frame frame) 57 { 58 MenuBar menuBar = new MenuBar(MENU_NAME); 59 menuBar.add(new Menu("File", 'F')); 60 menuBar.add(new Menu("View", 'V')); 61 menuBar.add(new Menu("Image", 'I')); 62 menuBar.add(new Menu("Help", 'H')); 63 return menuBar; 64 } 65 66 public void populateMenu(Editor editor, Menu menu) 67 { 68 final String text = menu.getText(); 69 if (text == "File") { 70 menu.add(editor, "New", 'N', "newBuffer"); 71 menu.add(editor, "Open...", 'O', "openFile"); 72 menu.add(editor, "Save All", 'A', "saveAll"); 73 menu.add(editor, "Close", 'C', "killBuffer"); 74 menu.add(editor, "Close All", 'L', "closeAll"); 75 menu.add(editor, "Close Others", 'H', "closeOthers"); 76 menu.add(editor, "Reload", 'R', "revertBuffer"); 77 menu.addSeparator(); 78 menu.add(editor, "Next Buffer", 'T', "nextBuffer"); 79 menu.add(editor, "Previous Buffer", 'R', "prevBuffer"); 80 menu.addSeparator(); 81 menu.add(editor, "New Frame", 'M', "newFrame"); 82 menu.add(editor, "Execute Command...", 'D', "executeCommand"); 83 menu.addSeparator(); 84 menu.add(editor, "Save All/Exit", '/', "saveAllExit"); 85 menu.add(editor, "Exit", 'X', "quit"); 86 } else if (text == "Image") { 87 menu.add(editor, "Zoom In", 'I', "imageZoomIn"); 88 menu.add(editor, "Zoom Out", 'O', "imageZoomOut"); 89 menu.add(editor, "Scale to Fit Display", 'F', "imageFit"); 90 menu.add(editor, "Restore Original Size", 'R', "imageRestore"); 91 menu.add(editor, "Change Background Color", 'C', "imageCycleBackground"); 92 } else 93 super.populateMenu(editor, menu); 94 } 95 96 public Formatter getFormatter(Buffer buffer) 97 { 98 return null; 99 } 100 101 public static void imageCycleBackground() 102 { 103 final Buffer buffer = Editor.currentEditor().getBuffer(); 104 if (buffer instanceof ImageBuffer) { 105 ((ImageBuffer)buffer).cycleBackground(); 106 for (EditorIterator it = new EditorIterator(); it.hasNext();) { 107 Editor ed = it.nextEditor(); 108 if (ed.getBuffer() == buffer) 109 ed.getDisplay().repaint(); 110 } 111 } 112 } 113 114 public static void imageZoomIn() 115 { 116 final Buffer buffer = Editor.currentEditor().getBuffer(); 117 if (buffer instanceof ImageBuffer) 118 ((ImageBuffer)buffer).zoomIn(); 119 } 120 121 public static void imageZoomOut() 122 { 123 final Buffer buffer = Editor.currentEditor().getBuffer(); 124 if (buffer instanceof ImageBuffer) 125 ((ImageBuffer)buffer).zoomOut(); 126 } 127 128 public static void imageFit() 129 { 130 final Buffer buffer = Editor.currentEditor().getBuffer(); 131 if (buffer instanceof ImageBuffer) 132 ((ImageBuffer)buffer).fit(); 133 } 134 135 public static void imageRestore() 136 { 137 final Buffer buffer = Editor.currentEditor().getBuffer(); 138 if (buffer instanceof ImageBuffer) 139 ((ImageBuffer)buffer).restore(); 140 } 141 } 142 | Popular Tags |