You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ap...@apache.org on 2006/11/21 16:47:33 UTC

svn commit: r477706 - /harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java

Author: apetrenko
Date: Tue Nov 21 07:47:32 2006
New Revision: 477706

URL: http://svn.apache.org/viewvc?view=rev&rev=477706
Log:
Patch for HARMONY-2089 "[classlib][swing] Generification of j.s.text.AbstractDocument"

Modified:
    harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java

Modified: harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java?view=diff&rev=477706&r1=477705&r2=477706
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java (original)
+++ harmony/enhanced/classlib/trunk/modules/swing/src/main/java/common/javax/swing/text/AbstractDocument.java Tue Nov 21 07:47:32 2006
@@ -333,6 +333,7 @@
 
     }
 
+    @SuppressWarnings("serial")
     public class BranchElement extends AbstractElement {
         Element[] elements =  new Element[0];
 
@@ -344,6 +345,7 @@
             super(parent, attributes);
         }
 
+        @Override
         public Enumeration children() {
             if (elements == null || elements.length == 0) {
                 return null;
@@ -362,10 +364,12 @@
             }
         }
 
+        @Override
         public boolean getAllowsChildren() {
             return true;
         }
 
+        @Override
         public Element getElement(final int index) {
             if (0 <= index && index < elements.length) {
                 return elements[index];
@@ -374,10 +378,12 @@
             }
         }
 
+        @Override
         public int getElementCount() {
             return elements.length;
         }
 
+        @Override
         public int getElementIndex(final int offset) {
             if (offset < 0 && elements.length > 0) {
                 return 0;
@@ -397,19 +403,23 @@
             return result;
         }
 
+        @Override
         public int getEndOffset() {
             return elements[elements.length - 1].getEndOffset();
         }
 
+        @Override
         public String getName() {
             final String inherited = super.getName();
             return inherited != null ? inherited : ParagraphElementName;
         }
 
+        @Override
         public int getStartOffset() {
             return elements[0].getStartOffset();
         }
 
+        @Override
         public boolean isLeaf() {
             return false;
         }
@@ -447,6 +457,7 @@
             elements = newArray;
         }
 
+        @Override
         public String toString() {
             return "BranchElement(" + getName() + ") "
                     + getStartOffset() + "," + getEndOffset() + "\n";
@@ -474,12 +485,13 @@
 
     }
 
+    @SuppressWarnings("serial")
     public class DefaultDocumentEvent extends CompoundEdit
         implements DocumentEvent {
 
         private static final int THRESHOLD = 10;
 
-        private HashMap   changes;
+        private HashMap<Element, ElementChange> changes;
         private int       length;
         private int       offset;
         private EventType type;
@@ -491,25 +503,23 @@
             this.type    = type;
         }
 
+        @Override
         public boolean addEdit(final UndoableEdit anEdit) {
             boolean result = super.addEdit(anEdit);
 
             if (result && edits.size() > THRESHOLD) {
                 if (changes == null) {
-                    changes = new HashMap();
+                    changes = new HashMap<Element, ElementChange>();
 
-                    for (int i = 0; i < edits.size(); i++) {
-                        if (edits.get(i)
-                                instanceof DocumentEvent.ElementChange) {
-                            DocumentEvent.ElementChange change =
-                                (DocumentEvent.ElementChange)edits.get(i);
+                    for (UndoableEdit edit : edits) {
+                        if (edit instanceof ElementChange) {
+                            ElementChange change = (ElementChange)edit;
                             changes.put(change.getElement(), change);
                         }
                     }
                 } else {
-                    if (anEdit instanceof DocumentEvent.ElementChange) {
-                        DocumentEvent.ElementChange change =
-                            (DocumentEvent.ElementChange)anEdit;
+                    if (anEdit instanceof ElementChange) {
+                        ElementChange change = (ElementChange)anEdit;
                         changes.put(change.getElement(), change);
                     }
                 }
@@ -520,11 +530,10 @@
 
         public ElementChange getChange(final Element element) {
             if (changes != null) {
-                return (ElementChange)changes.get(element);
+                return changes.get(element);
             }
 
-            for (int i = 0; i < edits.size(); i++) {
-                Object edit = edits.get(i);
+            for (UndoableEdit edit : edits) {
                 if (edit instanceof ElementChange) {
                     ElementChange change = (ElementChange)edit;
                     if (change.getElement() == element) {
@@ -547,6 +556,7 @@
             return offset;
         }
 
+        @Override
         public String getPresentationName() {
             if (type == EventType.INSERT) {
                 return getLocalizedString("AbstractDocument.additionText");
@@ -561,22 +571,26 @@
             return null;
         }
 
+        @Override
         public String getRedoPresentationName() {
-            return getRedoName() + " " + getPresentationName();
+            return getLocalizedRedoName() + " " + getPresentationName();
         }
 
         public EventType getType() {
             return type;
         }
 
+        @Override
         public String getUndoPresentationName() {
-            return getUndoName() + " " + getPresentationName();
+            return getLocalizedUndoName() + " " + getPresentationName();
         }
 
+        @Override
         public boolean isSignificant() {
             return true;
         }
 
+        @Override
         public void redo() {
             writeLock();
             try {
@@ -588,19 +602,19 @@
             }
         }
 
+        @Override
         public String toString() {
-            String result = "[";
-            for (int i = 0; i < edits.size(); i++) {
-                UndoableEdit edit = (UndoableEdit)edits.get(i);
-                if (i != 0) {
-                    result += ", ";
-                }
-                result += edit.toString();
+            StringBuffer result = new StringBuffer();
+            for (UndoableEdit edit : edits) {
+                result.append(", ")
+                      .append(edit.toString());
             }
-            result += "]";
-            return result;
+            result.replace(0, 2, "[")
+                  .append("]");
+            return result.toString();
         }
 
+        @Override
         public void undo() {
             writeLock();
             try {
@@ -628,15 +642,16 @@
             }
         }
 
-        private String getUndoName() {
+        private String getLocalizedUndoName() {
             return UIManager.getString("AbstractDocument.undoText");
         }
 
-        private String getRedoName() {
+        private String getLocalizedRedoName() {
             return UIManager.getString("AbstractDocument.redoText");
         }
     }
 
+    @SuppressWarnings("serial")
     public static class ElementEdit extends AbstractUndoableEdit
         implements ElementChange {
 
@@ -669,6 +684,7 @@
             return index;
         }
 
+        @Override
         public void redo() {
             super.redo();
             Element[] temp = added;
@@ -677,6 +693,7 @@
             ((BranchElement)element).replace(index, removed.length, added);
         }
 
+        @Override
         public void undo() {
             super.undo();
             ((BranchElement)element).replace(index, added.length, removed);
@@ -687,6 +704,7 @@
 
     }
 
+    @SuppressWarnings("serial")
     public class LeafElement extends AbstractElement {
         private transient Position end;
         private transient Position start;
@@ -709,43 +727,53 @@
             initPositions(adjustedStartOffset, adjustedEndOffset);
         }
 
+        @Override
         public Enumeration children() {
             return null;
         }
 
+        @Override
         public boolean getAllowsChildren() {
             return false;
         }
 
+        @Override
         public Element getElement(final int offset) {
             return null;
         }
 
+        @Override
         public int getElementCount() {
             return 0;
         }
 
+        @Override
         public int getElementIndex(final int offset) {
             return -1;
         }
 
+        @Override
         public int getEndOffset() {
             return end.getOffset();
         }
 
+        @Override
         public String getName() {
             final String inherited = super.getName();
             return inherited != null ? inherited : ContentElementName;
         }
 
+        @Override
         public int getStartOffset() {
             return start.getOffset();
         }
 
+        @Override
         public boolean isLeaf() {
             return true;
         }
 
+        @Override
         public String toString() {
             return "LeafElement(" + getName() + ") " + getStartOffset()
                     + "," + getEndOffset() + "\n";
@@ -779,6 +807,7 @@
 
     }
 
+    @SuppressWarnings("serial")
     private class BidiElement extends LeafElement {
         public BidiElement(final AttributeSet attributes,
                            final int startOffset,
@@ -786,23 +815,26 @@
             super(getBidiRootElement(), attributes, startOffset, endOffset);
         }
 
+        @Override
         public String getName() {
             return BidiElementName;
         }
     }
 
+    @SuppressWarnings("serial")
     private class BidiRoot extends BranchElement {
         public BidiRoot() {
             super(null, null);
         }
 
+        @Override
         public String getName() {
             return "bidi root";
         }
     }
 
     private static class ReadWriteLock {
-        private List readers = new ArrayList();
+        private List<Thread> readers = new ArrayList<Thread>();
         private Thread writer;
         private int writerCount;
         private boolean callingListeners;
@@ -887,12 +919,14 @@
      * Object of this class serves as key when searching for element index.
      * @see BranchElement#getElementIndex(int)
      */
+    @SuppressWarnings("serial")
     private static final class SearchElement implements Serializable {
         /**
          * Indicates the offset of interest.
          */
         public transient int offset;
 
+        @Override
         public String toString() {
             return "SearchElement(none) " + offset + ", " + offset + "\n";
         }
@@ -906,8 +940,9 @@
      * does not override <code>equals</code>.
      * @see BranchElement#getElementIndex(int)
      */
+    @SuppressWarnings("serial")
     private static final class ElementComparator
-        implements Comparator, Serializable {
+        implements Comparator<Object>, Serializable {
 
         /**
          * It is expected that the first argument is the <code>Element</code>
@@ -1007,9 +1042,9 @@
     public void dump(final PrintStream ps) {
         Element[] roots = getRootElements();
 
-        for (int i = 0; i < roots.length; i++) {
-            if (roots[i] instanceof AbstractElement) {
-                ((AbstractElement)roots[i]).dump(ps, 0);
+        for (Element root : roots) {
+            if (root instanceof AbstractElement) {
+                ((AbstractElement)root).dump(ps, 0);
             }
         }
     }
@@ -1028,8 +1063,7 @@
     }
 
     public DocumentListener[] getDocumentListeners() {
-        return (DocumentListener[])listenerList
-                .getListeners(DocumentListener.class);
+        return listenerList.getListeners(DocumentListener.class);
     }
 
     public Dictionary<Object, Object> getDocumentProperties() {
@@ -1073,8 +1107,7 @@
     }
 
     public UndoableEditListener[] getUndoableEditListeners() {
-        return (UndoableEditListener[])listenerList
-                .getListeners(UndoableEditListener.class);
+        return listenerList.getListeners(UndoableEditListener.class);
     }
 
     public void insertString(final int offset,
@@ -1196,8 +1229,8 @@
 
         try {
             DocumentListener[] listeners = getDocumentListeners();
-            for (int i = 0; i < listeners.length; i++) {
-                listeners[i].changedUpdate(event);
+            for (DocumentListener listener : listeners) {
+                listener.changedUpdate(event);
             }
         } finally {
             lock.setCallingListeners(false);
@@ -1209,8 +1242,8 @@
 
         try {
             DocumentListener[] listeners = getDocumentListeners();
-            for (int i = 0; i < listeners.length; i++) {
-                listeners[i].insertUpdate(event);
+            for (DocumentListener listener : listeners) {
+                listener.insertUpdate(event);
             }
         } finally {
             lock.setCallingListeners(false);
@@ -1222,8 +1255,8 @@
 
         try {
             DocumentListener[] listeners = getDocumentListeners();
-            for (int i = 0; i < listeners.length; i++) {
-                listeners[i].removeUpdate(event);
+            for (DocumentListener listener : listeners) {
+                listener.removeUpdate(event);
             }
         } finally {
             lock.setCallingListeners(false);
@@ -1235,8 +1268,8 @@
 
         try {
             UndoableEditListener[] listeners = getUndoableEditListeners();
-            for (int i = 0; i < listeners.length; i++) {
-                listeners[i].undoableEditHappened(event);
+            for (UndoableEditListener listener : listeners) {
+                listener.undoableEditHappened(event);
             }
         } finally {
             lock.setCallingListeners(false);
@@ -1270,7 +1303,7 @@
             return;
         }
 
-        final List added = new ArrayList();
+        final List<Element> added = new ArrayList<Element>();
         Element par;
         int nextOffset = offset;
         do {
@@ -1288,7 +1321,7 @@
             return;
         }
 
-        final List added = new ArrayList();
+        final List<Element> added = new ArrayList<Element>();
 
         bidiParseParagraph(added,
                            getParagraphElement(event.getOffset()),
@@ -1384,10 +1417,10 @@
         return TextUtils.isLTR(getBidiLevel(e));
     }
 
-    private int bidiAdjustFirstElement(final List added, final Element par) {
+    private int bidiAdjustFirstElement(final List<Element> added, final Element par) {
         int prevParIndex = bidiRoot.getElementIndex(par.getStartOffset() - 1);
         final Element prevParBidi = bidiRoot.getElement(prevParIndex);
-        final Element firstAdded = (Element)added.get(0);
+        final Element firstAdded = added.get(0);
 
         if (getBidiLevel(prevParBidi) == getBidiLevel(firstAdded)) {
             // Combine these two
@@ -1413,8 +1446,8 @@
         return prevParIndex;
     }
 
-    private int bidiAdjustLastElement(final List added) {
-        final Element lastAdded = (Element)added.get(added.size() - 1);
+    private int bidiAdjustLastElement(final List<Element> added) {
+        final Element lastAdded = added.get(added.size() - 1);
         int nextParIndex  =
                 bidiRoot.getElementIndex(lastAdded.getEndOffset() + 1);
         final Element nextParBidi = bidiRoot.getElement(nextParIndex);
@@ -1442,7 +1475,7 @@
         return nextParIndex;
     }
 
-    private void bidiParseParagraph(final List added, final Element par,
+    private void bidiParseParagraph(final List<Element> added, final Element par,
                                     final Segment text) {
         final int parStart = par.getStartOffset();
         final int parEnd   = par.getEndOffset();
@@ -1460,7 +1493,7 @@
             int level = bidi.getRunLevel(i);
 
             if (i == 0 && added.size() > 0) {
-                Element prevBidi = (Element)added.get(added.size() - 1);
+                Element prevBidi = added.get(added.size() - 1);
                 if (getBidiLevel(prevBidi) == level) {
                     added.remove(added.size() - 1);
                     added.add(new BidiElement(prevBidi.getAttributes(),
@@ -1506,7 +1539,7 @@
     }
 
     private void bidiUpdateStructure(final DefaultDocumentEvent event,
-                                     final List added) {
+                                     final List<Element> added) {
         Element par = getParagraphElement(event.getOffset());
 
         int prevParIndex = bidiAdjustFirstElement(added, par);
@@ -1521,8 +1554,7 @@
         System.arraycopy(bidiRoot.elements, prevParIndex, removed, 0,
                          removedLength);
 
-        Element[] addedElements =
-            (Element[])added.toArray(new Element[added.size()]);
+        Element[] addedElements = added.toArray(new Element[added.size()]);
         bidiRoot.replace(prevParIndex, removedLength, addedElements);
 
         ElementEdit edit = new ElementEdit(bidiRoot, prevParIndex, removed,
@@ -1586,10 +1618,12 @@
 
         filterBypasser = new DocumentFilter.FilterBypass() {
 
+            @Override
             public Document getDocument() {
                 return AbstractDocument.this;
             }
 
+            @Override
             public void insertString(final int offset,
                                      final String text,
                                      final AttributeSet attrs)
@@ -1598,12 +1632,14 @@
                 doInsert(offset, text, attrs);
             }
 
+            @Override
             public void remove(final int offset, final int length)
                 throws BadLocationException {
 
                 doRemove(offset, length);
             }
 
+            @Override
             public void replace(final int offset,
                                 final int length,
                                 final String newText,