Skip to content
Snippets Groups Projects
Commit 140f6d9c authored by Tobias Pietzsch's avatar Tobias Pietzsch
Browse files

Use Listeners for ManualTransformActiveListener instead of maintaining list

parent 791f824f
No related branches found
No related tags found
No related merge requests found
...@@ -31,5 +31,5 @@ package bdv.tools.transformation; ...@@ -31,5 +31,5 @@ package bdv.tools.transformation;
public interface ManualTransformActiveListener public interface ManualTransformActiveListener
{ {
public void manualTransformActiveChanged( final boolean acitve ); void manualTransformActiveChanged( final boolean active );
} }
...@@ -29,18 +29,16 @@ ...@@ -29,18 +29,16 @@
*/ */
package bdv.tools.transformation; package bdv.tools.transformation;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import javax.swing.AbstractAction;
import javax.swing.Action; import javax.swing.Action;
import javax.swing.ActionMap; import javax.swing.ActionMap;
import javax.swing.InputMap; import javax.swing.InputMap;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import org.scijava.listeners.Listeners;
import org.scijava.ui.behaviour.util.InputActionBindings; import org.scijava.ui.behaviour.util.InputActionBindings;
import bdv.viewer.Source; import bdv.viewer.Source;
...@@ -49,7 +47,7 @@ import bdv.viewer.state.SourceGroup; ...@@ -49,7 +47,7 @@ import bdv.viewer.state.SourceGroup;
import bdv.viewer.state.ViewerState; import bdv.viewer.state.ViewerState;
import net.imglib2.realtransform.AffineTransform3D; import net.imglib2.realtransform.AffineTransform3D;
import net.imglib2.ui.TransformListener; import net.imglib2.ui.TransformListener;
import org.scijava.ui.behaviour.util.RunnableAction;
// TODO: what happens when the current source, display mode, etc is changed while the editor is active? deactivate? // TODO: what happens when the current source, display mode, etc is changed while the editor is active? deactivate?
public class ManualTransformationEditor implements TransformListener< AffineTransform3D > public class ManualTransformationEditor implements TransformListener< AffineTransform3D >
...@@ -72,7 +70,7 @@ public class ManualTransformationEditor implements TransformListener< AffineTran ...@@ -72,7 +70,7 @@ public class ManualTransformationEditor implements TransformListener< AffineTran
private final InputMap inputMap; private final InputMap inputMap;
protected final CopyOnWriteArrayList< ManualTransformActiveListener > manualTransformActiveListeners; private final Listeners.List< ManualTransformActiveListener > manualTransformActiveListeners;
public ManualTransformationEditor( final ViewerPanel viewer, final InputActionBindings inputActionBindings ) public ManualTransformationEditor( final ViewerPanel viewer, final InputActionBindings inputActionBindings )
{ {
...@@ -82,30 +80,12 @@ public class ManualTransformationEditor implements TransformListener< AffineTran ...@@ -82,30 +80,12 @@ public class ManualTransformationEditor implements TransformListener< AffineTran
liveTransform = new AffineTransform3D(); liveTransform = new AffineTransform3D();
sourcesToModify = new ArrayList<>(); sourcesToModify = new ArrayList<>();
sourcesToFix = new ArrayList<>(); sourcesToFix = new ArrayList<>();
manualTransformActiveListeners = new CopyOnWriteArrayList<>(); manualTransformActiveListeners = new Listeners.SynchronizedList<>();
final KeyStroke abortKey = KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0 ); final KeyStroke abortKey = KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0 );
final Action abortAction = new AbstractAction( "abort manual transformation" ) final Action abortAction = new RunnableAction( "abort manual transformation", this::abort );
{
@Override
public void actionPerformed( final ActionEvent e )
{
abort();
}
private static final long serialVersionUID = 1L;
};
final KeyStroke resetKey = KeyStroke.getKeyStroke( KeyEvent.VK_R, 0 ); final KeyStroke resetKey = KeyStroke.getKeyStroke( KeyEvent.VK_R, 0 );
final Action resetAction = new AbstractAction( "reset manual transformation" ) final Action resetAction = new RunnableAction( "reset manual transformation", this::reset );
{
@Override
public void actionPerformed( final ActionEvent e )
{
reset();
}
private static final long serialVersionUID = 1L;
};
actionMap = new ActionMap(); actionMap = new ActionMap();
inputMap = new InputMap(); inputMap = new InputMap();
actionMap.put( "abort manual transformation", abortAction ); actionMap.put( "abort manual transformation", abortAction );
...@@ -125,6 +105,7 @@ public class ManualTransformationEditor implements TransformListener< AffineTran ...@@ -125,6 +105,7 @@ public class ManualTransformationEditor implements TransformListener< AffineTran
viewer.setCurrentViewerTransform( frozenTransform ); viewer.setCurrentViewerTransform( frozenTransform );
viewer.showMessage( "aborted manual transform" ); viewer.showMessage( "aborted manual transform" );
active = false; active = false;
manualTransformActiveListeners.list.forEach( l -> l.manualTransformActiveChanged( active ) );
} }
} }
...@@ -209,10 +190,7 @@ public class ManualTransformationEditor implements TransformListener< AffineTran ...@@ -209,10 +190,7 @@ public class ManualTransformationEditor implements TransformListener< AffineTran
viewer.setCurrentViewerTransform( frozenTransform ); viewer.setCurrentViewerTransform( frozenTransform );
viewer.showMessage( "fixed manual transform" ); viewer.showMessage( "fixed manual transform" );
} }
for ( final ManualTransformActiveListener l : manualTransformActiveListeners ) manualTransformActiveListeners.list.forEach( l -> l.manualTransformActiveChanged( active ) );
{
l.manualTransformActiveChanged( active );
}
} }
public synchronized void toggle() public synchronized void toggle()
...@@ -232,13 +210,8 @@ public class ManualTransformationEditor implements TransformListener< AffineTran ...@@ -232,13 +210,8 @@ public class ManualTransformationEditor implements TransformListener< AffineTran
source.setIncrementalTransform( liveTransform.inverse() ); source.setIncrementalTransform( liveTransform.inverse() );
} }
public void addManualTransformActiveListener( final ManualTransformActiveListener l ) public Listeners< ManualTransformActiveListener > manualTransformActiveListeners()
{
manualTransformActiveListeners.add( l );
}
public void removeManualTransformActiveListener( final ManualTransformActiveListener l )
{ {
manualTransformActiveListeners.remove( l ); return manualTransformActiveListeners;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment