summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/javax/swing/text/DefaultEditorKit.java
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-10 21:46:48 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-10 21:46:48 +0000
commitce57ab760f69de6db452def7ffbf5b114a2d8694 (patch)
treeea38c56431c5d4528fb54254c3f8e50f517bede3 /libjava/classpath/javax/swing/text/DefaultEditorKit.java
parent50996fe55769882de3f410896032c887f0ff0d04 (diff)
downloadppe42-gcc-ce57ab760f69de6db452def7ffbf5b114a2d8694.tar.gz
ppe42-gcc-ce57ab760f69de6db452def7ffbf5b114a2d8694.zip
Imported GNU Classpath 0.90
* scripts/makemake.tcl: Set gnu/java/awt/peer/swing to ignore. * gnu/classpath/jdwp/VMFrame.java (SIZE): New constant. * java/lang/VMCompiler.java: Use gnu.java.security.hash.MD5. * java/lang/Math.java: New override file. * java/lang/Character.java: Merged from Classpath. (start, end): Now 'int's. (canonicalName): New field. (CANONICAL_NAME, NO_SPACES_NAME, CONSTANT_NAME): New constants. (UnicodeBlock): Added argument. (of): New overload. (forName): New method. Updated unicode blocks. (sets): Updated. * sources.am: Regenerated. * Makefile.in: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111942 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/javax/swing/text/DefaultEditorKit.java')
-rw-r--r--libjava/classpath/javax/swing/text/DefaultEditorKit.java332
1 files changed, 295 insertions, 37 deletions
diff --git a/libjava/classpath/javax/swing/text/DefaultEditorKit.java b/libjava/classpath/javax/swing/text/DefaultEditorKit.java
index 88094b898f7..c0056963c78 100644
--- a/libjava/classpath/javax/swing/text/DefaultEditorKit.java
+++ b/libjava/classpath/javax/swing/text/DefaultEditorKit.java
@@ -707,16 +707,14 @@ public class DefaultEditorKit extends EditorKit
JTextComponent t = getTextComponent(event);
try
{
- // TODO: There is a more efficent solution, but
- // viewToModel doesn't work properly.
- Point p = t.modelToView(t.getCaret().getDot()).getLocation();
- int cur = t.getCaretPosition();
- int y = p.y;
- while (y == p.y && cur > 0)
- y = t.modelToView(--cur).getLocation().y;
- if (cur != 0)
- cur++;
- t.setCaretPosition(cur);
+ int offs = Utilities.getRowStart(t, t.getCaretPosition());
+
+ if (offs > -1)
+ {
+ Caret c = t.getCaret();
+ c.setDot(offs);
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
}
catch (BadLocationException ble)
{
@@ -729,17 +727,16 @@ public class DefaultEditorKit extends EditorKit
public void actionPerformed(ActionEvent event)
{
JTextComponent t = getTextComponent(event);
- try
+ try
{
- Point p = t.modelToView(t.getCaret().getDot()).getLocation();
- int cur = t.getCaretPosition();
- int y = p.y;
- int length = t.getDocument().getLength();
- while (y == p.y && cur < length)
- y = t.modelToView(++cur).getLocation().y;
- if (cur != length)
- cur--;
- t.setCaretPosition(cur);
+ int offs = Utilities.getRowEnd(t, t.getCaretPosition());
+
+ if (offs > -1)
+ {
+ Caret c = t.getCaret();
+ c.setDot(offs);
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
}
catch (BadLocationException ble)
{
@@ -756,11 +753,17 @@ public class DefaultEditorKit extends EditorKit
{
try
{
- int pos = t.getCaret().getDot();
- if (pos < t.getDocument().getEndPosition().getOffset())
- {
- t.getDocument().remove(t.getCaret().getDot(), 1);
- }
+ int pos = t.getSelectionStart();
+ int len = t.getSelectionEnd() - pos;
+
+ if (len > 0)
+ t.getDocument().remove(pos, len);
+ else if (pos < t.getDocument().getLength())
+ t.getDocument().remove(pos, 1);
+
+ Caret c = t.getCaret();
+ c.setDot(pos);
+ c.setMagicCaretPosition(t.modelToView(pos).getLocation());
}
catch (BadLocationException e)
{
@@ -778,11 +781,18 @@ public class DefaultEditorKit extends EditorKit
{
try
{
- int pos = t.getCaret().getDot();
- if (pos > t.getDocument().getStartPosition().getOffset())
+ int pos = t.getSelectionStart();
+ int len = t.getSelectionEnd() - pos;
+
+ if (len > 0)
+ t.getDocument().remove(pos, len);
+ else if (pos > 0)
{
- t.getDocument().remove(pos - 1, 1);
- t.getCaret().setDot(pos - 1);
+ pos--;
+ t.getDocument().remove(pos, 1);
+ Caret c = t.getCaret();
+ c.setDot(pos);
+ c.setMagicCaretPosition(t.modelToView(pos).getLocation());
}
}
catch (BadLocationException e)
@@ -799,8 +809,21 @@ public class DefaultEditorKit extends EditorKit
JTextComponent t = getTextComponent(event);
if (t != null)
{
- t.getCaret().setDot(Math.max(t.getCaret().getDot() - 1,
- t.getDocument().getStartPosition().getOffset()));
+ int offs = t.getCaretPosition() - 1;
+ if (offs >= 0)
+ {
+ Caret c = t.getCaret();
+ c.setDot(offs);
+
+ try
+ {
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
+ catch (BadLocationException ble)
+ {
+ // Should not happen.
+ }
+ }
}
}
},
@@ -811,8 +834,74 @@ public class DefaultEditorKit extends EditorKit
JTextComponent t = getTextComponent(event);
if (t != null)
{
- t.getCaret().setDot(Math.min(t.getCaret().getDot() + 1,
- t.getDocument().getEndPosition().getOffset()));
+ int offs = t.getCaretPosition() + 1;
+ if (offs <= t.getDocument().getLength())
+ {
+ Caret c = t.getCaret();
+ c.setDot(offs);
+
+ try
+ {
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
+ catch (BadLocationException ble)
+ {
+ // Should not happen.
+ }
+ }
+ }
+
+ }
+ },
+ new TextAction(upAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ try
+ {
+ if (t != null)
+ {
+ Caret c = t.getCaret();
+ // The magic caret position may be null when the caret
+ // has not moved yet.
+ Point mcp = c.getMagicCaretPosition();
+ int x = (mcp != null) ? mcp.x : 0;
+ int pos = Utilities.getPositionAbove(t, t.getCaretPosition(), x);
+
+ if (pos > -1)
+ t.setCaretPosition(pos);
+ }
+ }
+ catch(BadLocationException ble)
+ {
+ // FIXME: Swallowing allowed?
+ }
+ }
+ },
+ new TextAction(downAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ try
+ {
+ if (t != null)
+ {
+ Caret c = t.getCaret();
+ // The magic caret position may be null when the caret
+ // has not moved yet.
+ Point mcp = c.getMagicCaretPosition();
+ int x = (mcp != null) ? mcp.x : 0;
+ int pos = Utilities.getPositionBelow(t, t.getCaretPosition(), x);
+
+ if (pos > -1)
+ t.setCaretPosition(pos);
+ }
+ }
+ catch(BadLocationException ble)
+ {
+ // FIXME: Swallowing allowed?
}
}
},
@@ -823,8 +912,21 @@ public class DefaultEditorKit extends EditorKit
JTextComponent t = getTextComponent(event);
if (t != null)
{
- t.getCaret().moveDot(Math.max(t.getCaret().getDot() - 1,
- t.getDocument().getStartPosition().getOffset()));
+ int offs = t.getCaretPosition() - 1;
+
+ if(offs >= 0)
+ {
+ Caret c = t.getCaret();
+ c.moveDot(offs);
+ try
+ {
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
+ catch(BadLocationException ble)
+ {
+ // Can't happen.
+ }
+ }
}
}
},
@@ -835,11 +937,167 @@ public class DefaultEditorKit extends EditorKit
JTextComponent t = getTextComponent(event);
if (t != null)
{
- t.getCaret().moveDot(Math.min(t.getCaret().getDot() + 1,
- t.getDocument().getEndPosition().getOffset()));
+ int offs = t.getCaretPosition() + 1;
+
+ if(offs <= t.getDocument().getLength())
+ {
+ Caret c = t.getCaret();
+ c.moveDot(offs);
+ try
+ {
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
+ catch(BadLocationException ble)
+ {
+ // Can't happen.
+ }
+ }
+ }
+ }
+ },
+ new TextAction(selectionUpAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ try
+ {
+ if (t != null)
+ {
+ Caret c = t.getCaret();
+ // The magic caret position may be null when the caret
+ // has not moved yet.
+ Point mcp = c.getMagicCaretPosition();
+ int x = (mcp != null) ? mcp.x : 0;
+ int pos = Utilities.getPositionAbove(t, t.getCaretPosition(), x);
+
+ if (pos > -1)
+ t.moveCaretPosition(pos);
+ }
+ }
+ catch(BadLocationException ble)
+ {
+ // FIXME: Swallowing allowed?
+ }
+ }
+ },
+ new TextAction(selectionDownAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ try
+ {
+ if (t != null)
+ {
+ Caret c = t.getCaret();
+ // The magic caret position may be null when the caret
+ // has not moved yet.
+ Point mcp = c.getMagicCaretPosition();
+ int x = (mcp != null) ? mcp.x : 0;
+ int pos = Utilities.getPositionBelow(t, t.getCaretPosition(), x);
+
+ if (pos > -1)
+ t.moveCaretPosition(pos);
+ }
+ }
+ catch(BadLocationException ble)
+ {
+ // FIXME: Swallowing allowed?
}
}
},
+ new TextAction(selectionBeginLineAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+
+ try
+ {
+ // TODO: There is a more efficent solution, but
+ // viewToModel doesn't work properly.
+ Point p = t.modelToView(t.getCaret().getDot()).getLocation();
+
+ int cur = t.getCaretPosition();
+ int y = p.y;
+
+ while (y == p.y && cur > 0)
+ y = t.modelToView(--cur).getLocation().y;
+ if (cur != 0)
+ cur++;
+
+ Caret c = t.getCaret();
+ c.moveDot(cur);
+ c.setMagicCaretPosition(t.modelToView(cur).getLocation());
+ }
+ catch (BadLocationException ble)
+ {
+ // Do nothing here.
+ }
+ }
+ },
+ new TextAction(selectionEndLineAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ try
+ {
+ Point p = t.modelToView(t.getCaret().getDot()).getLocation();
+ int cur = t.getCaretPosition();
+ int y = p.y;
+ int length = t.getDocument().getLength();
+ while (y == p.y && cur < length)
+ y = t.modelToView(++cur).getLocation().y;
+ if (cur != length)
+ cur--;
+
+ Caret c = t.getCaret();
+ c.moveDot(cur);
+ c.setMagicCaretPosition(t.modelToView(cur).getLocation());
+ }
+ catch (BadLocationException ble)
+ {
+ // Nothing to do here
+ }
+ }
+ },
+ new TextAction(selectionEndAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ int offs = t.getDocument().getLength();
+ Caret c = t.getCaret();
+ c.moveDot(offs);
+ try
+ {
+ c.setMagicCaretPosition(t.modelToView(offs).getLocation());
+ }
+ catch(BadLocationException ble)
+ {
+ // Can't happen.
+ }
+ }
+ },
+ new TextAction(selectionBeginAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextComponent t = getTextComponent(event);
+ Caret c = t.getCaret();
+ c.moveDot(0);
+ try
+ {
+ c.setMagicCaretPosition(t.modelToView(0).getLocation());
+ }
+ catch(BadLocationException ble)
+ {
+ // Can't happen.
+ }
+ }
+ }
};
/**
OpenPOWER on IntegriCloud