Class CodeEditor
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JInternalFrame
-
- ca.cgjennings.apps.arkham.AbstractStrangeEonsEditor
-
- ca.cgjennings.apps.arkham.AbstractSupportEditor
-
- ca.cgjennings.apps.arkham.editors.CodeEditor
-
- All Implemented Interfaces:
Commandable,StrangeEonsEditor,NavigationHost,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,javax.swing.RootPaneContainer,javax.swing.WindowConstants
public class CodeEditor extends AbstractSupportEditor implements NavigationHost
Support editors are used to edit content other than game components.- Author:
- Chris Jennings
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JInternalFrame
javax.swing.JInternalFrame.AccessibleJInternalFrame, javax.swing.JInternalFrame.JDesktopIcon
-
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
-
Nested classes/interfaces inherited from interface ca.cgjennings.apps.arkham.StrangeEonsEditor
StrangeEonsEditor.EditorListener, StrangeEonsEditor.FieldPopulationListener, StrangeEonsEditor.HeartbeatListener
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringKEY_NAV_SIZEstatic java.lang.StringKEY_SHOW_NAVIGATOR-
Fields inherited from class ca.cgjennings.apps.arkham.AbstractStrangeEonsEditor
DEFAULT_EDITOR_ICON
-
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description CodeEditor(java.io.File file, CodeType codeType)Creates a new code editor for the requested file and file type.CodeEditor(java.io.File file, java.lang.String encoding, CodeType codeType)Creates a new code editor for the requested file, encoding, and file type.CodeEditor(java.io.File file, java.nio.charset.Charset encoding, CodeType codeType)Creates a new code editor for the requested file, encoding, and file type.CodeEditor(java.lang.String text, CodeType codeType)Creates a new code editor that displays text but does not allow it to be edited unless the user creates a copy using Save As.CodeEditor(java.lang.String text, java.lang.String encoding, CodeType codeType)Creates a new code editor that displays text but does not allow it to be edited unless the user creates a copy using Save As.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanPerformCommand(AbstractCommand command)Returnstrueif the commandable wishes to handle the given command.static java.nio.charset.CharsetcheckFileForBOM(java.io.File f)Detects a UTF-8/UTF-16/UTF-32 BOM sequence at the start of a text file.voidclear()Clears the contents of this component to a blank state, if the user gives permission.protected javax.swing.JPopupMenucreatePopupMenu(CodeEditorBase editor, javax.swing.JPopupMenu menu)Returns a popup menu of actions that are appropriate for the editor type.protected java.lang.Stringescape(java.lang.String line)Called before each line is written to a file to allow the editor to convert the text content.protected voidexportImpl(int type, java.io.File f)Subclasses should override this to export the edited content if EXPORT is a supported command.voidfind()voidformat()Format the code in the code editor, if a suitable formatter is available.javax.swing.border.BordergetBorder()CodeTypegetCodeType()intgetDocumentLength()Returns the length of the document, in characters.CodeEditorBasegetEditor()java.lang.StringgetEncoding()java.lang.String[]getExportDescriptions()Returns a description of the file types supported for export from this editor.java.lang.String[]getExportExtensions()Returns the standard file extensions supported for export from this editor.FileDrop.ListenergetFileDropListener()java.lang.StringgetFileNameExtension()Returns the standard file extension for the type of content displayed in this editor.java.lang.StringgetFileTypeDescription()Returns a description of the content displayed in this editor.javax.swing.IcongetFrameIcon()Returns the editor window icon.NavigatorgetNavigator()Returns the current navigator for this editor, ornullif none is set.NavigationPointgetSelectedNavigationPoint()Returns the navigation point selected in the navigation panel, ornullif none is selected.java.lang.StringgetSelectedText()Returns the selected text.java.lang.StringgetText()Returns the document text.booleanisAttached()Returnstrueif this editor is currently attached to the document tab strip.booleanisCharacterEscapingEnabled()Returnstrueif character escaping is enabled on read and write of the document.booleanisCommandApplicable(AbstractCommand command)Returnstrueif thecommandcan be performed by this commandable in its current state.static booleanisNavigatorVisible()Returnstrueif code editors will display a source navigator when one has been set.booleanisReadOnly()protected voidonHeartbeat()This method is called to allow the editor to perform heartbeat processing.voidperformCommand(AbstractCommand command)Performs the command.protected voidprintImpl(java.awt.print.PrinterJob job)Subclasses should override this to print the edited document if PRINT is a supported command.voidrefresh()Reload the file, replacing the edited text.voidrefreshNavigator()Updates the navigation panel to reflect the current state of the text.voidrun(boolean debugIfAvailable)Run the current script.protected voidsaveImpl(java.io.File f)Saves the editor content to the specified file.voidselect(int startOffset, int endOffset)Selects from the start offset to the end offset.voidselectAll()Selects the entire document.voidsetAttached(boolean attach)Sets whether this editor is attached to the document tab strip.voidsetCharacterEscapingEnabled(boolean characterEscaping)Sets whether character escaping is enabled on read and write of the document.voidsetFile(java.io.File f)Sets the preferred file to use when saving the edited component.voidsetFileDropListener(FileDrop.Listener fdl)voidsetFrameIcon(javax.swing.Icon icon)Sets the preferred icon to use for this editor window.voidsetNavigator(Navigator nav)Sets the navigator that will be used to populate the navigation panel for this editor.static voidsetNavigatorVisible(boolean navIsVisible)Sets whether source navigators are hidden.voidsetReadOnly(boolean readOnly)voidsetSelectedText(java.lang.String text)Replaces the selection with the specified text.voidsetText(java.lang.String text)Sets the document text.voidsortSelectedLines()Displays a dialog that allows the user to sort the selected lines.protected StrangeEonsEditorspinOffImpl()Subclasses should override this to clone the edited document if SPIN_OFF is a supported command.protected java.lang.Stringunescape(java.lang.String line)Called as each line is read to allow the editor to convert the text content.-
Methods inherited from class ca.cgjennings.apps.arkham.AbstractSupportEditor
export
-
Methods inherited from class ca.cgjennings.apps.arkham.AbstractStrangeEonsEditor
addEditorListener, addHeartbeatListener, clearImpl, close, confirmLossOfUnsavedChanges, createTimer, createTimer, dispose, doDefaultCloseAction, fireHeartbeatEvent, getFile, getGameComponent, getTabStripPopupMenu, getTitle, getToolTipText, hasUnsavedChanges, print, removeAllStrangeEonsListeners, removeEditorListener, removeHeartbeatListener, resumeTimedUpdates, save, saveAs, select, setTitle, setToolTipText, setUnsavedChanges, spinOff, stopTimedUpdates, toString
-
Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setUI, show, toBack, toFront, 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, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, 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, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ca.cgjennings.apps.arkham.StrangeEonsEditor
getFrameIcon, isAttached, setAttached, setFrameIcon
-
-
-
-
Field Detail
-
KEY_SHOW_NAVIGATOR
public static final java.lang.String KEY_SHOW_NAVIGATOR
- See Also:
- Constant Field Values
-
KEY_NAV_SIZE
public static final java.lang.String KEY_NAV_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CodeEditor
public CodeEditor(java.io.File file, CodeType codeType) throws java.io.IOExceptionCreates a new code editor for the requested file and file type. The default encoding for the file type will be used to read and write the file.- Parameters:
file-codeType-- Throws:
java.io.IOException
-
CodeEditor
public CodeEditor(java.io.File file, java.nio.charset.Charset encoding, CodeType codeType) throws java.io.IOExceptionCreates a new code editor for the requested file, encoding, and file type.- Parameters:
file-encoding-codeType-- Throws:
java.io.IOException
-
CodeEditor
public CodeEditor(java.io.File file, java.lang.String encoding, CodeType codeType) throws java.io.IOExceptionCreates a new code editor for the requested file, encoding, and file type.- Parameters:
file-encoding-codeType-- Throws:
java.io.IOException
-
CodeEditor
public CodeEditor(java.lang.String text, CodeType codeType)Creates a new code editor that displays text but does not allow it to be edited unless the user creates a copy using Save As. The default encoding for the content type will be used to read and write the file.- Parameters:
text- the text to display in the editorcodeType- the content type of the text
-
CodeEditor
public CodeEditor(java.lang.String text, java.lang.String encoding, CodeType codeType)Creates a new code editor that displays text but does not allow it to be edited unless the user creates a copy using Save As.- Parameters:
text- the text to display in the editorencoding- the name of the character set to use when reading or writing the filecodeType- the content type of the text
-
-
Method Detail
-
setReadOnly
public void setReadOnly(boolean readOnly)
-
isReadOnly
public boolean isReadOnly()
-
checkFileForBOM
public static java.nio.charset.Charset checkFileForBOM(java.io.File f) throws java.io.IOExceptionDetects a UTF-8/UTF-16/UTF-32 BOM sequence at the start of a text file. If one exists, returns theCharsetindicated by the sequence. Otherwise, returnsnull.- Parameters:
f- the file to check- Returns:
- the encoding represented by the byte order mark, or
null - Throws:
java.io.IOException
-
refresh
public void refresh() throws java.io.IOExceptionReload the file, replacing the edited text.- Throws:
java.io.IOException
-
setFileDropListener
public void setFileDropListener(FileDrop.Listener fdl)
-
getFileDropListener
public FileDrop.Listener getFileDropListener()
-
find
public void find()
-
canPerformCommand
public boolean canPerformCommand(AbstractCommand command)
Description copied from class:AbstractSupportEditorReturnstrueif the commandable wishes to handle the given command. This method defines the set of commands that the commandable responds to. The commandable might not be able to act on the command at the current moment. For example, a commandable that responds to "Cut" could return true from this method, but false fromAbstractStrangeEonsEditor.isCommandApplicable(ca.cgjennings.apps.arkham.commands.AbstractCommand)if there is currently no selection to cut.The base class for support editors returns true for the following standard commands: CLEAR, EXPORT, PRINT, SAVE, SAVE_AS.
- Specified by:
canPerformCommandin interfaceCommandable- Specified by:
canPerformCommandin interfaceStrangeEonsEditor- Overrides:
canPerformCommandin classAbstractSupportEditor- Parameters:
command- the command to be performed- Returns:
trueif this commandable wishes to handle the command (even if it cannot execute the command currently)- See Also:
Commands
-
isCommandApplicable
public boolean isCommandApplicable(AbstractCommand command)
Description copied from class:AbstractStrangeEonsEditorReturnstrueif thecommandcan be performed by this commandable in its current state. IfCommandable.canPerformCommand(ca.cgjennings.apps.arkham.commands.AbstractCommand)would return false for this command, then this must also return false. The base class returns the value ofAbstractStrangeEonsEditor.canPerformCommand(ca.cgjennings.apps.arkham.commands.AbstractCommand), except that if the command is SAVE, it returns false if the editor does not have unsaved changes.- Specified by:
isCommandApplicablein interfaceCommandable- Specified by:
isCommandApplicablein interfaceStrangeEonsEditor- Overrides:
isCommandApplicablein classAbstractStrangeEonsEditor- Parameters:
command- the command to be performed- Returns:
trueif this commandable can currently perform the command
-
performCommand
public void performCommand(AbstractCommand command)
Description copied from class:AbstractStrangeEonsEditorPerforms the command. IfCommandable.isCommandApplicable(ca.cgjennings.apps.arkham.commands.AbstractCommand)would returnfalsefor this command, then this should do nothing.The base class provides a framework for handling common document commands. To use the framework, override
AbstractStrangeEonsEditor.canPerformCommand(ca.cgjennings.apps.arkham.commands.AbstractCommand)to return true for the commands you wish to support. Then this method will call the following methods (as appropriate): null null nullAbstractStrangeEonsEditor.clear(),AbstractStrangeEonsEditor.save(),AbstractStrangeEonsEditor.saveAs(),AbstractStrangeEonsEditor.export(),AbstractStrangeEonsEditor.spinOff(), orAbstractStrangeEonsEditor.print(). These methods handle common details of implementing these commands, then pass control to a matching implementation method which the subclass must override to perform those aspects of the command which are unique to the editor's content.For example, to implement document saving, a subclass would override
AbstractStrangeEonsEditor.canPerformCommand(ca.cgjennings.apps.arkham.commands.AbstractCommand)to return true for the SAVE and SAVE_AS commands, then overrideAbstractStrangeEonsEditor.saveImpl(java.io.File)to write the editor content to the provided file.- Specified by:
performCommandin interfaceCommandable- Specified by:
performCommandin interfaceStrangeEonsEditor- Overrides:
performCommandin classAbstractStrangeEonsEditor- Parameters:
command- the command to perform
-
setFile
public void setFile(java.io.File f)
Description copied from interface:StrangeEonsEditorSets the preferred file to use when saving the edited component.- Specified by:
setFilein interfaceStrangeEonsEditor- Overrides:
setFilein classAbstractStrangeEonsEditor- Parameters:
f- the file to use for Save operations- See Also:
StrangeEonsEditor.getFile()
-
onHeartbeat
protected void onHeartbeat()
Description copied from class:AbstractStrangeEonsEditorThis method is called to allow the editor to perform heartbeat processing. The base class will callAbstractStrangeEonsEditor.fireHeartbeatEvent()to notify any attached listeners.- Overrides:
onHeartbeatin classAbstractStrangeEonsEditor
-
getEditor
public final CodeEditorBase getEditor()
-
getEncoding
public java.lang.String getEncoding()
-
saveImpl
protected void saveImpl(java.io.File f) throws java.io.IOExceptionDescription copied from class:AbstractStrangeEonsEditorSaves the editor content to the specified file. This method is called by {link #save} in response to save requests. Subclasses must override it to write an appropriate file for the document if the editor supports saving.- Overrides:
saveImplin classAbstractStrangeEonsEditor- Parameters:
f- the file to write content to- Throws:
java.io.IOException- if the save fails
-
getCodeType
public CodeType getCodeType()
-
getFileNameExtension
public java.lang.String getFileNameExtension()
Description copied from interface:StrangeEonsEditorReturns the standard file extension for the type of content displayed in this editor.- Specified by:
getFileNameExtensionin interfaceStrangeEonsEditor- Returns:
- a file extension, such as
"txt" - See Also:
StrangeEonsEditor.getFileTypeDescription()
-
getFileTypeDescription
public java.lang.String getFileTypeDescription()
Description copied from interface:StrangeEonsEditorReturns a description of the content displayed in this editor. For English descriptions, this should be plural as it is used to describe the file type in save dialogs.- Specified by:
getFileTypeDescriptionin interfaceStrangeEonsEditor- Returns:
- a human-friendly description of the content associated with the editor, such as "Text Files"
- See Also:
StrangeEonsEditor.getFileNameExtension()
-
spinOffImpl
protected StrangeEonsEditor spinOffImpl()
Description copied from class:AbstractStrangeEonsEditorSubclasses should override this to clone the edited document if SPIN_OFF is a supported command.- Overrides:
spinOffImplin classAbstractStrangeEonsEditor- Returns:
- a new editor with an exact copy of this document
-
clear
public void clear()
Description copied from class:AbstractStrangeEonsEditorClears the contents of this component to a blank state, if the user gives permission. This implementation allows the user to cancel the clear operation if there are unsaved changes, and then callsclearImplto handle the details of clearing the edited content. To use it, overrideAbstractStrangeEonsEditor.clearImpl()to perform the clear operation.- Specified by:
clearin interfaceStrangeEonsEditor- Overrides:
clearin classAbstractStrangeEonsEditor- See Also:
StrangeEonsEditor.canPerformCommand(ca.cgjennings.apps.arkham.commands.AbstractCommand)
-
printImpl
protected void printImpl(java.awt.print.PrinterJob job) throws javax.print.PrintException, java.awt.print.PrinterExceptionDescription copied from class:AbstractStrangeEonsEditorSubclasses should override this to print the edited document if PRINT is a supported command.- Overrides:
printImplin classAbstractStrangeEonsEditor- Parameters:
job- the printer job to use for printing- Throws:
javax.print.PrintException- if a printing error occursjava.awt.print.PrinterException- if a printing error occurs
-
exportImpl
protected void exportImpl(int type, java.io.File f) throws java.io.IOExceptionDescription copied from class:AbstractSupportEditorSubclasses should override this to export the edited content if EXPORT is a supported command. The value oftypeis the index of the element inAbstractSupportEditor.getExportExtensions()for the file type that was selected by the user. The value offileis the destination file to write content to.- Overrides:
exportImplin classAbstractSupportEditor- Parameters:
type- the index of the file format to exportf- the file to write content to- Throws:
java.io.IOException- if an error occurs while writing
-
getExportExtensions
public java.lang.String[] getExportExtensions()
Description copied from class:AbstractSupportEditorReturns the standard file extensions supported for export from this editor. This implementation returns an empty array. If your editor supports export, it should override this to return- Overrides:
getExportExtensionsin classAbstractSupportEditor- Returns:
- an array of file extensions, such as
"txt"This base implementation returns an empty array.
-
getExportDescriptions
public java.lang.String[] getExportDescriptions()
Description copied from class:AbstractSupportEditorReturns a description of the file types supported for export from this editor. The length and indices of this array match those returned byAbstractSupportEditor.getExportExtensions(), that is, element 0 of this array is a description of the file type represented by the element 0 of the extensions array.- Overrides:
getExportDescriptionsin classAbstractSupportEditor- Returns:
- an array of human-readable type descriptions, such as "Text
document"
This base implementation returns an empty array.
-
escape
protected java.lang.String escape(java.lang.String line)
Called before each line is written to a file to allow the editor to convert the text content. The default implementation checks ifisCharacterEscapingEnabled()returnstrue, and if so, it applies Unicode escapes to the line.- Parameters:
line- the line to process- Returns:
- the processed line
-
unescape
protected java.lang.String unescape(java.lang.String line)
Called as each line is read to allow the editor to convert the text content. The default implementation checks ifisCharacterEscapingEnabled()returnstrue, and if so, it removes Unicode escapes from the line.- Parameters:
line- the line to process- Returns:
- the processed line
-
isCharacterEscapingEnabled
public boolean isCharacterEscapingEnabled()
Returnstrueif character escaping is enabled on read and write of the document. When enabled, the default behaviour ofescape(java.lang.String)andunescape(java.lang.String)is to automatically convert Java-style Unicode escapeUnicode sequences in the file into their character equivalents when displayed in the editor.- Returns:
trueif automatic character escaping is enabled- See Also:
EscapedTextCodec
-
setCharacterEscapingEnabled
public void setCharacterEscapingEnabled(boolean characterEscaping)
Sets whether character escaping is enabled on read and write of the document.- Parameters:
characterEscaping- iftrue, automatic character escaping is enabled- See Also:
isCharacterEscapingEnabled(),escape(java.lang.String),unescape(java.lang.String)
-
createPopupMenu
protected javax.swing.JPopupMenu createPopupMenu(CodeEditorBase editor, javax.swing.JPopupMenu menu)
Returns a popup menu of actions that are appropriate for the editor type.- Returns:
- a context menu populated with menu items for the current selection and code type
-
format
public void format()
Format the code in the code editor, if a suitable formatter is available. Otherwise, do nothing.
-
setNavigator
public void setNavigator(Navigator nav)
Sets the navigator that will be used to populate the navigation panel for this editor. Setting the navigator tonullwill disable the navigator panel.- Parameters:
nav- the new navigator to set
-
getNavigator
public final Navigator getNavigator()
Returns the current navigator for this editor, ornullif none is set.- Specified by:
getNavigatorin interfaceNavigationHost- Returns:
- the current navigator
-
getSelectedNavigationPoint
public NavigationPoint getSelectedNavigationPoint()
Returns the navigation point selected in the navigation panel, ornullif none is selected.- Returns:
- the selected navigation point, or
null
-
refreshNavigator
public void refreshNavigator()
Updates the navigation panel to reflect the current state of the text.- Specified by:
refreshNavigatorin interfaceNavigationHost
-
isNavigatorVisible
public static boolean isNavigatorVisible()
Returnstrueif code editors will display a source navigator when one has been set. This setting applies to all code editors.- Returns:
trueif navigators are visible
-
setNavigatorVisible
public static void setNavigatorVisible(boolean navIsVisible)
Sets whether source navigators are hidden. This affects all code editors. To remove the navigator of a specific editor, set is navigator tonull.- Parameters:
navIsVisible- iftrue, the navigator panel will be displayed by code editors; otherwise it will be hidden
-
getText
public java.lang.String getText()
Returns the document text.- Returns:
- the edited text
-
setText
public void setText(java.lang.String text)
Sets the document text.- Parameters:
text- to text to be edited
-
getSelectedText
public java.lang.String getSelectedText()
Returns the selected text. Returns an empty string if the selection is empty.- Returns:
- the text with the current selection
-
setSelectedText
public void setSelectedText(java.lang.String text)
Replaces the selection with the specified text. If the selection is empty, then the specified text is inserted.- Parameters:
text- the text to replace the selection with
-
select
public void select(int startOffset, int endOffset)Selects from the start offset to the end offset.- Parameters:
startOffset- the start offsetendOffset- the end offset
-
selectAll
public void selectAll()
Selects the entire document.
-
getDocumentLength
public int getDocumentLength()
Returns the length of the document, in characters.- Returns:
- the document length
-
run
public void run(boolean debugIfAvailable)
Run the current script.- Parameters:
debugIfAvailable- if the debugger is enabled, debug the script by activating a breakpoint when the script starts running
-
sortSelectedLines
public void sortSelectedLines()
Displays a dialog that allows the user to sort the selected lines.
-
getBorder
public final javax.swing.border.Border getBorder()
- Overrides:
getBorderin classjavax.swing.JComponent
-
setFrameIcon
public void setFrameIcon(javax.swing.Icon icon)
Sets the preferred icon to use for this editor window. This icon may be used to represent the window in various parts of the application interface. Possible example uses include the following: the document tab, the editor's item in the Window menu, and the frame icon of the editor's detached window. Note, however, that there is no guarantee that the icon will be used, or how. Furthermore, the icon may be used in modified form.- Overrides:
setFrameIconin classjavax.swing.JInternalFrame- Parameters:
icon- the preferred icon for the editor window- See Also:
JInternalFrame.getFrameIcon()
-
getFrameIcon
public javax.swing.Icon getFrameIcon()
Returns the editor window icon.- Overrides:
getFrameIconin classjavax.swing.JInternalFrame- Returns:
- the icon for the editor, or
nullif no icon is set
-
setAttached
public void setAttached(boolean attach)
Sets whether this editor is attached to the document tab strip. Iftrue, the editor is attached; this is the default state for new editors. Iffalse, the editor is detached from the tab strip. When detached, the editor appears in its own floating window separate from the main application window. The editor reattaches when the window is closed.- Parameters:
attach- iftrue, attaches the window to the tab strip
-
isAttached
public boolean isAttached()
Returnstrueif this editor is currently attached to the document tab strip.- Returns:
trueif the editor is attached- See Also:
setAttached(boolean)
-
-