/* @(#)SpinningMethods.java   20 November 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;

public class SpinningMethods
    extends DisplayPanel 
{
    
    SimpleAction spinningText =
        new SimpleAction("Spinning Text") {
            public void perform() { SpinningText(); }
    };
    
    
    SimpleAction polygon_5 =
        new SimpleAction("Polygon 5") {
            public void perform() { SpinningStar(5, 1); }
    };
    
    SimpleAction polygon_6 =
        new SimpleAction("Polygon 6") {
            public void perform() { SpinningStar(6, 1); }
    };
    
    SimpleAction polygon_7 =
        new SimpleAction("Polygon 7") {
            public void perform() { SpinningStar(7, 1); }
    };
    
    SimpleAction spinningStar_5_2 =
        new SimpleAction("Spinning Star 5,2") {
            public void perform() { SpinningStar(5, 2); }
    };
    
    SimpleAction spinningStar_6_2 =
        new SimpleAction("Spinning Star 6,2") {
            public void perform() { SpinningStar(6, 2); }
    };
    
    SimpleAction spinningStar_7_2 =
        new SimpleAction("Spinning Star 7,2") {
            public void perform() { SpinningStar(7, 2); }
    };
    
    SimpleAction spinningStar_7_3 =
        new SimpleAction("Spinning Star 7,3") {
            public void perform() { SpinningStar(7, 3); }
    };
    
    int gap = 10;
    
    Object[] mainStuff =
        { spinningText,
          polygon_5,
          polygon_6,
          polygon_7,
          spinningStar_5_2,
          spinningStar_6_2,
          spinningStar_7_2,
          spinningStar_7_3
        };
    
    VTable mainPanel = new VTable(mainStuff, gap, gap, CENTER);
    
    
    public SpinningMethods() {
        mainPanel.uniformizeSize();
        mainPanel.setDeepBackground(Colors.tan, JButton.class);
        add(mainPanel);
    }
    
    
    void SpinningText() {
        new SpinningAnimation("Spinning Text", 200, 200);
    }
    
    
    void SpinningStar(int vertices, int jump) {
        Shape star =
            RegularShape.star
                (0, 0, 75, vertices, jump);
        
        ShapePaintable paintable =
            new ShapePaintable
                (star, PaintMode.FILL_DRAW, Colors.red);
        
        new SpinningAnimation(paintable, 200, 200);
    }
    
    
    public static void main(String[] args) { 
        new SpinningMethods().frame("", WEST);
    }
    
}
