Commit 9092932b by Roman Kennke Committed by Michael Koch

2005-04-19 Roman Kennke <roman@kennke.org>

	* javax/swing/text/JTextComponent.java
	(JTextComponent): Added repaintListener which issues repaint
	requests when the underlying document changes.
	(setDocument): Adds repaintListener to document when the
	document is changed.
	* javax/swing/text/DefaultEditorKit.java:
	Removed repaint calls on JTextComponent. This is now handled
	through a DocumentListener in JTextComponent that repaints
	the component when needed.

From-SVN: r98403
parent 6384325b
2005-04-19 Roman Kennke <roman@kennke.org> 2005-04-19 Roman Kennke <roman@kennke.org>
* javax/swing/text/JTextComponent.java
(JTextComponent): Added repaintListener which issues repaint
requests when the underlying document changes.
(setDocument): Adds repaintListener to document when the
document is changed.
* javax/swing/text/DefaultEditorKit.java:
Removed repaint calls on JTextComponent. This is now handled
through a DocumentListener in JTextComponent that repaints
the component when needed.
2005-04-19 Roman Kennke <roman@kennke.org>
PR libgcj/21064 PR libgcj/21064
* javax/swing/text/StyleContext.java * javax/swing/text/StyleContext.java
(NamedStyle.setResolveParent): Added null (NamedStyle.setResolveParent): Added null
......
...@@ -110,7 +110,6 @@ public class DefaultEditorKit extends EditorKit ...@@ -110,7 +110,6 @@ public class DefaultEditorKit extends EditorKit
t.getDocument().insertString(t.getCaret().getDot(), event.getActionCommand(), null); t.getDocument().insertString(t.getCaret().getDot(), event.getActionCommand(), null);
t.getCaret().setDot(Math.min(t.getCaret().getDot() + 1, t.getCaret().setDot(Math.min(t.getCaret().getDot() + 1,
t.getDocument().getEndPosition().getOffset())); t.getDocument().getEndPosition().getOffset()));
t.repaint();
} }
catch (BadLocationException be) catch (BadLocationException be)
{ {
...@@ -251,7 +250,6 @@ public class DefaultEditorKit extends EditorKit ...@@ -251,7 +250,6 @@ public class DefaultEditorKit extends EditorKit
if (pos < t.getDocument().getEndPosition().getOffset()) if (pos < t.getDocument().getEndPosition().getOffset())
{ {
t.getDocument().remove(t.getCaret().getDot(), 1); t.getDocument().remove(t.getCaret().getDot(), 1);
t.repaint();
} }
} }
catch (BadLocationException e) catch (BadLocationException e)
...@@ -275,7 +273,6 @@ public class DefaultEditorKit extends EditorKit ...@@ -275,7 +273,6 @@ public class DefaultEditorKit extends EditorKit
{ {
t.getDocument().remove(pos - 1, 1); t.getDocument().remove(pos - 1, 1);
t.getCaret().setDot(pos - 1); t.getCaret().setDot(pos - 1);
t.repaint();
} }
} }
catch (BadLocationException e) catch (BadLocationException e)
......
...@@ -894,11 +894,30 @@ public abstract class JTextComponent extends JComponent ...@@ -894,11 +894,30 @@ public abstract class JTextComponent extends JComponent
private Insets margin; private Insets margin;
private boolean dragEnabled; private boolean dragEnabled;
/** Issues repaint request on document changes. */
private DocumentListener repaintListener;
/** /**
* Creates a new <code>JTextComponent</code> instance. * Creates a new <code>JTextComponent</code> instance.
*/ */
public JTextComponent() public JTextComponent()
{ {
repaintListener = new DocumentListener()
{
public void changedUpdate(DocumentEvent ev)
{
repaint();
}
public void insertUpdate(DocumentEvent ev)
{
repaint();
}
public void removeUpdate(DocumentEvent ev)
{
repaint();
}
};
Keymap defkeymap = getKeymap(DEFAULT_KEYMAP); Keymap defkeymap = getKeymap(DEFAULT_KEYMAP);
boolean creatingKeymap = false; boolean creatingKeymap = false;
if (defkeymap == null) if (defkeymap == null)
...@@ -932,6 +951,13 @@ public abstract class JTextComponent extends JComponent ...@@ -932,6 +951,13 @@ public abstract class JTextComponent extends JComponent
{ {
Document oldDoc = doc; Document oldDoc = doc;
doc = newDoc; doc = newDoc;
// setup document listener
if (oldDoc != null)
oldDoc.removeDocumentListener(repaintListener);
if (newDoc != null)
newDoc.addDocumentListener(repaintListener);
firePropertyChange("document", oldDoc, newDoc); firePropertyChange("document", oldDoc, newDoc);
revalidate(); revalidate();
repaint(); repaint();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment