org.crosswire.bibledesktop.book
Class BibleViewPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.crosswire.common.swing.desktop.TabbedPanePanel
                      extended by org.crosswire.bibledesktop.book.BibleViewPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, Clearable, TitleChangedListener, Titleable

public class BibleViewPane
extends TabbedPanePanel
implements Titleable, Clearable, TitleChangedListener

A BibleViewPane consists of three areas for looking up passages, for navigating and manipulating parts of passage and for viewing a passage.

Author:
Joe Walker [joe at eireneh dot com]
See Also:
for license details.
The copyright to this program is held by it's authors.
, Serialized Form

Nested Class Summary
(package private) static class BibleViewPane.CustomFileFilter
          Filter out verse lists
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private static String BOOKMARK_DIR
           
private  JFileChooser chooser
           
private static String EXTENSION
           
private  EventListenerList listeners
           
protected static org.slf4j.Logger log
          The log stream
protected  SplitBookDataDisplay pnlPassg
           
private  DisplaySelectPane pnlSelect
           
protected  File saved
           
private static long serialVersionUID
          Serialization ID
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BibleViewPane(boolean showSidebar)
          Simple ctor
 
Method Summary
 void addTitleChangedListener(TitleChangedListener li)
          Add a TitleChangedEvent listener
 void clear()
          Make it as though no-one is using this view
protected  void fireTitleChanged(TitleChangedEvent ev)
          Listen for changes to the title
 Key getKey()
          Accessor for the current passage
 SplitBookDataDisplay getPassagePane()
          Accessor for the SplitBookDataDisplay
 DisplaySelectPane getSelectPane()
          Accessor for the DisplaySelectPane
 String getTitle()
          How has this view been saved
private  void init()
          Setup the GUI
 boolean isClear()
          Has anyone started using this view
 boolean maySave()
          Returns true if there is something to save.
 void open()
          Open a saved verse list form disk
private  boolean querySaveFile()
          Ask the user where to store the data
private  void readObject(ObjectInputStream is)
          Serialization support.
 void removeTitleChangedListener(TitleChangedListener li)
          Remove a TitleChangedEvent listener
 void save()
          Save the view to disk.
 void saveAs()
          Save the view to disk, but ask the user where to save it first.
private  void saveKey(Key key)
          Do the real work of saving to a file
 void setKey(Key key)
          Accessor for the current passage
 void titleChanged(TitleChangedEvent ev)
          A Select pane is telling us that it has changed, and we might want to update the BibleViewPane and the AbstractViewLayout to reflect any potentially new titles
 
Methods inherited from class org.crosswire.common.swing.desktop.TabbedPanePanel
getInsets
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

saved

protected File saved

listeners

private transient EventListenerList listeners

pnlSelect

private DisplaySelectPane pnlSelect

pnlPassg

protected SplitBookDataDisplay pnlPassg

chooser

private JFileChooser chooser

BOOKMARK_DIR

private static final String BOOKMARK_DIR
See Also:
Constant Field Values

EXTENSION

private static final String EXTENSION
See Also:
Constant Field Values

log

protected static final org.slf4j.Logger log
The log stream


serialVersionUID

private static final long serialVersionUID
Serialization ID

See Also:
Constant Field Values
Constructor Detail

BibleViewPane

public BibleViewPane(boolean showSidebar)
Simple ctor

Method Detail

init

private void init()
Setup the GUI


clear

public void clear()
Make it as though no-one is using this view

Specified by:
clear in interface Clearable

isClear

public boolean isClear()
Has anyone started using this view

Specified by:
isClear in interface Clearable
Returns:
whether this object is clear.

getTitle

public String getTitle()
How has this view been saved

Specified by:
getTitle in interface Titleable
Returns:
the title

save

public void save()
          throws IOException
Save the view to disk.

Throws:
IOException

saveAs

public void saveAs()
            throws IOException
Save the view to disk, but ask the user where to save it first.

Throws:
IOException

saveKey

private void saveKey(Key key)
              throws IOException
Do the real work of saving to a file

Parameters:
key - The key to save
Throws:
IOException - If a write error happens

maySave

public boolean maySave()
Returns true if there is something to save.


open

public void open()
          throws NoSuchKeyException,
                 IOException
Open a saved verse list form disk

Throws:
IOException
NoSuchVerseException
NoSuchKeyException

querySaveFile

private boolean querySaveFile()
Ask the user where to store the data


getKey

public Key getKey()
Accessor for the current passage


setKey

public final void setKey(Key key)
Accessor for the current passage


getPassagePane

public SplitBookDataDisplay getPassagePane()
Accessor for the SplitBookDataDisplay


getSelectPane

public DisplaySelectPane getSelectPane()
Accessor for the DisplaySelectPane


addTitleChangedListener

public void addTitleChangedListener(TitleChangedListener li)
Add a TitleChangedEvent listener

Specified by:
addTitleChangedListener in interface Titleable

removeTitleChangedListener

public void removeTitleChangedListener(TitleChangedListener li)
Remove a TitleChangedEvent listener

Specified by:
removeTitleChangedListener in interface Titleable

fireTitleChanged

protected void fireTitleChanged(TitleChangedEvent ev)
Listen for changes to the title

Parameters:
ev - the event to throw

titleChanged

public void titleChanged(TitleChangedEvent ev)
Description copied from interface: TitleChangedListener
A Select pane is telling us that it has changed, and we might want to update the BibleViewPane and the AbstractViewLayout to reflect any potentially new titles

Specified by:
titleChanged in interface TitleChangedListener

readObject

private void readObject(ObjectInputStream is)
                 throws IOException,
                        ClassNotFoundException
Serialization support.

Parameters:
is -
Throws:
IOException
ClassNotFoundException

Copyright ? 2003-2011