1 package org.wcb.common; 2 3 import javax.swing.*; 4 import java.awt.*; 5 import java.awt.event.ActionListener; 6 import java.awt.event.ActionEvent; 7 8 /*** 9 * Copyright (C) 2003 Walter Bogaardt 10 * 11 * This library is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU Lesser General Public 13 * License as published by the Free Software Foundation; either 14 * version 2 of the License, or (at your option) any later version. 15 * 16 * This library is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * Lesser General Public License for more details. 20 * 21 * You should have received a copy of the GNU Lesser General Public 22 * License along with this library; if not, write to the Free Software 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 24 * 25 * Project: Home Automation Interface 26 * 27 * Abstract: User Interface options dialog box 28 * Filename: $Id: FontChoiceDialog.java,v 1.2 2004/07/22 03:06:50 wbogaardt Exp $ 29 * 30 * $Log: FontChoiceDialog.java,v $ 31 * Revision 1.2 2004/07/22 03:06:50 wbogaardt 32 * removed deprecated method calls. 33 * 34 * Revision 1.1 2003/12/31 00:08:12 wbogaardt 35 * fixed bug with setting look and feel and having it persist for user next time open 36 * 37 */ 38 public class FontChoiceDialog extends JPanel { 39 40 private Font font; 41 private JCheckBox italic, bold; 42 private JComboBox fontsBox, sizeBox; 43 private static Component tableButton; 44 private JLabel exampleLabel; 45 private static final String[] fonts = {"Dialog","DialogInput","SansSerif","Serif","Monospaced"}; 46 private static final String[] sizes = { "9", "10", "12", "14", "18", "24" }; 47 48 public FontChoiceDialog(Component comp) { 49 JPanel display = new JPanel(); 50 JPanel fontDisplay = new JPanel(); 51 exampleLabel = new JLabel("Example"); 52 italic = new JCheckBox("Italic"); 53 bold = new JCheckBox("Bold"); 54 fontsBox = new JComboBox(fonts); 55 sizeBox = new JComboBox(sizes); 56 font = comp.getFont(); 57 setFont(comp.getFont()); 58 tableButton = (JButton)comp; 59 display.add(italic); 60 display.add(bold); 61 fontDisplay.add(fontsBox); 62 fontDisplay.add(sizeBox); 63 add(BorderLayout.NORTH, display); 64 add(BorderLayout.CENTER, fontDisplay); 65 add(BorderLayout.SOUTH, exampleLabel); 66 } 67 68 public Font getFont() { 69 if (font==null) return new Font("Dialog",Font.BOLD,12); 70 int style=0; 71 if(bold.isSelected() && italic.isSelected()) style = 3; 72 if(bold.isSelected()) style = Font.BOLD; 73 if(italic.isSelected()) style = Font.ITALIC; 74 if(!bold.isSelected() && !italic.isSelected()) style = Font.PLAIN; 75 String fontName = (String)fontsBox.getSelectedItem(); 76 int fontSize = Integer.parseInt((String)sizeBox.getSelectedItem()); 77 font = new Font(fontName, style, fontSize); 78 return font; 79 } 80 81 public void setFont(Font curFont) { 82 this.font=curFont; 83 if (font.isBold()) bold.setSelected(true); 84 if (font.isItalic()) italic.setSelected(true); 85 if (!font.isBold() && !font.isItalic()) { 86 bold.setSelected(false); 87 italic.setSelected(false); 88 } 89 fontsBox.setSelectedItem(font.getFamily()); 90 String fsize = new String(""+font.getSize()); 91 sizeBox.setSelectedItem(fsize); 92 exampleLabel.setFont(font); 93 exampleLabel.setText(font.getFamily()); 94 } 95 96 public static JDialog createDialog(Component c, String title, boolean modal, 97 FontChoiceDialog fc, 98 ActionListener okListener, 99 ActionListener cancelListener) { 100 final JDialog chooserDialog = new JDialog(new Frame(),title, modal); 101 JPanel buttonPanel = new JPanel(); 102 JButton okButton = new JButton("OK"); 103 JButton cancelButton = new JButton("Close"); 104 buttonPanel.add(okButton); 105 buttonPanel.add(cancelButton); 106 chooserDialog.getContentPane().add(BorderLayout.CENTER, fc); 107 chooserDialog.getContentPane().add(BorderLayout.SOUTH, buttonPanel); 108 okButton.addActionListener(okListener); 109 if (cancelListener == null) { 110 ActionListener cl=new ActionListener() { 111 public void actionPerformed(ActionEvent ev) { 112 chooserDialog.dispose(); 113 } 114 }; 115 cancelButton.addActionListener(cl); 116 } else if(cancelListener != null) { 117 cancelButton.addActionListener(cancelListener); 118 } 119 return chooserDialog; 120 } 121 }