Eclipse插件开发- view to view drag drop
2013-08-30 10:46
393 查看
定义Drop:
package public_project.view.dnd; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerDropAdapter; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.DropTargetEvent; import org.eclipse.swt.dnd.TransferData; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.TreeItem; import public_project.view.model.descriptors.ProjectDetail; import public_project.view.model.descriptors.ProjectGroup; public class ViewDropListener extends ViewerDropAdapter { private TreeViewer treeViewer; public ViewDropListener(Viewer viewer) { super(viewer); this.treeViewer = (TreeViewer) viewer; } @Override public void drop(DropTargetEvent event) { if (event.data == null) { event.detail = DND.DROP_NONE; return; } String [] strData = (String[]) event.data; String text = (String) strData[0]; if (event.item == null) { MessageDialog.openWarning(Display.getCurrent().getActiveShell(), "哈哈!!", "哈哈哈!!!!你想多了。!!!功能太鸡肋,不开放!!"); } else { TreeItem item = (TreeItem) event.item; Object objItem = item.getData(); if(objItem instanceof ProjectGroup){ ProjectGroup group = (ProjectGroup) objItem; ProjectDetail [] details = group.getProjectDetail(); String addProjectName = text.substring(text.lastIndexOf("\\")+1); // genJar(addProjectName); // ftpUpload(); if(details != null && details.length >0){ //判断是否存在 for(ProjectDetail detail : details){ if(addProjectName.equals(detail.getProjectName())){ return; } } ProjectDetail detail1 = new ProjectDetail(); detail1.setProjectName(addProjectName); detail1.setProjectStatus("0"); group.addProjectDetail(detail1); treeViewer.refresh(); }else{ ProjectDetail detail1 = new ProjectDetail(); detail1.setProjectName(addProjectName); detail1.setProjectStatus("0"); group.addProjectDetail(detail1); treeViewer.refresh(); } } } super.drop(event); } @Override public boolean performDrop(Object data) { return false; } @Override public boolean validateDrop(Object target, int operation, TransferData transferType) { return true; } }定义Drag:
package public_project.view.dnd; import org.eclipse.swt.dnd.DragSourceEvent; import org.eclipse.swt.dnd.DragSourceListener; public class ViewDragListener implements DragSourceListener{ @Override public void dragStart(DragSourceEvent event) { System.out.println(); } @Override public void dragSetData(DragSourceEvent event) { System.out.println(); } @Override public void dragFinished(DragSourceEvent event) { System.out.println(); } }调用:
int operations = DND.DROP_COPY | DND.DROP_MOVE; Transfer[] transferTypes = new Transfer[]{FileTransfer.getInstance()}; treeViewer.addDropSupport(operations, transferTypes, new ViewDropListener(treeViewer)); treeViewer.addDragSupport(operations, transferTypes, new ViewDragListener());
相关文章推荐
- eclipse plugin develop ---how to access eclipse workspace?(eclipse 插件开发)
- rcp(插件开发)org.eclipse.core.commands.NotHandledException: There is no handler to execute for command
- 如何处理eclipse插件开发中的view的显示与隐藏
- eclipse安装maven插件开发WEB项目,解决错误:Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom
- eclipse 安装php插件及配置xampp集成环境开发php项目
- Eclipse(Galileo)下安装插件遇到(Cannot connect to keystore)问题
- 学习eclipse插件开发资源全收集(plugin)
- Eclipse插件开发总结(第二天)
- Eclipse+Pydev插件安装搭建Python开发环境 没有配置好,会报错Project interpreter not specified
- 配置ext4.1的eclipse的开发环境,主要是spket插件的使用
- 开发环境配置-eclipse插件的安装与卸载-3
- groovy笔记之一:搭建开发环境,在eclipse中安装插件
- 开发 Eclipse 插件
- Drag & Drop - From List to VideoDisplay
- eclipse 下用cdt插件开发c c++程序 (转)
- java开发环境eclipse的使用(模块代码折叠、可视化开发插件、生成Jar插件)
- eclipse开发使用recyclerview步骤介绍
- Eclipse下开发安卓出现"Convert To Dalvik Format"错误解决方法
- Visual Editor——eclipse中进行swing的可视化开发的插件
- PyDev插件的安装。在Eclipse下安装Python开发环境。