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
This commit is contained in:
parent
266d32cf58
commit
9969b98ad1
2 changed files with 29 additions and 3 deletions
|
@ -266,15 +266,41 @@ public class DependencyListBuilder implements Serializable
|
|||
*/
|
||||
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$
|
||||
}
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ public class DependencyListNode implements Serializable
|
|||
* 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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue