Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2011 Michael Bedward
   *
   * This file is part of jai-tools.
   *
   * jai-tools is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation, either version 3 of the
   * License, or (at your option) any later version.
  *
  * jai-tools is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with jai-tools.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
 
 package jaitools.demo.jiffle;
 
 import java.awt.Font;
 
 
A browser for Jiffle example scripts. Displays the script in a text window and the destination image in an adjacent window.

Author(s):
Michael Bedward
Version:
$Id: JiffleDemo.java 1592 2011-03-29 11:01:25Z michael.bedward $
Since:
1.1
 
 public class JiffleDemo extends JFrame {
     private SimpleImagePane imagePane;
     private JTextArea scriptPane;
     private JSplitPane splitPane;
     
     private int imageWidth = 400;
     private int imageHeight = 400;
 
     
     public static void main(String[] args) {
         JiffleDemo me = new JiffleDemo();
         me.setSize(800, 500);
         me.setVisible(true);
     }
 
 
     private JiffleDemo() {
         super("Jiffle scripting language");
         initComponents();
     }
 
     
     @Override
     public void setVisible(boolean vis) {
         if (vis) {
             .setDividerLocation((int) (getWidth() * 0.45));
         }
         super.setVisible(vis);
     }
     
 
     private void initComponents() {
          = new SimpleImagePane();
         
          = new JTextArea();
         .setEditable(false);
         Font font = new Font("Courier"., 12);
         .setFont(font);
         
         JScrollPane imageScroll = new JScrollPane();
         JScrollPane scriptScroll = new JScrollPane();
         
          = new JSplitPane(
                 .,
                 scriptScrollimageScroll);
         
        Dimension minSize = new Dimension(100, 100);
        imageScroll.setMinimumSize(minSize);
        scriptScroll.setMinimumSize(minSize);
        
        getContentPane().add();
        
        JMenuItem item;
        JMenuBar menuBar = new JMenuBar();
        JMenu mainMenu = new JMenu("File");
        
        JMenu scriptMenu = new JMenu("Example scripts");
        
        for (final ImageChoice choice : ImageChoice.values()) {
            item = new JMenuItem(choice.toString());
        
            item.addActionListenernew ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    loadScript(choice);
                }
            } );
            
            scriptMenu.add(item);
        }
        
        mainMenu.add(scriptMenu);
        menuBar.add(mainMenu);
        
        JMenu viewMenu = new JMenu("View");
        
        item = new JMenuItem("Bigger font");
        item.addActionListenernew ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                setFontSize(1);
            }
        });
        item.setAccelerator(KeyStroke.getKeyStroke(
                .
                .|.));
        viewMenu.add(item);
        
        item = new JMenuItem("Smaller font");
        item.addActionListenernew ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                setFontSize(-1);
            }
        });
        item.setAccelerator(KeyStroke.getKeyStroke(
                .
                .|.));
        viewMenu.add(item);
        
        menuBar.add(viewMenu);
        setJMenuBar(menuBar);
    }
    
    private void loadScript(ImageChoice imageChoice) {
        try {
            String script = JiffleDemoHelper.getScript(imageChoice);
            runScript(scriptimageChoice.getDestImageVarName());
            
        } catch (JiffleException ex) {
            JOptionPane.showMessageDialog(this
                    "Problem loading the example script"
                    "Bummer".);
        }
    }
    private void runScript(String scriptString destVarName) {
        try {
            .setText(script);
            
            JiffleBuilder builder = new JiffleBuilder();
            builder.script(script).dest(destVarName);
            RenderedImage image = builder.run().getImage(destVarName);
            .setImage(image);
            
        } catch (JiffleException ex) {
            JOptionPane.showMessageDialog(this
                    "Errors compiling or running the script"
                    "Bummer".);
        }
    }
    
    private void setFontSize(int delta) {
        Font font = .getFont();
        Font font2 = font.deriveFont((floatfont.getSize() + delta);
        .setFont(font2);
    }
New to GrepCode? Check out our FAQ X