Author: timotei
Date: Sun Jul 10 22:47:47 2011
New Revision: 50266

URL: http://svn.gna.org/viewcvs/wesnoth?rev=50266&view=rev
Log:
eclipse plugin: Tweak the internal_addNode function
to correctly set the new node's index and take
in account all cases when adding it to the list

Modified:
    
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListBuilder.java
    
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListNode.java

Modified: 
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListBuilder.java
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListBuilder.java?rev=50266&r1=50265&r2=50266&view=diff
==============================================================================
--- 
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListBuilder.java
 (original)
+++ 
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListBuilder.java
 Sun Jul 10 22:47:47 2011
@@ -266,15 +266,41 @@
      */
     private DependencyListNode internal_addNode( IFile file )
     {
-        DependencyListNode newNode = new DependencyListNode( file, 
currentIndex_ );
-        currentIndex_ += DependencyListNode.INDEX_STEP;
+        DependencyListNode newNode = new DependencyListNode( file, -1 );
 
         if ( previous_ != null ){
+
+            // inserting is done between 2 nodes
+            if ( previous_.getNext( ) != null ){
+                newNode.setIndex(
+                        (previous_.getIndex( ) +
+                         previous_.getNext( ).getIndex( )) / 2 );
+
+                newNode.setNext( previous_.getNext( ) );
+                previous_.getNext( ).setPrevious( newNode );
+            } else {
+                newNode.setIndex( currentIndex_ );
+                currentIndex_ += DependencyListNode.INDEX_STEP;
+            }
+
             previous_.setNext( newNode );
             newNode.setPrevious( previous_ );
         } else {
             // no previous yet (== null)
             // so we're making this the root node for this list
+
+            // check if we had a previous root node
+            DependencyListNode root = list_.get( ROOT_NODE_KEY );
+            if ( root != null ) {
+                root.setPrevious( newNode );
+                newNode.setNext( root );
+
+                newNode.setIndex( root.getIndex( ) - 
DependencyListNode.INDEX_STEP );
+            } else {
+                newNode.setIndex( currentIndex_ );
+                currentIndex_ += DependencyListNode.INDEX_STEP;
+            }
+
             list_.put( ROOT_NODE_KEY, newNode ); //$NON-NLS-1$
         }
 

Modified: 
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListNode.java
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListNode.java?rev=50266&r1=50265&r2=50266&view=diff
==============================================================================
--- 
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListNode.java 
(original)
+++ 
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/builder/DependencyListNode.java 
Sun Jul 10 22:47:47 2011
@@ -82,7 +82,7 @@
      * Sets a new index for this node
      * @param index The index to set
      */
-    public void setIndex( int index )
+    protected void setIndex( int index )
     {
         index_ = index;
 


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to