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 class  Editor.EditorSyntaxConstant
    Available syntaxes.

    Nested classes/interfaces inherited from class javax.swing.JPanel

    javax.swing.JPanel.AccessibleJPanel

    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
  • 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 modification
    protected java.util.Set<javax.swing.event.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 java.util.Set<javax.swing.event.DocumentListener> documentListeners
    All document listener registered on this editor
    protected boolean forceDefault
    force usage of default editor
    protected static EditorInterface nullEditor  
    protected java.io.File openedFile
    current opened file
    protected static java.util.List<EditorInterface> registered
    tous les Editors enregistré
    protected java.util.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

    Modifier and Type Method Description
    boolean accept​(java.io.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​(javax.swing.event.CaretListener listener)
    Add caret listener.
    void addDocumentListener​(javax.swing.event.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​(java.io.File file)
    try to find better editor for this file
    EditorInterface getEditor​(Editor.EditorSyntaxConstant editorSyntaxConstant)
    try to find better editor for this file
    java.io.File getOpenedFile()  
    java.lang.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​(java.io.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​(javax.swing.event.CaretListener listener)
    Remove caret listener.
    void removeDocumentListener​(javax.swing.event.DocumentListener listener)
    Remove document listener.
    boolean save()
    Save current opened file
    boolean saveAs​(java.io.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​(java.io.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​(java.lang.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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • DEFAULT_EDITOR

      protected static EditorInterface DEFAULT_EDITOR
    • registered

      protected static java.util.List<EditorInterface> registered
      tous les Editors enregistré
    • nullEditor

      protected static EditorInterface nullEditor
    • usedEditor

      protected java.util.Map<EditorInterface,​EditorInterface> usedEditor
      editor already instanciate for this editor
    • currentEditor

      protected EditorInterface currentEditor
      currentEditor is currently opened editor in this editor
    • openedFile

      protected java.io.File openedFile
      current opened file
    • documentListeners

      protected java.util.Set<javax.swing.event.DocumentListener> documentListeners
      All document listener registered on this editor
    • caretListeners

      protected java.util.Set<javax.swing.event.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 Details

    • Editor

      public Editor()
  • Method Details

    • 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​(java.io.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 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:
      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​(java.io.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​(java.io.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 java.lang.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​(java.lang.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 javax.swing.JComponent
      Parameters:
      b - enable
    • addDocumentListener

      public void addDocumentListener​(javax.swing.event.DocumentListener listener)
      Description copied from interface: EditorInterface
      Add document listener.
      Specified by:
      addDocumentListener in interface EditorInterface
      Parameters:
      listener - listener
    • removeDocumentListener

      public void removeDocumentListener​(javax.swing.event.DocumentListener listener)
      Description copied from interface: EditorInterface
      Remove document listener.
      Specified by:
      removeDocumentListener in interface EditorInterface
      Parameters:
      listener - listener
    • addCaretListener

      public void addCaretListener​(javax.swing.event.CaretListener listener)
      Description copied from interface: EditorInterface
      Add caret listener.
      Specified by:
      addCaretListener in interface EditorInterface
      Parameters:
      listener - listener
    • removeCaretListener

      public void removeCaretListener​(javax.swing.event.CaretListener listener)
      Description copied from interface: EditorInterface
      Remove caret listener.
      Specified by:
      removeCaretListener in interface EditorInterface
      Parameters:
      listener - listener