Class Editor
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.nuiton.jaxx.widgets.extra.editor.Editor
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,EditorInterface
public class Editor extends javax.swing.JPanel implements EditorInterface
L'idee de cette editor, est qu'il ne fait rien lui meme, mais delegue a un
autre editeur enregistré. L'enregistrement ce fait par le nom de la classe
sous forme de String, ce qui permet d'enregistrer des editeurs qui ne peuvent
pas etre chargé car il manque des jars. Par exemple NetBeansEditor qui
demande beaucoup de jar, peu ne pas etre chargé convenablement, dans ce cas
un autre editeur sera choisi.
L'ordre d'enregistrement est important. Le premier editor enregistré sera le premier editeur essayé.
Si l'on souhaite creer un nouvel editeur, il faut implanter
EditorInterface et etendre au moins Component
Si aucun editeur n'est trouvé alors DefaultEditor est utilisé
Editeur permet d'utiliser Ctrl-s pour sauver le fichier courant quel que soit l'editeur.
- Author:
- poussin
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classEditor.EditorSyntaxConstantAvailable syntaxes.Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainerNested 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 Modifier and Type Field Description protected booleanaskIfNotSavedIf the edited file is modifier, before switch to other or close it, ask the user if he want save the modificationprotected java.util.Set<javax.swing.event.CaretListener>caretListenersAll caret listener registered on this editorprotected EditorInterfacecurrentEditorcurrentEditor is currently opened editor in this editorprotected static EditorInterfaceDEFAULT_EDITORprotected java.util.Set<javax.swing.event.DocumentListener>documentListenersAll document listener registered on this editorprotected booleanforceDefaultforce usage of default editorprotected static EditorInterfacenullEditorprotected java.io.FileopenedFilecurrent opened fileprotected static java.util.List<EditorInterface>registeredtous les Editors enregistréprotected java.util.Map<EditorInterface,EditorInterface>usedEditoreditor already instanciate for this editorFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors Constructor Description Editor() -
Method Summary
Modifier and Type Method Description booleanaccept(java.io.File file)if return true, this editor support this file type.booleanaccept(Editor.EditorSyntaxConstant editorSyntaxConstant)if return true, this editor support this syntax type.voidaddCaretListener(javax.swing.event.CaretListener listener)Add caret listener.voidaddDocumentListener(javax.swing.event.DocumentListener listener)Add document listener.protected voidaddKeyBinding()protected booleanaskAndSaveOrCancel()ask the user to save the current opened file if necessary (current file is modified)booleanclose()Closs current filevoidcopy()Copy current current selection into system clipboard.voidcut()Cut current editor selection into system clipboard.EditorInterfacegetCurrentEditor()EditorInterfacegetEditor(java.io.File file)try to find better editor for this fileEditorInterfacegetEditor(Editor.EditorSyntaxConstant editorSyntaxConstant)try to find better editor for this filejava.io.FilegetOpenedFile()java.lang.StringgetText()Return the current content text of the editor asString.booleanisAskIfNotSaved()booleanisForceDefault()booleanisModified()indicate if current opened file has been modifiedbooleanopen(java.io.File file)Replace the current edited file by file passed in argument.voidpaste()Paste current clicboard content into editor at caret position.voidremoveCaretListener(javax.swing.event.CaretListener listener)Remove caret listener.voidremoveDocumentListener(javax.swing.event.DocumentListener listener)Remove document listener.booleansave()Save current opened filebooleansaveAs(java.io.File file)Replace the current edited file by file passed in argumentvoidsetAskIfNotSaved(boolean askIfNotSaved)voidsetCurrentEditor(EditorInterface editor)voidsetEnabled(boolean b)Enable/disable editor.voidsetForceDefault(boolean forceDefault)voidsetOpenedFile(java.io.File openedFile)voidsetSyntax(Editor.EditorSyntaxConstant editorSyntax)Force to use syntaxe without file, try to find the better editor for this syntax Work only for regisvoidsetText(java.lang.String text)Set all text with text in argument.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods 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, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods 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, transferFocusDownCycle, validate, validateTreeMethods 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, 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, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
DEFAULT_EDITOR
-
registered
tous les Editors enregistré -
nullEditor
-
usedEditor
editor already instanciate for this editor -
currentEditor
currentEditor is currently opened editor in this editor -
openedFile
protected java.io.File openedFilecurrent opened file -
documentListeners
protected java.util.Set<javax.swing.event.DocumentListener> documentListenersAll document listener registered on this editor -
caretListeners
protected java.util.Set<javax.swing.event.CaretListener> caretListenersAll caret listener registered on this editor -
askIfNotSaved
protected boolean askIfNotSavedIf the edited file is modifier, before switch to other or close it, ask the user if he want save the modification -
forceDefault
protected boolean forceDefaultforce usage of default editor
-
-
Constructor Details
-
Editor
public Editor()
-
-
Method Details
-
addKeyBinding
protected void addKeyBinding() -
setSyntax
Force to use syntaxe without file, try to find the better editor for this syntax Work only for regis- Specified by:
setSyntaxin interfaceEditorInterface- Parameters:
editorSyntax- to use
-
isAskIfNotSaved
public boolean isAskIfNotSaved()- Returns:
- the askIfNotSaved
-
setAskIfNotSaved
public void setAskIfNotSaved(boolean askIfNotSaved)- Parameters:
askIfNotSaved- the askIfNotSaved to set
-
isForceDefault
public boolean isForceDefault()- Returns:
- the forceDefault
-
setForceDefault
public void setForceDefault(boolean forceDefault)- Parameters:
forceDefault- the forceDefault to set
-
getEditor
try to find better editor for this file- Parameters:
editorSyntaxConstant- type of syntaxe- Returns:
- the better editor, or Default Editor
-
getEditor
try to find better editor for this file- Parameters:
file- concerned- Returns:
- the better editor, or Default Editor
-
setCurrentEditor
-
getCurrentEditor
- Returns:
- the currentEditor
-
getOpenedFile
public java.io.File getOpenedFile()- Returns:
- the openedFile
-
setOpenedFile
public void setOpenedFile(java.io.File openedFile)- Parameters:
openedFile- the openedFile to set
-
close
public boolean close()Closs current file- Returns:
- the current editor
-
askAndSaveOrCancel
protected boolean askAndSaveOrCancel()ask the user to save the current opened file if necessary (current file is modified)- Returns:
- false if user awnser Cancel, true otherwize.
-
save
public boolean save()Save current opened file- Returns:
- true if all is ok
-
accept
public boolean accept(java.io.File file)if return true, this editor support this file type. Default implantation return true- Specified by:
acceptin interfaceEditorInterface- Parameters:
file- to check- Returns:
- if return true, this editor support this file type.
-
accept
if return true, this editor support this syntax type. Default implantation return true- Specified by:
acceptin interfaceEditorInterface- Parameters:
editorSyntaxConstant- to check- Returns:
- if return true, this editor support this syntax type.
-
isModified
public boolean isModified()indicate if current opened file has been modified- Specified by:
isModifiedin interfaceEditorInterface- Returns:
- true if currend file is modified
-
open
public boolean open(java.io.File file)Replace the current edited file by file passed in argument. When you overide this method, you must callsetOpenedFile(File)- Specified by:
openin interfaceEditorInterface- Parameters:
file- the file to open- Returns:
- true if file has been opened
-
saveAs
public boolean saveAs(java.io.File file)Replace the current edited file by file passed in argument- Specified by:
saveAsin interfaceEditorInterface- Parameters:
file- the file to open- Returns:
- true if file has been saved and reopen with new name
-
getText
public java.lang.String getText()Description copied from interface:EditorInterfaceReturn the current content text of the editor asString.- Specified by:
getTextin interfaceEditorInterface- Returns:
- return the current content text of the editor as
String
-
setText
public void setText(java.lang.String text)Description copied from interface:EditorInterfaceSet all text with text in argument.- Specified by:
setTextin interfaceEditorInterface- Parameters:
text- test to set
-
copy
public void copy()Description copied from interface:EditorInterfaceCopy current current selection into system clipboard.- Specified by:
copyin interfaceEditorInterface
-
cut
public void cut()Description copied from interface:EditorInterfaceCut current editor selection into system clipboard.- Specified by:
cutin interfaceEditorInterface
-
paste
public void paste()Description copied from interface:EditorInterfacePaste current clicboard content into editor at caret position.- Specified by:
pastein interfaceEditorInterface
-
setEnabled
public void setEnabled(boolean b)Description copied from interface:EditorInterfaceEnable/disable editor.- Specified by:
setEnabledin interfaceEditorInterface- Overrides:
setEnabledin classjavax.swing.JComponent- Parameters:
b- enable
-
addDocumentListener
public void addDocumentListener(javax.swing.event.DocumentListener listener)Description copied from interface:EditorInterfaceAdd document listener.- Specified by:
addDocumentListenerin interfaceEditorInterface- Parameters:
listener- listener
-
removeDocumentListener
public void removeDocumentListener(javax.swing.event.DocumentListener listener)Description copied from interface:EditorInterfaceRemove document listener.- Specified by:
removeDocumentListenerin interfaceEditorInterface- Parameters:
listener- listener
-
addCaretListener
public void addCaretListener(javax.swing.event.CaretListener listener)Description copied from interface:EditorInterfaceAdd caret listener.- Specified by:
addCaretListenerin interfaceEditorInterface- Parameters:
listener- listener
-
removeCaretListener
public void removeCaretListener(javax.swing.event.CaretListener listener)Description copied from interface:EditorInterfaceRemove caret listener.- Specified by:
removeCaretListenerin interfaceEditorInterface- Parameters:
listener- listener
-