▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

 

출처 : http://study-swt.info/viewers/sample_editable_table.html

 

 

import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnPixelData;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;

public class ColumnLabelProviderDemonstrate extends ApplicationWindow {

// ------------------ //
// instance variables //
// ------------------ //

// Model( of MVC) input
private final Commodity[] input = new Commodity[] {
new Commodity("monitor", 99.8),
new Commodity("key board", 8.4),
new Commodity("mouth", 4.8)
};

private TableViewer commodityTableViewer;


// -------------------- //
// constructor and main //
// -------------------- //
private ColumnLabelProviderDemonstrate() {
super(null);
}

public static void main(String[] args) {
Window w = new ColumnLabelProviderDemonstrate();
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();
}


// ----------------------- //
// contents create methods //
// ----------------------- //

@Override
protected Control createContents(Composite parent) {

Composite composite = new Composite(parent, SWT.NONE);
FillLayout fillLayout = new FillLayout();
composite.setLayout(fillLayout);

createCommodityTableViewer(composite);
commodityTableViewer.setInput(input);

composite.pack();
parent.pack();
return parent;
}

protected TableViewer createCommodityTableViewer(Composite parent) {
commodityTableViewer = new TableViewer(parent, SWT.FULL_SELECTION);

Table commodityTable = (Table)commodityTableViewer.getControl();

TableLayout tableLayout = new TableLayout();
tableLayout.addColumnData(new ColumnPixelData(150));
tableLayout.addColumnData(new ColumnPixelData(100));
commodityTable.setLayout(tableLayout);

commodityTableViewer.setContentProvider(new IStructuredContentProvider() {
@Override
public Object[] getElements(Object inputElement) {
return (Commodity[])inputElement;
}

@Override
public void dispose() {

}

@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

}
});

createNameColumn();
createPriceColumn();

commodityTable.setHeaderVisible(true);

return commodityTableViewer;
}

protected void createNameColumn() {
TableViewerColumn vNameColumn = new TableViewerColumn(commodityTableViewer, SWT.LEFT);
TableColumn nameColumn = vNameColumn.getColumn();
nameColumn.setText("Commodity Name");

vNameColumn.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
return ((Commodity)element).name;
}
});

vNameColumn.setEditingSupport(new EditingSupport(commodityTableViewer) {
@Override
protected boolean canEdit(Object element) {
return true;
}

@Override
protected CellEditor getCellEditor(Object element) {
return new TextCellEditor((Table)commodityTableViewer.getControl());
}

@Override
protected Object getValue(Object element) {
return ((Commodity)element).name;
}

@Override
protected void setValue(Object element, Object value) {
((Commodity)element).name = (String)value;
commodityTableViewer.refresh();
}
});
}

protected void createPriceColumn() {
TableViewerColumn vPriceColumn = new TableViewerColumn(commodityTableViewer, SWT.RIGHT);
TableColumn priceColumn = vPriceColumn.getColumn();
priceColumn.setText("Price");

vPriceColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return "$" + ((Commodity)element).price;
}
});

vPriceColumn.setEditingSupport(new EditingSupport(commodityTableViewer) {
@Override
protected boolean canEdit(Object element) {
return true;
}

@Override
protected CellEditor getCellEditor(Object element) {
TextCellEditor textCellEditor = new TextCellEditor((Table)commodityTableViewer.getControl());

return textCellEditor;
}

@Override
protected Object getValue(Object element) {
return String.valueOf(((Commodity)element).price);
}

@Override
protected void setValue(Object element, Object value) {
try {
double doubleValue = Double.valueOf((String)value);
((Commodity)element).price = doubleValue;
commodityTableViewer.refresh();
} catch (NumberFormatException e) {
return;
}
}
});
}

// ------------ //
// Model of MVC //
// ------------ //
private class Commodity {
public String name;
public double price;

public Commodity(String name, double price) {
this.name = name;
this.price = price;
}
}
}

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
18 이클립스 갑자기 eclipse 실행이 안되는경우 뭉충닷컴 2015-04-16 442
17 이클립스 플러그인 개발시 메뉴에 단축키 적용하기 뭉충닷컴 2013-04-21 3710
16 이클립스 IEditorPart 선택된 값 변환(변경) 뭉충닷컴 2013-04-20 3231
15 이클립스 IEditorPart 선택된 텍스트값 알기 뭉충닷컴 2013-04-20 3651
» 이클립스 이클립스 플러그인 개발 TableViewer 예제 뭉충닷컴 2012-12-02 7684
13 이클립스 이클립스 플러그인시 개발시 IWorkbenchWindow 값 구하기 뭉충닷컴 2012-11-25 4909
12 이클립스 maven 빌드시 Failed to execute goal org.apache.maven.plugins 이런 오류가 날 경우 file 뭉충닷컴 2012-02-24 6948
11 이클립스 이클립스 최적화 및 속도개선 뭉충닷컴 2012-02-07 8603
10 이클립스 이클립스에서 톰캣 메모리 설정 뭉충닷컴 2010-06-29 17307
9 이클립스 이클립스 단축키 공부 플러그인 file 뭉충닷컴 2009-10-21 14180
8 이클립스 Syntax error, parameterized types are only available if source level is 5.0 file 뭉충닷컴 2009-09-22 16967
7 이클립스 Java compiler level does not match the version of the installed Java project facet file 뭉충닷컴 2009-09-22 19770
6 이클립스 Text swt에 키보드 이벤트 ctrl + a 적용하기 뭉충닷컴 2009-05-24 16469
5 이클립스 dialog 창 크기조절 가능하도록(resize) 뭉충닷컴 2009-05-09 17558
4 이클립스 이클립스에서 열려진 파일들의 경로 알기 뭉충닷컴 2009-05-08 12750
3 이클립스 현재 워크스페이스의 경로 가져오기 뭉충닷컴 2009-05-08 14281
2 이클립스 이클립스 플러그인 개발에서 열려진 모든 창 닫기 뭉충닷컴 2009-05-08 12638
1 이클립스 이클립스 플러그인 개발 기초 강좌 file 뭉충닷컴 2009-05-08 12654