+++ /dev/null
-package tim.prune.correlate;
-
-import java.awt.event.ActionListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-
-/**
- * Helper class to listen for changed options on the Correlators
- * Tightly coupled but only to ok button and preview function
- */
-public class OptionsChangedListener implements KeyListener, ActionListener, ItemListener, Runnable
-{
- /** Correlator object for callbacks */
- private Correlator _correlator;
- /** Thread counter */
- private int _threadCount = 0;
-
- /** Default delay time from change to preview trigger */
- private static final long PREVIEW_DELAY_TIME = 2500L;
-
-
- /**
- * Constructor
- * @param inCorrelator correlator object for callbacks
- */
- public OptionsChangedListener(Correlator inCorrelator)
- {
- _correlator = inCorrelator;
- }
-
- /**
- * Respond to actions performed on control
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
- */
- public void actionPerformed(ActionEvent inEvent)
- {
- optionsChanged();
- }
-
- /**
- * Run method, called by separate thread(s)
- * @see java.lang.Runnable#run()
- */
- public void run()
- {
- // Wait for a certain time
- try {
- Thread.sleep(PREVIEW_DELAY_TIME);
- }
- catch (InterruptedException ie) {}
- _threadCount--;
- if (_threadCount == 0) {
- // trigger preview (false means automatic)
- _correlator.createPreview(false);
- }
- }
-
- /**
- * Respond to key pressed event
- * @param inEvent event
- */
- public void keyPressed(KeyEvent inEvent)
- {
- optionsChanged();
- }
-
- /** Ignore key released events */
- public void keyReleased(KeyEvent inEvent) {}
-
- /** Ignore key typed events */
- public void keyTyped(KeyEvent e) {}
-
- /**
- * Respond to item change events (eg dropdown)
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
- */
- public void itemStateChanged(ItemEvent inEvent)
- {
- if (inEvent.getStateChange() == ItemEvent.SELECTED) {
- optionsChanged();
- }
- }
-
- /**
- * Trigger that an option has changed, whatever type
- */
- private void optionsChanged()
- {
- // disable ok button
- _correlator.disableOkButton();
- // start new thread to trigger preview
- _threadCount++;
- new Thread(this).start();
- }
-}