package com.yqt.ui;
import java.io.File;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.Vector;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColorCellEditor;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerEditor;
import org.eclipse.jface.viewers.TableViewerFocusCellManager;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.custom.TreeEditor;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DateTime;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import com.swtdesigner.SWTResourceManager;
import com.yqt.protocol.TcpProtocol;
import com.yqt.socket.bean.CustomFile;
import com.yqt.socket.bean.CustomServer;
import com.yqt.socket.client.CustomTcpClient;
import com.yqt.socket.client.FileClient;
import com.yqt.socket.util.StringUtil;
import com.yqt.ui.bean.BaseDataBean;
import com.yqt.ui.bean.Communicate;
import com.yqt.ui.bean.CurrentState;
import com.yqt.ui.bean.StaticBean;
import com.yqt.ui.provider.RemoteFileLableProvider;
import com.yqt.ui.provider.StandardTableViewerContentProvider;
public class RemoteFileSeeComposite extends BaseComposite {
private Text text_path;
private Table table;
private ToolItem addAppItem;
private ToolItem delAppItem;
private CTabFolder tabFolder;
private CTabItem tableItem;
private TableViewer appTableViewer ;
private List<CustomFile> list_data = new ArrayList<CustomFile>();
public RemoteFileSeeComposite(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout());
final Group group = new Group(this, SWT.NONE);
group.setText("本地路径设置");
group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
final GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 5;
group.setLayout(gridLayout);
final Button checkButton = new Button(group, SWT.CHECK | SWT.NONE);
checkButton.setText("check");
checkButton.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event) {
//下载文件
TableItem [] items = table.getItems();
for(int i=0;i<items.length;i++)
{
items[i].setChecked(checkButton.getSelection());
}
}
});
final Label label = new Label(group, SWT.NONE);
label.setText("下载路径");
text_path = new Text(group, SWT.READ_ONLY | SWT.BORDER);
text_path.setText("C:\\");
text_path.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
final Button button_bowser = new Button(group, SWT.FLAT);
button_bowser.setText("浏览...");
button_bowser.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event) {
DirectoryDialog dlg = new DirectoryDialog(table.getShell());
dlg.setFilterPath(text_path.getText());
dlg.setText("目录选择");
dlg.setMessage("请选择一个存放文件目录");
String dir = dlg.open();
if (dir != null) {
text_path.setText(dir);
}
}
});
final Button button_down = new Button(group, SWT.FLAT);
button_down.setText("批量下载");
button_down.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event) {
//下载文件
TableItem [] items = table.getItems();
for(int i=0;i<items.length;i++)
{
if(items[i].getChecked())
{
//可编辑
final TableEditor process = new TableEditor(table);
Vector list=(Vector)table.getData("process");
list.add(process);
process.horizontalAlignment = SWT.LEFT;
process.grabHorizontal = true;
//process.setItem(table.getItem(i));
final ProgressBar pb = new ProgressBar(table, SWT.HORIZONTAL | SWT.INDETERMINATE);
pb.setMaximum(0);
pb.setMaximum(60);
pb.setToolTipText("正在下载...");
//tableitem.setText("100%");
//CustomProcessBar = new CustomProcessBar();
//CustomProcessBar pb = new CustomProcessBar(table, SWT.HORIZONTAL | SWT.INDETERMINATE);
process.setEditor(pb, items[i], 4);
//得到选择的节点对象
final CustomFile currentFile =(CustomFile)appTableViewer.getElementAt(table.indexOf(items[i]));
TcpProtocol protocol = new TcpProtocol();
protocol.setType(11);
protocol.setValue(currentFile.getPath());
final File file = new File(text_path.getText()+"//"+currentFile.getName());
//CustomTcpClient client = new CustomTcpClient(protocol,RemoteFileSeeViewPart.server.getIp(),RemoteFileSeeViewPart.server.getPort());
//FileClient client2 = new FileClient(protocol1,"135.224.80.81",99);
FileClient client = new FileClient(protocol,CurrentState.server.getIp(),CurrentState.server.getPort());
Communicate comm = new Communicate(Display.getCurrent(),client,protocol,text_path.getText()+"//"+currentFile.getName());
//启动新线程
Thread thread = new Thread(comm);
thread.start();
}
}
}
});
tabFolder = new CTabFolder(this, SWT.BOTTOM|SWT.FILL);
tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
tabFolder.setVisible(true);
tableItem = new CTabItem(tabFolder, SWT.NONE);
tableItem.setText("文件视图");
appTableViewer = new TableViewer(tabFolder,SWT.VIRTUAL | SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER |SWT.CHECK );
table = appTableViewer.getTable();
table.setHeaderVisible(true);
appTableViewer.getTable().setHeaderVisible(true);
appTableViewer.getTable().setLinesVisible(true);
TableColumn tabColmun = new TableColumn(table, SWT.LEFT);
tabColmun.setWidth(300);
tabColmun.setText("文件名");
tabColmun = new TableColumn(table, SWT.LEFT);
tabColmun.setWidth(80);
tabColmun.setText("大小(kb)");
tabColmun = new TableColumn(table, SWT.LEFT);
tabColmun.setWidth(150);
tabColm
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Java 飞鸽 文件传输 (184个子文件)
all-wcprops 1KB
all-wcprops 891B
all-wcprops 760B
all-wcprops 617B
all-wcprops 464B
all-wcprops 432B
all-wcprops 228B
all-wcprops 214B
all-wcprops 184B
all-wcprops 170B
all-wcprops 82B
all-wcprops 78B
all-wcprops 74B
SWTResourceManager.class 12KB
RemoteFileSeeComposite.class 10KB
DbConfigDialog.class 7KB
ExeclToDataBase.class 7KB
RemoteResourceTreeComposite.class 7KB
FileWindow.class 5KB
RemoteFileSeeComposite$4$1.class 5KB
RemoteResourceTreeDoubleClickEventActionHandler.class 4KB
ConstantExtend.class 4KB
RemoteFileSeeComposite$3.class 4KB
Facade.class 3KB
ExcelFile.class 3KB
RemoteFileSeeComposite$4.class 3KB
TestUi.class 3KB
DbConfigDialog$ComboSelect.class 3KB
RemoteResourceTreeComposite$1.class 2KB
ExeclToDataBase$4.class 2KB
DbConfigDialog$TestConn.class 2KB
Communicate$1.class 2KB
DBAccess.class 2KB
RemoteResourceTreeContentProvider.class 2KB
ExeclToDataBase$3.class 2KB
BaseDataBean.class 2KB
Communicate.class 2KB
RemoteFileLableProvider.class 2KB
ExeclToDataBase$5.class 2KB
DatabaseInfoBean.class 2KB
ExeclToDataBase$OpenDia.class 2KB
ExeclToDataBase$2.class 2KB
HelperTree.class 2KB
RemoteFileSeeComposite$2.class 2KB
BaseDialog.class 1KB
ExeclToDataBase$1.class 1KB
MessageBoxUtil.class 1KB
RemoteFileSeeComposite$1.class 1KB
TestUi$SaveFile.class 1KB
TestUi$OpenFile.class 1KB
TreeNode.class 1KB
FileWindow$2.class 1KB
DataBaseFactory.class 1KB
RemoteResourceTreeLableProvider.class 1KB
FileWindow$1.class 1KB
SelectionChangedListener.class 997B
StandardTableViewerContentProvider.class 992B
B.class 975B
DoubleClickListener.class 964B
NavigationInfo.class 918B
TableColmun.class 900B
DatabaseHelper.class 894B
SWTResourceManager$1.class 857B
ExeclToDataBase$6.class 799B
StaticBean.class 739B
XmlDirectory.class 725B
XmlFile.class 710B
TestUi$Exit.class 700B
BaseComposite.class 602B
TableName.class 571B
CurrentState.class 477B
ExcelImport.class 448B
ObjectTreeMenuItemsSelectActionHandler.class 373B
FinalClass.class 364B
DbFactory.class 210B
IActionHandler.class 201B
.classpath 4KB
Thumbs.db 3KB
entries 1KB
entries 1KB
entries 896B
entries 888B
entries 847B
entries 666B
entries 374B
entries 365B
entries 359B
entries 354B
entries 233B
entries 232B
entries 210B
entries 181B
.fatjar 528B
Disconnect.gif 1KB
Disconnect.gif 1KB
system_view.gif 362B
system_view.gif 362B
system_view.gif 362B
sqljdbc.jar 247KB
tdgssjava.jar 123KB
共 184 条
- 1
- 2
资源评论
- LOVEFOREVE2013-04-05对于swt socket 多线程 初学者有用
taotao111
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功