return new LibraryFilterNode( key, latch );
case BUILT_IN_LIBRARY:
if (key.getFld() != null && key.getFld().isValid()) {
return new LibraryFilterNode( key, latch );
} else {
AbstractNode li = new AbstractNode( Children.LEAF ) {
@Override
public String getHtmlDisplayName () {
return "<font color=\"#22AA22\">" + key; //NOI18N
}
};
li.setName( key.toString() );
li.setDisplayName( key.toString() );
li.setShortDescription( "Built-in library '" + key + "'" );
li.setIconBaseWithExtension( ProjectNodeKey.LIBRARY_ICON ); //NOI18N
return li;
}
case MISSING_LIBRARY:
if (key.getFld() != null && key.getFld().isValid()) {
return new LibraryFilterNode( key, latch );
} else {
AbstractNode an = new AbstractNode( Children.LEAF ) {
@Override
public String getHtmlDisplayName () {
return "<font color=\"#CC0000\">" + key; //NOI18N
}
};
an.setName( key.toString() );
an.setDisplayName( key.toString() );
StringBuilder sb = new StringBuilder( "<html>Missing library <b><i>" + key + "</i></b>" );
if (key instanceof ProjectNodeKey.MissingLibrary && ((ProjectNodeKey.MissingLibrary) key).references != null && !((ProjectNodeKey.MissingLibrary) key).references.isEmpty()) {
sb.append( "<p>Referenced By<br><ul>" );
for (String path : ((ProjectNodeKey.MissingLibrary) key).references) {
sb.append( "<li>" ).append( path ).append( "</li>\n" );
}
sb.append( "</ul></pre></blockquote></html>" );
}
an.setShortDescription( sb.toString() );
an.setIconBaseWithExtension( ProjectNodeKey.LIBRARY_ICON ); //NOI18N
return an;
}
default:
throw new AssertionError();
}