mckay.utilities.gui.templates
Class ListInputPanel

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 mckay.utilities.gui.templates.ListInputPanel
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class ListInputPanel
extends javax.swing.JPanel
implements java.awt.event.ActionListener

A JPanel that stores an editable non-wrapping scrollable JTextArea. Includes methods for processing this text area in various ways, including removing blank lines, removing duplicate entries and alphabetically sorting the contents. This text area is intended to provide an interface so that users can enter lists where each line corresponds to a different item.

The Load button brings up a file chooser to load strings from a file and adds them to the text area. They are not cleaned or processed upon loading, they are simply dumped. They also do not replace any text that is already there, they are rather appended to the text. The parsing is performed by the object passed to the constructor of this object.

The Save button will bring up a file chooser allowing the user to enter the location of a file. The contents of the text area will be saved as a text file to the chosen location.

The Clear button erases all of the contents of the text area.

The Organize button causes the contents of the text area to be sorted, with empty lines and duplicate lines removed.

The get methods can be used to get the contents of the text area without modifying the text area in any way. The set and append methods can be used to change the contents of the text area.

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
 
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
ListInputPanel(ListInputParser file_parser)
          Creates a new instance of ListInputPanel with initialized components.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Calls the appropriate methods when the specified actions are performed.
 void appendStrings(java.lang.String[] new_strings)
          Appends each string in the new_strings parameter as a new line in the text area.
 void appendText(java.lang.String new_text)
          Appends the contents of new_text to the text area without any modifications.
 void clearText()
          Delete all text in the text area.
 void focusOnTextInput()
          Place the GUI focus on the text area.
 java.lang.String[] getProcessedStrings()
          Takes the contents of the text area and breaks them into an array with an entry for each line in the text area.
 java.lang.String[] getStrings()
          Takes the contents of the text area and breaks them into an array with an entry for each line in the text area.
 java.lang.String getText()
          Returns a dump of the contents of the text area.
 void organizeText()
          Cleans the contents of the text area by removing blank lines and duplicate lines and then sorts the contents.
 void setEnabled(boolean enable)
          As per the JPanle superclass setEnabled method.
 void setStrings(java.lang.String[] new_strings)
          Clears the text area and adds each string in the new_strings parameter as a new line in the text area.
 void setText(java.lang.String new_text)
          Erases any text already in the text area and replaces it by the contents of new_text.
 
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, 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
 

Constructor Detail

ListInputPanel

public ListInputPanel(ListInputParser file_parser)
Creates a new instance of ListInputPanel with initialized components.

Parameters:
file_parser - An object that can bring up a file chooser, parse selected files and append the extracted contents to this object's text area. The Load button is disabled if this is null.
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Calls the appropriate methods when the specified actions are performed.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
event - The event that is to be reacted to.

focusOnTextInput

public void focusOnTextInput()
Place the GUI focus on the text area.


clearText

public void clearText()
Delete all text in the text area.


setText

public void setText(java.lang.String new_text)
Erases any text already in the text area and replaces it by the contents of new_text. The caret is set to the beginning of the text.

Parameters:
new_text - The new text to add. Nothing is done if this is null.

setStrings

public void setStrings(java.lang.String[] new_strings)
Clears the text area and adds each string in the new_strings parameter as a new line in the text area. The caret is set to the beginning of the text.

Parameters:
new_strings - The strings to add. Each entry is added to a new line. This method performs no action other than clearing the text area if this parameter is empty or null.

appendText

public void appendText(java.lang.String new_text)
Appends the contents of new_text to the text area without any modifications. The caret is set to the beginning of the text.

Parameters:
new_text - The new text to add. Nothing is done if this is null.

appendStrings

public void appendStrings(java.lang.String[] new_strings)
Appends each string in the new_strings parameter as a new line in the text area. Sets the caret is set to the beginning of the text.

Parameters:
new_strings - The strings to add. Each entry is added to a new line. This method performs no action if this parameter is empty or null.

getText

public java.lang.String getText()
Returns a dump of the contents of the text area.

Returns:
The contents of the text area.

getStrings

public java.lang.String[] getStrings()
Takes the contents of the text area and breaks them into an array with an entry for each line in the text area. Blank lines are removed but no other processing is performed.

Returns:
The lines found in text area. Blank lines are removed. Null is returned if the text area is empty.

getProcessedStrings

public java.lang.String[] getProcessedStrings()
Takes the contents of the text area and breaks them into an array with an entry for each line in the text area. Blank lines are removed, duplicate entries are removed and the remaining lines are sorted alphabetically.

Returns:
The processed contents of the text area. Null is returned if text_area is empty.

organizeText

public void organizeText()
Cleans the contents of the text area by removing blank lines and duplicate lines and then sorts the contents. The text areas's contents are then replaced with these cleaned contents.


setEnabled

public void setEnabled(boolean enable)
As per the JPanle superclass setEnabled method. Also calls the setEnabled method of the text area, load button, clear button and organize button on this panel.

Overrides:
setEnabled in class javax.swing.JComponent
Parameters:
enable - Whether to enable or disable this panel and its components.