package org.phpsrc.eclipse.pti.ui.widgets.listener; import org.eclipse.core.runtime.Assert; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; /** * @since 1.4.0 */ public class TableColumnResizeListener extends ControlAdapter { private int columnToResize; public TableColumnResizeListener() { this(0); } public TableColumnResizeListener(int columnToResize) { Assert.isTrue(columnToResize >= 0); this.columnToResize = columnToResize; } public void controlResized(ControlEvent e) { if (e.widget instanceof Table) { Table table = ((Table) e.widget); TableColumn[] columns = table.getColumns(); if (columns.length > columnToResize) { int width = 0; for (int i = 0; i < columns.length; i++) { if (i != columnToResize) width += columns[i].getWidth(); } columns[columnToResize].setWidth(table.getClientArea().width - 50 - 70); } } } }