org.nuiton.widget.editor
Class Editor

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.nuiton.widget.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 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
static class Editor.EditorSyntaxConstant
          Disponible syntax Used to force syntax to use on editor
 
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
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
protected  Set<CaretListener> caretListeners
          All caret listener registered on this editor
protected  EditorInterface currentEditor
          currentEditor is currently opened editor in this editor
protected static EditorInterface DEFAULT_EDITOR
           
protected  Set<DocumentListener> documentListeners
          All document listener registered on this editor
protected  boolean forceDefault
          force usage of default editor
protected static EditorInterface nullEditor
           
protected  File openedFile
          current opened file
protected 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
accessibleContext, 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
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
Editor()
           
 
Method Summary
 boolean accept(Editor.EditorSyntaxConstant editorSyntaxConstant)
          if return true, this editor support this syntax type.
 boolean accept(File file)
          if return true, this editor support this file 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 file
 void copy()
          Copy current current selection into system clipboard.
 void cut()
          Cut current editor selection into system clipboard.
 EditorInterface getCurrentEditor()
           
 EditorInterface getEditor(Editor.EditorSyntaxConstant editorSyntaxConstant)
          try to find better editor for this file
 EditorInterface getEditor(File file)
          try to find better editor for this file
 File getOpenedFile()
           
 String getText()
          Return the current content text of the editor as String.
 boolean isAskIfNotSaved()
           
 boolean isForceDefault()
           
 boolean isModified()
          indicate if current opened file has been modified
 boolean 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 file
 boolean saveAs(File file)
          Replace the current edited file by file passed in argument
 void 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 regis
 void 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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

Constructor Detail

Editor

public 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 interface EditorInterface
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 interface EditorInterface
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 interface EditorInterface
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 interface EditorInterface
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 call setOpenedFile(File)

Specified by:
open in interface EditorInterface
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 interface EditorInterface
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 as String.

Specified by:
getText in interface EditorInterface
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 interface EditorInterface
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 interface EditorInterface

cut

public void cut()
Description copied from interface: EditorInterface
Cut current editor selection into system clipboard.

Specified by:
cut in interface EditorInterface

paste

public void paste()
Description copied from interface: EditorInterface
Paste current clicboard content into editor at caret position.

Specified by:
paste in interface EditorInterface

setEnabled

public void setEnabled(boolean b)
Description copied from interface: EditorInterface
Enable/disable editor.

Specified by:
setEnabled in interface EditorInterface
Overrides:
setEnabled in class JComponent
Parameters:
b - enable

addDocumentListener

public void addDocumentListener(DocumentListener listener)
Description copied from interface: EditorInterface
Add document listener.

Specified by:
addDocumentListener in interface EditorInterface
Parameters:
listener - listener

removeDocumentListener

public void removeDocumentListener(DocumentListener listener)
Description copied from interface: EditorInterface
Remove document listener.

Specified by:
removeDocumentListener in interface EditorInterface
Parameters:
listener - listener

addCaretListener

public void addCaretListener(CaretListener listener)
Description copied from interface: EditorInterface
Add caret listener.

Specified by:
addCaretListener in interface EditorInterface
Parameters:
listener - listener

removeCaretListener

public void removeCaretListener(CaretListener listener)
Description copied from interface: EditorInterface
Remove caret listener.

Specified by:
removeCaretListener in interface EditorInterface
Parameters:
listener - listener


Copyright © 2004-2010 CodeLutin. All Rights Reserved.