/* * Copyright (c) 1997-98 * NorthEast Parallel Architectures Center, Syracuse University. * All Rights Reserved. Permission to use, copy, modify, and distribute this * software and its documentation for educational, research and non-profit * purposes, without fee, and without a written agreement is hereby granted, * provided that the above copyright notice and this paragraph appear in all * copies. Permission to incorporate this software into commercial products may * be obtained by contacting the NorthEast Parallel Architectures Center. * * The software program and documentation are supplied "as is", * without any accompanying services from NPAC. NPAC does not * warrant that the operation of the program will be uninterrupted or * error-free. The end-user understands that the program was developed for * research purposes and is advised not to rely exclusively on the program for * any reason. * */ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * The fromt end for the TextEditor program * * @version 0.1 20 April 1998 * @author Shrideep Pallickara * */ public synchronized class ConsoleMenu extends MenuBar implements ActionListener { TextEditor console; ConsoleMenu(TextEditor console) { this.console = console; add(fileMenu()); add(editMenu()); add(fontMenu()); add(viewMenu()); add(searchMenu()); add(colorMenu()); add(helpMenu()); } public Menu fileMenu() { MenuItem menuItem1; MenuItem menuItem2; MenuItem menuItem3; MenuItem menuItem4; MenuItem menuItem5; MenuItem menuItem6; MenuItem menuItem7; Menu menu = new Menu("File"); menu.add(menuItem3 = new MenuItem("New", new MenuShortcut(110))); menu.add(menuItem1 = new MenuItem("Browse", new MenuShortcut(98))); menu.add(new MenuItem("-")); menu.add(menuItem2 = new MenuItem("Load Serialized", new MenuShortcut(108))); menu.add(menuItem7 = new MenuItem("Save", new MenuShortcut(115))); menu.add(menuItem4 = new MenuItem("Delete", new MenuShortcut(100))); menu.add(new MenuItem("-")); menu.add(new MenuItem("Page setup [Not implemented]")); menu.add(menuItem5 = new MenuItem("Print", new MenuShortcut(112))); menu.add(new MenuItem("Print setup")); menu.add(new MenuItem("-")); menu.add(new MenuItem("Conversion")); menu.add(new MenuItem("Preferences")); menu.add(new MenuItem("-")); menu.add(menuItem6 = new MenuItem("Exit", new MenuShortcut(113))); menuItem1.setActionCommand("Browse"); menuItem2.setActionCommand("LoadSer"); menuItem7.setActionCommand("Save"); menuItem3.setActionCommand("New"); menuItem4.setActionCommand("Delete"); menuItem5.setActionCommand("Print"); menuItem6.setActionCommand("Exit"); menu.addActionListener(this); return menu; } public Menu editMenu() { MenuItem menuItem1; MenuItem menuItem2; MenuItem menuItem3; MenuItem menuItem4; MenuItem menuItem5; MenuItem menuItem6; Menu menu1 = new Menu("Paste"); menu1.add(menuItem1 = new MenuItem("into new file", new MenuShortcut(118))); menu1.add(menuItem2 = new MenuItem("as new selection", new MenuShortcut(101))); menuItem1.setActionCommand("as new image"); menuItem2.setActionCommand("as new selection"); menu1.addActionListener(this); Menu menu2 = new Menu("Edit"); menu2.add(menuItem3 = new MenuItem("Undo", new MenuShortcut(122))); menu2.add(new MenuItem("-")); menu2.add(menuItem4 = new MenuItem("Cut", new MenuShortcut(120))); menu2.add(menuItem5 = new MenuItem("Copy", new MenuShortcut(99))); menu2.add(menu1); menu2.add(new MenuItem("-")); menu2.add(menuItem6 = new MenuItem("Empty stack", new MenuShortcut(119))); menuItem3.setActionCommand("Undo"); menuItem4.setActionCommand("Cut"); menuItem5.setActionCommand("Copy"); menuItem6.setActionCommand("Empty stack"); menu2.addActionListener(this); return menu2; } public Menu fontMenu() { Menu menu1 = new Menu("FontOptions"); Menu menu2 = new Menu("Font Face"); Menu menu3 = new Menu("Font Size"); Menu menu4 = new Menu("Font Color"); Menu menu5 = new Menu("Font Style"); menu2.addActionListener(this); menu3.addActionListener(this); menu4.addActionListener(this); menu5.addActionListener(this); Toolkit toolKit=Toolkit.getDefaultToolkit(); for (int i=0; i<toolKit.getFontList().length; i++) menu2.add( new MenuItem(toolKit.getFontList()[i]) ); for (int i=8; i<19; i++) menu3.add(new MenuItem(String.valueOf(i++))); menu4.add(new MenuItem("Black")); menu4.add(new MenuItem("Blue")); menu4.add(new MenuItem("Cyan")); menu4.add(new MenuItem("Green")); menu4.add(new MenuItem("Magenta")); menu4.add(new MenuItem("Orange")); menu4.add(new MenuItem("Red")); menu4.add(new MenuItem("White")); menu5.add(new MenuItem("Plain")); menu5.add(new MenuItem("Italics")); menu5.add(new MenuItem("Bold")); menu5.add(new MenuItem("Bold & Italics")); menu1.add(new MenuItem("Default Values")); menu1.add(new MenuItem("-")); menu1.add(menu2); menu1.add(menu3); menu1.add(new MenuItem("-")); menu1.add(menu4); menu1.add(menu5); menu1.addActionListener(this); return menu1; } public Menu viewMenu() { Menu menu3 = new Menu("View"); menu3.add(new MenuItem("Normal viewing")); menu3.add(new MenuItem("-")); menu3.add(new MenuItem("Double size")); menu3.add(new MenuItem("Half size")); menu3.add(new MenuItem("-")); menu3.add(new MenuItem("10% larger")); menu3.add(new MenuItem("10% smaller")); menu3.add(new MenuItem("-")); MenuItem menuItem3, menuItem4; menu3.add(menuItem3 =new MenuItem("New Frame", new MenuShortcut(102))); menuItem3.setActionCommand("New Frame"); menu3.add(menuItem4 =new MenuItem("Delete Frame",new MenuShortcut(121))); menuItem4.setActionCommand("Delete Frame"); menu3.add(new MenuItem("Delete Frame")); menu3.addActionListener(this); return menu3; } public Menu searchMenu() { Menu menu1 = new Menu("Search"); menu1.add(new MenuItem("Search String")); menu1.add(new MenuItem("Repeat Search")); menu1.add(new MenuItem("-")); menu1.add(new MenuItem("Replace String")); menu1.add(new MenuItem("Replace All")); return menu1; } public Menu colorMenu() { Menu menu1 = new Menu("Color depth"); menu1.add(new MenuItem("64K colors (16 Bit)")); menu1.add(new MenuItem("16 Million colors (24 Bit)")); menu1.addActionListener(this); Menu menu2 = new Menu("Adjust"); menu2.add(new MenuItem("Red/Green/Blue")); menu2.add(new MenuItem("Hue/Saturation/Luminance")); menu2.addActionListener(this); Menu menu3 = new Menu("Histogram functions"); menu3.add(new MenuItem("Stretch/Equalize")); menu3.add(new MenuItem("Darken/Brighten")); menu3.addActionListener(this); Menu menu4 = new Menu("Colors"); menu4.add(menu2); menu4.add(new MenuItem("Grey scale")); menu4.add(menu3); menu4.add(new MenuItem("Negative image")); menu4.add(new MenuItem("-")); menu4.add(new MenuItem("Count colors used [Not implemented]")); menu4.add(new MenuItem("-")); menu4.add(menu1); menu4.addActionListener(this); return menu4; } public Menu helpMenu() { MenuItem menuItem1; MenuItem menuItem2; Menu menu = new Menu("?"); menu.add(menuItem2 = new MenuItem("Help", new MenuShortcut(104))); menu.add(new MenuItem("-")); menu.add(menuItem1 = new MenuItem("About", new MenuShortcut(97))); menuItem2.setActionCommand("Help"); menuItem1.setActionCommand("About"); menu.addActionListener(this); return menu; } public void actionPerformed(ActionEvent actionEvent) { String arg = actionEvent.getActionCommand(); if( ("TimesRoman".equals(arg)) || ("Dialog".equals(arg)) || ("SansSerif".equals(arg)) || ("Courier".equals(arg))|| ("DialogInput".equals(arg)) || ("Serif".equals(arg)) || ("Helvetica".equals(arg)) || ("Monospaced".equals(arg)) || ("ZapfDingbats".equals(arg)) ) console.setFontName(arg); if("Plain".equals(arg)) console.setFontStyle(Font.PLAIN); if("Bold".equals(arg)) console.setFontStyle(Font.BOLD); if("Italics".equals(arg)) console.setFontStyle(Font.ITALIC); if("Bold & Italics".equals(arg)) console.setFontStyle(Font.ITALIC +Font.BOLD ); if("Blue".equals(arg)) console.textarea.setForeground(Color.blue); if("Cyan".equals(arg)) console.textarea.setForeground(Color.cyan); if("Green".equals(arg)) console.textarea.setForeground(Color.green); if("Magenta".equals(arg)) console.textarea.setForeground(Color.magenta); if("Orange".equals(arg)) console.textarea.setForeground(Color.orange); if("Red".equals(arg)) console.textarea.setForeground(Color.red); if("White".equals(arg)) console.textarea.setForeground(Color.white); if("Black".equals(arg)) console.textarea.setForeground(Color.black); if (("8".equals(arg)) || ("10".equals(arg)) || ("12".equals(arg)) || ("14".equals(arg)) || ("16".equals(arg)) || ("18".equals(arg)) ) console.setFontSize(Integer.parseInt(arg)); console.performAction(actionEvent.getActionCommand()); } }