Package org.gudy.azureus2.ui.swt.views.columnsetup

Source Code of org.gudy.azureus2.ui.swt.views.columnsetup.ColumnTC_Sample$Cell

/**
* Created on Jan 3, 2009
*
* Copyright 2008 Vuze, Inc.  All rights reserved.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License only.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
*/

package org.gudy.azureus2.ui.swt.views.columnsetup;

import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;

import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.views.columnsetup.TableColumnSetupWindow.TableViewColumnSetup;
import org.gudy.azureus2.ui.swt.views.table.TableCellSWT;
import org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener;
import org.gudy.azureus2.ui.swt.views.table.impl.FakeTableCell;
import org.gudy.azureus2.ui.swt.views.table.impl.TableCellImpl;
import org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn;

import com.aelitis.azureus.ui.common.table.TableCellCore;
import com.aelitis.azureus.ui.common.table.TableColumnCore;
import com.aelitis.azureus.ui.common.table.TableRowCore;

import org.gudy.azureus2.plugins.ui.tables.*;

/**
* @author TuxPaper
* @created Jan 3, 2009
*
*/
public class ColumnTC_Sample
  extends CoreTableColumn
  implements TableCellAddedListener
{
  public static final String COLUMN_ID = "TableColumnSample";

  public ColumnTC_Sample(String tableID) {
    super(COLUMN_ID, tableID);
    setPosition(POSITION_INVISIBLE);
    setRefreshInterval(INTERVAL_LIVE);
    setWidth(120);
  }

  // @see org.gudy.azureus2.plugins.ui.tables.TableCellAddedListener#cellAdded(org.gudy.azureus2.plugins.ui.tables.TableCell)
  public void cellAdded(final TableCell cell) {
    Utils.execSWTThread(new AERunnable() {
      public void runSupport() {
        TableColumnCore column = (TableColumnCore) cell.getDataSource();
        TableViewColumnSetup tv = (TableViewColumnSetup) ((TableCellCore) cell).getTableRowCore().getView();
        TableRowCore sampleRow = (TableRowCore) tv.getSampleRow();

        cell.addListeners(new Cell(cell, column, tv, sampleRow));
      }
    });
  }

  public class Cell
    implements TableCellRefreshListener, TableCellSWTPaintListener,
    TableCellVisibilityListener
  {
    private final TableColumnCore column;
    private FakeTableCell sampleCell;

    public Cell(TableCell parentCell, TableColumnCore column, TableViewColumnSetup tv, TableRowCore sampleRow) {
      this.column = column;
      if (sampleRow == null) {
        return;
      }
      sampleCell = new FakeTableCell(column);

      sampleCell.setControl(tv.getTableComposite());
      Rectangle bounds = ((TableCellImpl)parentCell).getBounds();
      sampleCell.setCellArea(bounds);
      if (sampleRow != null) {
        sampleCell.setDataSource(((TableRowCore)sampleRow).getDataSource(true));
      }
    }

    // @see org.gudy.azureus2.ui.swt.views.table.TableCellSWTPaintListener#cellPaint(org.eclipse.swt.graphics.GC, org.gudy.azureus2.ui.swt.views.table.TableCellSWT)
    public void cellPaint(GC gc, TableCellSWT cell) {
      if (sampleCell == null) {
        return;
      }
      Rectangle bounds = ((TableCellImpl)cell).getBounds();
      sampleCell.setCellArea(bounds);
      try {
        sampleCell.doPaint(gc);
      } catch (Throwable e) {
        Debug.out(e);
      }
    }

    // @see org.gudy.azureus2.plugins.ui.tables.TableCellVisibilityListener#cellVisibilityChanged(org.gudy.azureus2.plugins.ui.tables.TableCell, int)
    public void cellVisibilityChanged(TableCell cell, int visibility) {
      if (sampleCell == null) {
        return;
      }
      try {
        column.invokeCellVisibilityListeners((TableCellCore) sampleCell, visibility);
      } catch (Throwable e) {
        Debug.out(e);
      }
    }

    // @see org.gudy.azureus2.plugins.ui.tables.TableCellRefreshListener#refresh(org.gudy.azureus2.plugins.ui.tables.TableCell)
    public void refresh(TableCell cell) {
      if (sampleCell == null) {
        return;
      }
      if (!cell.isShown()) {
        return;
      }
      sampleCell.refresh(true, true, true);
      cell.setSortValue(sampleCell.getSortValue());
      //cell.setText(sampleCell.getText());
    }

  }
}
TOP

Related Classes of org.gudy.azureus2.ui.swt.views.columnsetup.ColumnTC_Sample$Cell

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.