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:
ImageObserver,MenuContainer,Serializable,Accessible,EditorInterface
public class Editor extends 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
EditorInterfaceet etendre au moinsComponentSi aucun editeur n'est trouvé alors
DefaultEditorest 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
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, 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 Set<CaretListener>caretListenersAll caret listener registered on this editorprotected EditorInterfacecurrentEditorcurrentEditor is currently opened editor in this editorprotected static EditorInterfaceDEFAULT_EDITORprotected Set<DocumentListener>documentListenersAll document listener registered on this editorprotected booleanforceDefaultforce usage of default editorprotected static EditorInterfacenullEditorprotected FileopenedFilecurrent opened fileprotected static List<EditorInterface>registeredtous les Editors enregistréprotected Map<EditorInterface,EditorInterface>usedEditoreditor already instanciate for this editor-
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
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Constructor Description Editor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(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(CaretListener listener)Add caret listener.voidaddDocumentListener(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(File file)try to find better editor for this fileEditorInterfacegetEditor(Editor.EditorSyntaxConstant editorSyntaxConstant)try to find better editor for this fileFilegetOpenedFile()StringgetText()Return the current content text of the editor asString.booleanisAskIfNotSaved()booleanisForceDefault()booleanisModified()indicate if current opened file has been modifiedbooleanopen(File file)Replace the current edited file by file passed in argument.voidpaste()Paste current clicboard content into editor at caret position.voidremoveCaretListener(CaretListener listener)Remove caret listener.voidremoveDocumentListener(DocumentListener listener)Remove document listener.booleansave()Save current opened filebooleansaveAs(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(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(String text)Set all text with text in argument.-
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, 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, 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, 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, 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
-
-
-
-
Field Detail
-
DEFAULT_EDITOR
protected static EditorInterface DEFAULT_EDITOR
-
registered
protected static List<EditorInterface> registered
tous les Editors enregistré
-
nullEditor
protected static EditorInterface nullEditor
-
usedEditor
protected Map<EditorInterface,EditorInterface> usedEditor
editor already instanciate for this editor
-
currentEditor
protected EditorInterface currentEditor
currentEditor is currently opened editor in this editor
-
openedFile
protected File openedFile
current opened file
-
documentListeners
protected Set<DocumentListener> documentListeners
All document listener registered on this editor
-
caretListeners
protected Set<CaretListener> caretListeners
All caret listener registered on this editor
-
askIfNotSaved
protected boolean askIfNotSaved
If the edited file is modifier, before switch to other or close it, ask the user if he want save the modification
-
forceDefault
protected boolean forceDefault
force usage of default editor
-
-
Method Detail
-
addKeyBinding
protected void addKeyBinding()
-
setSyntax
public void setSyntax(Editor.EditorSyntaxConstant editorSyntax)
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
public EditorInterface getEditor(Editor.EditorSyntaxConstant editorSyntaxConstant)
try to find better editor for this file- Parameters:
editorSyntaxConstant- type of syntaxe- Returns:
- the better editor, or Default Editor
-
getEditor
public EditorInterface getEditor(File file)
try to find better editor for this file- Parameters:
file- concerned- Returns:
- the better editor, or Default Editor
-
setCurrentEditor
public void setCurrentEditor(EditorInterface editor)
-
getCurrentEditor
public EditorInterface getCurrentEditor()
- Returns:
- the currentEditor
-
getOpenedFile
public File getOpenedFile()
- Returns:
- the openedFile
-
setOpenedFile
public void setOpenedFile(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(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
public boolean accept(Editor.EditorSyntaxConstant editorSyntaxConstant)
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(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(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 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(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 classJComponent- Parameters:
b- enable
-
addDocumentListener
public void addDocumentListener(DocumentListener listener)
Description copied from interface:EditorInterfaceAdd document listener.- Specified by:
addDocumentListenerin interfaceEditorInterface- Parameters:
listener- listener
-
removeDocumentListener
public void removeDocumentListener(DocumentListener listener)
Description copied from interface:EditorInterfaceRemove document listener.- Specified by:
removeDocumentListenerin interfaceEditorInterface- Parameters:
listener- listener
-
addCaretListener
public void addCaretListener(CaretListener listener)
Description copied from interface:EditorInterfaceAdd caret listener.- Specified by:
addCaretListenerin interfaceEditorInterface- Parameters:
listener- listener
-
removeCaretListener
public void removeCaretListener(CaretListener listener)
Description copied from interface:EditorInterfaceRemove caret listener.- Specified by:
removeCaretListenerin interfaceEditorInterface- Parameters:
listener- listener
-
-