/*******************************************************************************
* All Right Reserved. Copyright (c) 1998, 2004 Jackwind Li Guojie
*
* Created on 2004-7-14 7:19:55 by JACK $Id$
*
******************************************************************************/
package com.asprise.books.javaui.ch24;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ProtocolCommandEvent;
import org.apache.commons.net.ProtocolCommandListener;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
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.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.Text;
/**
*
*/
public class FTPWindow extends ApplicationWindow {
TableViewer localDirBrowser;
TableViewer remoteDirBrowser;
Label labelPathLocal;
Label labelPathRemote;
StyledText textLog;
ConnectionDialog connectionDialog;
Action actionUpLocalDir;
Action actionUpRemoteDir;
Action actionBrowseLocalDir;
Action actionConnect;
Action actionDisconnect;
Action actionDisplayAbout;
Action actionExit;
FTPClient ftp;
ConnectionInfo connectionInfo;
/**
* @param parentShell
*/
public FTPWindow(Shell parentShell) {
super(parentShell);
createActions();
addStatusLine();
//addCoolBar(SWT.FLAT | SWT.RIGHT);
addToolBar(SWT.FLAT);
addMenuBar();
ftp = new FTPClient();
ftp.addProtocolCommandListener(new ProtocolCommandListener() {
public void protocolCommandSent(ProtocolCommandEvent e) {
logMessage("> " + e.getCommand(), false);
}
public void protocolReplyReceived(ProtocolCommandEvent e) {
logMessage("< " + e.getMessage(), false);
}
});
}
private void createActions() {
// Up one level - local dir
actionUpLocalDir = new Action() {
public void run() {
if (localDirBrowser.getInput() == null)
return;
File dir = ((File) localDirBrowser.getInput()).getParentFile();
if (dir != null) {
localDirBrowser.setInput(dir);
labelPathLocal.setText("Path: " + dir);
}
}
};
actionUpLocalDir.setText("Up");
actionUpLocalDir.setToolTipText("Up one level - local dir");
actionUpLocalDir.setImageDescriptor(
ImageDescriptor.createFromFile(null, "icons/ftp/up.gif"));
// browse for local dir
actionBrowseLocalDir = new Action() {
public void run() {
DirectoryDialog dialog = new DirectoryDialog(getShell());
String path = dialog.open();
if (path == null)
return;
File file = new File(path);
localDirBrowser.setInput(file);
labelPathLocal.setText("Path: " + file);
}
};
actionBrowseLocalDir.setText("Browse...");
actionBrowseLocalDir.setToolTipText("Browse local directory");
actionBrowseLocalDir.setImageDescriptor(
ImageDescriptor.createFromFile(null, "icons/ftp/browse.gif"));
// connect
actionConnect = new Action() {
public void run() {
if (connectionDialog == null)
connectionDialog = new ConnectionDialog(FTPWindow.this);
if (connectionDialog.open() == Dialog.OK) {
connectionInfo = connectionDialog.getConnectionInfo();
if (connectionInfo == null) {
logError("Failed to get connection information.");
} else {
// connects to remote host.
logMessage("Connecting to " + connectionInfo.host, true);
try {
ftp.connect(
connectionInfo.host,
connectionInfo.port);
if (!FTPReply
.isPositiveCompletion(ftp.getReplyCode()))
throw new RuntimeException("FTP server refused connection.");
logMessage("Connected to " + connectionInfo.host, true);
} catch (Exception e) {
logError(e.toString());
return;
}
try {
// logins in.
if (ftp
.login(
connectionInfo.username,
connectionInfo.password)) {
logMessage(
"Logged in as user: "
+ connectionInfo.username, true);
}
// gets current working directory.
labelPathRemote.setText(
"Path: " + ftp.printWorkingDirectory());
// Lists files.
FTPFile[] files = ftp.listFiles();
remoteDirBrowser.setInput(files);
} catch (IOException e1) {
logError(e1.getMessage());
try {
ftp.disconnect();
} catch (IOException e2) {
//
}
}
}
}
}
};
actionConnect.setText("Connect");
actionConnect.setToolTipText("Connect to remote host");
actionConnect.setImageDescriptor(
ImageDescriptor.createFromFile(null, "icons/ftp/connect.gif"));
// disconnect
actionDisconnect = new Action() {
public void run() {
try {
ftp.logout();
ftp.disconnect();
}catch(Exception e) {
logError(e.toString());
}
}
};
actionDisconnect.setText("Disconnect");
actionDisconnect.setToolTipText("Disconnect from remote host");
actionDisconnect.setImageDescriptor(
ImageDescriptor.createFromFile(null, "icons/ftp/stop.gif"));
// up one level - remote dir.
actionUpRemoteDir = new Action() {
public void run() {
try {
if (ftp.changeToParentDirectory()) {
// gets current working directory.
labelPathRemote.setText(
"Path: " + ftp.printWorkingDirectory());
// Lists files.
FTPFile[] files = ftp.listFiles();
remoteDirBrowser.setInput(files);
}
} catch (Exception e) {
logError(e.toString());
}
}
};
actionUpRemoteDir.setText("Up");
actionUpRemoteDir.setToolTipText("Up one level - remote dir");
actionUpRemoteDir.setImageDescriptor(
ImageDescriptor.createFromFile(null, "icons/ftp/up.gif"));
actionDisplayAbout = new Action() {
public void run() {
MessageDialog.openInformation(getShell(), "About", "FTP Client v1.0\nAll right reserved by Jack Li Guojie.");
}
};
actionDisplayAbout.setText("About");
actionDisplayAbout.setImageDescriptor(ImageDescriptor.createFromFile(
没有合适的资源?快使用搜索试试~ 我知道了~
book-pro-java-swt-src-01-2005.zip_beginners
共149个文件
java:145个
jar:2个
zip:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 20 浏览量
2022-09-20
19:41:45
上传
评论
收藏 396KB ZIP 举报
温馨提示
SWT Examples for swt/jface. good for beginners
资源推荐
资源详情
资源评论
收起资源包目录
book-pro-java-swt-src-01-2005.zip_beginners (149个子文件)
commons-net-1.2.2.jar 150KB
jakarta-oro-2.0.8.jar 64KB
FTPWindow.java 20KB
BasicEditor3.java 14KB
BugTrackerJFace.java 12KB
BasicEditor.java 11KB
Main.java 11KB
BrowserExample.java 11KB
BugTracker.java 10KB
BookmarkOrganizer.java 10KB
BasicEditor2.java 10KB
ClassAnalyzer.java 9KB
FileBrowser.java 8KB
SWTBrowser.java 8KB
CustomWidgets.java 7KB
SampleListViewer.java 7KB
FileBrowserJFace.java 7KB
FrontPage.java 6KB
CoolBarExamples.java 6KB
FileViewer.java 6KB
ImagePrintPreviewDialog.java 6KB
ImageViewer.java 6KB
WordOLE.java 6KB
Main.java 6KB
WordJumbles.java 5KB
DialogExamples.java 5KB
JNLPConfiguration.java 5KB
Test.java 5KB
CategoryTree.java 5KB
ControlSizeLocation.java 4KB
CustomerInfoPage.java 4KB
BorderLayout.java 4KB
JNLPCAProcessor.java 4KB
PhotoUploaderAWT.java 4KB
Sample.java 4KB
ReservationWizard.java 4KB
FileBrowser.java 4KB
ConnectionDialog.java 4KB
DoubleBuffer.java 4KB
ToolBarExamples.java 4KB
PICalculator.java 4KB
SimpleFileBrowser.java 4KB
PaymentInfoPage.java 4KB
FocusTraversal.java 4KB
CountNumbers.java 3KB
PhotoUploaderSwing.java 3KB
EmailForm.java 3KB
SharedMenu.java 3KB
TemperatureConverterJFace.java 3KB
PhotoUploaderSWT.java 3KB
SearchStyleText.java 3KB
SampleStyledText.java 3KB
TemperatureConverter.java 3KB
DirFileSelection.java 3KB
Main.java 3KB
FormLayouts.java 3KB
IconSelector.java 3KB
Drawings.java 3KB
BookmarkTransfer.java 3KB
FormattedText.java 3KB
MenuExamples.java 3KB
NumberInputDialog.java 3KB
CopyPaste.java 3KB
RemarksText.java 3KB
DialogShell.java 3KB
Palettes.java 3KB
TabFolderExample.java 3KB
SampleList.java 3KB
BugReport.java 3KB
Animations.java 3KB
RingShell.java 3KB
SampleCombo.java 3KB
Main.java 3KB
SashFormExample.java 3KB
JNLPFormatStrategy.java 2KB
TestToolBar.java 2KB
RemoteDirectoryBrowser.java 2KB
PrintMargin.java 2KB
FileIconUtil.java 2KB
DrawText.java 2KB
EventUtil.java 2KB
ProgressBarExamples.java 2KB
GridLayoutSampleGrabSpace.java 2KB
DrawImages.java 2KB
Layouting.java 2KB
FontRegistryExample.java 2KB
WidgetStyles.java 2KB
SimpleForm.java 2KB
Transparency.java 2KB
GridLayoutSampleSpan.java 2KB
LocalDirectoryBrowser.java 2KB
SetLineBackground.java 2KB
LabelHighlighting.java 2KB
FormLayoutSample.java 2KB
DefaultButton.java 2KB
RadioButtons.java 2KB
LabelHighlighting2.java 2KB
SampleSlider.java 2KB
LabelHighlighting3.java 2KB
ScaleExample.java 2KB
共 149 条
- 1
- 2
资源评论
寒泊
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功