java.beans.PropertyChangeListener
, java.util.EventListener
DataFunctionEditor
, ParamEditor
, UserFunctionEditor
public class FunctionEditor
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener
Modifier and Type | Class | Description |
---|---|---|
protected class |
FunctionEditor.DefaultEdit |
A class to undo/redo edits.
|
class |
FunctionEditor.Table |
Class description
|
protected class |
FunctionEditor.TableModel |
The table model.
|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
java.awt.Container.AccessibleAWTContainer
Modifier and Type | Field | Description |
---|---|---|
static int |
ADD_EDIT |
|
protected boolean |
anglesInDegrees |
|
protected javax.swing.JPanel |
buttonPanel |
|
protected java.util.Collection<java.lang.Object> |
circularErrors |
|
protected boolean |
confirmChanges |
|
protected javax.swing.JButton |
copyButton |
|
protected javax.swing.AbstractButton[] |
customButtons |
|
protected javax.swing.JButton |
cutButton |
|
static java.lang.String |
DEGREES |
|
protected javax.swing.JLabel |
dragLabel |
|
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 |
|
static java.lang.String |
OMEGA |
|
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 |
|
static java.lang.String |
THETA |
|
protected javax.swing.border.TitledBorder |
titledBorder |
|
protected static boolean |
undoEditsEnabled |
|
protected boolean |
usePopupEditor |
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor | Description |
---|---|
FunctionEditor() |
No-arg constructor
|
Modifier and Type | Method | Description |
---|---|---|
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.
|
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.
|
boolean |
getConfirmChanges() |
Gets the confirmChanges flag.
|
protected java.lang.String |
getDefaultName() |
Returns the default name for newly created objects.
|
java.lang.String |
getDescription(java.lang.Object obj) |
Returns the description of the object.
|
java.lang.String |
getExpression(java.lang.Object obj) |
Returns the expression of the object.
|
FunctionPanel |
getFunctionPanel() |
Gets the FunctionPanel that manages this editor.
|
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(java.lang.String separator) |
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 boolean |
isValidExpression(java.lang.String expression) |
Determines if a test expression is valid.
|
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.
|
static double |
round(double value,
int sigfigs) |
Rounds a number.
|
void |
setAnglesInDegrees(boolean degrees) |
Sets the anglesInDegrees flag.
|
void |
setBorderTitle(java.lang.String title) |
Sets the border title.
|
void |
setConfirmChanges(boolean confirm) |
Sets the confirmChanges flag.
|
void |
setCustomButtons(javax.swing.AbstractButton[] buttons) |
Sets custom buttons on the button panel.
|
void |
setDescription(java.lang.Object obj,
java.lang.String desc) |
Sets the description of the object.
|
void |
setExpression(java.lang.String name,
java.lang.String expression,
boolean postEdit) |
Sets the expression of an existing named object, if any.
|
void |
setFunctionPanel(FunctionPanel panel) |
Sets the FunctionPanel that contains this editor.
|
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.
|
void |
setUsePopupEditor(boolean popup) |
sets the usePopupEditor flag.
|
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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
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, transferFocusDownCycle, validate, validateTree
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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
public static final java.lang.String THETA
public static final java.lang.String OMEGA
public static final java.lang.String DEGREES
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 boolean undoEditsEnabled
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 javax.swing.JLabel dragLabel
protected javax.swing.border.TitledBorder titledBorder
protected FunctionPanel functionPanel
protected javax.swing.AbstractButton[] customButtons
protected boolean anglesInDegrees
protected boolean usePopupEditor
protected boolean confirmChanges
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 objectpublic java.lang.String getExpression(java.lang.Object obj)
obj
- the objectpublic java.lang.String getDescription(java.lang.Object obj)
obj
- the objectpublic void setDescription(java.lang.Object obj, java.lang.String desc)
obj
- the objectdesc
- the descriptionpublic java.lang.String getTooltip(java.lang.Object obj)
obj
- the objectpublic java.lang.Object getObject(java.lang.String name)
name
- the namepublic void setExpression(java.lang.String name, java.lang.String expression, boolean postEdit)
name
- the nameexpression
- the expressionpostEdit
- true to post an undoable editpublic boolean getConfirmChanges()
public void setConfirmChanges(boolean confirm)
confirm
- true to require users to confirm changes to function namespublic java.lang.Object addObject(java.lang.Object obj, boolean postEdit)
obj
- the objectpostEdit
- true to post an undoable editpublic 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 eventpublic java.lang.Object removeObject(java.lang.Object obj, boolean postEdit)
obj
- the object to removepostEdit
- true to post an undoable editpublic void refreshStrings()
public void propertyChange(java.beans.PropertyChangeEvent e)
propertyChange
in interface java.beans.PropertyChangeListener
e
- the eventpublic void setCustomButtons(javax.swing.AbstractButton[] buttons)
public void setUsePopupEditor(boolean popup)
popup
- true to use the popup editor.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)
type
- may be ADD_EDIT, REMOVE_EDIT, NAME_EDIT, or EXPRESSION_EDITredo
- the new stateredoRow
- the newly selected rowredoCol
- the newly selected columnundo
- the previous stateundoRow
- the previously selected rowundoCol
- the previously selected columnname
- the name of the edited objectpublic boolean isNameEditable(java.lang.Object obj)
obj
- the objectpublic boolean isExpressionEditable(java.lang.Object obj)
obj
- the objectprotected boolean isRemovable(java.lang.Object obj)
obj
- the objectprotected boolean isImportant(java.lang.Object obj)
obj
- the objectpublic void setAnglesInDegrees(boolean degrees)
degrees
- true to display angles in degreespublic void evaluateAll()
protected boolean isValidExpression(java.lang.String expression)
statement
- 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()
public void setBorderTitle(java.lang.String title)
protected void refreshButtons()
protected ParamEditor getParamEditor()
protected void setParamEditor(ParamEditor editor)
public FunctionPanel getFunctionPanel()
public void setFunctionPanel(FunctionPanel panel)
panel
- the function panelprotected java.lang.String getDefaultName()
protected java.lang.String getVariablesString(java.lang.String separator)
protected int getPartlyEditableRowCount()
protected boolean isInvalidExpression(java.lang.Object obj)
public 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 objectprotected 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 changespublic static java.lang.String format(double value, double zeroLevel)
value
- the numberzeroLevel
- the level below which the value is considered zeropublic static double round(double value, int sigfigs)
value
- the numbersigfigs
- the number of significant figures in the rounded value