OSDN Git Service

libjava/
[pf3gnuchains/gcc-fork.git] / libjava / classpath / javax / swing / JTextPane.java
index 7c95d76..05968fc 100644 (file)
@@ -214,20 +214,11 @@ public class JTextPane
    */
   public void insertIcon(Icon icon)
   {
-    SimpleAttributeSet atts = new SimpleAttributeSet();
-    atts.addAttribute(StyleConstants.IconAttribute, icon);
-    atts.addAttribute(StyleConstants.NameAttribute,
-                      StyleConstants.IconElementName);
-    try
-      {
-        getDocument().insertString(getCaret().getDot(), " ", atts);
-      }
-    catch (BadLocationException ex)
-      {
-        AssertionError err = new AssertionError("Unexpected bad location");
-        err.initCause(ex);
-        throw err;
-      }
+    MutableAttributeSet inputAtts = getInputAttributes();
+    inputAtts.removeAttributes(inputAtts);
+    StyleConstants.setIcon(inputAtts, icon);
+    replaceSelection(" ");
+    inputAtts.removeAttributes(inputAtts);
   }
 
   /**
@@ -327,9 +318,11 @@ public class JTextPane
     if (start == dot && end == dot)
       // There is no selection, update insertAttributes instead
       {
-       MutableAttributeSet inputAttributes =
-         getStyledEditorKit().getInputAttributes();
-       inputAttributes.addAttributes(attribute);
+        MutableAttributeSet inputAttributes =
+          getStyledEditorKit().getInputAttributes();
+        if (replace)
+          inputAttributes.removeAttributes(inputAttributes);
+        inputAttributes.addAttributes(attribute);
       }
     else
       getStyledDocument().setCharacterAttributes(start, end - start, attribute,