Goals

jocundmail
Class ListMailPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by jocundmail.ListMailPane
All Implemented Interfaces:
java.awt.event.AdjustmentListener, java.awt.event.ComponentListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener

public class ListMailPane
extends javax.swing.JComponent
implements java.awt.event.ComponentListener, java.awt.event.AdjustmentListener, java.awt.event.MouseListener

This is a class to display the list of messages in a mailbox. The program is built to handle large quantities of mail, and as such, storing all message list items in memory would be wasteful. As such, only the visible are saved in memory and as they are shifted out, they are replaced on either side, thus avoiding to need to have lots of data stored at once. We should also do better error checking here for directory permissions etc.

Version:
0.5.1
Author:
J.J. Sestrich
See Also:
Serialized Form
Goals:
0.4.0 Basic useability, including selection and modified scrolling where the entire list does not have to be loaded at runtime.DONE!
0.10.0 Selection model completion. (Single and range)
1.0.0 First release version - More specifics to come.
Todo:
Progress:
(5/27/07) A basic implementation is here. At the moment it supports 1 folder, and the root of the folder contains the 0 folder/file

Nested Class Summary
 
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
 
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
ListMailPane(JMBoxUtil box, MessageSelectionListener msl)
          Fairly self explanatory.
 
Method Summary
 void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
          Used to determine which list items are on screen at any given time If you override this, make sure you call this as well, unless you plan to reimplement the scolling code.
 void componentHidden(java.awt.event.ComponentEvent e)
          no implementation
 void componentMoved(java.awt.event.ComponentEvent e)
          no implementation
 void componentResized(java.awt.event.ComponentEvent e)
          Used to change the number of list elements held in memory, so that scolling appears to have them all in memory constantly.
 void componentShown(java.awt.event.ComponentEvent e)
          no implementation
 java.lang.String getTextForField(int row, int col)
          Retrieves the text to be supplied in the list.
static void main(java.lang.String[] args)
          A little test program...now broken
 void mouseClicked(java.awt.event.MouseEvent e)
          Implemented to listen to mouse clicks, for selection purposes.
 void mouseEntered(java.awt.event.MouseEvent e)
          no implementation
 void mouseExited(java.awt.event.MouseEvent e)
          no implementation
 void mousePressed(java.awt.event.MouseEvent e)
          no implementation
 void mouseReleased(java.awt.event.MouseEvent e)
          no implementation
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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
 

Constructor Detail

ListMailPane

public ListMailPane(JMBoxUtil box,
                    MessageSelectionListener msl)
Fairly self explanatory. Initially sets up a list with Settings specified

Parameters:
box - The mailbox that will contain (at least) the headers for the messages that need to be displayed
msl - The object that is listening to which message is selected. this generally refers to the mail reading window.
Method Detail

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Implemented to listen to mouse clicks, for selection purposes.

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Parameters:
e - The mouse event.

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
no implementation

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
no implementation

Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
no implementation

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
no implementation

Specified by:
mouseReleased in interface java.awt.event.MouseListener

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
no implementation

Specified by:
componentHidden in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
no implementation

Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
no implementation

Specified by:
componentShown in interface java.awt.event.ComponentListener

getTextForField

public java.lang.String getTextForField(int row,
                                        int col)
Retrieves the text to be supplied in the list.

Parameters:
row - The index of the row in the list
col - The index of the col in the list

adjustmentValueChanged

public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
Used to determine which list items are on screen at any given time If you override this, make sure you call this as well, unless you plan to reimplement the scolling code.

Specified by:
adjustmentValueChanged in interface java.awt.event.AdjustmentListener

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Used to change the number of list elements held in memory, so that scolling appears to have them all in memory constantly. Again, if you need to catch this, make sure you call this one too, or you will have issues with display.

Specified by:
componentResized in interface java.awt.event.ComponentListener

main

public static void main(java.lang.String[] args)
A little test program...now broken


SourceForge.net Logo