45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:SWT中的拖放功能如何?

SWT中的拖放功能如何?

2016-09-05 15:29:21 来源:www.45fan.com 【

SWT中的拖放功能如何?

最近在项目开发中需要对树(Tree)的层次结构进行调整,由于SWT是基于操作系统的事件模型的一种开发控件,所以想到利用鼠标的拖放功能对树的节点进行移动,即直观也提高了客户体验。

SWT的拖放功能的实现主要使用了DragSource、DropTarget这两个类,开发人员只需要实现其事件的接口,既可以对控件上的文本、HTML、RTF及附件进行拖放操作,即把一个控件上的文本、HTML、RTF及附件拖放到另一个控件。

Tree是由TreeItem控件组成,所以移动树节点就相当于移动TreeItem,这里并非真的移动控件,而是把源控件的信息(文本、HTML、RTF及附件)通过事件传递到目标控件,目标控件也是新创建的,如果不是复制而只是移动,则要把源控件销毁掉。

例子实现思路及源代码:本例子为左边是目标树,右边是用TabFolder实现了几棵源树,同时目标树本身也是源树,即实现多个源对单个目标进行操作。实现过程把几个源树放到了一个Tree[ ]集合里,用于分清源树到底是哪一棵,才能得到在源树上的选择的节点。本例的主要功能是:实现把其他源树的节点移动到某一个目标树上,同时实现目标树上的节点自由替换位置。

代码:

SWT中的拖放功能如何?SWT中的拖放功能如何?publicclassSetSubSWTextendsDialog{
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedTreesubtree;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedTreepreTree;//单位
SWT中的拖放功能如何?
SWT中的拖放功能如何?protectedTreeroomTree;//科室
SWT中的拖放功能如何?
SWT中的拖放功能如何?protectedTableunitTable;//科室
SWT中的拖放功能如何?
SWT中的拖放功能如何?protectedDisplaydisplay;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedShellshell;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedTreetree;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedListnewList=newArrayList();
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedListmodifyList=newArrayList();
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedListdeleteList=newArrayList();
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedMapmap=newHashMap();
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedMapmapSave=newHashMap();
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedObjectresult;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedSashFormmainSashForm;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedTextTransfertextTransfer;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedFileTransferfileTransfer;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedTree[]eachTrees;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
//protectedTreeItem[]dragSourceItem;
SWT中的拖放功能如何?
SWT中的拖放功能如何?protectedintindex;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
protectedMapdataMap;//缓存
SWT中的拖放功能如何?
SWT中的拖放功能如何?protectedListtypeList;//缓存
SWT中的拖放功能如何?
SWT中的拖放功能如何?protectedMaprelMap;//缓存
SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?/**
SWT中的拖放功能如何?*Createthedialog
SWT中的拖放功能如何?*
SWT中的拖放功能如何?*
@paramparent
SWT中的拖放功能如何?*
@paramstyle
SWT中的拖放功能如何?
*/

SWT中的拖放功能如何?publicSetSubSWT(Shellparent,Treesubtree,MapdataMap,ListtypeList,
SWT中的拖放功能如何?SWT中的拖放功能如何?MaprelMap,
intstyle){
SWT中的拖放功能如何?
super(parent,style);
SWT中的拖放功能如何?
this.subtree=subtree;
SWT中的拖放功能如何?
this.dataMap=dataMap;
SWT中的拖放功能如何?
this.typeList=typeList;
SWT中的拖放功能如何?
this.relMap=relMap;
SWT中的拖放功能如何?}

SWT中的拖放功能如何?
SWT中的拖放功能如何?
///**
SWT中的拖放功能如何?
//*Createthedialog
SWT中的拖放功能如何?
//*@paramparent
SWT中的拖放功能如何?
//*/
SWT中的拖放功能如何?
//publicSetSubSWT(Shellparent){
SWT中的拖放功能如何?
//this(parent,SWT.NONE);
SWT中的拖放功能如何?
//}
SWT中的拖放功能如何?
SWT中的拖放功能如何?
///**
SWT中的拖放功能如何?
//*Launchtheapplication
SWT中的拖放功能如何?
//*
SWT中的拖放功能如何?
//*@paramargs
SWT中的拖放功能如何?
//*/
SWT中的拖放功能如何?
//publicstaticvoidmain(String[]args){
SWT中的拖放功能如何?
//try{
SWT中的拖放功能如何?
//System.out.println("args[0]=="+args[0]);
SWT中的拖放功能如何?
//SWTDataViewUtil.httpUrl=args[0]+"/subactionswt.do?action=";
SWT中的拖放功能如何?
//SetSubSWTwindow=newSetSubSWT();
SWT中的拖放功能如何?
//window.open();
SWT中的拖放功能如何?
//}catch(Exceptione){
SWT中的拖放功能如何?
//e.printStackTrace();
SWT中的拖放功能如何?
//}
SWT中的拖放功能如何?
//}
SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?/**
SWT中的拖放功能如何?*Openthewindow
SWT中的拖放功能如何?
*/

SWT中的拖放功能如何?SWT中的拖放功能如何?publicObjectopen(){
SWT中的拖放功能如何?display
=getParent().getDisplay();
SWT中的拖放功能如何?
SWT中的拖放功能如何?createContents();
SWT中的拖放功能如何?shell.open();
SWT中的拖放功能如何?shell.layout();
SWT中的拖放功能如何?SWT中的拖放功能如何?
while(!shell.isDisposed()){
SWT中的拖放功能如何?
if(!display.readAndDispatch())
SWT中的拖放功能如何?display.sleep();
SWT中的拖放功能如何?}

SWT中的拖放功能如何?returnresult;
SWT中的拖放功能如何?}

SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?
/**
SWT中的拖放功能如何?*Createcontentsofthewindow
SWT中的拖放功能如何?
*/

SWT中的拖放功能如何?SWT中的拖放功能如何?protectedvoidcreateContents(){
SWT中的拖放功能如何?shell
=newShell();
SWT中的拖放功能如何?shell.setLayout(
newFillLayout());
SWT中的拖放功能如何?shell.setText(
"会计科目设置");
SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?
/*
SWT中的拖放功能如何?*Transfer是一个可以提供数据在Javarepresentation与platformspecific
SWT中的拖放功能如何?*representation之间交互的抽象类.下面是几个format:TextTransferString"hello
SWT中的拖放功能如何?*world"RTFTransferString"{/rtf1/b/ihelloworld}"FileTransfer
SWT中的拖放功能如何?*String[]newString[]{file1.getAbsolutePath(),
SWT中的拖放功能如何?*file2.getAbsolutePath()}
SWT中的拖放功能如何?*
SWT中的拖放功能如何?*TransferData包含了很多特定于平台的公用的属性,应用不应该直接去访问这些属性。
SWT中的拖放功能如何?*如果真的有必要去访问这些属性,那么我们可以通过扩展Transfer类来完成对特定平台的额外操作。
SWT中的拖放功能如何?
*/

SWT中的拖放功能如何?textTransfer=TextTransfer.getInstance();
SWT中的拖放功能如何?fileTransfer
=FileTransfer.getInstance();
SWT中的拖放功能如何?
SWT中的拖放功能如何?
//finalColorred=display.getSystemColor(SWT.COLOR_GREEN);
SWT中的拖放功能如何?
//finalColoryellow=display.getSystemColor(SWT.COLOR_GRAY);
SWT中的拖放功能如何?
//tree.addListener(SWT.EraseItem,newListener(){
SWT中的拖放功能如何?
//publicvoidhandleEvent(Eventevent){
SWT中的拖放功能如何?
//if((event.detail&SWT.SELECTED)==0)
SWT中的拖放功能如何?
//return;/*itemnotselected*/
SWT中的拖放功能如何?
//intclientWidth=tree.getClientArea().width;
SWT中的拖放功能如何?
//GCgc=event.gc;
SWT中的拖放功能如何?
//ColoroldForeground=gc.getForeground();
SWT中的拖放功能如何?
//ColoroldBackground=gc.getBackground();
SWT中的拖放功能如何?
//gc.setForeground(red);
SWT中的拖放功能如何?
//gc.setBackground(yellow);
SWT中的拖放功能如何?
//gc.fillGradientRectangle(0,event.y,clientWidth,event.height,
SWT中的拖放功能如何?
//false);
SWT中的拖放功能如何?
//gc.setForeground(oldForeground);
SWT中的拖放功能如何?
//gc.setBackground(oldBackground);
SWT中的拖放功能如何?
//event.detail&=~SWT.SELECTED;
SWT中的拖放功能如何?
//}
SWT中的拖放功能如何?
//});
SWT中的拖放功能如何?
SWT中的拖放功能如何?shell.setMaximized(true);
SWT中的拖放功能如何?
//Canvascanvas=newCanvas(shell,SWT.BORDER);
SWT中的拖放功能如何?
//canvas.setLayout(newFillLayout());
SWT中的拖放功能如何?
SWT中的拖放功能如何?mainSashForm=newSashForm(shell,SWT.HORIZONTAL);
SWT中的拖放功能如何?mainSashForm.setBackground(shell.getDisplay().getSystemColor(
SWT中的拖放功能如何?SWT.COLOR_TITLE_BACKGROUND));
SWT中的拖放功能如何?
finalGroupleftGroup=newGroup(mainSashForm,SWT.NONE|SWT.CENTER);
SWT中的拖放功能如何?leftGroup.setText(
"会计科目");
SWT中的拖放功能如何?leftGroup.setLayout(
newFillLayout());
SWT中的拖放功能如何?
finalTabFoldersubtabFolder=newTabFolder(leftGroup,SWT.NONE);
SWT中的拖放功能如何?
SWT中的拖放功能如何?
finalTabItemsubtabItem=newTabItem(subtabFolder,SWT.NONE);
SWT中的拖放功能如何?subtabItem.setText(
"会计科目");
SWT中的拖放功能如何?tree
=newTree(subtabFolder,SWT.FULL_SELECTION);
SWT中的拖放功能如何?tree.setLinesVisible(
true);
SWT中的拖放功能如何?addExistItems();
SWT中的拖放功能如何?SWT中的拖放功能如何?tree.addListener(SWT.Selection,
newListener(){
SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?
publicvoidhandleEvent(Eventevent){
SWT中的拖放功能如何?System.out
SWT中的拖放功能如何?.println(tree.getSelection()[
0].getData("SetSubData"));
SWT中的拖放功能如何?}

SWT中的拖放功能如何?
SWT中的拖放功能如何?}
);
SWT中的拖放功能如何?subtabItem.setControl(tree);
SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?Transfer[]types
=newTransfer[]{TextTransfer.getInstance()};
SWT中的拖放功能如何?
intoperations=DND.DROP_MOVE|DND.DROP_COPY|DND.DROP_LINK;
SWT中的拖放功能如何?
SWT中的拖放功能如何?
finalDragSourcetreeSource=newDragSource(tree,operations);
SWT中的拖放功能如何?treeSource.setTransfer(types);
SWT中的拖放功能如何?SWT中的拖放功能如何?treeSource.addDragListener(
newDragSourceListener(){
SWT中的拖放功能如何?SWT中的拖放功能如何?
publicvoiddragStart(DragSourceEventevent){
SWT中的拖放功能如何?TreeItem[]selection
=((Tree)((DragSource)event.widget)
SWT中的拖放功能如何?.getControl()).getSelection();
SWT中的拖放功能如何?
//只能移动选中并且为最子结点。
SWT中的拖放功能如何?
//if(selection.length>0
SWT中的拖放功能如何?
//&&selection[0].getItemCount()==0){//选中并且为最子结点。
SWT中的拖放功能如何?SWT中的拖放功能如何?if(selection.length>0){
SWT中的拖放功能如何?event.doit
=true;
SWT中的拖放功能如何?
//intselectedCount=((Tree)((DragSource)
SWT中的拖放功能如何?
//event.widget)
SWT中的拖放功能如何?
//.getControl()).getSelection().length;
SWT中的拖放功能如何?
//dragSourceItem=newTreeItem[selectedCount];
SWT中的拖放功能如何?
//for(inti=0;i<selectedCount;i++){
SWT中的拖放功能如何?
//dragSourceItem[i]=selection[i];
SWT中的拖放功能如何?
//}
SWT中的拖放功能如何?SWT中的拖放功能如何?}
else{
SWT中的拖放功能如何?event.doit
=false;
SWT中的拖放功能如何?}

SWT中的拖放功能如何?}
;
SWT中的拖放功能如何?
SWT中的拖放功能如何?SWT中的拖放功能如何?
publicvoiddragSetData(DragSourceEventevent){
SWT中的拖放功能如何?event.data
=String.valueOf(typeList.size());//最后一个是保存左边树,用于移动节点位置用。;

本文地址:http://www.45fan.com/dnjc/72766.html
Tags: 中的 拖放 SWT
编辑:路饭网
  • 上一篇:加载arcgis中图层的方法
  • 下一篇:JSP知识
  • 关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部