com.groovemanager.app.sse
Class SimpleSampleEditor

java.lang.Object
  extended by org.eclipse.jface.window.Window
      extended by org.eclipse.jface.window.ApplicationWindow
          extended by com.groovemanager.gui.EditorWindow
              extended by com.groovemanager.app.sse.SimpleSampleEditor
All Implemented Interfaces:
AudioFileSaveListener, FileCloseListener, FileNewListener, FileOpenListener, FileSaveListener, org.eclipse.jface.operation.IRunnableContext, WaveDisplayListener
Direct Known Subclasses:
Mc909SampleEditor

public class SimpleSampleEditor
extends EditorWindow
implements FileNewListener, FileOpenListener, FileCloseListener, FileSaveListener, WaveDisplayListener, AudioFileSaveListener

This class represents the application window of the sample editor application

Author:
Manu Robledo

Nested Class Summary
protected  class SimpleSampleEditor.AudioPlayerPositionReader
          This subclass of Thread is used to monitor the AudioPlayer status and adapt the SampleEditor´s gui elements
protected  class SimpleSampleEditor.LeftBar
          This class represents the left bar of a SampleEditor
private  class SimpleSampleEditor.TransportBar
          This class is used for the transport bar of a Sample editor
 
Nested classes inherited from class org.eclipse.jface.window.Window
org.eclipse.jface.window.Window.IExceptionHandler
 
Field Summary
protected  ConfigAction configAction
          ConfigAction used for Settings
protected  org.eclipse.swt.widgets.Composite controlBar
          The control bar composite
protected  WaveTab copySource
          The current source for paste operations
protected  java.util.ArrayList effectActions
          All effect actions
protected  FileCloseAction fileCloseAction
          Action used for closing files
protected  FileManager fileManager
          the FileManager to be used
protected  FileOpenAction fileOpenAction
          The action used for opening files
protected  FileSaveAction fileSaveAction
          Action used for saving files
protected  SaveAudioFileAsAction fileSaveAsAction
          Action used for saving files as...
protected  org.eclipse.swt.events.KeyListener keyListener
          KeyListener for global shortcuts
protected  SimpleSampleEditor.LeftBar left
          The left bar
protected  org.eclipse.swt.widgets.Composite leftBar
          The control bar composite
protected  boolean listenToWaveDisplay
          Indicates whether a zoom or scroll change in the main WaveFormDisplay of the currently active WaveTab should be handled with a selection change of the ZoomWaveDisplay or not
protected  boolean listenToZoomWaveForm
          Indicates whether selection changes on the zoom waveform should be handled with a zoom and scroll change or not
protected  org.eclipse.swt.widgets.Composite mainContent
          The control bar composite
protected  java.lang.Thread memoryReader
          Seperate thread for showing the current memory usage
protected  AudioPlayer player
          The AudioPlayer to be used for playback and recording
protected  SimpleSampleEditor.AudioPlayerPositionReader positionReader
          A seperate Thread for updating the current position of the AudioPlayer
protected  boolean readMemory
          break condition for the memory reader thread
protected  org.eclipse.swt.widgets.Composite rightBar
          The control bar composite
protected  org.eclipse.swt.custom.SashForm sashForm
          The SashForm containing the left bar and the wave form composite
protected  int style
          This window´s style
protected  org.eclipse.swt.widgets.TabFolder tabFolder
          The TabFolder containing the WaveTabs
protected  SimpleSampleEditor.TransportBar transportBar
          The transport bar on the right
protected  org.eclipse.swt.widgets.Composite waveContent
          The control bar composite
protected  org.eclipse.swt.widgets.Button zoomAll
          Zoom buttons
protected  org.eclipse.swt.widgets.Button zoomIn
          Zoom buttons
protected  org.eclipse.swt.widgets.Button zoomOut
          Zoom buttons
protected  org.eclipse.swt.widgets.Button zoomSel
          Zoom buttons
protected  WaveFormDisplay zoomWaveDisplay
          The WaveFormDisplay displayed at the bottom for direct zooming
 
Fields inherited from class org.eclipse.jface.window.Window
CANCEL, OK
 
Constructor Summary
SimpleSampleEditor()
          Create a new SimpleSampleEditor in a top level window using the default FileManager
SimpleSampleEditor(FileManager fileManager)
          Create a new SimpleSampleEditor in a top level window
SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell)
          Create a new SimpleSampleEditor using the default FileManager
SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell, FileManager fileManager)
          Create a new SimpleSampleEditor
SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell, int style)
          Create a new SimpleSampleEditor using the default FileManager
SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell, int style, FileManager fileManager)
          Create a new SimpleSampleEditor
 
Method Summary
protected  java.io.File copyFile(java.io.File source)
          Create a 1:1 copy of the given file in a temporary file
protected  ConfigAction createConfigAction()
          Create the action that will be used for "Settings"
protected  org.eclipse.swt.widgets.Control createContents(org.eclipse.swt.widgets.Composite parent)
          This methos must be implemented to create the EditorWindow´s contents
protected  void createControlBarElements(org.eclipse.swt.widgets.Composite comp)
          Create the control bar elements (bottom bar)
protected  void createEditMenu(org.eclipse.jface.action.MenuManager editMenu)
          Add the edit menu elements to the given menu manager
protected  void createEffectMenu(org.eclipse.jface.action.MenuManager parent)
          Add the effect menu elements to the given menu manager
protected  void createFileMenu(org.eclipse.jface.action.MenuManager fileMenu)
          Add the file menu elements to the given menu manager
protected  void createLeftBarElements(org.eclipse.swt.widgets.Composite comp)
          Create the elements for the left bar
protected  org.eclipse.jface.action.MenuManager createMenuManager()
           
protected  void createOptionsMenu(org.eclipse.jface.action.MenuManager optionsMenu)
          Add the options menu elements to the given menu manager
protected  void createRightBarElements(org.eclipse.swt.widgets.Composite parent)
          Create the elementes for the right bar
protected  java.io.File createTempFile(javax.sound.sampled.AudioFormat format)
          Create a temporary file for saving temporary audio data
protected  void createWaveContentElements(org.eclipse.swt.widgets.Composite comp)
          Create the elements for the WaveForm content
 void editAction(int type)
          Perform an edit action of the given type
 void fileClosed(java.io.File f)
          Notification that the user requested to close a file
 void fileOpened(java.io.File f)
          Notification that the user desired to open a file.
 void fileSaved(java.io.File source, java.io.File f)
           
protected  java.io.File getActiveSource()
          Get the source file of the currently active WaveTab
protected  WaveTab getActiveTab()
          Get the currently active WaveTab
protected  int getControlBarStyle()
          Get the style to be used for the control bar (bottom bar)
 WaveTab getCopySource()
          Get the WaveTab that is currently assigned as copy source, if any.
protected  org.eclipse.swt.graphics.Image getImage()
          Get the icon to be used for this editor
protected  int getLeftBarStyle()
          Get the style to be used for the left bar
protected  int getRightBarStyle()
          Get the style to be used for the right bar
protected  int getSashFormStyle()
          Get the style to be used for the SashForm
protected  int[] getSashFormWeights()
          Get the weights to be used for the SashForm
protected  int getTabFolderStyle()
          Get the style to be used for the TabFolder
protected  WaveTab getTabForFile(java.io.File f)
          Get the WaveTab to which the given file is the source
protected  int getTabItemStyle()
          Get the style to be used for each Tabitem
protected  java.lang.String getTitle()
          Get the title to be used for the window
protected  int getTransportBarStyle()
          Get the style to be used for the transport bar
protected  int getWaveContentStyle()
          Get the style to be used for the WaveForm content
protected  AbstractWaveFormDisplay getWaveDisplay()
          Get the current WaveFormDisplay
protected  int getWaveStyle()
          Get the style to be used for the WaveForm composite
protected  boolean isOpen(java.io.File f)
          Check, if the given file is opened somewhere inside this editor
 void newFile()
          Notification that the user requested to create a new file.
 int open()
          Open this editor
 void removeCopySource()
          Remove the current copy source
 void saveAudioFile(java.io.File source, java.io.File f, javax.sound.sampled.AudioFileFormat.Type type, javax.sound.sampled.AudioFormat format)
          Notification that a SaveAudioFileAsAction has been performed, meaning the given file should be saved as the given audio file type at the given File location in the given format.
protected  boolean selectFileTab(java.io.File f)
          Bring the WaveTab to the foreground to ehich the given file belongs
 void setCopySource(WaveTab wt)
          Set the WaveTab that should act as copy source, meaning that a this WaveTab will be used for a paste operation
protected  void setShells(org.eclipse.swt.widgets.Shell s)
          This method is called after the Shell has been created so that the Shell can be set for any action or other object that needs it.
protected  void sourceFileChanged(java.io.File newSource)
          Notification that the currently active source file (represented by a WaveTab instance) has changed.
protected  void tabActivated(WaveTab wt)
          React to a WaveTab being selected to the Foreground
protected  void transportBack()
          React to the back button being pressed
protected  void transportBackSearch()
          React to the search back button being pressed
protected  void transportFwd()
          React to the forward button being pressed
protected  void transportFwdSearch()
          React to the search forward button being pressed
protected  void transportLoop()
          React to the loop button being pressed
protected  void transportPause()
          React to the pause button being pressed
protected  void transportPlay()
          React to the play button being pressed
protected  void transportRecord()
          React to the record button being pressed
protected  void transportStop()
          React to the stop button being pressed
 void viewChanged(AbstractWaveFormDisplay display, double zoom, double scroll)
          Notification about a zoom or scroll change
protected  void zoomAll()
          Zoom and scroll in the way that the whole WaveForm is visible and nothing more
protected  void zoomIn()
          Zoom one level in
protected  void zoomOut()
          Zoom one level out
protected  void zoomSelection()
          Zoom and scroll to the current selection
 
Methods inherited from class com.groovemanager.gui.EditorWindow
errorMessage
 
Methods inherited from class org.eclipse.jface.window.ApplicationWindow
addMenuBar, addStatusLine, addToolBar, canHandleShellCloseEvent, close, configureShell, createStatusLineManager, createToolBarControl, createToolBarManager, getFont, getMenuBarManager, getStatusLineManager, getSymbolicFontName, getToolBarControl, getToolBarManager, run, setStatus, toolBarChildrenExist
 
Methods inherited from class org.eclipse.jface.window.Window
constrainShellSize, create, createShell, getContents, getDefaultImage, getInitialLocation, getInitialSize, getParentShell, getReturnCode, getShell, getShellListener, getShellStyle, getWindowManager, handleFontChange, handleShellCloseEvent, initializeBounds, setBlockOnOpen, setDefaultImage, setExceptionHandler, setReturnCode, setShellStyle, setWindowManager
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

configAction

protected ConfigAction configAction
ConfigAction used for Settings


controlBar

protected org.eclipse.swt.widgets.Composite controlBar
The control bar composite


copySource

protected WaveTab copySource
The current source for paste operations


effectActions

protected java.util.ArrayList effectActions
All effect actions


fileCloseAction

protected FileCloseAction fileCloseAction
Action used for closing files


fileManager

protected FileManager fileManager
the FileManager to be used


fileOpenAction

protected FileOpenAction fileOpenAction
The action used for opening files


fileSaveAction

protected FileSaveAction fileSaveAction
Action used for saving files


fileSaveAsAction

protected SaveAudioFileAsAction fileSaveAsAction
Action used for saving files as...


keyListener

protected org.eclipse.swt.events.KeyListener keyListener
KeyListener for global shortcuts


left

protected SimpleSampleEditor.LeftBar left
The left bar


leftBar

protected org.eclipse.swt.widgets.Composite leftBar
The control bar composite


listenToWaveDisplay

protected boolean listenToWaveDisplay
Indicates whether a zoom or scroll change in the main WaveFormDisplay of the currently active WaveTab should be handled with a selection change of the ZoomWaveDisplay or not


listenToZoomWaveForm

protected boolean listenToZoomWaveForm
Indicates whether selection changes on the zoom waveform should be handled with a zoom and scroll change or not


mainContent

protected org.eclipse.swt.widgets.Composite mainContent
The control bar composite


memoryReader

protected java.lang.Thread memoryReader
Seperate thread for showing the current memory usage


player

protected AudioPlayer player
The AudioPlayer to be used for playback and recording


positionReader

protected SimpleSampleEditor.AudioPlayerPositionReader positionReader
A seperate Thread for updating the current position of the AudioPlayer


readMemory

protected boolean readMemory
break condition for the memory reader thread


rightBar

protected org.eclipse.swt.widgets.Composite rightBar
The control bar composite


sashForm

protected org.eclipse.swt.custom.SashForm sashForm
The SashForm containing the left bar and the wave form composite


style

protected int style
This window´s style


tabFolder

protected org.eclipse.swt.widgets.TabFolder tabFolder
The TabFolder containing the WaveTabs


transportBar

protected SimpleSampleEditor.TransportBar transportBar
The transport bar on the right


waveContent

protected org.eclipse.swt.widgets.Composite waveContent
The control bar composite


zoomAll

protected org.eclipse.swt.widgets.Button zoomAll
Zoom buttons


zoomIn

protected org.eclipse.swt.widgets.Button zoomIn
Zoom buttons


zoomOut

protected org.eclipse.swt.widgets.Button zoomOut
Zoom buttons


zoomSel

protected org.eclipse.swt.widgets.Button zoomSel
Zoom buttons


zoomWaveDisplay

protected WaveFormDisplay zoomWaveDisplay
The WaveFormDisplay displayed at the bottom for direct zooming

Constructor Detail

SimpleSampleEditor

public SimpleSampleEditor()
Create a new SimpleSampleEditor in a top level window using the default FileManager


SimpleSampleEditor

public SimpleSampleEditor(FileManager fileManager)
Create a new SimpleSampleEditor in a top level window

Parameters:
fileManager - The FileManager to use

SimpleSampleEditor

public SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell)
Create a new SimpleSampleEditor using the default FileManager

Parameters:
shell - The parent shell. May be null to create a top level window.

SimpleSampleEditor

public SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell,
                          FileManager fileManager)
Create a new SimpleSampleEditor

Parameters:
shell - The parent shell. May be null to create a top level window.
fileManager - The FileManager to use

SimpleSampleEditor

public SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell,
                          int style)
Create a new SimpleSampleEditor using the default FileManager

Parameters:
shell - The parent shell. May be null to create a top level window.
style - The window´s style

SimpleSampleEditor

public SimpleSampleEditor(org.eclipse.swt.widgets.Shell shell,
                          int style,
                          FileManager fileManager)
Create a new SimpleSampleEditor

Parameters:
shell - The parent shell. May be null to create a top level window.
style - The window´s style
fileManager - The FileManager to use
Method Detail

copyFile

protected java.io.File copyFile(java.io.File source)
                         throws java.io.IOException,
                                NotFinishedException
Create a 1:1 copy of the given file in a temporary file

Parameters:
source - The file to copy
Returns:
The copied file
Throws:
java.io.IOException
NotFinishedException

createConfigAction

protected ConfigAction createConfigAction()
Create the action that will be used for "Settings"

Returns:
The action that will be used for "Settings"

createContents

protected org.eclipse.swt.widgets.Control createContents(org.eclipse.swt.widgets.Composite parent)
Description copied from class: EditorWindow
This methos must be implemented to create the EditorWindow´s contents

Specified by:
createContents in class EditorWindow
See Also:
Window.createContents(org.eclipse.swt.widgets.Composite)

createControlBarElements

protected void createControlBarElements(org.eclipse.swt.widgets.Composite comp)
Create the control bar elements (bottom bar)

Parameters:
comp - The parent composite

createEditMenu

protected void createEditMenu(org.eclipse.jface.action.MenuManager editMenu)
Add the edit menu elements to the given menu manager

Parameters:
editMenu - The edit Menu´s MenuManager

createEffectMenu

protected void createEffectMenu(org.eclipse.jface.action.MenuManager parent)
Add the effect menu elements to the given menu manager

Parameters:
parent - The effect Menu´s MenuManager

createFileMenu

protected void createFileMenu(org.eclipse.jface.action.MenuManager fileMenu)
Add the file menu elements to the given menu manager

Parameters:
fileMenu - The file Menu´s MenuManager

createLeftBarElements

protected void createLeftBarElements(org.eclipse.swt.widgets.Composite comp)
Create the elements for the left bar

Parameters:
comp - The parent Composite

createMenuManager

protected org.eclipse.jface.action.MenuManager createMenuManager()
Overrides:
createMenuManager in class org.eclipse.jface.window.ApplicationWindow

createOptionsMenu

protected void createOptionsMenu(org.eclipse.jface.action.MenuManager optionsMenu)
Add the options menu elements to the given menu manager

Parameters:
optionsMenu - The options Menu´s MenuManager

createRightBarElements

protected void createRightBarElements(org.eclipse.swt.widgets.Composite parent)
Create the elementes for the right bar

Parameters:
parent - The parent composite

createTempFile

protected java.io.File createTempFile(javax.sound.sampled.AudioFormat format)
                               throws java.io.IOException
Create a temporary file for saving temporary audio data

Parameters:
format - The audio format of the file
Returns:
The temp file
Throws:
java.io.IOException - If no temp file could be created

createWaveContentElements

protected void createWaveContentElements(org.eclipse.swt.widgets.Composite comp)
Create the elements for the WaveForm content

Parameters:
comp - The parent composite

editAction

public void editAction(int type)
Perform an edit action of the given type

Parameters:
type - The type of edit action to perform

fileClosed

public void fileClosed(java.io.File f)
Description copied from interface: FileCloseListener
Notification that the user requested to close a file

Specified by:
fileClosed in interface FileCloseListener
Parameters:
f - The file to be closed
See Also:
FileCloseListener.fileClosed(java.io.File)

fileOpened

public void fileOpened(java.io.File f)
Description copied from interface: FileOpenListener
Notification that the user desired to open a file. When multiple files should be opened, this method will be called once for each file.

Specified by:
fileOpened in interface FileOpenListener
Parameters:
f - The file to be opened
See Also:
FileOpenListener.fileOpened(java.io.File)

fileSaved

public void fileSaved(java.io.File source,
                      java.io.File f)
Specified by:
fileSaved in interface FileSaveListener
See Also:
FileSaveListener.fileSaved(java.io.File, java.io.File)

getActiveSource

protected java.io.File getActiveSource()
Get the source file of the currently active WaveTab

Returns:
The source file of the currently active WaveTab or null, if no WaveTab is actually present

getActiveTab

protected WaveTab getActiveTab()
Get the currently active WaveTab

Returns:
The currently active WaveTab or null, if no WaveTab is actually present

getControlBarStyle

protected int getControlBarStyle()
Get the style to be used for the control bar (bottom bar)

Returns:
The style to be used for the control bar (bottom bar)

getCopySource

public WaveTab getCopySource()
Get the WaveTab that is currently assigned as copy source, if any.

Returns:
The WaveTab, on which the last copy operation was performed or null

getImage

protected org.eclipse.swt.graphics.Image getImage()
Get the icon to be used for this editor

Returns:
The icon to be used for this editor

getLeftBarStyle

protected int getLeftBarStyle()
Get the style to be used for the left bar

Returns:
the style to be used for the left bar

getRightBarStyle

protected int getRightBarStyle()
Get the style to be used for the right bar

Returns:
The style to be used for the right bar

getSashFormStyle

protected int getSashFormStyle()
Get the style to be used for the SashForm

Returns:
The style to be used for the SashForm

getSashFormWeights

protected int[] getSashFormWeights()
Get the weights to be used for the SashForm

Returns:
The weights to be used for the SashForm

getTabFolderStyle

protected int getTabFolderStyle()
Get the style to be used for the TabFolder

Returns:
The style to be used for the TabFolder

getTabForFile

protected WaveTab getTabForFile(java.io.File f)
Get the WaveTab to which the given file is the source

Parameters:
f - The file to get the Wavetab for
Returns:
The WaveTab to which the given file belongs or null, if no WaveTab was found for this file

getTabItemStyle

protected int getTabItemStyle()
Get the style to be used for each Tabitem

Returns:
The style to be used for each Tabitem

getTitle

protected java.lang.String getTitle()
Get the title to be used for the window

Returns:
The window title to be used

getTransportBarStyle

protected int getTransportBarStyle()
Get the style to be used for the transport bar

Returns:
The style to be used for the transport bar

getWaveContentStyle

protected int getWaveContentStyle()
Get the style to be used for the WaveForm content

Returns:
The style to be used for the WaveForm content

getWaveDisplay

protected AbstractWaveFormDisplay getWaveDisplay()
Get the current WaveFormDisplay

Returns:
The WaveFormDisplay of the currently active WaveTab

getWaveStyle

protected int getWaveStyle()
Get the style to be used for the WaveForm composite

Returns:
The style to be used for the WaveForm composite

isOpen

protected boolean isOpen(java.io.File f)
Check, if the given file is opened somewhere inside this editor

Parameters:
f - The file to check for
Returns:
true, if the file is open in this editor, false otherwise

newFile

public void newFile()
Description copied from interface: FileNewListener
Notification that the user requested to create a new file.

Specified by:
newFile in interface FileNewListener
See Also:
FileNewListener.newFile()

open

public int open()
Open this editor

Overrides:
open in class org.eclipse.jface.window.Window
See Also:
Window.open()

removeCopySource

public void removeCopySource()
Remove the current copy source


saveAudioFile

public void saveAudioFile(java.io.File source,
                          java.io.File f,
                          javax.sound.sampled.AudioFileFormat.Type type,
                          javax.sound.sampled.AudioFormat format)
Description copied from interface: AudioFileSaveListener
Notification that a SaveAudioFileAsAction has been performed, meaning the given file should be saved as the given audio file type at the given File location in the given format.

Specified by:
saveAudioFile in interface AudioFileSaveListener
Parameters:
source - The file that should be saved.
f - The file to save to.
type - The audio file type to write.
format - The audio format to write.
See Also:
AudioFileSaveListener.saveAudioFile(java.io.File, java.io.File, javax.sound.sampled.AudioFileFormat.Type, javax.sound.sampled.AudioFormat)

selectFileTab

protected boolean selectFileTab(java.io.File f)
Bring the WaveTab to the foreground to ehich the given file belongs

Parameters:
f - The source file of the WaveTab to bring to the foreground
Returns:
true, if such a WaveTab was found, false otherwise

setCopySource

public void setCopySource(WaveTab wt)
Set the WaveTab that should act as copy source, meaning that a this WaveTab will be used for a paste operation

Parameters:
wt - The WaveTab to set as copy source

setShells

protected void setShells(org.eclipse.swt.widgets.Shell s)
This method is called after the Shell has been created so that the Shell can be set for any action or other object that needs it.

Parameters:
s - This Window´s Shell

sourceFileChanged

protected void sourceFileChanged(java.io.File newSource)
Notification that the currently active source file (represented by a WaveTab instance) has changed.

Parameters:
newSource - The new active source file

tabActivated

protected void tabActivated(WaveTab wt)
React to a WaveTab being selected to the Foreground

Parameters:
wt - The WaveTab that has been selected or null, if all WaveTabs have been closed

transportBack

protected void transportBack()
React to the back button being pressed


transportBackSearch

protected void transportBackSearch()
React to the search back button being pressed


transportFwd

protected void transportFwd()
React to the forward button being pressed


transportFwdSearch

protected void transportFwdSearch()
React to the search forward button being pressed


transportLoop

protected void transportLoop()
React to the loop button being pressed


transportPause

protected void transportPause()
React to the pause button being pressed


transportPlay

protected void transportPlay()
React to the play button being pressed


transportRecord

protected void transportRecord()
React to the record button being pressed


transportStop

protected void transportStop()
React to the stop button being pressed


viewChanged

public void viewChanged(AbstractWaveFormDisplay display,
                        double zoom,
                        double scroll)
Description copied from interface: WaveDisplayListener
Notification about a zoom or scroll change

Specified by:
viewChanged in interface WaveDisplayListener
Parameters:
display - The WaveFormDisplay that was changed
zoom - The new zoom factor
scroll - The new scroll factor
See Also:
WaveDisplayListener.viewChanged(com.groovemanager.sampled.waveform.AbstractWaveFormDisplay, double, double)

zoomAll

protected void zoomAll()
Zoom and scroll in the way that the whole WaveForm is visible and nothing more


zoomIn

protected void zoomIn()
Zoom one level in


zoomOut

protected void zoomOut()
Zoom one level out


zoomSelection

protected void zoomSelection()
Zoom and scroll to the current selection