/* @(#)Methods.java   14 September 2006 */

/* Useful imports */

import edu.neu.ccs.*;
import edu.neu.ccs.gui.*;
import edu.neu.ccs.codec.*;
import edu.neu.ccs.console.*;
import edu.neu.ccs.filter.*;
import edu.neu.ccs.jpf.*;
import edu.neu.ccs.parser.*;
import edu.neu.ccs.pedagogy.*;
import edu.neu.ccs.quick.*;
import edu.neu.ccs.util.*;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.font.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import java.util.*;
import java.math.*;
import java.beans.*;
import java.lang.reflect.*;
import java.net.URL;
import java.util.regex.*;
import java.text.ParseException;

/** The sample starter class for Java Power Framework. */
public class Methods extends JPF 
{
    
    public static void main(String[] args) { 
        // LookAndFeelTools.showSelectLookAndFeelDialog();
        LookAndFeelTools.adjustAllDefaultFontSizes(5);
        
        new Methods();
    }
    
    
    public void WriteHello() {
        console.out.println("Hello");
    }
    
    
    public int SumOfInt(int limit) {
        int sum = 0;
        
        for (int n = 1; n <= limit; n++)
            sum += n;
        
        return sum;
    }
    
    
    public void DrawShapesAndText() {
        window.clearPanelAndSequence();
        window.installSimpleMouseActions(true);
        
        // Add circle, encapsulated circle, and text
        // to the PaintableSequence in the window
        
        XCircle c = new XCircle(200, 200, 50);
        
        window.addPaintable(c);
        
        XCircle d = new XCircle(300, 200, 50);
        
        ShapePaintable sp =
            new ShapePaintable
                (d, PaintMode.FILL_DRAW, Color.red, Color.blue);
        
        window.addPaintable(sp);
        
        String message = "Some sample text";
        
        window.addPaintable(message);
        
        // Paint square on the window background
        
        XSquare s = new XSquare(200, 200, 100);
        
        Graphics2D g = window.getBufferGraphics();
        
        g.setPaint(Color.red);
        
        g.draw(s);
        
        window.repaint();
        
        // Throw the same shapes into a vertical panel
        
        Object[] stuff = { c, s, message, sp };
        
        VTable panel = new VTable(stuff, 20, 20, CENTER);
        
        panel.frame("Funky Panel", SOUTH_WEST);
        
        // Throw the same shapes into a 2 by 2 panel
        
        Object[][] array = { { c, sp }, { s, message } };
        
        TablePanel extra = new TablePanel(array, 20, 20, CENTER);
        
        extra.frame("Extra Panel", NORTH_WEST);
    }
}
