FileDocCategorySizeDatePackage
WritersItem.javaAPI DocAzureus 3.0.3.42889Fri Sep 07 13:13:18 BST 2007org.gudy.azureus2.ui.swt.views.tableitems.pieces

WritersItem

public class WritersItem extends org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn implements TableCellRefreshListener
author
TuxPaper
since
2.0.8.5

Fields Summary
Constructors Summary
public WritersItem()
Default Constructor

    super("writers", ALIGN_LEAD, POSITION_INVISIBLE, 80, TableManager.TABLE_TORRENT_PIECES);
    setObfustication(true);
    setRefreshInterval(4);
  
Methods Summary
public voidrefresh(TableCell cell)

    PEPiece piece = (PEPiece)cell.getDataSource();
    String[] core_writers = piece.getWriters();
    String[] my_writers = new String[core_writers.length];
    int writer_count = 0;
    Map map = new HashMap();

    for(int i = 0 ; ; ) {
	String this_writer = null;

	int start;
	for (start = i ; start < core_writers.length ; start++ ) {
	    this_writer = core_writers[start];
	    if (this_writer != null)
		break;
	}
	if (this_writer == null)
	    break;

	int end;
	for (end = start + 1; end < core_writers.length; end++) {
	    if (! this_writer.equals(core_writers[end]))
		break;
	}

	StringBuffer pieces = (StringBuffer) map.get(this_writer);
	if (pieces == null) {
	    pieces = new StringBuffer();
	    map.put(this_writer, pieces);
	    my_writers[writer_count++] = this_writer;
	} else {
	    pieces.append(',");
	}

	pieces.append(start);
	if (end-1 > start)
	    pieces.append('-").append(end-1);

	i=end;
    }
	
    StringBuffer sb = new StringBuffer();
    for (int i = 0 ; i < writer_count ; i++) {
	String writer = my_writers[i];
	StringBuffer pieces = (StringBuffer) map.get(writer);
	if (i > 0)
	    sb.append(';");
	sb.append(writer).append('[").append(pieces).append(']");
    }
    
    String value = sb.toString();
    if( !cell.setSortValue( value ) && cell.isValid() ) {
      return;
    }
    
    cell.setText(value);