|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPanel org.opensourcephysics.tools.FunctionEditor
public class FunctionEditor
A JPanel that manages a table of objects with editable names and expressions.
Nested Class Summary | |
---|---|
protected class |
FunctionEditor.DefaultEdit
A class to undo/redo edits. |
class |
FunctionEditor.Table
|
protected class |
FunctionEditor.TableModel
The table model. |
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 | |
---|---|
static int |
ADD_EDIT
|
protected javax.swing.JPanel |
buttonPanel
|
protected java.util.Collection<java.lang.Object> |
circularErrors
|
protected javax.swing.JButton |
copyButton
|
protected javax.swing.AbstractButton[] |
customButtons
|
protected javax.swing.JButton |
cutButton
|
protected static java.lang.String[] |
editTypes
|
protected java.util.Collection<java.lang.Object> |
errors
|
protected java.util.List<java.lang.Object> |
evaluate
|
static int |
EXPRESSION_EDIT
|
protected java.util.HashSet<java.lang.String> |
forbiddenNames
|
protected FunctionPanel |
functionPanel
|
static int |
NAME_EDIT
|
protected java.lang.String[] |
names
|
protected javax.swing.JButton |
newButton
|
protected java.util.ArrayList<java.lang.Object> |
objects
|
protected ParamEditor |
paramEditor
|
protected javax.swing.JButton |
pasteButton
|
protected boolean |
removablesAtTop
|
static int |
REMOVE_EDIT
|
protected java.util.ArrayList<java.lang.Object> |
sortedObjects
|
protected FunctionEditor.Table |
table
|
protected org.opensourcephysics.tools.FunctionEditor.CellEditor |
tableCellEditor
|
protected org.opensourcephysics.tools.FunctionEditor.CellRenderer |
tableCellRenderer
|
protected FunctionEditor.TableModel |
tableModel
|
protected javax.swing.JScrollPane |
tableScroller
|
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 | |
---|---|
FunctionEditor()
No-arg constructor |
Method Summary | |
---|---|
java.lang.Object |
addObject(java.lang.Object obj,
boolean postEdit)
Adds an object. |
java.lang.Object |
addObject(java.lang.Object obj,
int row,
boolean postEdit,
boolean firePropertyChange)
Adds an object at a specified row. |
protected boolean |
containsInvalidExpressions()
Returns true if any objects have invalid expressions. |
protected void |
createGUI()
Creates the GUI. |
protected java.lang.Object |
createObject(java.lang.String name,
java.lang.String expression,
java.lang.Object obj)
Creates an object with specified name and expression. |
protected java.lang.Object |
createUniqueObject(java.lang.Object obj,
java.lang.String proposedName,
boolean confirmChanges)
Creates an object with a unique name. |
void |
evaluateAll()
Evaluates all current objects. |
static java.lang.String |
format(double value,
double zeroLevel)
Formats a number. |
protected XMLControl[] |
getClipboardContents()
Gets the clipboard contents. |
protected java.lang.String |
getDefaultName()
Returns the default name for newly created objects. |
java.lang.String |
getExpression(java.lang.Object obj)
Returns the expression of the object. |
java.lang.String |
getName(java.lang.Object obj)
Returns the name of the object. |
java.lang.String[] |
getNames()
Gets an array containing the names of the objects. |
java.lang.Object |
getObject(java.lang.String name)
Gets an existing object with specified name. |
java.util.List<java.lang.Object> |
getObjects()
Gets a shallow clone of the objects list. |
protected ParamEditor |
getParamEditor()
Gets the param editor that defines parameters for functions. |
protected int |
getPartlyEditableRowCount()
Returns the number of editable rows. |
java.awt.Dimension |
getPreferredSize()
Override getPreferredSize(). |
protected java.util.Set<java.lang.String> |
getReferences(java.lang.String name,
java.util.Set<java.lang.String> references)
Gets the names of functions referenced in a named function expression either directly or indirectly. |
protected java.lang.Object |
getSelectedObject()
Returns the currently selected object, if any. |
protected java.lang.Object[] |
getSelectedObjects()
Returns the currently selected objects, if any. |
FunctionEditor.Table |
getTable()
Gets the table. |
java.lang.String |
getTooltip(java.lang.Object obj)
Returns a tooltip for the object. |
protected javax.swing.undo.UndoableEdit |
getUndoableEdit(int type,
java.lang.Object redo,
int redoRow,
int redoCol,
java.lang.Object undo,
int undoRow,
int undoCol,
java.lang.String name)
Gets an undoable edit. |
protected java.lang.String |
getVariablesString()
Returns a String with the names of variables available for expressions. |
protected boolean |
isDisallowedName(java.lang.Object obj,
java.lang.String name)
Returns true if a name is forbidden or in use. |
boolean |
isExpressionEditable(java.lang.Object obj)
Determines if an object's expression is editable. |
protected boolean |
isImportant(java.lang.Object obj)
Determines if an object is important. |
protected boolean |
isInvalidExpression(java.lang.Object obj)
Returns true if the object expression is invalid. |
boolean |
isNameEditable(java.lang.Object obj)
Determines if an object's name is editable. |
protected boolean |
isRemovable(java.lang.Object obj)
Determines if an object is removable. |
protected void |
paste()
Pastes the clipboard contents. |
void |
propertyChange(java.beans.PropertyChangeEvent e)
Responds to property change events. |
protected void |
refreshButtons()
Refreshes button states. |
protected void |
refreshGUI()
Refreshes the GUI. |
void |
refreshStrings()
Refreshes button strings based on current locale. |
java.lang.Object |
removeObject(java.lang.Object obj,
boolean postEdit)
Removes an object. |
void |
setCustomButtons(javax.swing.AbstractButton[] buttons)
Sets custom buttons on the button panel. |
void |
setExpression(java.lang.String name,
java.lang.String expression,
boolean postEdit)
Sets the expression of an existing named object, if any. |
void |
setObjects(java.util.List<java.lang.Object> newObjects)
Replaces the current objects with new ones. |
protected void |
setParamEditor(ParamEditor editor)
Sets the param editor that defines parameters for functions. |
protected void |
setReferences(java.lang.Object obj,
java.util.List<java.lang.Object> referencedObjects)
Subclasses implement to set objects referenced in an object's expression. |
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 |
---|
public static final int ADD_EDIT
public static final int REMOVE_EDIT
public static final int NAME_EDIT
public static final int EXPRESSION_EDIT
protected static java.lang.String[] editTypes
protected ParamEditor paramEditor
protected java.util.ArrayList<java.lang.Object> objects
protected java.lang.String[] names
protected java.util.ArrayList<java.lang.Object> sortedObjects
protected java.util.HashSet<java.lang.String> forbiddenNames
protected boolean removablesAtTop
protected java.util.Collection<java.lang.Object> circularErrors
protected java.util.Collection<java.lang.Object> errors
protected java.util.List<java.lang.Object> evaluate
protected FunctionEditor.Table table
protected FunctionEditor.TableModel tableModel
protected org.opensourcephysics.tools.FunctionEditor.CellEditor tableCellEditor
protected org.opensourcephysics.tools.FunctionEditor.CellRenderer tableCellRenderer
protected javax.swing.JScrollPane tableScroller
protected javax.swing.JButton newButton
protected javax.swing.JButton cutButton
protected javax.swing.JButton copyButton
protected javax.swing.JButton pasteButton
protected javax.swing.JPanel buttonPanel
protected FunctionPanel functionPanel
protected javax.swing.AbstractButton[] customButtons
Constructor Detail |
---|
public FunctionEditor()
Method Detail |
---|
public FunctionEditor.Table getTable()
public java.awt.Dimension getPreferredSize()
getPreferredSize
in class javax.swing.JComponent
public void setObjects(java.util.List<java.lang.Object> newObjects)
newObjects
- a list of objectspublic java.util.List<java.lang.Object> getObjects()
public java.lang.String[] getNames()
public java.lang.String getName(java.lang.Object obj)
obj
- the object
public java.lang.String getExpression(java.lang.Object obj)
obj
- the object
public java.lang.String getTooltip(java.lang.Object obj)
obj
- the object
public java.lang.Object getObject(java.lang.String name)
name
- the name
public void setExpression(java.lang.String name, java.lang.String expression, boolean postEdit)
name
- the nameexpression
- the expressionpostEdit
- true to post an undoable editpublic java.lang.Object addObject(java.lang.Object obj, boolean postEdit)
obj
- the objectpostEdit
- true to post an undoable edit
public java.lang.Object addObject(java.lang.Object obj, int row, boolean postEdit, boolean firePropertyChange)
obj
- the objectrow
- the rowpostEdit
- true to post an undoable editfirePropertyChange
- true to fire a property change event
public java.lang.Object removeObject(java.lang.Object obj, boolean postEdit)
obj
- the object to removepostEdit
- true to post an undoable edit
public void refreshStrings()
public void propertyChange(java.beans.PropertyChangeEvent e)
propertyChange
in interface java.beans.PropertyChangeListener
e
- the eventpublic void setCustomButtons(javax.swing.AbstractButton[] buttons)
protected javax.swing.undo.UndoableEdit getUndoableEdit(int type, java.lang.Object redo, int redoRow, int redoCol, java.lang.Object undo, int undoRow, int undoCol, java.lang.String name)
redo
- the new state
- undo
- the previous staterow
- the table rowcol
- the table columnpublic boolean isNameEditable(java.lang.Object obj)
obj
- the object
public boolean isExpressionEditable(java.lang.Object obj)
obj
- the object
protected boolean isRemovable(java.lang.Object obj)
obj
- the object
protected boolean isImportant(java.lang.Object obj)
obj
- the object
public void evaluateAll()
protected java.util.Set<java.lang.String> getReferences(java.lang.String name, java.util.Set<java.lang.String> references)
name
- the name of the functionreferences
- a Set to add references to (may be null)
protected void setReferences(java.lang.Object obj, java.util.List<java.lang.Object> referencedObjects)
protected void createGUI()
protected void refreshGUI()
protected void refreshButtons()
protected ParamEditor getParamEditor()
protected void setParamEditor(ParamEditor editor)
protected java.lang.String getDefaultName()
protected java.lang.String getVariablesString()
protected int getPartlyEditableRowCount()
protected boolean isInvalidExpression(java.lang.Object obj)
protected boolean containsInvalidExpressions()
protected void paste()
protected XMLControl[] getClipboardContents()
protected java.lang.Object getSelectedObject()
protected java.lang.Object[] getSelectedObjects()
protected java.lang.Object createObject(java.lang.String name, java.lang.String expression, java.lang.Object obj)
name
- the nameexpression
- the expressionobj
- an object to assign values (may be null)
protected boolean isDisallowedName(java.lang.Object obj, java.lang.String name)
obj
- the object (may be null)name
- the proposed name for the object
protected java.lang.Object createUniqueObject(java.lang.Object obj, java.lang.String proposedName, boolean confirmChanges)
obj
- the object (may be null)proposedName
- the proposed nameconfirmChanges
- true to require user to confirm changes
public static java.lang.String format(double value, double zeroLevel)
value
- the numberrange
- a min-max range of values
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |