// Path: src/main/java/com/eguller/mouserecorder/config/Config.java
// public interface Config {
//     public Config activateMinimizeOnPlay();
// 
//     public Config deactivateMinimizeOnPlay();
// 
//     public Config activateMinimizeOnRecord();
// 
//     public Config deactivateMinimizeOnRecord();
// 
//     public Config setSpeed(double speed);
// 
//     public double getSpeed();
// 
//     public boolean getMinimizeOnPlay();
// 
//     public boolean getMinimizeOnRecord();
// 
//     public Config setLoopCount(int loopCount);
// 
//     public int getLoopCount();
// 
//     public Config activeInfiniteLoop();
// 
//     public Config deactivateInfiniteLoop();
// 
//     public boolean isInfiniteLoop();
// }
// 
// Path: src/main/java/com/eguller/mouserecorder/ui/LoopCountMenuItem.java
// public class LoopCountMenuItem extends JPanel {
//     private static final int SPINNER_WIDTH = 64;
//     private static final int SPINNER_HEIGHT = 22;
//     JLabel loopCountLabel;
//     JSpinner loopCountSpinner;
//     final Config config;
// 
//     public LoopCountMenuItem(final Config config) {
//         this.config = config;
//         loopCountLabel = new JLabel("Loop Count");
//         loopCountSpinner = new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1));
//         loopCountLabel.setLabelFor(loopCountSpinner);
//         loopCountSpinner.setValue(config.getLoopCount());
// 
//         loopCountSpinner.addChangeListener(new ChangeListener() {
//             @Override
//             public void stateChanged(ChangeEvent changeEvent) {
//                 config.setLoopCount((Integer) (loopCountSpinner.getValue()));
//             }
//         });
//         loopCountSpinner.setPreferredSize(new Dimension(SPINNER_WIDTH, SPINNER_HEIGHT));
//         this.add(loopCountLabel);
//         this.add(loopCountSpinner);
//         this.setLayout(new FlowLayout(FlowLayout.LEFT));
//     }
// }


import com.eguller.mouserecorder.config.Config;
import com.eguller.mouserecorder.ui.LoopCountMenuItem;
import javax.swing.*;
import java.awt.event.ActionEvent;
package com.eguller.mouserecorder.ui.action;



/**
 * User: eguller
 * Date: 3/9/14
 * Time: 11:50 PM
 */
public class InfiniteLoopAction extends BooleanMenuAction {

    LoopCountMenuItem loopCountMenuItem;

// Path: src/main/java/com/eguller/mouserecorder/config/Config.java
// public interface Config {
//     public Config activateMinimizeOnPlay();
// 
//     public Config deactivateMinimizeOnPlay();
// 
//     public Config activateMinimizeOnRecord();
// 
//     public Config deactivateMinimizeOnRecord();
// 
//     public Config setSpeed(double speed);
// 
//     public double getSpeed();
// 
//     public boolean getMinimizeOnPlay();
// 
//     public boolean getMinimizeOnRecord();
// 
//     public Config setLoopCount(int loopCount);
// 
//     public int getLoopCount();
// 
//     public Config activeInfiniteLoop();
// 
//     public Config deactivateInfiniteLoop();
// 
//     public boolean isInfiniteLoop();
// }
// 
// Path: src/main/java/com/eguller/mouserecorder/ui/LoopCountMenuItem.java
// public class LoopCountMenuItem extends JPanel {
//     private static final int SPINNER_WIDTH = 64;
//     private static final int SPINNER_HEIGHT = 22;
//     JLabel loopCountLabel;
//     JSpinner loopCountSpinner;
//     final Config config;
// 
//     public LoopCountMenuItem(final Config config) {
//         this.config = config;
//         loopCountLabel = new JLabel("Loop Count");
//         loopCountSpinner = new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1));
//         loopCountLabel.setLabelFor(loopCountSpinner);
//         loopCountSpinner.setValue(config.getLoopCount());
// 
//         loopCountSpinner.addChangeListener(new ChangeListener() {
//             @Override
//             public void stateChanged(ChangeEvent changeEvent) {
//                 config.setLoopCount((Integer) (loopCountSpinner.getValue()));
//             }
//         });
//         loopCountSpinner.setPreferredSize(new Dimension(SPINNER_WIDTH, SPINNER_HEIGHT));
//         this.add(loopCountLabel);
//         this.add(loopCountSpinner);
//         this.setLayout(new FlowLayout(FlowLayout.LEFT));
//     }
// }


// Path: src/main/java/com/eguller/mouserecorder/ui/action/InfiniteLoopAction.java
import com.eguller.mouserecorder.config.Config;
import com.eguller.mouserecorder.ui.LoopCountMenuItem;
import javax.swing.*;
import java.awt.event.ActionEvent;

package com.eguller.mouserecorder.ui.action;



/**
 * User: eguller
 * Date: 3/9/14
 * Time: 11:50 PM
 */
public class InfiniteLoopAction extends BooleanMenuAction {

    LoopCountMenuItem loopCountMenuItem;

    public InfiniteLoopAction(Config config, LoopCountMenuItem loopCountMenuItem) {