edu.rice.cs.drjava.ui
Class RegionsListPanel<R extends IDocumentRegion>

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 edu.rice.cs.drjava.ui.TabbedPanel
                      extended by edu.rice.cs.drjava.ui.RegionsListPanel<R>
All Implemented Interfaces:
DropTargetListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible
Direct Known Subclasses:
BrowserHistoryPanel

public abstract class RegionsListPanel<R extends IDocumentRegion>
extends TabbedPanel

Panel for displaying regions in a list in the order specified by indices passes to addRegion. This class is a swing view class and hence should only be accessed from the event-handling thread. Not currently used because BrowserHistoryPanel is not used.

Version:
$Id$
See Also:
Serialized Form

Nested Class Summary
protected static class RegionsListPanel.RegionListUserObj<R extends IDocumentRegion>
          Class that gets put into the list.
protected  class RegionsListPanel.RegionMouseAdapter
          Mouse adapter for the region tree.
 
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
protected  JPanel _buttonPanel
           
protected  MainFrame _frame
           
protected  JPanel _leftPane
           
protected  JList _list
           
protected  DefaultListModel _listModel
           
protected  SingleDisplayModel _model
           
protected  String _title
           
 
Fields inherited from class edu.rice.cs.drjava.ui.TabbedPanel
_closeButton, _closePanel, _displayed, _mainPanel
 
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
RegionsListPanel(MainFrame frame, String title)
          Constructs a new panel to display regions in a list.
 
Method Summary
protected  void _close()
          Close the pane.
 void addRegion(R r, int index)
          Add a region to the list.
protected  ArrayList<R> getSelectedRegions()
          Gets the currently selected regions in the region list, or an empty array if no regions are selected.
protected  RegionsListPanel.RegionListUserObj<R> getUserObjForRegion(R r)
           
protected  void goToRegion()
          Go to region.
protected  JComponent[] makeButtons()
          Creates the buttons for controlling the regions.
protected  RegionsListPanel.RegionListUserObj<R> makeRegionListUserObj(R r)
          Factory method to create user objects put in the list.
protected  void performDefaultAction()
          Action performed when the Enter key is pressed.
 void removeRegion(R r)
          Remove a region from the tree.
protected  void updateButtons()
          Update button state and text.
 
Methods inherited from class edu.rice.cs.drjava.ui.TabbedPanel
addCloseListener, dragEnter, dragExit, dragOver, drop, dropActionChanged, getName, isDisplayed, requestFocusInWindow, setDisplayed, setVisible
 
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, 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, 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, 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

_leftPane

protected JPanel _leftPane

_list

protected JList _list

_listModel

protected DefaultListModel _listModel

_title

protected String _title

_model

protected final SingleDisplayModel _model

_frame

protected final MainFrame _frame

_buttonPanel

protected JPanel _buttonPanel
Constructor Detail

RegionsListPanel

public RegionsListPanel(MainFrame frame,
                        String title)
Constructs a new panel to display regions in a list. This is swing view class and hence should only be accessed from the event-handling thread.

Parameters:
frame - the MainFrame
title - title of the pane
Method Detail

_close

protected void _close()
Close the pane.

Overrides:
_close in class TabbedPanel

updateButtons

protected void updateButtons()
Update button state and text. Should be overridden if additional buttons are added besides "Go To", "Remove" and "Remove All".


performDefaultAction

protected void performDefaultAction()
Action performed when the Enter key is pressed. Should be overridden.


makeButtons

protected JComponent[] makeButtons()
Creates the buttons for controlling the regions. Should be overridden.


getSelectedRegions

protected ArrayList<R> getSelectedRegions()
Gets the currently selected regions in the region list, or an empty array if no regions are selected.

Returns:
list of selected regions in the list

goToRegion

protected void goToRegion()
Go to region.


getUserObjForRegion

protected RegionsListPanel.RegionListUserObj<R> getUserObjForRegion(R r)
Returns:
the usser object in the list associated with the region, or null if not found

addRegion

public void addRegion(R r,
                      int index)
Add a region to the list. Must be executed in event thread.

Parameters:
r - the region
index - the index where the region should be inserted

removeRegion

public void removeRegion(R r)
Remove a region from the tree. Must be executed in event thread.

Parameters:
r - the region

makeRegionListUserObj

protected RegionsListPanel.RegionListUserObj<R> makeRegionListUserObj(R r)
Factory method to create user objects put in the list. If subclasses extend RegionListUserObj, they need to override this method.