JHotDraw 7.5.1

org.jhotdraw.app
Class AbstractView

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.jhotdraw.app.AbstractView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, Disposable, View
Direct Known Subclasses:
DrawView, NetView, ODGView, PertView, SVGView, TeddyView

public abstract class AbstractView
extends javax.swing.JPanel
implements View

This abstract class can be extended to implement a View.

Version:
$Id: AbstractView.java 647 2010-01-24 22:52:59Z rawcoder $
Author:
Werner Randelshofer
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.util.concurrent.ExecutorService executor
          The executor used to perform background tasks for the View in a controlled manner.
protected  java.util.prefs.Preferences preferences
          The preferences of the view.
protected  java.net.URI uri
          The URI of the view.
 
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 org.jhotdraw.app.View
APPLICATION_PROPERTY, ENABLED_PROPERTY, HAS_UNSAVED_CHANGES_PROPERTY, MULTIPLE_OPEN_ID_PROPERTY, SHOWING_PROPERTY, TITLE_PROPERTY, URI_PROPERTY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AbstractView()
          Creates a new instance.
 
Method Summary
 void activate()
          Activates the view.
 void addDisposable(Disposable disposable)
          Adds a disposable object, which will be disposed when the specified view is disposed.
 boolean canSaveTo(java.net.URI uri)
          Returns true, if this view can be saved to the specified URI.
 void deactivate()
          Deactivates the view.
 void dispose()
          Gets rid of all the resources of the view.
 void execute(java.lang.Runnable worker)
          Executes the specified runnable on the worker thread of the view.
 Application getApplication()
          Gets the application to which this view belongs.
 javax.swing.JComponent getComponent()
          Returns the visual component of the view.
 int getMultipleOpenId()
          Returns the multiple open id.
 java.lang.String getTitle()
          Gets the title of the view.
 java.net.URI getURI()
          Returns the uri which holds the document of the view.
 boolean hasUnsavedChanges()
          Returns true, if the view has unsaved changes.
 void init()
          Initializes the view.
 boolean isShowing()
          This is used by Application to keep track if a view is showing.
 void markChangesAsSaved()
          Marks all changes as saved.
 void removeDisposable(Disposable disposable)
          Removes a disposable object, which was previously added.
 void setApplication(Application newValue)
          Sets the application of the view.
protected  void setHasUnsavedChanges(boolean newValue)
           
 void setMultipleOpenId(int newValue)
          Sets the multiple open id.
 void setShowing(boolean newValue)
          This is used by Application to keep track if a view is showing.
 void setTitle(java.lang.String newValue)
          Sets the title of the view.
 void setURI(java.net.URI newValue)
          Sets the uri of the view.
 void start()
          Starts the view.
 void stop()
          Stops the view.
 
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, 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, 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
 
Methods inherited from interface org.jhotdraw.app.View
addPropertyChangeListener, clear, getActionMap, isEnabled, read, removePropertyChangeListener, setActionMap, setEnabled, write
 

Field Detail

executor

protected java.util.concurrent.ExecutorService executor
The executor used to perform background tasks for the View in a controlled manner. This executor ensures that all background tasks are executed sequentually.


preferences

protected java.util.prefs.Preferences preferences
The preferences of the view.


uri

protected java.net.URI uri
The URI of the view. Has a null value, if the view has not been loaded from a URI or has not been saved yet.

Constructor Detail

AbstractView

public AbstractView()
Creates a new instance.

Method Detail

init

public void init()
Initializes the view. This method does nothing, subclasses don't neet to call super.

Specified by:
init in interface View

start

public void start()
Starts the view. This method does nothing, subclasses don't neet to call super.

Specified by:
start in interface View

activate

public void activate()
Activates the view. This method does nothing, subclasses don't neet to call super.

Specified by:
activate in interface View

deactivate

public void deactivate()
Deactivates the view. This method does nothing, subclasses don't neet to call super.

Specified by:
deactivate in interface View

stop

public void stop()
Stops the view. This method does nothing, subclasses don't neet to call super.

Specified by:
stop in interface View

dispose

public void dispose()
Gets rid of all the resources of the view. No other methods should be invoked on the view afterwards.

Specified by:
dispose in interface Disposable
Specified by:
dispose in interface View

canSaveTo

public boolean canSaveTo(java.net.URI uri)
Description copied from interface: View
Returns true, if this view can be saved to the specified URI. A reason why the view can't be saved to a URI, is that the view is unable to write to a file-URI with the given filename extension without losing data.

The SaveAction uses this method to decide, whether to display a save dialog before saving the URI.

Specified by:
canSaveTo in interface View
Parameters:
uri - An URI. If this parameter is null, a NullPointerException is thrown.

getURI

public java.net.URI getURI()
Description copied from interface: View
Returns the uri which holds the document of the view.

Specified by:
getURI in interface View

setURI

public void setURI(java.net.URI newValue)
Description copied from interface: View
Sets the uri of the view. This is a bound property.

Specified by:
setURI in interface View

setApplication

public void setApplication(Application newValue)
Description copied from interface: View
Sets the application of the view. By convention, this is only invoked by Application.add() and Application.remove(). This is a bound property.

Specified by:
setApplication in interface View

getApplication

public Application getApplication()
Description copied from interface: View
Gets the application to which this view belongs.

Specified by:
getApplication in interface View

getComponent

public javax.swing.JComponent getComponent()
Description copied from interface: View
Returns the visual component of the view.

Specified by:
getComponent in interface View

hasUnsavedChanges

public boolean hasUnsavedChanges()
Returns true, if the view has unsaved changes. This is a bound property.

Specified by:
hasUnsavedChanges in interface View

setHasUnsavedChanges

protected void setHasUnsavedChanges(boolean newValue)

execute

public void execute(java.lang.Runnable worker)
Executes the specified runnable on the worker thread of the view. Execution is perfomred sequentially in the same sequence as the runnables have been passed to this method.

Specified by:
execute in interface View

setMultipleOpenId

public void setMultipleOpenId(int newValue)
Description copied from interface: View
Sets the multiple open id. The id is used to help distinguish multiply opened views. The id should be displayed in the title of the view.

Specified by:
setMultipleOpenId in interface View

getMultipleOpenId

public int getMultipleOpenId()
Description copied from interface: View
Returns the multiple open id. If a view is open only once this should be 1.

Specified by:
getMultipleOpenId in interface View

setShowing

public void setShowing(boolean newValue)
Description copied from interface: View
This is used by Application to keep track if a view is showing.

Specified by:
setShowing in interface View

isShowing

public boolean isShowing()
Description copied from interface: View
This is used by Application to keep track if a view is showing.

Specified by:
isShowing in interface View
Overrides:
isShowing in class java.awt.Component

markChangesAsSaved

public void markChangesAsSaved()
Description copied from interface: View
Marks all changes as saved. This changes the state of hasUnsavedChanges to false.

Specified by:
markChangesAsSaved in interface View

setTitle

public void setTitle(java.lang.String newValue)
Description copied from interface: View
Sets the title of the view.

The title is generated by the application, based on the current URI of the view. The application ensures that the title uniquely identifies each open view.

The application displays the title in the title bar of the view window and in all windows which are associated to the view.

This is a bound property.

Specified by:
setTitle in interface View

getTitle

public java.lang.String getTitle()
Description copied from interface: View
Gets the title of the view.

Specified by:
getTitle in interface View

addDisposable

public void addDisposable(Disposable disposable)
Adds a disposable object, which will be disposed when the specified view is disposed.

Specified by:
addDisposable in interface View
Parameters:
disposable -

removeDisposable

public void removeDisposable(Disposable disposable)
Removes a disposable object, which was previously added.

Specified by:
removeDisposable in interface View
Parameters:
disposable -

Copyright 1996-2010 (c) by the authors and contributors of the JHotDraw project.
Some rights reserved.