/*******************************************************************************
* Copyright (c) 2013 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.engine.sql.util.tables;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.PlatformUI;
/**
* swt tree utils
*
* @author hangum
*
*/
public class TreeUtil {
/**
* column pack util
*
* @param tree
*/
public static void packTree(Tree tree) {
if(null == tree) return;
for(int i=0; i<tree.getColumnCount(); i++) {
tree.getColumn(i).pack();
}
Listener listener = new Listener() {
@Override
public void handleEvent(Event e) {
final TreeItem treeItem = (TreeItem)e.item;
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
for (TreeColumn tc: treeItem.getParent().getColumns()) {
tc.pack();
}
} // end run
});
}
};
tree.addListener(SWT.Collapse, listener);
tree.addListener(SWT.Expand, listener);
}
}