|
![]() |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.swing.text.AbstractDocument
javax.swing.text.DefaultStyledDocument
argutia.gui.batchStyledDocument.BatchStyledDocument
public class BatchStyledDocument
Un BatchStyledDocument
permet l'insertion groupée de textes
avec leurs propres attributs de style.
Cela permet une amélioration significative du temps de mise à jour des
DefaultStyledDocument
en évitant les appels répétés à la
méthode AbstractDocument.insertString(int, String, AttributeSet)
, lente à cause du
rafraîchissement du composant sous-jacent qu'elle implique (généralement un JTextPane
).
Les insertions sont mémorisées dans un BatchedContent
associé à l'instance
et accessible par un appel à #getBatchedContent()
.
L'insertion de textes stylisés dans un BatchStyledDocument
peut s'effectuer de deux façons :
appendBatchXXX
de la classe
BatchedContent
,AffichableAvecStyle#toStyledString(BatchedContent)
.#processBatchUpdates(int)
,
ou dès qu'un appel à insertString(int, String, AttributeSet)
est effectué,
ce qui dans un cas comme dans l'autre réinitialise au passage l'instance de
BatchedContent
associée.
BatchedContent
,
AffichableAvecStyle
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.text.DefaultStyledDocument |
---|
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement |
Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument |
---|
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement |
Field Summary | |
---|---|
private List<DefaultStyledDocument.ElementSpec> |
batchedContent
Liste des textes stylisés, sous forme d' DefaultStyledDocument.ElementSpec ,
stockés avant une insertion massive via processBatchUpdates() . |
private DefaultStyledDocument.ElementSpec |
endParagraph
|
DefaultStyledDocument.ElementSpec |
eol
Élément « fin de ligne ». |
private static char[] |
EOL_ARRAY
Tag de fin de ligne utilisé lors de la création de #EOL . |
private static long |
serialVersionUID
The serial version of this class. |
private DefaultStyledDocument.ElementSpec |
startParagraph
|
Fields inherited from class javax.swing.text.DefaultStyledDocument |
---|
buffer, BUFFER_SIZE_DEFAULT |
Fields inherited from class javax.swing.text.AbstractDocument |
---|
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName |
Fields inherited from interface javax.swing.text.Document |
---|
StreamDescriptionProperty, TitleProperty |
Constructor Summary | |
---|---|
BatchStyledDocument(StyleContext styles)
Construit un DefaultStyledDocument (celui par défaut) et lui associe
un BatchedContent . |
Method Summary | |
---|---|
BatchStyledDocument |
appendBatchLineFeed()
Ajoute un retour à la ligne dans le BatchedContent. |
BatchStyledDocument |
appendBatchString(String s,
AttributeSet a)
Ajoute du texte avec le style spécifié dans le BatchedContent. |
BatchStyledDocument |
appendBatchStringln(String s,
AttributeSet a)
Ajoute du texte avec le style spécifié dans le BatchedContent, suivi d'un retour à la ligne. |
private DefaultStyledDocument.ElementSpec[] |
batchedContentToArray()
Retourne la liste des textes mis en forme contenus dans le BatchedContent sous la forme d'un tableau de ElementSpec . |
void |
clear()
|
private void |
delestage()
|
String |
getText()
|
void |
insertString(int offset,
String s,
AttributeSet style)
Insère le texte spécifié dans le document. |
void |
processBatchUpdates()
Met à jour le document en traitant toutes les insertions de texte stockées dans le BatchedContent associé. |
private void |
processBatchUpdates(DefaultStyledDocument.ElementSpec[] inserts)
|
Methods inherited from class javax.swing.text.DefaultStyledDocument |
---|
addDocumentListener, addStyle, create, createDefaultRoot, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, insert, insertUpdate, removeDocumentListener, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, setParagraphAttributes, styleChanged |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.swing.text.Document |
---|
addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, putProperty, remove, removeUndoableEditListener, render |
Field Detail |
---|
private static final long serialVersionUID
Serializable
,
Constant Field Values-8597402980707337103L
private static final char[] EOL_ARRAY
#EOL
.
public final DefaultStyledDocument.ElementSpec eol
#appendLineFeed
,
EOL_ARRAY
private final DefaultStyledDocument.ElementSpec endParagraph
private final DefaultStyledDocument.ElementSpec startParagraph
private final List<DefaultStyledDocument.ElementSpec> batchedContent
DefaultStyledDocument.ElementSpec
,
stockés avant une insertion massive via processBatchUpdates()
.
L'ajout dans la liste se fait par l'intermédiaire des méthodes appendBatchXXX
de la classe.
Constructor Detail |
---|
public BatchStyledDocument(StyleContext styles)
DefaultStyledDocument
(celui par défaut) et lui associe
un BatchedContent
.
Construit un BatchedContent prêt à accumuler du texte mis en forme pour une insertion massive.
batchedContent
Method Detail |
---|
public void processBatchUpdates()
BatchedContent
associé.
Les textes sont insérés à la fin du document.
Réinitialise ensuite le BatchedContent
associé.
private void processBatchUpdates(DefaultStyledDocument.ElementSpec[] inserts)
public void insertString(int offset, String s, AttributeSet style)
offset
spécifié et avec les
attributs de style fournis.
insertString
in interface Document
insertString
in class AbstractDocument
try { BatchStyledDocument.super.insertString(offset, s, style); } catch (BadLocationException e) { e.printStackTrace(); }
processBatchUpdates()
est effectué préalablement pour
mettre à jour le document en traitant toutes les insertions de texte stockées dans
le BatchedContent
associé.offset
- position à partir de laquelle doit être inséré le texte spécifié.s
- texte à insérer.style
- attributs de style du texte à insérer.public void clear()
public String getText()
public BatchStyledDocument appendBatchString(String s,
AttributeSet a)
s
- texte à ajouter.a
- ensemble d'attributs de style à appliquer au texte spécifié.
public BatchStyledDocument appendBatchStringln(String s,
AttributeSet a)
#appendString(String, AttributeSet)
,
#appendLineFeed()
appendBatchString(s, a); appendBatchLineFeed(); delestage(); return this;
s
- texte à ajouter.a
- ensemble d'attributs de style à appliquer au texte spécifié.
public BatchStyledDocument appendBatchLineFeed()
#EOL
private void delestage()
private DefaultStyledDocument.ElementSpec[] batchedContentToArray()
ElementSpec
.
BatchStyledDocument#processBatchUpdates(int)
.ElementSpec
.
|
![]() |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |