package org.teachingkidsprogramming.recipes.completed.section08events;
import java.util.ArrayList;
import org.teachingextensions.WindowUtils.ProgramWindow;
import org.teachingextensions.approvals.lite.util.NumberUtils;
import org.teachingextensions.logo.Unicorn;
import org.teachingextensions.logo.utils.ColorUtils.ColorWheel;
import org.teachingextensions.logo.utils.ColorUtils.PenColors;
import org.teachingextensions.logo.utils.EventUtils.MouseLeftClickListener;
import org.teachingextensions.logo.utils.EventUtils.MouseRightClickListener;
import org.teachingextensions.logo.utils.LineAndShapeUtils.Circle;
public class SimpleBubbleVariation implements MouseLeftClickListener, MouseRightClickListener
{
private ProgramWindow programWindow;
public SimpleBubbleVariation()
{
programWindow = new ProgramWindow("Look at these Bubbles!");
programWindow.setWindowVisible(true);
programWindow.addMouseLeftClickListener(this);
programWindow.addMouseRightClickListener(this);
prepareColorPalette();
}
@Override
public void onLeftMouseClick(int x, int y)
{
createBubbles(x, y);
}
@Override
public void onRightMouseClick(int x, int y)
{
for (Circle circle : circles)
{
circle.removeFrom(programWindow);
Unicorn u = new Unicorn(circle.getX(), circle.getY(), circle.getRadius());
u.addTo(programWindow);
}
}
ArrayList<Circle> circles = new ArrayList<Circle>();
private void createBubble(int x, int y)
{
int radius = NumberUtils.getRandomInt(10, 50);
Circle circle = new Circle(radius, ColorWheel.getNextColor());
circle.setCenter(x, y);
circle.addTo(programWindow);
circles.add(circle);
}
private void createBubbles(int x1, int y1)
{
int size = 7;
for (int i = 0; i < size; i++)
{
createBubble(x1 + i * 15, y1 + i * 15);
}
}
private void prepareColorPalette()
{
ColorWheel.addColor(PenColors.Blues.LightSteelBlue);
ColorWheel.addColor(PenColors.Blues.Blue);
ColorWheel.addColor(PenColors.Blues.DarkBlue);
ColorWheel.addColor(PenColors.Purples.Purple);
}
public static void main(String[] args)
{
new SimpleBubbleVariation();
}
}