📄 nfs_backpanel.java
字号:
package view.sender;
import java.io.File;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetAdapter;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
public class NFS_BackPanel extends Composite {
private ScrolledComposite scrolledComposite = null;
public Composite composite = null;
private ArrayList nfhi_List = new ArrayList();
private DropTarget target;
private Hashtable selectedFiles;
private ArrayList list_NSF_FileHI;
private void createScrolledComposite() {
scrolledComposite = new ScrolledComposite(this, SWT.V_SCROLL | SWT.H_SCROLL| SWT.BORDER);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
// scrolledComposite.setAlwaysShowScrollBars(false);
createComposite();
scrolledComposite.setContent(this.composite);
scrolledComposite.setLayout(new FillLayout());
scrolledComposite.setMinSize(composite.computeSize(SWT.DEFAULT,SWT.DEFAULT));
target = new DropTarget(scrolledComposite, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
target.setTransfer(new Transfer[] {FileTransfer.getInstance()});
target.addDropListener(new DropTargetAdapter() {
public void dragEnter(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT) {
event.detail = (event.operations & DND.DROP_COPY) != 0 ? DND.DROP_COPY : DND.DROP_NONE;
}
for (int i = 0, n = event.dataTypes.length; i < n; i++) {
if (FileTransfer.getInstance().isSupportedType(event.dataTypes[i])) {
event.currentDataType = event.dataTypes[i];
}
}
}
public void dragOver(DropTargetEvent event) {
event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
}
public void drop(DropTargetEvent event) {
if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) {
String[] files = (String[]) event.data;
if (files != null && files.length > 0) {
for(int i = 0; i<files.length;i++){
File f = new File(files[i]);
if (selectedFiles.get(new Integer(f.hashCode()))==null){
selectedFiles.put(new Integer(f.hashCode()),f);
list_NSF_FileHI.add(addNFS_FileHandleItem(f));
}
}
}
}
}
});
}
public void thisDispose(){
if (nfhi_List!=null){
Iterator i = nfhi_List.iterator();
while(i.hasNext()){
NFS_FileHandleItem NTS = (NFS_FileHandleItem)i.next();
if (!NTS.isDisposed()){
NTS.thisDispose();
}
}
}
if ((scrolledComposite!=null)&&!scrolledComposite.isDisposed()) scrolledComposite.dispose();
if ((composite!=null)&&!composite.isDisposed()) composite.dispose();
if ((target!=null)&&!target.isDisposed()) target.dispose();
this.dispose();
this.free();
}
protected void free(){
this.composite = null;
this.nfhi_List = null;
this.scrolledComposite = null;
}
public void packComposite(){
scrolledComposite.setMinSize(composite.computeSize(SWT.DEFAULT,SWT.DEFAULT));
composite.pack();
}
/**
* This method initializes composite
*
*/
public NFS_FileHandleItem addNFS_FileHandleItem(File file){
NFS_FileHandleItem nfhi = new NFS_FileHandleItem(composite,SWT.NONE,scrolledComposite,selectedFiles);
nfhi_List.add(nfhi);
nfhi.setFile(file);
packComposite();
return(nfhi);
}
private void createComposite() {
composite = new Composite(scrolledComposite, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.verticalSpacing = 0;
layout.horizontalSpacing = 0;
composite.setLayout(layout);
composite.setBackground(new Color(Display.getCurrent(), 228, 224, 203));
composite.setSize(composite.computeSize(SWT.DEFAULT,SWT.DEFAULT));
}
/**
* @param args
*/
public NFS_BackPanel(Composite parent, int style,Hashtable selectedFiles,ArrayList list_NSF_FileHI) {
super(parent, style);
this.selectedFiles = selectedFiles;
this.list_NSF_FileHI = list_NSF_FileHI;
initialize();
}
private void initialize() {
this.setLayout(new FillLayout());
createScrolledComposite();
}
} // @jve:decl-index=0:visual-constraint="10,10"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -