swt分割栏
来源:互联网 发布:apache cxf maven 编辑:程序博客网 时间:2024/05/10 00:04
package tests.views;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.DropTargetListener;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.part.ViewPart;
public class SampleView extends ViewPart {
public static final String XDEVICE_ID = "tests.views.SampleView";
public static TreeItem fileItem = null;
public static TreeItem tmssItem = null;
public SampleView() {
}
@Override
public void createPartControl(Composite parent) {
// Composite composite = new Composite(parent, SWT.NONE);
// composite.setLayoutData(new GridData(1, 1, true, false));
// composite.setLayout(new FillLayout(SWT.VERTICAL));
SashForm sashForm = new SashForm(parent, SWT.VERTICAL|SWT.SMOOTH);
// sashForm.setLayoutData(new GridData(2, 1, true, false));
// sashForm.setLayout(new FillLayout(SWT.VERTICAL));
Group upGroup = new Group(sashForm, SWT.NONE);
// upGroup.setLayoutData(new GridData(1, 1, true, true));
upGroup.setLayout(new FillLayout());
// tmss树
final Tree upTree = new Tree(upGroup, SWT.SINGLE);
tmssItem = new TreeItem(upTree, SWT.NONE);
tmssItem.setText("Test Tmss Manager");
new TreeItem(tmssItem, SWT.NULL).setText("tmsskey1");
new TreeItem(tmssItem, SWT.NULL).setText("tmsskey2");
new TreeItem(tmssItem, SWT.NULL).setText("tmsskey3");
new TreeItem(tmssItem, SWT.NULL).setText("tmsskey4");
// 本地文件
Group downGroup = new Group(sashForm, SWT.NONE);
// downGroup.setLayoutData(new GridData(1, 1, true, true));
downGroup.setLayout(new FillLayout());
//
final Tree downTree = new Tree(downGroup, SWT.SINGLE);
fileItem = new TreeItem(downTree, SWT.NONE);
fileItem.setText("Test File Manager");
new TreeItem(fileItem, SWT.NULL).setText("key1");
new TreeItem(fileItem, SWT.NULL).setText("key2");
new TreeItem(fileItem, SWT.NULL).setText("key3");
new TreeItem(fileItem, SWT.NULL).setText("key4");
// 定义拖放源对象
DragSource dragSource = new DragSource(downTree, DND.DROP_MOVE
| DND.DROP_COPY);
// 设置传输的数据为文本型String类型
dragSource.setTransfer(new Transfer[] { TextTransfer.getInstance() });
// 注册拖放源时的事件处理
dragSource.addDragListener(new DragSourceListener() {
public void dragStart(DragSourceEvent event) {
if (downTree.getSelectionCount() == 0)
event.doit = false;
}
public void dragSetData(DragSourceEvent event) {
if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
event.data = downTree.getSelection()[0].getText(0);
fileItem = downTree.getSelection()[0];
}
}
public void dragFinished(DragSourceEvent event) {
}
});
// 定义拖放目标对象
DropTarget dropTarget = new DropTarget(upTree, DND.DROP_MOVE
| DND.DROP_DEFAULT | DND.DROP_COPY);
// 设置目标对象可传输的数据类型
dropTarget.setTransfer(new Transfer[] { TextTransfer.getInstance() });
// 注册目标对象的事件处理
dropTarget.addDropListener(new DropTargetListener() {
public void dragEnter(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT)
event.detail = DND.DROP_COPY;
}
public void dragOperationChanged(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT)
event.detail = DND.DROP_COPY;
}
public void dragOver(DropTargetEvent event) {
event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SELECT;
}
// 当松开鼠标时触发的事件
public void drop(DropTargetEvent event) {
if (event.item == null)
return;
// 首先获得目标对象中拖拽的树节点
TreeItem eventItem = (TreeItem) event.item;
// if(fileItem.getText().equals("Test File Manager"))return ;
if (TextTransfer.getInstance().isSupportedType(
event.currentDataType)) {
// 获得数据源设置的字符串
String s = (String) event.data;
// 在tmss位置插入一个节点
// if (eventItem.getParentItem() == null)
// tmssItem = new TreeItem(eventItem.getParent(), SWT.NONE);
// else
// tmssItem = new TreeItem(eventItem.getParentItem(), SWT.NONE);
// tmssItem.setText(s);
tmssItem = new TreeItem(eventItem, SWT.NONE);
tmssItem.setText(s);
//得到当前选中的对象看是否有子节点
TreeItem treeItem = downTree.getSelection()[0];
if (treeItem.getItems().length != 0) {
TreeItem[] downItems = treeItem.getItems();
for(TreeItem item:downItems) {
TreeItem newItem = new TreeItem(tmssItem, SWT.NONE);
newItem.setText(item.getText());
}
}
// 删除原来的节点
if (downTree != null) {
fileItem.dispose();
}
}
}
public void dragLeave(DropTargetEvent event) {
}
public void dropAccept(DropTargetEvent event) {
}
});
// 对模块进行布局
// GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP)
// .grab(false, false).span(1, 1).applyTo(upGroup);
// GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP)
// .grab(false, false).span(1, 1).applyTo(downGroup);
// sashForm.setWeights(new int[] {1, 1});
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
}
- swt分割栏
- SWT:分割窗口
- SWT
- SWT
- swt
- swt
- swt
- swt
- swt
- SWT
- SWT
- SWT
- 分割
- 分割
- 分割
- 分割
- 分割
- 分割
- js实现收缩的下拉菜单
- 【转】CentOS5, 手动启动Oracle
- 网站SEO优化中的标题关键词和mata标签
- 1 绘制一个矩形
- 【Krusual求伪森林】HDU 3367
- swt分割栏
- 理解Javascript的闭包
- 【转】【C/C++】枚举enum学习小记
- 从需求变更唤醒植物人程序员说开去
- 一日一点RakNet(15)--SystemAddress
- 用GDB调试程序(一)(转载)
- java对cookie的操作
- API SOCKET基础(4)网络字节序与主机字节序的转换
- 实现SVG图片放大缩小(zoom)与拖动(pan)的方法