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:
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/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
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  EditorInterface currentEditor
          currentEditor is currently opened editor in this editor
protected static EditorInterface DEFAULT_EDITOR
           
protected  boolean forceDefault
          force usage of default editor
protected  java.util.Set<javax.swing.event.DocumentListener> listeners
          All listener registered on this 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
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(java.io.File file)
          if return true, this editor support this file type.
 void addDocumentListener(javax.swing.event.DocumentListener listener)
          Add 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
 EditorInterface getCurrentEditor()
           
 EditorInterface getEditor(java.io.File file)
          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 removeDocumentListener(javax.swing.event.DocumentListener listener)
          Remove 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 setForceDefault(boolean forceDefault)
           
 void setOpenedFile(java.io.File openedFile)
           
 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, 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, setEnabled, 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 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


listeners

protected java.util.Set<javax.swing.event.DocumentListener> listeners
All 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()

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(java.io.File file)
try to find better editor for this file

Parameters:
file -
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 -
Returns:
if return true, this editor support this file 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

addDocumentListener

public void addDocumentListener(javax.swing.event.DocumentListener listener)
Description copied from interface: EditorInterface
Add listener

Specified by:
addDocumentListener in interface EditorInterface

removeDocumentListener

public void removeDocumentListener(javax.swing.event.DocumentListener listener)
Description copied from interface: EditorInterface
Remove listener

Specified by:
removeDocumentListener in interface EditorInterface


Copyright © 2004-2009 CodeLutin. All Rights Reserved.