import java.util.TreeSet;
import org.forester.util.ForesterUtil;
+import org.forester.util.SequenceIdParser;
class PrintableSpeciesSpecificDcData implements SpeciesSpecificDcData {
final SortedMap<String, Integer> _combinable_domain_id_to_count_map;
final SortedSet<String> _key_domain_proteins;
- final private int _key_domain_domains_count;
final private int _combinable_domains_count;
+ final private int _key_domain_domains_count;
public PrintableSpeciesSpecificDcData( final int key_domain_domains_count, final int combinable_domains ) {
_key_domain_proteins = new TreeSet<String>();
}
@Override
+ public void addKeyDomainProtein( final String protein ) {
+ if ( ForesterUtil.isEmpty( protein ) ) {
+ throw new IllegalArgumentException( "attempt to add null or empty protein" );
+ }
+ if ( getKeyDomainProteins().contains( protein ) ) {
+ throw new IllegalArgumentException( "protein \"" + protein + "\" is not unique" );
+ }
+ getKeyDomainProteins().add( protein );
+ }
+
+ @Override
public void addProteinsExhibitingCombinationCount( final String domain_id, final int count ) {
if ( getCombinableDomainIdToCountsMap().containsKey( domain_id ) ) {
throw new IllegalArgumentException( "Domain with id " + domain_id + " already exists" );
return _combinable_domain_id_to_count_map;
}
- private int getCombinableDomainsCount() {
- return _combinable_domains_count;
- }
-
- private int getKeyDomainDomainsCount() {
- return _key_domain_domains_count;
- }
-
- private int getKeyDomainProteinsCount() {
- return _key_domain_proteins.size();
+ @Override
+ public SortedSet<String> getKeyDomainProteins() {
+ return _key_domain_proteins;
}
@Override
}
@Override
- public void addKeyDomainProtein( final String protein ) {
- if ( ForesterUtil.isEmpty( protein ) ) {
- throw new IllegalArgumentException( "attempt to add null or empty protein" );
- }
- if ( getKeyDomainProteins().contains( protein ) ) {
- throw new IllegalArgumentException( "protein \"" + protein + "\" is not unique" );
- }
- getKeyDomainProteins().add( protein );
- }
-
- @Override
- public SortedSet<String> getKeyDomainProteins() {
- return _key_domain_proteins;
- }
-
- @Override
public String toString() {
return toStringBuffer( DomainSimilarityCalculator.Detailedness.LIST_COMBINING_DOMAIN_FOR_EACH_SPECIES, false )
.toString();
sb.append( " [" );
boolean first = true;
for( final String p : getKeyDomainProteins() ) {
- String link = null;
- final String up_id = ForesterUtil.extractUniProtKbProteinSeqIdentifier( p );
- if ( !ForesterUtil.isEmpty( up_id ) ) {
- link = "<a href=\"" + ForesterUtil.UNIPROT_KB + up_id + "\" target=\"_up_window\">" + up_id + "</a>";
- }
- else {
- link = "<a href=\"" + "http://www.google.com/search?q=" + p + "\" target=\"_g_window\">" + p + "</a>";
- }
+ final String link = obtainSeqLink( p );
if ( first ) {
first = false;
}
else {
sb.append( ", " );
}
- sb.append( p );
+ sb.append( link );
}
sb.append( "]" );
return sb;
}
+
+ private int getCombinableDomainsCount() {
+ return _combinable_domains_count;
+ }
+
+ private int getKeyDomainDomainsCount() {
+ return _key_domain_domains_count;
+ }
+
+ private int getKeyDomainProteinsCount() {
+ return _key_domain_proteins.size();
+ }
+
+ private static String obtainSeqLink( final String p ) {
+ String link;
+ final String up_id = ForesterUtil.extractUniProtKbProteinSeqIdentifier( p );
+ if ( !ForesterUtil.isEmpty( up_id ) ) {
+ link = "<a class=\"pl\" href=\"" + ForesterUtil.UNIPROT_KB + up_id + "\" target=\"_up_window\">" + up_id
+ + "</a>";
+ }
+ else {
+ final String gb_id = SequenceIdParser.parseGenbankProteinAccessor( p );
+ if ( !ForesterUtil.isEmpty( gb_id ) ) {
+ link = "<a class=\"pl\" href=\"" + ForesterUtil.NCBI_PROTEIN + gb_id + "\" target=\"_up_window\">"
+ + gb_id + "</a>";
+ }
+ else {
+ final String gi = SequenceIdParser.parseGInumber( p );
+ if ( !ForesterUtil.isEmpty( gi ) ) {
+ link = "<a class=\"pl\" href=\"" + ForesterUtil.NCBI_GI + gi + "\" target=\"_up_window\">gi|" + gi
+ + "</a>";
+ }
+ else {
+ link = "<a class=\"ps\" href=\"" + "http://www.google.com/search?q=" + p
+ + "\" target=\"_g_window\">" + p + "</a>";
+ }
+ }
+ }
+ return link;
+ }
}
w.write( SurfacingConstants.NL );
w.write( "a:hover { color : #FFFFFF; background-color : #99FF00; text-decoration : none; }" );
w.write( SurfacingConstants.NL );
+ //
+ w.write( "a.pl:visited { color : #505050; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ w.write( "a.pl:link { color : #505050; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ w.write( "a.pl:active { color : #505050; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ w.write( "a.pl:hover { color : #FFFFFF; background-color : #99FF00; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ //
+ w.write( "a.ps:visited { color : #707070; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ w.write( "a.ps:link { color : #707070; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ w.write( "a.ps:active { color : #707070; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ w.write( "a.ps:hover { color : #FFFFFF; background-color : #99FF00; text-decoration : none; font-size: 7pt;}" );
+ w.write( SurfacingConstants.NL );
+ //
w.write( "td { text-align: left; vertical-align: top; font-family: Verdana, Arial, Helvetica; font-size: 8pt}" );
w.write( SurfacingConstants.NL );
w.write( "h1 { color : #0000FF; font-family: Verdana, Arial, Helvetica; font-size: 18pt; font-weight: bold }" );