Package stephencarmody.fonttexture

Source Code of stephencarmody.fonttexture.ToolBar

package stephencarmody.fonttexture;

import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JToolBar;

public final class ToolBar extends JToolBar implements ActionListener {
 
    private static final long serialVersionUID = 0;

    // GUI Components
    private JButton saveBtn;
    private JComboBox familyCombo;
    private JComboBox styleCombo;
    private ImageSaveDialog saveDlg;
   
    public ToolBar() {
      setFloatable(false);
     
      // Add Save Button to ToolBar
      saveBtn = new JButton();
      saveBtn.setIcon(new ImageIcon(this.getClass().getResource("icons/save.png")));
      saveBtn.addActionListener(this);
      add(saveBtn);

      // Add Font Family ComboBox to ToolBar
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        String families[] = ge.getAvailableFontFamilyNames();
        familyCombo = new JComboBox(families);
        familyCombo.addActionListener(this);
        familyCombo.setPreferredSize(familyCombo.getMinimumSize());
        familyCombo.setMaximumSize(familyCombo.getMinimumSize());
        add(familyCombo);
       
        // Add Font Style ComboBox to ToolBar
        String styles[] = {"plain","italic","bold","bold italic"};
        styleCombo = new JComboBox(styles);
        styleCombo.addActionListener(this);
        styleCombo.setPreferredSize(styleCombo.getMinimumSize());
        styleCombo.setMaximumSize(styleCombo.getMinimumSize());
        add(styleCombo);
       
        saveDlg = new ImageSaveDialog();
    }
   
    /** Receives ActionEvents from ToolBar components */
    public void actionPerformed(ActionEvent event) {
      // Save
      if ( event != null && saveBtn == event.getSource() ) {
        if ( JFileChooser.APPROVE_OPTION == saveDlg.showSaveDialog(this) ) {
          // Ensure selected file has correct extension for the selected filter
          // before saving texture to it
          File f = saveDlg.getSelectedFile();
          String e = ((ImageFilter)saveDlg.getFileFilter()).getExtension();
          String ext = ImageFilter.getExtension(f);
          try {
            if ( ext == null || ! ext.equals(e) ) {
              f = new File(f.getCanonicalPath() + "." + e);
            }
            FontTexture.save(f);
        } catch( IOException exp ) {}
        }
        return;
      }
     
      // Font family or style change
        String family = familyCombo.getSelectedItem().toString();
        int style = Font.PLAIN;
        String selected = styleCombo.getSelectedItem().toString();
        if ( selected.equals("italic") ) {
            style = Font.ITALIC;
        } else if ( selected.equals("bold") ) {
            style = Font.BOLD;
        } else if ( selected.equals("bold italic") ) {
            style = Font.BOLD + Font.ITALIC;
        }
      FontTexture.update(family, style);
    }
   
}
TOP

Related Classes of stephencarmody.fonttexture.ToolBar

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.