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

added basic bookmarking capabilities. Still missing:

- animate "go to bookmark"
- rotation-only bookmarks
- different (permanent) overlay for bookmark messages
parent 9329a1b5
Branches
Tags
No related merge requests found
......@@ -44,6 +44,7 @@ import bdv.tools.HelpDialog;
import bdv.tools.InitializeViewerState;
import bdv.tools.RecordMovieDialog;
import bdv.tools.VisibilityAndGroupingDialog;
import bdv.tools.bookmarks.BookmarkEditor;
import bdv.tools.brightness.BrightnessDialog;
import bdv.tools.brightness.ConverterSetup;
import bdv.tools.brightness.MinMaxGroup;
......@@ -81,6 +82,8 @@ public class BigDataViewer
protected final ManualTransformationEditor manualTransformationEditor;
protected final BookmarkEditor bookmarkEditor;
protected final JFileChooser fileChooser;
protected File proposedSettingsFile;
......@@ -90,6 +93,16 @@ public class BigDataViewer
manualTransformationEditor.toggle();
}
public void initSetBookmark()
{
bookmarkEditor.initSetBookmark();
}
public void initGoToBookmark()
{
bookmarkEditor.initGoToBookmark();
}
private static String createSetupName( final BasicViewSetup setup )
{
if ( setup.hasName() )
......@@ -252,6 +265,8 @@ public class BigDataViewer
manualTransformation = new ManualTransformation( viewer );
manualTransformationEditor = new ManualTransformationEditor( viewer, viewerFrame.getKeybindings() );
bookmarkEditor = new BookmarkEditor( viewer, viewerFrame.getKeybindings() );
setupAssignments = new SetupAssignments( converterSetups, 0, 65535 );
if ( setupAssignments.getMinMaxGroups().size() > 0 )
{
......@@ -449,8 +464,9 @@ public class BigDataViewer
public static void main( final String[] args )
{
final String fn = "/Users/Pietzsch/Desktop/spimrec2/dataset.xml";
// final String fn = "/Users/Pietzsch/Desktop/spimrec2/dataset.xml";
// final String fn = "/Users/Pietzsch/Desktop/bdv example/drosophila 2.xml";
final String fn = "/Users/pietzsch/Desktop/data/clusterValia/140219-1/valia-140219-1.xml";
// final String fn = "/Users/Pietzsch/Desktop/data/catmaid.xml";
// final String fn = "/Users/Pietzsch/Desktop/data/openconnectome-bock11-neariso.xml";
// final String fn = "/Users/Pietzsch/Desktop/data/catmaid-confocal.xml";
......@@ -462,7 +478,7 @@ public class BigDataViewer
// final String fn = "/Users/pietzsch/Desktop/data/fibsem.xml";
// final String fn = "/Users/pietzsch/Desktop/data/fibsem-remote.xml";
// final String fn = "/Users/pietzsch/Desktop/url-valia.xml";
// final String fn = "/Users/pietzsch/Desktop/data/Valia/valia.xml";
// final String fn = "/Users/pietzsch/Desktop/data/clusterValia/140219-1/valia-140219-1.xml";
// final String fn = "/Users/pietzsch/workspace/data/111010_weber_full.xml";
// final String fn = "/Volumes/projects/tomancak_lightsheet/Mette/ZeissZ1SPIM/Maritigrella/021013_McH2BsGFP_CAAX-mCherry/11-use/hdf5/021013_McH2BsGFP_CAAX-mCherry-11-use.xml";
try
......
......@@ -7,8 +7,8 @@ import javax.swing.InputMap;
import bdv.tools.ToggleDialogAction;
import bdv.util.AbstractNamedAction;
import bdv.util.KeyProperties;
import bdv.util.AbstractNamedAction.NamedActionAdder;
import bdv.util.KeyProperties;
import bdv.util.KeyProperties.KeyStrokeAdder;
import bdv.viewer.InputActionBindings;
......@@ -22,6 +22,8 @@ public class BigDataViewerActions
public static final String SAVE_SETTINGS = "save settings";
public static final String LOAD_SETTINGS = "load settings";
public static final String RECORD_MOVIE = "record movie";
public static final String SET_BOOKMARK = "set bookmark";
public static final String GO_TO_BOOKMARK = "go to bookmark";
/**
* Create BigDataViewer actions and install them in the specified
......@@ -56,6 +58,8 @@ public class BigDataViewerActions
map.put( RECORD_MOVIE, "F10" );
map.put( SAVE_SETTINGS, "F11" );
map.put( LOAD_SETTINGS, "F12" );
map.put( GO_TO_BOOKMARK, "B" );
map.put( SET_BOOKMARK, "shift B" );
return inputMap;
}
......@@ -71,6 +75,8 @@ public class BigDataViewerActions
map.put( new ToggleDialogAction( RECORD_MOVIE, bdv.movieDialog ) );
map.put( new ToggleDialogAction( SHOW_HELP, bdv.helpDialog ) );
map.put( new ManualTransformAction( bdv ) );
map.put( new SetBookmarkAction( bdv ) );
map.put( new GoToBookmarkAction( bdv ) );
map.put( new SaveSettingsAction( bdv ) );
map.put( new LoadSettingsAction( bdv ) );
......@@ -106,6 +112,38 @@ public class BigDataViewerActions
private static final long serialVersionUID = 1L;
}
public static class SetBookmarkAction extends ViewerAction
{
public SetBookmarkAction( final BigDataViewer bdv )
{
super( SET_BOOKMARK, bdv );
}
@Override
public void actionPerformed( final ActionEvent e )
{
bdv.initSetBookmark();
}
private static final long serialVersionUID = 1L;
}
public static class GoToBookmarkAction extends ViewerAction
{
public GoToBookmarkAction( final BigDataViewer bdv )
{
super( GO_TO_BOOKMARK, bdv );
}
@Override
public void actionPerformed( final ActionEvent e )
{
bdv.initGoToBookmark();
}
private static final long serialVersionUID = 1L;
}
public static class SaveSettingsAction extends ViewerAction
{
public SaveSettingsAction( final BigDataViewer bdv )
......
package bdv.tools.bookmarks;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.HashMap;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.KeyStroke;
import net.imglib2.realtransform.AffineTransform3D;
import bdv.viewer.InputActionBindings;
import bdv.viewer.ViewerPanel;
public class BookmarkEditor
{
private boolean active = false;
private boolean setBookmark = false;
private final ViewerPanel viewer;
private final InputActionBindings bindings;
private final ActionMap actionMap;
private final InputMap inputMap;
private final HashMap< String, AffineTransform3D > bookmarks;
public BookmarkEditor( final ViewerPanel viewer, final InputActionBindings inputActionBindings )
{
this.viewer = viewer;
bindings = inputActionBindings;
bookmarks = new HashMap< String, AffineTransform3D >();
final KeyStroke abortKey = KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0 );
final Action abortAction = new AbstractAction( "abort bookmark" )
{
@Override
public void actionPerformed( final ActionEvent e )
{
abort();
}
private static final long serialVersionUID = 1L;
};
actionMap = new ActionMap();
inputMap = new InputMap();
actionMap.put( "abort bookmark", abortAction );
inputMap.put( abortKey, "abort bookmark" );
bindings.addActionMap( "bookmarks", actionMap );
viewer.getDisplay().addKeyListener( new KeyAdapter()
{
@Override
public void keyTyped( final KeyEvent e )
{
if ( active && e.getKeyChar() != 'b' && e.getKeyChar() != 'B' )
{
final String key = String.valueOf( e.getKeyChar() );
if ( setBookmark )
{
final AffineTransform3D t = new AffineTransform3D();
viewer.getState().getViewerTransform( t );
bookmarks.put( key, t );
viewer.showMessage( "set bookmark " + key );
}
else
{
final AffineTransform3D t = bookmarks.get( key );
if ( t != null )
viewer.setCurrentViewerTransform( t );
viewer.showMessage( "go to bookmark " + key );
}
done();
}
}
} );
}
public synchronized void abort()
{
if ( active )
{
viewer.showMessage( "aborted" );
done();
}
}
public synchronized void initSetBookmark()
{
active = true;
setBookmark = true;
bindings.addInputMap( "bookmarks", inputMap, "bdv", "navigation" );
viewer.showMessage( " bookmark" );
}
public synchronized void initGoToBookmark()
{
active = true;
setBookmark = false;
bindings.addInputMap( "bookmarks", inputMap, "bdv", "navigation" );
viewer.showMessage( "go to bookmark" );
}
public synchronized void done()
{
active = false;
bindings.removeInputMap( "bookmarks" );
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment