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
EditorInterface
et etendre au moinsComponent
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 class
Editor.EditorSyntaxConstant
Available 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 boolean
askIfNotSaved
If the edited file is modifier, before switch to other or close it, ask the user if he want save the modificationprotected Set<CaretListener>
caretListeners
All caret listener registered on this editorprotected EditorInterface
currentEditor
currentEditor is currently opened editor in this editorprotected static EditorInterface
DEFAULT_EDITOR
protected Set<DocumentListener>
documentListeners
All document listener registered on this editorprotected boolean
forceDefault
force usage of default editorprotected static EditorInterface
nullEditor
protected File
openedFile
current opened fileprotected static List<EditorInterface>
registered
tous les Editors enregistréprotected Map<EditorInterface,EditorInterface>
usedEditor
editor 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 boolean
accept(File file)
if return true, this editor support this file type.boolean
accept(Editor.EditorSyntaxConstant editorSyntaxConstant)
if return true, this editor support this syntax type.void
addCaretListener(CaretListener listener)
Add caret listener.void
addDocumentListener(DocumentListener listener)
Add document listener.protected void
addKeyBinding()
protected boolean
askAndSaveOrCancel()
ask the user to save the current opened file if necessary (current file is modified)boolean
close()
Closs current filevoid
copy()
Copy current current selection into system clipboard.void
cut()
Cut current editor selection into system clipboard.EditorInterface
getCurrentEditor()
EditorInterface
getEditor(File file)
try to find better editor for this fileEditorInterface
getEditor(Editor.EditorSyntaxConstant editorSyntaxConstant)
try to find better editor for this fileFile
getOpenedFile()
String
getText()
Return the current content text of the editor asString
.boolean
isAskIfNotSaved()
boolean
isForceDefault()
boolean
isModified()
indicate if current opened file has been modifiedboolean
open(File file)
Replace the current edited file by file passed in argument.void
paste()
Paste current clicboard content into editor at caret position.void
removeCaretListener(CaretListener listener)
Remove caret listener.void
removeDocumentListener(DocumentListener listener)
Remove document listener.boolean
save()
Save current opened fileboolean
saveAs(File file)
Replace the current edited file by file passed in argumentvoid
setAskIfNotSaved(boolean askIfNotSaved)
void
setCurrentEditor(EditorInterface editor)
void
setEnabled(boolean b)
Enable/disable editor.void
setForceDefault(boolean forceDefault)
void
setOpenedFile(File openedFile)
void
setSyntax(Editor.EditorSyntaxConstant editorSyntax)
Force to use syntaxe without file, try to find the better editor for this syntax Work only for regisvoid
setText(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:
setSyntax
in 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:
accept
in 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:
accept
in 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:
isModified
in 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:
open
in 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:
saveAs
in 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:EditorInterface
Return the current content text of the editor asString
.- Specified by:
getText
in interfaceEditorInterface
- Returns:
- return the current content text of the editor as
String
-
setText
public void setText(String text)
Description copied from interface:EditorInterface
Set all text with text in argument.- Specified by:
setText
in interfaceEditorInterface
- Parameters:
text
- test to set
-
copy
public void copy()
Description copied from interface:EditorInterface
Copy current current selection into system clipboard.- Specified by:
copy
in interfaceEditorInterface
-
cut
public void cut()
Description copied from interface:EditorInterface
Cut current editor selection into system clipboard.- Specified by:
cut
in interfaceEditorInterface
-
paste
public void paste()
Description copied from interface:EditorInterface
Paste current clicboard content into editor at caret position.- Specified by:
paste
in interfaceEditorInterface
-
setEnabled
public void setEnabled(boolean b)
Description copied from interface:EditorInterface
Enable/disable editor.- Specified by:
setEnabled
in interfaceEditorInterface
- Overrides:
setEnabled
in classJComponent
- Parameters:
b
- enable
-
addDocumentListener
public void addDocumentListener(DocumentListener listener)
Description copied from interface:EditorInterface
Add document listener.- Specified by:
addDocumentListener
in interfaceEditorInterface
- Parameters:
listener
- listener
-
removeDocumentListener
public void removeDocumentListener(DocumentListener listener)
Description copied from interface:EditorInterface
Remove document listener.- Specified by:
removeDocumentListener
in interfaceEditorInterface
- Parameters:
listener
- listener
-
addCaretListener
public void addCaretListener(CaretListener listener)
Description copied from interface:EditorInterface
Add caret listener.- Specified by:
addCaretListener
in interfaceEditorInterface
- Parameters:
listener
- listener
-
removeCaretListener
public void removeCaretListener(CaretListener listener)
Description copied from interface:EditorInterface
Remove caret listener.- Specified by:
removeCaretListener
in interfaceEditorInterface
- Parameters:
listener
- listener
-
-