下面列出了org.eclipse.jface.viewers.ICheckStateListener#org.eclipse.swt.widgets.TableColumn 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void addUserNameColumn(final StructuredViewer viewer) {
final TableViewerColumn column = new TableViewerColumn((TableViewer) viewer, SWT.FILL);
final TableColumn usernameColumn = column.getColumn();
column.getColumn().setText(Messages.userName);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(final Object element) {
return ((User) element).getUserName();
}
});
column.getColumn().setWidth(90);
column.getColumn().setMoveable(false);
column.getColumn().setResizable(true);
final TableColumnSorter sorter = new TableColumnSorter((TableViewer) viewer);
sorter.setColumn(usernameColumn);
}
/**
* 设置列属性 ;
*/
private void setColumnType() {
if (cols < 2) {
MessageDialog.openInformation(getShell(), Messages.getString("dialog.TBXMakerDialog.msgTitle"),
Messages.getString("dialog.TBXMakerDialog.msg2"));
return;
}
Vector<ColProperties> colTypes = new Vector<ColProperties>(cols);
for (int i = 0; i < cols; i++) {
colTypes.add((ColProperties) table.getColumn(i).getData());
}
ColumnTypeDialog selector = new ColumnTypeDialog(getShell(), colTypes, template, imagePath);
if (selector.open() == IDialogConstants.OK_ID) {
for (int i = 0; i < cols; i++) {
TableColumn col = table.getColumn(i);
ColProperties type = colTypes.get(i);
if (!type.getColName().equals("") && !type.getLanguage().equals("")) { //$NON-NLS-1$ //$NON-NLS-2$
col.setText(type.getColName());
}
}
}
}
/**
* Pack the columns.
*
* @return true if this is the first call to pack columns
*
* @since 2.0
*/
protected boolean packColumns() {
boolean packDone = fPackDone;
fTable.setRedraw(false);
try {
int horizontalPos = fTable.getHorizontalBar().getSelection();
TableColumn tableColumns[] = fTable.getColumns();
for (int i = 0; i < tableColumns.length; i++) {
final TableColumn column = tableColumns[i];
if (Objects.equals(column.getData(Key.WIDTH), SWT.DEFAULT)) {
packSingleColumn(i, column);
}
}
if (!IS_WIN32) {
/* Bug 410369: Cannot programmatically scroll on Windows */
fTable.getHorizontalBar().setSelection(horizontalPos);
}
} finally {
// Make sure that redraw is always enabled.
fTable.setRedraw(true);
}
fPackDone = true;
return !packDone;
}
public static TableViewerColumn createDosageColumn(TableViewer viewer,
TableColumnLayout layout, int columnIndex){
TableViewerColumn ret = new TableViewerColumn(viewer, SWT.NONE);
ret.setLabelProvider(new MedicationCellLabelProvider() {
@Override
public String getText(Object element){
MedicationTableViewerItem pres = (MedicationTableViewerItem) element;
String dosis = pres.getDosis();
return (dosis.equals(StringConstants.ZERO) ? Messages.MedicationComposite_stopped
: dosis);
}
});
TableColumn tblclmnDosage = ret.getColumn();
tblclmnDosage.setToolTipText(Messages.TherapieplanComposite_tblclmnDosage_toolTipText);
tblclmnDosage.addSelectionListener(getSelectionAdapter(viewer, tblclmnDosage, columnIndex));
layout.setColumnData(tblclmnDosage, new ColumnPixelData(60, true, true));
ret.getColumn().setText(Messages.TherapieplanComposite_tblclmnDosage_text);
return ret;
}
private void createComparisonTable(Composite composite) {
GridData tableGridData = new GridData();
tableGridData.horizontalSpan = 2;
tableGridData.heightHint = 100;
tableGridData.horizontalAlignment = GridData.FILL;
tableGridData.grabExcessHorizontalSpace = true;
this.comparisonTable = new Table(composite, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
this.comparisonTable.setLayoutData(tableGridData);
this.comparisonTable.setHeaderVisible(true);
this.comparisonTable.setLinesVisible(true);
TableColumn referencedColumn = new TableColumn(this.comparisonTable,
SWT.NONE);
referencedColumn.setWidth(COLUMN_WIDTH);
referencedColumn.setText(ResourceString
.getResourceString("label.reference.column"));
TableColumn foreignKeyColumn = new TableColumn(this.comparisonTable,
SWT.NONE);
foreignKeyColumn.setWidth(COLUMN_WIDTH);
foreignKeyColumn.setText(ResourceString
.getResourceString("label.foreign.key"));
}
public static TableViewerColumn createStopColumn(TableViewer viewer, TableColumnLayout layout,
int columnIndex){
TableViewerColumn ret = new TableViewerColumn(viewer, SWT.CENTER);
TableColumn tblclmnStop = ret.getColumn();
ColumnPixelData stopColumnPixelData = new ColumnPixelData(60, true, true);
layout.setColumnData(tblclmnStop, stopColumnPixelData);
tblclmnStop.setImage(Images.resize(Images.IMG_ARROWSTOP_WO_SHADOW.getImage(),
ImageSize._12x12_TableColumnIconSize));
tblclmnStop.setToolTipText(Messages.MedicationComposite_column_sortBy + " "
+ Messages.MedicationComposite_column_endDate);
tblclmnStop.addSelectionListener(getSelectionAdapter(viewer, tblclmnStop, columnIndex));
ret.setLabelProvider(new MedicationCellLabelProvider() {
@Override
public String getText(Object element){
MedicationTableViewerItem pres = (MedicationTableViewerItem) element;
if (pres.getEntryType() != EntryType.RECIPE
&& pres.getEntryType() != EntryType.SELF_DISPENSED) {
return pres.getEndDate();
}
return "";
}
});
return ret;
}
/**
* Returns true if the column is expanded to take extra available space.
* This is the last non-zero-width visible column in the column order on
* Linux. This column's width should not be persisted.
*
* @param column
* the column
* @return true if the column is expanded.
*/
private static boolean isExpanded(TableColumn column) {
if (IS_LINUX) {
Table table = column.getParent();
int[] order = table.getColumnOrder();
for (int i = order.length - 1; i >= 0; i--) {
TableColumn col = table.getColumn(order[i]);
if (col == column) {
return true;
}
if (col.getWidth() > 0) {
return false;
}
}
}
return false;
}
/**
* Saves the sorting state to the dialog settings.
*/
private void saveState() {
IDialogSettings settings = mSettingsProvider != null ? mSettingsProvider.getTableSettings()
: null;
if (settings == null) {
return;
}
settings.put(TAG_COLUMN_INDEX, mSortedColumnIndex);
settings.put(TAG_SORT_DIRECTION, mSortDirection);
// store the column widths
TableColumn[] columns = this.getTable().getColumns();
for (int i = 0, size = columns.length; i < size; i++) {
int width = columns[i].getWidth();
if (width > 0) {
settings.put(TAG_COLUMN_WIDTH + i, width);
}
}
// store the selection
settings.put(TAG_CURRENT_SELECTION, this.getTable().getSelectionIndex());
}
/**
* Defines what columns the drop down table will have.
* @param columnHeaders
* @param columnBounds
*/
private void defineColumnsInternal(String[] columnHeaders, int[] columnBounds, int totalColumnsToBeCreated) {
checkWidget();
int totalColumnHeaders = columnHeaders == null ? 0 : columnHeaders.length;
int totalColBounds = columnBounds == null ? 0 : columnBounds.length;
if (totalColumnsToBeCreated > 0) {
for (int index = 0; index < totalColumnsToBeCreated; index++) {
TableColumn column = new TableColumn(table, SWT.NONE);
if (index < totalColumnHeaders) {
column.setText(columnHeaders[index]);
}
if (index < totalColBounds) {
column.setWidth(columnBounds[index]);
}
column.setResizable(true);
column.setMoveable(true);
}
}
}
private void setSortColumn(
TableColumn column, int colIndex, int direction) {
ITableLabelProvider labelProvider =
(ITableLabelProvider) kindViewer.getLabelProvider();
ViewerComparator sorter = new AlphabeticSorter(
new LabelProviderToString(labelProvider, colIndex));
if (SWT.UP == direction) {
sorter = new InverseSorter(sorter);
}
Table tableControl = (Table) kindViewer.getControl();
kindViewer.setComparator(sorter);
tableControl.setSortColumn(column);
tableControl.setSortDirection(direction);
}
public void adjustColumnWidth(TableColumn column) {
int minimumWidth = 0;
String headerText = column.getText();
if( headerText != null && headerText.length() > 0 ) {
GC gc = new GC(this.getControl());
minimumWidth = (gc.stringExtent(headerText).x + (TABLE_COLUMN_MARGIN * 2));
gc.dispose();
}
column.pack();
if( column.getWidth() < minimumWidth ) {
column.setWidth(minimumWidth);
}
}
private void initTable(final Composite parent) {
final GridData gridData = new GridData();
gridData.horizontalSpan = 3;
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = GridData.FILL;
gridData.heightHint = 200;
indexTable = new Table(parent, SWT.BORDER | SWT.HIDE_SELECTION);
indexTable.setHeaderVisible(true);
indexTable.setLayoutData(gridData);
indexTable.setLinesVisible(true);
CompositeFactory.createTableColumn(indexTable, "label.column.name", -1);
final TableColumn separatorColumn = CompositeFactory.createTableColumn(indexTable, "", 3);
separatorColumn.setResizable(false);
}
private void addPackListener() {
getControl().addListener(SWT.SetData, new Listener() {
@Override
public void handleEvent(@Nullable Event event) {
// Remove the listener before the pack
getControl().removeListener(SWT.SetData, this);
// Pack the column the first time data is set
TableViewer tableViewer = getTableViewer();
if (tableViewer != null) {
for (TableColumn col : tableViewer.getTable().getColumns()) {
col.pack();
}
}
}
});
}
/**
* Clears the table.
*/
public void clear() {
this.selectedKey = null;
this.keys = null;
this.selectedProperty = null;
this.keyProperties = null;
this.properties = null;
this.permitted = null;
this.pageableTable.setRedraw(false);
for (TableColumn c : this.pageableTable.getViewer().getTable().getColumns()) {
c.dispose();
}
this.pageableTable.setRedraw(true);
}
@Override
public void cellFocusLost( int rowIndex ) {
List<Integer> nonEmptyIndexesBeforeChanges = wFields.getNonEmptyIndexes();
wFields.nrNonEmpty();
List<Integer> nonEmptyIndexesAfterChanges = wFields.getNonEmptyIndexes();
if ( CollectionUtils.isEqualCollection( nonEmptyIndexesBeforeChanges, nonEmptyIndexesAfterChanges ) ) {
//count of fields rows didn't change
return;
}
Collection<Integer>
disjunction = CollectionUtils.disjunction( nonEmptyIndexesBeforeChanges, nonEmptyIndexesAfterChanges );
Integer disjunctionIdx = (Integer) disjunction.toArray()[0];
if ( nonEmptyIndexesAfterChanges.contains( disjunctionIdx ) ) {
// new Field was added
Integer idxByValue = getIdxByValue( nonEmptyIndexesAfterChanges, disjunctionIdx );
if ( idxByValue == null ) {
return; //can not happen (preventing warnings)
}
idxByValue++; //data table have one technical column
TableColumn column = new TableColumn( wData.table, SWT.NONE, idxByValue );
column.pack();
} else {
// Field was deleted
Integer removeColumn = getIdxByValue( nonEmptyIndexesBeforeChanges, disjunctionIdx );
if ( removeColumn == null ) {
return; //can not happen (preventing warnings)
}
removeColumn++; //data table have one technical column
wData.table.getColumn( removeColumn ).dispose();
wFields.nrNonEmpty();
}
}
private void createColumns() {
TableLayout layout = new TableLayout();
getTable().setLayout(layout);
getTable().setHeaderVisible(true);
for (int i = 0; i < columnHeaders.length; i++) {
layout.addColumnData(columnLayouts[i]);
TableColumn tc = new TableColumn(getTable(), SWT.NONE,i);
tc.setResizable(columnLayouts[i].resizable);
tc.setText(columnHeaders[i]);
}
}
private void initializeColumns() {
this.tableColumns = new ArrayList();
for (int i = 0; i < columnLabelStrings.length; i++) {
TableColumn column = new TableColumn(headerTable, columnAlignments[i]);
column.setMoveable(movable);
column.setResizable(resizable);
column.setText(columnLabelStrings[i]);
this.tableColumns.add(column);
column.addControlListener(columnControlListener);
column.addSelectionListener(columnSelectionListener);
}
}
private TableViewerColumn createTableViewerColumn(final String title, final int bound, final int colNumber) {
final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
final TableColumn column = viewerColumn.getColumn();
column.setText(title);
column.setWidth(bound);
column.setResizable(true);
column.setMoveable(true);
column.addSelectionListener(getSelectionAdapter(column, title));
viewerColumn.setLabelProvider(getColumnLabelProvider(title));
return viewerColumn;
}
public void addColumn(ExtendedTableColumn column) {
TableColumn tc = new TableColumn(tableViewer.getTable(),
column.getStyle());
tc.setText(column.getLabel());
tc.setWidth(column.getWidth());
tc.setMoveable(true);
new TableColumnSorter(tableViewer, tc, columnIndex++);
}
/**
* テーブルヘッダーをセットする
*/
private void setTableHeader() {
for (int i = 0; i < this.header.length; i++) {
TableColumn col = new TableColumn(this.table, SWT.LEFT);
col.setText(this.header[i]);
}
this.packTableHeader();
}
private TableViewerColumn createTableViewerColumn(String title, int weight, int colNumber,
int style){
final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, style);
final TableColumn column = viewerColumn.getColumn();
column.setText(title);
column.setResizable(true);
column.setMoveable(false);
tableLayout.setColumnData(column, new ColumnWeightData(weight));
return viewerColumn;
}
private void saveResults() {
FileDialog fd = new FileDialog(getSite().getWorkbenchWindow().getShell(), SWT.SAVE);
fd.setText("Save Results");
String[] filterExt = { "*.txt" };
fd.setFilterExtensions(filterExt);
String selected = fd.open();
if(selected != null) {
try {
BufferedWriter out = new BufferedWriter(new FileWriter(selected));
Table table = tableViewer.getTable();
TableColumn[] columns = table.getColumns();
for(int i=0; i<columns.length; i++) {
if(i == columns.length-1)
out.write(columns[i].getText());
else
out.write(columns[i].getText() + "\t");
}
out.newLine();
for(int i=0; i<table.getItemCount(); i++) {
TableItem tableItem = table.getItem(i);
for(int j=0; j<table.getColumnCount(); j++) {
if(j == table.getColumnCount()-1)
out.write(tableItem.getText(j));
else
out.write(tableItem.getText(j) + "\t");
}
out.newLine();
}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static TableViewerColumn createTableViewerColumn(
TableViewer viewer, String title, int bound) {
final TableViewerColumn viewerColumn = new TableViewerColumn(viewer,
SWT.NONE);
final TableColumn column = viewerColumn.getColumn();
column.setText(title);
column.setWidth(bound);
column.setResizable(true);
column.setMoveable(true);
return viewerColumn;
}
private void addColumn(Exchange product) {
Column newColumn = new Column(product);
Table table = viewer.getTable();
TableColumn tableColumn = new TableColumn(table, SWT.VIRTUAL);
tableColumn.setText(newColumn.getTitle());
tableColumn.setToolTipText(newColumn.getTitle());
tableColumn.setWidth(80);
Column[] newColumns = new Column[columns.length + 1];
System.arraycopy(columns, 0, newColumns, 0, columns.length);
newColumns[columns.length] = newColumn;
columns = newColumns;
if (editor.hasAnyComment("allocationFactors")) {
new TableColumn(table, SWT.VIRTUAL).setWidth(24);
}
}
@Override
public void widgetSelected(SelectionEvent e){
TableColumn sortColumn = tableViewerInvoiceList.getTable().getSortColumn();
TableColumn selectedColumn = (TableColumn) e.widget;
int sortDirection = tableViewerInvoiceList.getTable().getSortDirection();
if (sortColumn == selectedColumn) {
sortDirection = sortDirection == SWT.UP ? SWT.DOWN : SWT.UP;
} else {
tableViewerInvoiceList.getTable().setSortColumn(selectedColumn);
sortDirection = SWT.UP;
}
setSortOrder(selectedColumn, sortDirection);
}
/**
* Constructs a new instance of this object.
*
* @param w the widget.
* @throws WidgetNotFoundException if the widget is <code>null</code> or widget has been disposed.
* @since 2.0
*/
public SWTBotTableComboColumn(final TableColumn w) throws WidgetNotFoundException {
this(w, UIThreadRunnable.syncExec(new WidgetResult<Table>() {
public Table run() {
return w.getParent();
}
}));
}
public void setColumnName(int column, String name) {
if( column >= 0 && column < this.getColumns() ) {
this.getControl().setHeaderVisible(true);
TableColumn tableColumn = this.getControl().getColumn(column);
tableColumn.setText(name);
if( this.isVisible() ) {
this.updateManager.setUpdateRequired();
}
}
}
private static TableViewerColumn createTableViewerColumn(
TableViewer viewer, String title, int bound) {
final TableViewerColumn viewerColumn = new TableViewerColumn(viewer,
SWT.NONE);
final TableColumn column = viewerColumn.getColumn();
column.setText(title);
column.setWidth(bound);
column.setResizable(true);
column.setMoveable(true);
return viewerColumn;
}
private Control createTable(Composite parent) {
Composite c= new Composite(parent, SWT.NONE);
GridLayout gl= new GridLayout();
gl.numColumns= 2;
gl.marginWidth= 0;
gl.marginHeight= 0;
c.setLayout(gl);
fTable= new Table(c, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.BORDER);
fTable.setFont(parent.getFont());
GridData tableGD= new GridData(GridData.FILL_BOTH);
tableGD.heightHint= SWTUtil.getTableHeightHint(fTable, ROW_COUNT);
//tableGD.widthHint= 40;
fTable.setLayoutData(tableGD);
fTable.setLinesVisible(true);
TableLayout layout= new TableLayout();
fTable.setLayout(layout);
fTable.setHeaderVisible(true);
ColumnLayoutData[] columnLayoutData= new ColumnLayoutData[SIZE];
columnLayoutData[STATE_PROP]= new ColumnPixelData(18, false, true);
columnLayoutData[KEY_PROP]= new ColumnWeightData(40, true);
columnLayoutData[VAL_PROP]= new ColumnWeightData(40, true);
for (int i= 0; i < fgTitles.length; i++) {
TableColumn tc= new TableColumn(fTable, SWT.NONE, i);
tc.setText(fgTitles[i]);
layout.addColumnData(columnLayoutData[i]);
tc.setResizable(columnLayoutData[i].resizable);
}
createButtonComposite(c);
return c;
}
@Override
protected Table getParent(SelectionEvent e) {
// 1) Get table column which fire this selection event
TableColumn tableColumn = (TableColumn) e.getSource();
// 2) Get the owner table
return tableColumn.getParent();
}