proyecto.editor
Class JavaTextPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JEditorPane
                      extended by javax.swing.JTextPane
                          extended by proyecto.editor.JavaTextPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class JavaTextPane
extends JTextPane

El componente de texto que hemos seleccionado admite texto con cierto formato: texto plano, HTML y RTF por defecto, aunque en nuestro caso lo hemos ampliado para nuestro uso específico. También nos admite mezclar fuentes y colores, dichas características asociadas a las cadenas de texto se realizan a través de los estilos. Un estilo es un conjunto de características como son: FontSize, ForegroundColor, isBold, isItalic, etc. y se manipula a través de constantes del estilo( StyleConstants.setForeground( estilo,Color.red )).

Para todas estas necesidades ampliamos la clase DefaultStyledDocument para poder colorear las palabras según nos indique nuestro analizador léxico.

El coloreado lo hacemos a través del Threard Colorer que es el encargado de llamar a léxico para que nos defina el estilo de pintado. La llamada al coloreado lo hacemos desde la subclase HighLightedDocument en los métodos de insertString

De todo el proceso del reconocedor se encarga la librería agregada a nuestro proyecto syntax.jar.

Vamos a comentar algunas características importantes de la librería:

Author:
Parras
See Also:
JTextPane, Serialized Form

Nested Class Summary
(package private)  class JavaTextPane.DocPosition
          A wrapper for a position in a document appropriate for storing in a collection.
(package private)  class JavaTextPane.DocPositionComparator
          A comparator appropriate for use with Collections of DocPositions.
(package private)  class JavaTextPane.DocumentReader
          A reader interface for an abstract document.
 
Nested classes/interfaces inherited from class javax.swing.JEditorPane
JEditorPane.AccessibleJEditorPane, JEditorPane.AccessibleJEditorPaneHTML, JEditorPane.JEditorPaneAccessibleHypertextSupport
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
 
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  proyecto.editor.JavaTextPane.Colorer colorer
          colorer.
protected  proyecto.editor.JavaTextPane.HighLightedDocument document
          document.
protected  JavaTextPane.DocumentReader documentReader
          document reader.
(package private)  PanelEdicion ipPanelEdicion
          ip panel edicion.
protected  com.Ostermiller.Syntax.Lexer.Lexer syntaxLexer
           
protected  StringBuffer textoFormImpri
          texto form impri.
 
Fields inherited from class javax.swing.JEditorPane
HONOR_DISPLAY_PROPERTIES, W3C_LENGTH_UNITS
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
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
JavaTextPane()
          Constructor java text pane.
JavaTextPane(PanelEdicion aPanel, StyleContext aStyleContext, String texto)
          Constructor java text pane.
 
Method Summary
 void color(int position, int adjustment)
          Color a section of document. actual coloring will start somewhere before requested position and continue as long as needed.
 void colorAll()
          COloreamos entero nuestro documento.
 void copiar()
          Copiar.
 void cortar()
          Cortar.
 void deshacer()
          Undo.
 void formatearCodigo()
          formatearCodigo.
 boolean getCambios()
          Obtener el cambios.
 boolean getOkImprimir()
          Obtener el ok imprimir.
 PanelEdicion getPanelEdicion()
          Obtener el panel edicion.
 boolean getScrollableTracksViewportWidth()
          (non-Javadoc) Forma de hacer LineWrap al TextPane
 StringBuffer getTextoFormateadoImprir()
          Obtener el texto formateado imprir.
 void imprimir()
          Imprimir.
 void pegar()
          Pegar.
 void rehacer()
          Redo.
 void selecionarTodo()
          Selecionar todo.
 void setCambios(boolean aValor)
          Modificar la propiedad cambios.
 void setCursorANumeroLinea(int linenumber)
          Modificar la propiedad del caret.
 void setOkImprimir(boolean okImprimir)
          Modificar la propiedad ok imprimir.
 void setTabs(JTextPane textPane, int aCaracteresParaTab)
          setTabs Establece a nuestro JTextPane los tabuladores, no cuenta por carecteres sino por píxeles.
 void setUndoManager()
          Modifica la propiedad undo manager.
 void suprimir()
          Suprimir.
 
Methods inherited from class javax.swing.JTextPane
addStyle, createDefaultEditorKit, getCharacterAttributes, getInputAttributes, getLogicalStyle, getParagraphAttributes, getStyle, getStyledDocument, getStyledEditorKit, getUIClassID, insertComponent, insertIcon, paramString, removeStyle, replaceSelection, setCharacterAttributes, setDocument, setEditorKit, setLogicalStyle, setParagraphAttributes, setStyledDocument
 
Methods inherited from class javax.swing.JEditorPane
addHyperlinkListener, createEditorKitForContentType, fireHyperlinkUpdate, getAccessibleContext, getContentType, getEditorKit, getEditorKitClassNameForContentType, getEditorKitForContentType, getHyperlinkListeners, getPage, getPreferredSize, getScrollableTracksViewportHeight, getStream, getText, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, scrollToReference, setContentType, setEditorKitForContentType, setPage, setPage, setText
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, 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, 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, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, 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

ipPanelEdicion

PanelEdicion ipPanelEdicion
ip panel edicion.


document

protected proyecto.editor.JavaTextPane.HighLightedDocument document
document.


documentReader

protected JavaTextPane.DocumentReader documentReader
document reader.


syntaxLexer

protected com.Ostermiller.Syntax.Lexer.Lexer syntaxLexer
See Also:
Lexer

colorer

protected proyecto.editor.JavaTextPane.Colorer colorer
colorer.


textoFormImpri

protected StringBuffer textoFormImpri
texto form impri.

Constructor Detail

JavaTextPane

public JavaTextPane()
Constructor java text pane. Creado : Parras, 07-nov-2009


JavaTextPane

public JavaTextPane(PanelEdicion aPanel,
                    StyleContext aStyleContext,
                    String texto)
Constructor java text pane. Creado : Parras, 07-nov-2009

Parameters:
aPanel - a panel
aStyleContext - a style context
texto - texto
Method Detail

setUndoManager

public void setUndoManager()
Modifica la propiedad undo manager. Creado : Parras, 07-nov-2009


setTabs

public void setTabs(JTextPane textPane,
                    int aCaracteresParaTab)
setTabs

Establece a nuestro JTextPane los tabuladores, no cuenta por carecteres sino por píxeles.

Parameters:
textPane - textPane
aCaracteresParaTab - caracteres para los tab

setCursorANumeroLinea

public void setCursorANumeroLinea(int linenumber)
Modificar la propiedad del caret.

Para colocar el caret en la linea que queremos

Parameters:
linenumber - Numero linea

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
(non-Javadoc) Forma de hacer LineWrap al TextPane

Specified by:
getScrollableTracksViewportWidth in interface Scrollable
Overrides:
getScrollableTracksViewportWidth in class JEditorPane
See Also:
JEditorPane.getScrollableTracksViewportWidth()

getPanelEdicion

public PanelEdicion getPanelEdicion()
Obtener el panel edicion.

Returns:
el panel edicion Creado : Parras, 07-nov-2009

getCambios

public boolean getCambios()
Obtener el cambios.

Returns:
el cambios Creado : Parras, 07-nov-2009

setCambios

public void setCambios(boolean aValor)
Modificar la propiedad cambios.

Parameters:
aValor - La propiedad cambios

deshacer

public void deshacer()
Undo.


formatearCodigo

public void formatearCodigo()
formatearCodigo.


rehacer

public void rehacer()
Redo.


copiar

public void copiar()
Copiar. Creado : Parras, 07-nov-2009


pegar

public void pegar()
Pegar. Creado : Parras, 07-nov-2009


cortar

public void cortar()
Cortar. Creado : Parras, 07-nov-2009


selecionarTodo

public void selecionarTodo()
Selecionar todo. Creado : Parras, 07-nov-2009


suprimir

public void suprimir()
Suprimir. Creado : Parras, 07-nov-2009


colorAll

public void colorAll()
COloreamos entero nuestro documento.


color

public void color(int position,
                  int adjustment)
Color a section of document. actual coloring will start somewhere before requested position and continue as long as needed.

Parameters:
position - starting point for coloring.
adjustment - amount of text inserted or removed at starting point.

getTextoFormateadoImprir

public StringBuffer getTextoFormateadoImprir()
Obtener el texto formateado imprir.

Returns:
el texto formateado imprir Creado : Parras, 07-nov-2009

imprimir

public void imprimir()
Imprimir. Creado : Parras, 07-nov-2009


getOkImprimir

public boolean getOkImprimir()
Obtener el ok imprimir.

Returns:
el ok imprimir Creado : Parras, 07-nov-2009

setOkImprimir

public void setOkImprimir(boolean okImprimir)
Modificar la propiedad ok imprimir.

Parameters:
okImprimir - La propiedad ok imprimir