¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯

TableViewer?¤È¤Ï

TableViewer?¤È¤Ï¡¢JFace¤Î¥ì¥¤¥ä¤¬Ä󶡤¹¤ë¥Ó¥å¡¼¥ï¥¯¥é¥¹¤Ç¤¹¡£¤¤¤ï¤æ¤ëɽ·Á¼°¤Î¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë¤¿¤á¤Î¥¦¥£¥¸¥§¥Ã¥È¤Ç¤¹¡£SWT¤ÎTable¥¯¥é¥¹¤Î¥é¥Ã¥Ñ¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ëµ¡Ç½¤äDrag&Drop¤ä¥½¡¼¥Èµ¡¹½¤Ê¤É¡¢¤¤¤í¤¤¤íÊØÍø¤Êµ¡Ç½¤òÄ󶡤·¤Æ¤¯¤ì¤Þ¤¹¡£

pic01.png

ViewPart?¤ËÇÛÃÖ¤¹¤ë

¥Ó¥å¡¼¤ËÇÛÃÖ¤¹¤ë¤Ë¤Ï¡¢Viewpart¤ÎcreatePartControl?(Compsite parent)Æâ¤Ç

Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new FillLayout());
viewer = new TableViewer(container, SWT.FULL_SELECTION | SWT.BORDER
               | SWT.H_SCROLL | SWT.V_SCROLL);

¤È¤¹¤ë¤À¤±¤Ç¤¹¡£

¥«¥é¥à¤òÀßÄꤹ¤ë

¼¡¤ËTableViewer?¤Ë¥«¥é¥à(Îó)¤òÄêµÁ¤·¤Æ¤¤¤­¤Þ¤¹¡£´ðËÜŪ¤ËTableViewer?¤«¤éSWT¤ÎTable¥¯¥é¥¹¤ò¼èÆÀ¤·¤Æ

table = viewer.getTable();
TableColumn tc1 = new TableColumn(table, SWT.NONE, 0);
TableColumn tc2 = new TableColumn(table, SWT.NONE, 1);

¤È¤·¤Æ¤¤¤±¤Ð¤è¤¤¤Î¤Ç¤¹¤¬¡¢Eclipse¤ÎTaskView¤Î¥½¡¼¥¹¤ËÈó¾ï¤ËÈÆÍÑŪ¤Ê¥³¡¼¥Ç¥£¥ó¥°¤¬¤¢¤Ã¤¿¤Î¤Ç¡¢¤½¤ì¤Ë±è¤Ã¤Æ¤ä¤Ã¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£

ViewPart?¤Î¥Õ¥£¡¼¥ë¥É¤ËÄêµÁ

private final ColumnPixelData[] DEFAULT_COLUMN_LAYOUTS = {
    new ColumnPixelData(200), new ColumnPixelData(200),
    new ColumnPixelData(200) };
private final IField[] VISIBLE_FIELDS = { new TitleField(),
    new SummaryField(), new URLField() };

ColumnPixelData?¤Ï¤½¤Î¥«¥é¥à¤¬¥ê¥µ¥¤¥º²Äǽ¤«¤È¤«¡¢Â礭¤µ¤Ï¤¤¤¯¤Ä¤«¤Ê¤É¤Î¾ðÊó¤ò»ØÄꤷ¤Þ¤¹¡£¤Á¤Ê¤ß¤ËColumnPixelData¤ÎJavaDoc¤ò²¼¤ËºÜ¤»¤È¤­¤Þ¤·¤¿¡£

IField¤Ï¥Ø¥Ã¥À̾¤ä¥Ø¥Ã¥À¤Ëɽ¼¨¤¹¤ë¥¢¥¤¥³¥ó¤Î¾ðÊ󡢤ޤ¿¥Ó¥å¡¼¥ï¤Î³Æ¥«¥é¥à¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤¬ÅϤµ¤ì¤¿¤È¤­¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ëÊÑ´¹½èÍý¡¢¤Ê¤É¤òÈ÷¤¨¤¿(¼«ºî¤Î*1)¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¹¡£¸å¤Ë½Ð¤Æ¤¯¤ë¤Î¤Ç¾ÜºÙ¤Ï³ä°¦¤·¤Þ¤¹¡£¡£

public interface IField {
  String getColumnHeaderText();
  Image getColumnHeaderImage();
  String getValue(Object obj);
  Image getImage(Object obj);
}

¤³¤ì¤ò³Æ¥«¥é¥à¤Ë±è¤Ã¤¿·Á¤ÇOverride¤¹¤ì¤ÐOK¤Ç¤¹¡£

¼¡¤Ë ViewPart?#createPartControl?¤Ç°Ê²¼¤ÎinitTalbe¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£

private void initTable(Viewer viewer){
 Table table = viewer.getTable();
 TableLayout layout = new TableLayout();
 table.setLayout(layout);
 table.setHeaderVisible(true); // ¥Ø¥Ã¥À¤Ïɽ¼¨¤¹¤ë
 table.setLinesVisible(true);  // ¥é¥¤¥ó¤Ïɽ¼¨¤¹¤ë
 
 ColumnLayoutData[] columnLayouts = getColumnLayouts();
 
 for (int i = 0; i < columnLayouts.length; i++) {
   layout.addColumnData(columnLayouts[i]);
   TableColumn tc = new TableColumn(table, SWT.NONE, i);
   tc.setText(VISIBLE_FIELDS[i].getColumnHeaderText());
   tc.setImage(VISIBLE_FIELDS[i].getColumnHeaderImage());
 }
}
private ColumnLayoutData[] getColumnLayouts() {
  ColumnPixelData[] result = new ColumnPixelData[DEFAULT_COLUMN_LAYOUTS.length];
  for (int i = 0; i < DEFAULT_COLUMN_LAYOUTS.length; i++) {
    int width = DEFAULT_COLUMN_LAYOUTS[i].width;
    //////////// ¢¨ /////////////////
    result[i] = new ColumnPixelData(width);
  }
  return result;
}

¤³¤ì¤ÇTable¤ËTableColumn?¤¬¥»¥Ã¥È¤µ¤ì¤Þ¤·¤¿¡£getColumnLayouts?¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢¤Ê¤«¤Ç¿·¤·¤¤ColumnPixelData?¤òºîÀ®¤·¤Æ¡¢¤ó¤ÇÇÛÎóColumnPixelData?[]¤òÊÖ¤·¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤Þ¤Þ¤À¤È¥Õ¥£¡¼¥ë¥É¤ÈƱ¤¸¥â¥Î¤¬ÊÖ¤ë¤Î¤Ç¤ï¤±¤ï¤«¤ó¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢¼Â¤Ï¢¨¤Î¤È¤³¤í¤Ë½èÍý¤¬¤¢¤ê¤Þ¤¹¡£¤¤¤Þ¤ó¤È¤³¤í¤Ï¡¢¤¢¤Þ¤êµ¤¤Ë¤»¤º¤Ë¤¤¤­¤Þ¤·¤ç¤¦¡£¸å½Ò¤·¤Þ¤¹¡£

¥É¥á¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È¤È2¤Ä¤ÎProvider

¤³¤³¤Þ¤Ç¤Ç¥«¥é¥à¤¬3¤Ä¤¢¤ëTableViewer?¤¬¹½ÃÛ¤µ¤ì¤Þ¤·¤¿¡£¤µ¤Æ¤³¤Î¥Æ¡¼¥Ö¥ë¤ËÃͤòɽ¼¨¤µ¤»¤Æ¤¤¤¯¤Î¤Ç¤¹¤¬¡¢JFace¥ì¥¤¥ä¤ÎTableViewer?¤Ç¤Ï

  • ɽ¼¨¤·¤¿¤¤¥Ç¡¼¥¿¤ò»ý¤Ä¥É¥á¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È
  • ¥É¥á¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È¤ÈTableViewer?¤Î¶¶ÅϤ·¤ò¤¹¤ëContentProvider?
  • TableViewer?¤ËÃͤòɽ¼¨¤¹¤ë¤¿¤á¤ÎLabelProvider?

¤È¤¤¤¦3¼ïÎà¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬½ÅÍפǤ¹¡£

¤¿¤È¤¨¤Ð¡¢¥É¥á¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È¤ò

public intarface Model{
  getSummary();
  getURL();
  getTitle();
}

¤È¤·¤Þ¤¹¡£¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¿¤È¤¨¤Ð10¸Ä(¤¿¤È¤¨¤ÐÇÛÎómodels)¤¢¤Ã¤¿¤È¤­¤Ë¡¢¤½¤ì¤òTableViewer?¤Ç°ì¹Ô¤Ë°ì¥ª¥Ö¥¸¥§¥¯¥Èɽ¼¨¤·¤¿¤¤¤È¤­¤Ï¡¢Ä¾ÀÜTableViewer?#setInput(models);¤È¤·¤Æ¤·¤Þ¤¨¤ÐOK¤Ç¤¹¡£¸å¤ÏÆó¤Ä¤Î¥×¥í¥Ð¥¤¥À¤¬²¿¤È¤«¤·¤Æ¤¯¤ì¤Þ¤¹¡£

ContentProvider?¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢¼Â¤Ï¥É¥á¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È¤¬ÇÛÎó¤äList¤Î¾ì¹ç¤Ë´Ø¤·¤Æ¤Ï¡¢JFace¤ÇArrayContentProvider?¤È¤¤¤¦¥×¥í¥Ð¥¤¥À¤òÄ󶡤·¤Æ¤¯¤ì¤Æ¤¤¤Þ¤¹¡£¤è¤Ã¤ÆcreatePartControl?¤Ç

 viewer.setContentProvider(new ArrayContentProvider());

¤Ç½ª¤ï¤ê¤Ç¤¹¡£¤³¤ì¤Ç³Æ¹Ô¤Ë°ì¤Ä¤ÎModel¥ª¥Ö¥¸¥§¥¯¥È¤ò³ä¤êÅö¤Æ¤Æ¤¯¤ì¤Þ¤¹¡£

¤Ä¤®¤ËLabelProvider?¤Ç¤¹¡£LabelProvider?¤ÏContentProvider?¤¬³Æ¹Ô¤Ë³ä¤êÅö¤Æ¤Æ¤¯¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È(Model¤Ç¤·¤¿)¤ò¡¢³Æ¥«¥é¥à¤Ë¤Ê¤ó¤Èɽ¼¨¤¹¤ë¤«»ØÄꤷ¤Þ¤¹¡£

°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤Þ¤·¤¿¡£

class ViewLabelProvider extends LabelProvider implements
    ITableLabelProvider {
  private final IField[] fields;
  public ViewLabelProvider(IField[] fields) {
    this.fields = fields;
  }¢¬ViewPart¤ËÄêµÁ¤·¤¿IField¤Ç¤¹

  public String getColumnText(Object obj, int index) {
    if (obj instanceof Model) { ¢¬index¤Ïº¸¤«¤é²¿ÈÖÌܤΥ«¥é¥à¤«
       ¢¬ ContentProvider¤¬ÇÛÎ󤫤é¼è¤ê½Ð¤·¤ÆÅϤ·¤Æ¤¯¤ì¤ë
      Modelelement = (Model) obj;
      return fields[index].getValue(element);
    }
    return "";
  }

  public Image getColumnImage(Object element, int columnIndex) {
    return null; <-¥¤¥á¡¼¥¸¤ò»È¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï²¿¤«¤òÊÖ¤¹
  }
}

¤³¤Î¥¯¥é¥¹¤òºî¤Ã¤Æ¤ª¤¤¤Æ¡¢

viewer.setLabelProvider(new ViewLabelProvider(VISIBLE_FIELDS));

¤È¤·¤Æ¤ª¤±¤ÐOK¤Ç¤¹¡£

IField¤Î¸úǽ¤Ë¤Ä¤¤¤Æ¤Ç¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ê¥¯¥é¥¹¤¬¤Ê¤¤¤ÈLabelProvider?¤ÎÃæ¤Ç¡¢°ìÎóÌܤÀ¤Ã¤¿¤émodel#getTitle,ÆóÎóÌܤÀ¤Ã¤¿¤émodel#getSummary¤Ê¤É¤Èswitch¤¬½Ð¤Æ¤­¤½¤¦¤Ç¤¹¤¬¡¢¤½¤ì¤ò¥Ý¥ê¥â¥Õ¥£¥º¥à¤Ç²¿¤È¤«¤·¤Æ¤ë¤ï¤±¤Ç¤¹¡£

¤Þ¤È¤á¤ë¤È

  • ¥Õ¥£¡¼¥ë¥É¤Î
    ColumnPixelData[] DEFAULT_COLUMN_LAYOUTS;
    IField[] VISIBLE_FIELDS;

¤ÇTableViewer?¤ò¹½ÃÛ

  • TableViewer?¤Î¹Ôñ°Ì¤Î¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ëContentProvider?¤òÄêµÁ(ArrayContentProvider?¤Ç½½Ê¬¤Î¾ì¹ç¤â¤¢¤ë)
  • ¹Ôñ°Ì¤Î¥Ç¡¼¥¿¤ò¼ÂºÝ¤Ë³Æ¥«¥é¥à¤Ëɽ¼¨¤¹¤ë¤¿¤á¤ÎLabelProvider?¤òÄêµÁ¡£¤½¤ÎÃæ¤ÇIField¤òÍ­¸ú¤Ë»È¤¦

¤È¤¤¤¦´¶¤¸¤Ç¤¹¤Í¡£

»²¹Í
¥×¥é¥°¥¤¥ó³«È¯¤ÎTIPS½¸/GooglePlugin/¸¡º÷·ë²Ì°ìÍ÷¤òɽ¼¨¤¹¤ë¥Ó¥å¡¼¤ÎºîÀ®

IMemmento¤ò»È¤Ã¤¿¡¢¥«¥é¥àÉý¤òÊݸ¤·¤Æ¥ê¥¹¥È¥¢¤¹¤ë

org.eclipse.ui.IViewPart¤Î ÀßÄê¤ÎÊݸ¤È¥ê¥¹¥È¥¢ ¤Ë¤Þ¤È¤á¤¿¤Î¤Ç¤¹¤¬¡¢IMemento¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÍѤ¤¤ë¤³¤È¤Ç¡¢¥Ó¥å¡¼¤òÊĤ¸¤¿¤È¤­¤Î³Æ¥«¥é¥à¤Î¥«¥é¥àÉý¤ò³Ð¤¨¤Æ¤ª¤¤¤Æ¡¢¼¡²ó¤½¤Î¥Ó¥å¡¼¤ò³«¤¯¤È¤­¤Ë¡¢ÊĤ¸¤¿¤È¤­¤Î¥«¥é¥àÉý¤òºÆ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹*2¡£

¤ä¤Ã¤Æ¤ß¤Þ¤·¤ç¤¦¡£Eclipse¤Ë¤Ï¤¢¤é¤«¤¸¤áView¤ò³«¤¤¤¿¤È¤­¤Ë¸Æ¤Ð¤ì¤ë

public void init(IViewSite site, IMemento memento);

¤È¤¤¤¦¥á¥½¥Ã¥É¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤ì¤ò°Ê²¼¤Î¤è¤¦¤Ë¼ÂÁõ¤·¤Æ¤ª¤­¤Þ¤¹¡£

public void init(IViewSite site, IMemento memento) throws PartInitException {
  this.memento = memento;
  super.init(site, memento);
}

View¤¬³«¤¯¤È¤­¤ËÅϤµ¤ì¤Æ¤­¤¿°ú¿ô¤Îmemento¤Ï¥Õ¥£¡¼¥ë¥É¤Ë»ý¤Ã¤Æ¤ª¤­¤Þ¤¹¡£

µÕ¤Ë¡¢¥Ó¥å¡¼¤òÊĤ¸¤ë¤È¤­¤Ë¤Ï

public void saveState(IMemento memento);

¤¬¸Æ¤Ð¤ì¤ë¤Î¤Ç¡¢¤½¤Î¥á¥½¥Ã¥É¤ò°Ê²¼¤Î¤è¤¦¤Ë¼ÂÁõ¤·¤Æ¤ª¤­¤Þ¤¹¡£

public void saveState(IMemento memento) {
  super.saveState(memento);
  saveColumnWidth(memento);
}

¤³¤Î¥á¥½¥Ã¥É¤Î°ú¿ô¤Îmemento¤Ï¡¢¼¡¤Ë¤³¤ÎView¤ò³«¤¤¤¿¤È¤­¤Ëinit¤ÇÅϤµ¤ì¤Æ¤¯¤ëmemento¤Ê¤Î¤Ç¡¢¤³¤Îmemento¤Î¤Ê¤«¤Ë¼¡²óºÆ¸½¤·¤¿¤¤¾ðÊó¤ò¥»¥Ã¥È¤·¤Æ¤ª¤±¤Ð¤è¤¤¤È¸À¤¦¤ï¤±¤Ç¤¹¡£¾å¤Ç¤Ï¡¢savaColumnWidth?¤Æ¥á¥½¥Ã¥É¤ÎÃæ¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ë¼ÂÁõ¤·¤Æ¤ª¤­¤Þ¤¹¡£

private void saveColumnWidth(IMemento memento) {
  TableColumn[] columns = viewer.getTable().getColumns();
  for (int i = 0; i < columns.length; i++) {
    memento.putInteger(TAG_COLUMN_WIDTH + i, columns[i].getWidth());
  }                      ¢¬Å¬Åö¤Êʸ»úÎó           ¢¬¸½ºß¤Î¥«¥é¥àÉý
}

¸½ºß¤Î³Æ¥«¥é¥àÉý¤ò¡ÖTAG_COLUMN_WIDTH + i¡×¤È¤¤¤¦¥­¡¼ÃͤÇmemento¤Ë¥»¥Ã¥È¤·¤Æ¤¤¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥­¡¼Ãͤò»È¤Ã¤Æ¡¢¼¡²ó¥Ó¥å¡¼¤ò³«¤¤¤¿¤È¤­¤Ï¥­¡¼ÃͤǼè¤ê½Ð¤µ¤ì¤ë(Á°²ó¤Î)¥«¥é¥àÉý¤òTable¤Ë¥»¥Ã¥È¤·¤Æ¤¤¤­¤Þ¤¹¡£

¤µ¤Æ¡¢Àè¤Û¤É¸å½Ò¤¹¤ë¤«¤é¤È¤ê¤¢¤¨¤º¾Ã¤·¤Æ¤ª¤¯¡¢¤È¤¤¤Ã¤Æ¤¤¤¿¡¢

private ColumnLayoutData[] getColumnLayouts() {
  ColumnPixelData[] result = new ColumnPixelData[DEFAULT_COLUMN_LAYOUTS.length];
  for (int i = 0; i < DEFAULT_COLUMN_LAYOUTS.length; i++) {
    int width = DEFAULT_COLUMN_LAYOUTS[i].width;
    //////////// ¢¨ /////////////////
    result[i] = new ColumnPixelData(width);
  }
  return result;
}

¤Ë½¤Àµ¤ò¤«¤±¤Æ¤¤¤­¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥«¥é¥àÉý¤òÊÝ»ý¤·¤¿¥¯¥é¥¹¡¢ColumnLayoutData?¤ò¼èÆÀ¤¹¤ë¥á¥½¥Ã¥É¤Ç¤¹¤¬¡¢¤³¤ì¤ò¡¢¥Õ¥£¡¼¥ë¥É¤Îmemento¤«¤éÃͤ¬¤È¤ì¤ë¾ì¹ç¤Ï¤½¤Ã¤Á¤ò»ÈÍѤ¹¤ë¡¢¤È¤¤¤¦½èÍý¤òÄɲ䷤Ƥ¤¤­¤Þ¤¹¡£¢¨¤Î²Õ½ê¤ò°Ê²¼¤Î¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£

private ColumnLayoutData[] getColumnLayouts(ColumnPixelData[] data) {
  ColumnPixelData[] result = new ColumnPixelData[data.length];
  for (int i = 0; i < data.length; i++) {
    int width = data[i].width;
    if (memento != null) {
      // ¥á¥á¥ó¥È¤«¤é¡¢Á°²ó¤ÎÉý¤ò¼èÆÀ¤·¤Æ¤¤¤ë
      Integer widthInt = memento.getInteger(TAG_COLUMN_WIDTH + i);
      if (widthInt != null && widthInt.intValue() > 0) {
        width = widthInt.intValue();
      }
    }
    result[i] = new ColumnPixelData(width);
  }
  return result;
}

¤³¤ì¤Ç¡¢¤¢¤é¤«¤¸¤á¡¢½é²ó¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥«¥é¥àÉý¤Ï¥Õ¥£¡¼¥ë¥É¤ËÄêµÁ¤·¤Æ¤ª¤¤¤¿¤±¤É¡¢¥æ¡¼¥¶¤¬»ÈÍѤ·¤Æmemento¤Ë¥«¥é¥àÉý¤¬Êݸ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢¤½¤Ã¤Á¤Î¥«¥é¥àÉý¤ò»ÈÍѤ¹¤ë¤è¤È¤¤¤¦¥³¡¼¥Ç¥£¥ó¥°¤¬¤Ç¤­¤¢¤¬¤ê¤Þ¤·¤¿¡£

¥½¡¼¥È½èÍý

Êݸ½èÍý

DnD

TIP½¸

¤É¤Î¥«¥é¥à¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤â¤½¤Î¹Ô¤òÁªÂò¾õÂ֤ˤ¹¤ë

viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
               | SWT.V_SCROLL|SWT.FULL_SELECTION);

SWT.FULL_SELECTION ¤¬¥Ý¥¤¥ó¥È¤Ç¤¹*3¡£

¥×¥í¥Ñ¥Æ¥£ÃͤòÀßÄꤹ¤ë¡£

String[] properties = new String[] { "text", "check", "color", "combo" };
// ¥«¥é¥à¡¦¥×¥í¥Ñ¥Æ¥£¤ÎÀßÄê
viewer.setColumnProperties(properties);

¤Ï

ICellModifier#getValue(Object element, String property)

¤ÎpropertyÃͤˤʤê¤Þ¤¹¡£

ICellModifier?¤Ê¤É¤Ë¤Ä¤¤¤Æ¤ÏÊÔ½¸µ¡Ç½ÉÕ¤­¥Æ¡¼¥Ö¥ë¤È¤Ï¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£

»²¹Í1 ColumnPixelData?¤ÎJavaDoc?¥³¥á¥ó¥È

/**
 * Creates a resizable column width of the given number of pixels.
 *
 * @param widthInPixels the width of column in pixels
 */
public ColumnPixelData(int widthInPixels) {
  this(widthInPixels, true, false);
}

/**
 * Creates a column width of the given number of pixels.
 *
 * @param widthInPixels the width of column in pixels
 * @param resizable <code>true</code> if the column is resizable,
 *   and <code>false</code> if size of the column is fixed
 */
public ColumnPixelData(int widthInPixels, boolean resizable) {
this(widthInPixels, resizable, false);
}

/**
 * Creates a column width of the given number of pixels.
 * 
 * @param widthInPixels
 *      the width of column in pixels
 * @param resizable
 *      <code>true</code> if the column is resizable, and
 *      <code>false</code> if size of the column is fixed
 * @param addTrim
 *      <code>true</code> to allocate extra width to the column to
 *      account for trim taken by the column itself,
 *      <code>false</code> to use the given width exactly
 * @since 3.1
 */
public ColumnPixelData(int widthInPixels, boolean resizable, boolean addTrim) {
  super(resizable);
  Assert.isTrue(widthInPixels >= 0);
  this.width = widthInPixels;
this.addTrim = addTrim;
}

³Æ¥«¥é¥à¤ÎÇØ·Ê¿§¤äʸ»ú¤Î¿§¡¢¥Õ¥©¥ó¥È¤Ê¤É¤òÀßÄꤹ¤ë

¤¤¤í¤¤¤í¥µ¥¤¥È¤òõ¤·¤Æ¡¢¤ß¤Ä¤«¤ó¤Í¤¨¤Ê¤¢Ä¾ÀÜTable¤ò¤¤¤¸¤ë¤·¤«¤Í¡¼¤«¤Ê¤È»×¤Ã¤Æ¤¿¤é¡¢Eclipse¤ò¤Î¥½¡¼¥¹¤òÄ´¤Ù¤Æ¤¤¤Æ¡¢¸«¤Ä¤±¤Þ¤·¤¿¡£TableViewer?¤Ê¤É¤Ë¥»¥Ã¥È¤¹¤ëLabelProvider?¤ËITableColorProvider?¡¢ITableFontProvider?¤òimplements¤µ¤»¤ì¤Ð¤è¤¤¤Î¤Ç¤·¤¿¡£¤·¤«¤·¡¢¤³¤ì¤¯¤é¤¤¤ÎÆüËܸì¾ðÊ󤬤ʤ¤¤È¤Ê¤ë¤È¡¢¡¢¡¢¡¢¡£¡£¤¬¤ó¤Ð¤ó¤Ê¤¤¤È¤Í¡£


¤³¤Îµ­»ö¤Ï

ÁªÂò»è Åêɼ
¤ª¤â¤·¤í¤«¤Ã¤¿ 17  
¤½¤¦¤Ç¤â¤Ê¤¤ 0  

¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯

¸½ºß¤Î¥¢¥¯¥»¥¹:19413


*1 TaskView?¤Î¥½¡¼¥¹¤Ç¤Ï¡¢internal¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤·¤¿¡£¤À¤«¤é¼«Ê¬¤Çºî¤Ã¤Á¤ã¤ª¤¦
*2 ¤Á¤Ê¤ß¤ËIMemento¤Ã¤ÆÊѤÊ̾Á°¤Ï¥Ç¥¶¥¤¥ó¥Ñ¥¿¥ó¤Î¥á¥á¥ó¥È¥Ñ¥¿¡¼¥ó¤Î¤³¤È¤Ç¤¹¤Í¡£
*3 ¥¯¥ê¥Ã¥¯¤ËÈ¿±þ¤·¤ÆÁªÂò¤·¤¿¹Ô¤òÊѤ¨¤è¤¦¤È»×¤Ã¤Æ¡¢¤¤¤í¤ó¤Ê¥ê¥¹¥Ê¤òõ¤·¤Æ¤·¤Þ¤Ã¤¿

źÉÕ¥Õ¥¡¥¤¥ë: filepic01.png 884·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2012-03-21 (¿å) 10:31:18 (59d)