diff dwtx/jface/action/ContributionManager.d @ 104:04b47443bb01

Reworked the collection uses to make use of a wrapper collection that is compatible to the Java Collections. These new wrappers now use the tango.util.containers instead of the tango.util.collections.
author Frank Benoit <benoit@tionex.de>
date Thu, 07 Aug 2008 15:01:33 +0200
parents 7ffeace6c47f
children
line wrap: on
line diff
--- a/dwtx/jface/action/ContributionManager.d	Sun Aug 03 17:01:51 2008 +0200
+++ b/dwtx/jface/action/ContributionManager.d	Thu Aug 07 15:01:33 2008 +0200
@@ -19,13 +19,12 @@
 import dwtx.jface.action.IContributionManagerOverrides;
 import dwtx.jface.action.IAction;
 
-import tango.util.collection.ArraySeq;
-import tango.util.collection.model.Seq;
 
 import dwtx.core.runtime.Assert;
 import dwtx.jface.util.Policy;
 
 import dwt.dwthelper.utils;
+import dwtx.dwtxhelper.Collection;
 import tango.io.Stdout;
 import tango.core.Exception;
 import tango.text.convert.Format;
@@ -57,7 +56,7 @@
     /**
      * The list of contribution items.
      */
-    private Seq!(IContributionItem) contributions;
+    private List contributions;
 
     /**
      * Indicates whether the widgets are in sync with the contributions.
@@ -78,7 +77,7 @@
      * Creates a new contribution manager.
      */
     protected this() {
-        contributions = new ArraySeq!(IContributionItem);
+        contributions = new ArrayList();
         // Do nothing.
     }
 
@@ -96,7 +95,7 @@
     public void add(IContributionItem item) {
         Assert.isNotNull( cast(Object)item, "Item must not be null"); //$NON-NLS-1$
         if (allowItem(item)) {
-            contributions.append(item);
+            contributions.add(cast(Object)item);
             itemAdded(item);
         }
     }
@@ -118,25 +117,24 @@
     private void addToGroup(String groupName, IContributionItem item,
             bool append) {
         int i;
-        auto items = contributions.elements();
-        for (i = 0; items.more(); i++) {
-            IContributionItem o = cast(IContributionItem) items.get();
+        auto items = contributions.iterator();
+        for (i = 0; items.hasNext(); i++) {
+            IContributionItem o = cast(IContributionItem) items.next();
             if (o.isGroupMarker()) {
                 String id = o.getId();
                 if (id !is null && id.equalsIgnoreCase(groupName)) {
                     i++;
                     if (append) {
-                        for (; items.more(); i++) {
+                        for (; items.hasNext(); i++) {
                             IContributionItem ci = cast(IContributionItem) items
-                                    .get();
+                                    .next();
                             if (ci.isGroupMarker()) {
                                 break;
                             }
                         }
                     }
                     if (allowItem(item)) {
-                        //TODO: does this corrupt the iterator?
-                        contributions.addAt(i, item);
+                        contributions.add(i, cast(Object)item);
                         itemAdded(item);
                     }
                     return;
@@ -204,9 +202,9 @@
      * (non-Javadoc) Method declared on IContributionManager.
      */
     public IContributionItem find(String id) {
-        auto e = contributions.elements();
-        while (e.more()) {
-            IContributionItem item = cast(IContributionItem) e.get();
+        auto e = contributions.iterator();
+        while (e.hasNext()) {
+            IContributionItem item = cast(IContributionItem) e.next();
             String itemId = item.getId();
             if (itemId !is null && itemId.equalsIgnoreCase(id)) {
                 return item;
@@ -219,7 +217,8 @@
      * (non-Javadoc) Method declared on IContributionManager.
      */
     public IContributionItem[] getItems() {
-        return contributions.toArray();
+        IContributionItem[] items = arraycast!(IContributionItem)(contributions.toArray());
+        return items;
     }
 
     /**
@@ -247,7 +246,7 @@
                     return null;
                 }
 
-                public ValueWrapperInt getAccelerator(IContributionItem item) {
+                public Integer getAccelerator(IContributionItem item) {
                     return null;
                 }
 
@@ -305,16 +304,7 @@
      * @since 3.0
      */
     protected int indexOf(IContributionItem item) {
-        int res = -1;
-        int idx = 0;
-        foreach( e; contributions ){
-            if( e == item ) {
-                res = idx;
-                break;
-            }
-            idx++;
-        }
-        return res;
+        return contributions.indexOf(cast(Object)item);
     }
 
     /**
@@ -331,7 +321,7 @@
                     "inserting {} at {}", item.getId(), index)); //$NON-NLS-1$ //$NON-NLS-2$
         }
         if (allowItem(item)) {
-            contributions.addAt(index, item);
+            contributions.add(index, cast(Object)item);
             itemAdded(item);
         }
     }
@@ -351,11 +341,11 @@
         if (ci is null) {
             throw new IllegalArgumentException(Format("can't find ID{}", ID));//$NON-NLS-1$
         }
-        int ix = SeqIndexOf!(IContributionItem)( contributions, ci );
+        int ix = contributions.indexOf(cast(Object)ci);
         if (ix >= 0) {
             // System.out.println("insert after: " + ix);
             if (allowItem(item)) {
-                contributions.addAt(ix + 1, item);
+                contributions.add(ix + 1,cast(Object) item);
                 itemAdded(item);
             }
         }
@@ -376,11 +366,11 @@
         if (ci is null) {
             throw new IllegalArgumentException(Format("can't find ID {}", ID));//$NON-NLS-1$
         }
-        int ix = SeqIndexOf!(IContributionItem)(contributions,ci);
+        int ix = contributions.indexOf(cast(Object)ci);
         if (ix >= 0) {
             // System.out.println("insert before: " + ix);
             if (allowItem(item)) {
-                contributions.addAt(ix, item);
+                contributions.add(ix, cast(Object)item);
                 itemAdded(item);
             }
         }
@@ -394,8 +384,8 @@
             return true;
         }
         if (hasDynamicItems()) {
-            foreach( e; contributions ){
-                IContributionItem item = cast(IContributionItem) e;
+            for (Iterator iter = contributions.iterator(); iter.hasNext();) {
+                IContributionItem item = cast(IContributionItem) iter.next();
                 if (item.isDirty()) {
                     return true;
                 }
@@ -408,7 +398,7 @@
      * (non-Javadoc) Method declared on IContributionManager.
      */
     public bool isEmpty() {
-        return contributions.drained();
+        return contributions.isEmpty();
     }
 
     /**
@@ -478,9 +468,7 @@
      * (non-Javadoc) Method declared on IContributionManager.
      */
     public IContributionItem remove(IContributionItem item) {
-        bool contained = contributions.contains(item);
-        contributions.remove(item);
-        if (contained) {
+        if (contributions.remove(cast(Object)item)) {
             itemRemoved(item);
             return item;
         }
@@ -537,7 +525,7 @@
         itemRemoved(oldItem);
 
         // Add the new item.
-        contributions.replaceAt(index, replacementItem);
+        contributions.set(index, cast(Object)replacementItem);
         itemAdded(replacementItem); // throws NPE if (replacementItem is null)
 
         // Go through and remove duplicates.
@@ -547,7 +535,7 @@
                 if (Policy.TRACE_TOOLBAR) {
                     Stdout.formatln("Removing duplicate on replace: {}", identifier); //$NON-NLS-1$
                 }
-                contributions.removeAt(i);
+                contributions.remove(i);
                 itemRemoved(item);
             }
         }
@@ -589,7 +577,7 @@
         contributions.clear();
         for (int i = 0; i < items.length; i++) {
             if (allowItem(items[i])) {
-                contributions.append(items[i]);
+                contributions.add(cast(Object)items[i]);
             }
         }
     }