eclipse plugin: Some small fixes

This commit is contained in:
Timotei Dolean 2011-07-08 21:09:52 +00:00
parent 71d9ce8052
commit b075c8cfc3
2 changed files with 38 additions and 5 deletions

View file

@ -90,6 +90,9 @@ public class DependencyTreeBuilder implements Serializable
containers.add( project_ );
while( containers.isEmpty( ) == false ) {
// each container should start a new "branch"
previous_ = null;
IContainer container = containers.poll( );
IResource main_cfg = container.findMember( "_main.cfg" ); //$NON-NLS-1$
@ -216,7 +219,7 @@ public class DependencyTreeBuilder implements Serializable
// we found the place?
if ( ResourceUtils.wmlFileNameCompare(
fileName,
leaf.getFile( ).getName( ) ) > 0 ) {
leaf.getFile( ).getName( ) ) < 0 ) {
previous_ = leaf.getPrevious( );
@ -226,6 +229,20 @@ public class DependencyTreeBuilder implements Serializable
newNode.setNext( leaf );
leaf.setPrevious( newNode );
if ( leaf.getSon( ) != null ){
newNode.setSon( leaf.getSon( ) );
leaf.getSon( ).setParent( newNode );
leaf.setSon( null );
}
if ( leaf.getParent( ) != null ) {
newNode.setParent( leaf.getParent( ) );
leaf.getParent( ).setSon( newNode );
leaf.setParent( null );
}
break;
}
@ -294,8 +311,14 @@ public class DependencyTreeBuilder implements Serializable
{
ProjectDependencyNode node = getNode( file );
node.getPrevious( ).setNext( node.getNext( ) );
node.getNext( ).setPrevious( node.getPrevious( ) );
// the node didn't even exist in the tree!?
if ( node == null )
return;
if ( node.getPrevious( ) != null )
node.getPrevious( ).setNext( node.getNext( ) );
if ( node.getNext( ) != null )
node.getNext( ).setPrevious( node.getPrevious( ) );
tree_.remove( file.getProjectRelativePath( ).toString( ) );
}

View file

@ -184,11 +184,20 @@ public class WesnothProjectBuilder extends IncrementalProjectBuilder
projectCache_.getConfigs().remove( file.getName() );
} else if ( deltaKind == IResourceDelta.ADDED ){
ProjectDependencyNode newNode = tree.addNode( file );
nodesToProcess.add( newNode );
if ( newNode == null )
Logger.getInstance( ).logError( "Couldn't create a new" +
"PDT node for file: " + file.getFullPath( ).toString( ) );
else
nodesToProcess.add( newNode );
} else if ( deltaKind == IResourceDelta.CHANGED ) {
//TODO: check if the included directories have changed their
// order
nodesToProcess.add( tree.getNode( file ) );
ProjectDependencyNode node = tree.getNode( file );
if ( node == null )
Logger.getInstance( ).logError( "Couldn't find file "
+ file.getFullPath( ).toString( ) + " in PDT!." );
else
nodesToProcess.add( node );
} else {
Logger.getInstance( ).log( "unknown delta kind: " + deltaKind );
}
@ -212,6 +221,7 @@ public class WesnothProjectBuilder extends IncrementalProjectBuilder
}
});
foundCfg = ( !nodesToProcess.isEmpty( ) );
// process nodes
for ( ProjectDependencyNode node : nodesToProcess ) {
checkResource( node.getFile( ), monitor );