org.opensourcephysics.tools
Class FunctionPanel

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.opensourcephysics.tools.FunctionPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
DataFunctionPanel, FitFunctionPanel, ModelFunctionPanel

public class FunctionPanel
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener

This is a JPanel for managing Functions and supporting Parameters.

Author:
Douglas Brown
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.awt.Container box
           
protected  java.lang.String description
           
protected  FunctionEditor functionEditor
           
protected  FunctionTool functionTool
           
protected  javax.swing.JTextPane instructions
           
protected  ParamEditor paramEditor
           
protected  java.lang.String prevName
           
protected  javax.swing.JTextField tableEditorField
           
protected  javax.swing.undo.UndoManager undoManager
           
 
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
FunctionPanel(FunctionEditor editor)
          Constructor FunctionPanel
 
Method Summary
protected  void addForbiddenNames(java.lang.String[] names)
          Adds names to the forbidden set.
protected  void clearSelection()
          Clears the selection.
protected  void createGUI()
          Creates the GUI.
 java.lang.String getDescription()
          Gets the description for this panel.
 java.lang.String getDisplayName()
          Gets the display name for the FunctionTool dropdown.
 FunctionEditor getFunctionEditor()
          Gets the function editor.
 FunctionEditor.Table getFunctionTable()
          Gets the function table.
 javax.swing.Icon getIcon()
          Gets the Icon for this panel, if any.
 java.lang.String getLabel()
          Gets an appropriate label for the FunctionTool dropdown.
 ParamEditor getParamEditor()
          Gets the ParamEditor.
 FunctionEditor.Table getParamTable()
          Gets the parameter table.
 java.awt.Dimension getPreferredSize()
          Override getPreferredSize().
protected  boolean hasCircularErrors()
           
protected  boolean hasInvalidExpressions()
           
protected  boolean isEmpty()
           
 void propertyChange(java.beans.PropertyChangeEvent e)
          Listens for property changes "edit" and "function"
protected  void refreshFunctions()
          Refreshes the functions.
protected  void refreshGUI()
          Refreshes the GUI.
protected  void refreshInstructions(FunctionEditor source, boolean editing, int selectedColumn)
          Refreshes the instructions based on selected cell.
 void setDescription(java.lang.String desc)
          Sets the description for this panel.
protected  void setFontLevel(int level)
          Sets the font level.
protected  void setFunctionTool(FunctionTool tool)
          Sets the FunctionTool.
 void setIcon(javax.swing.Icon icon)
          Sets the Icon for this panel.
protected  void tabToNext(FunctionEditor editor)
          Tabs to the next editor.
 
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, 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

functionTool

protected FunctionTool functionTool

paramEditor

protected ParamEditor paramEditor

functionEditor

protected FunctionEditor functionEditor

box

protected java.awt.Container box

instructions

protected javax.swing.JTextPane instructions

undoManager

protected javax.swing.undo.UndoManager undoManager

tableEditorField

protected javax.swing.JTextField tableEditorField

prevName

protected java.lang.String prevName

description

protected java.lang.String description
Constructor Detail

FunctionPanel

public FunctionPanel(FunctionEditor editor)
Constructor FunctionPanel

Parameters:
editor -
Method Detail

getParamEditor

public ParamEditor getParamEditor()
Gets the ParamEditor.

Returns:
the param editor

getFunctionEditor

public FunctionEditor getFunctionEditor()
Gets the function editor.

Returns:
the function editor

getFunctionTable

public FunctionEditor.Table getFunctionTable()
Gets the function table.

Returns:
the table

getParamTable

public FunctionEditor.Table getParamTable()
Gets the parameter table.

Returns:
the table

getLabel

public java.lang.String getLabel()
Gets an appropriate label for the FunctionTool dropdown.

Returns:
a label string

getDisplayName

public java.lang.String getDisplayName()
Gets the display name for the FunctionTool dropdown. By default, this returns the name of this panel.

Returns:
the display name

getPreferredSize

public java.awt.Dimension getPreferredSize()
Override getPreferredSize().

Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
the preferred size

addForbiddenNames

protected void addForbiddenNames(java.lang.String[] names)
Adds names to the forbidden set.

Parameters:
names - the names

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent e)
Listens for property changes "edit" and "function"

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
e - the event

clearSelection

protected void clearSelection()
Clears the selection.


createGUI

protected void createGUI()
Creates the GUI.


refreshGUI

protected void refreshGUI()
Refreshes the GUI.


setFontLevel

protected void setFontLevel(int level)
Sets the font level.

Parameters:
level - the level

getDescription

public java.lang.String getDescription()
Gets the description for this panel.

Returns:
the description

setDescription

public void setDescription(java.lang.String desc)
Sets the description for this panel.

Parameters:
desc - the description

getIcon

public javax.swing.Icon getIcon()
Gets the Icon for this panel, if any.

Returns:
the icon

setIcon

public void setIcon(javax.swing.Icon icon)
Sets the Icon for this panel.

Parameters:
icon - the icon

refreshFunctions

protected void refreshFunctions()
Refreshes the functions.


setFunctionTool

protected void setFunctionTool(FunctionTool tool)
Sets the FunctionTool. This method is called by the tool to which this panel is added.

Parameters:
tool - the FunctionTool

tabToNext

protected void tabToNext(FunctionEditor editor)
Tabs to the next editor.

Parameters:
editor - the current editor

refreshInstructions

protected void refreshInstructions(FunctionEditor source,
                                   boolean editing,
                                   int selectedColumn)
Refreshes the instructions based on selected cell.

Parameters:
source - the function editor (may be null)
editing - true if the table is editing
selectedColumn - the selected table column, or -1 if none

isEmpty

protected boolean isEmpty()

hasInvalidExpressions

protected boolean hasInvalidExpressions()

hasCircularErrors

protected boolean hasCircularErrors()