📄 sitepanelmousehandle.java
字号:
package Listener;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.*;
import FtpLocalSource.LocalSourcePanelClass;
import GUI.RemoteFilePanel;
import com.db.*;
import com.jcat.ftp.*;
import com.jcat.ftp.event.*;
import com.jcat.ftp.table.*;
/**
* 用于站点管理器鼠标事件监听
* @author 赖程远
*
*/
public class SitePanelMouseHandle extends MouseAdapter
{
private JTabbedPane rightTabbedPane;
private JTabbedPane downTabbedPane;
private SitePanel sitePanel;
private LocalSourcePanelClass localSourcePanel;
/**
* 构造函数
* @param sitePanel 用于获取站点管理器面板
* @param localSourcePanel 用于显示本地目录
* @param rightTabbedPane 用于显示远程FTP目录
* @param downTabbedPane 用于显示连接信息
*/
public SitePanelMouseHandle(SitePanel sitePanel,
LocalSourcePanelClass localSourcePanel,
JTabbedPane rightTabbedPane, JTabbedPane downTabbedPane)
{
this.localSourcePanel = localSourcePanel;
this.sitePanel = sitePanel;
this.rightTabbedPane = rightTabbedPane;
this.downTabbedPane = downTabbedPane;
}
public void mouseReleased(MouseEvent e)
{
sitePanel.mouseReleased(e);
}
/**
* 用于响应鼠标点击时间打开新FTP连接
*/
public void mouseClicked(MouseEvent e)
{
SiteList list = sitePanel.getList();
if (!list.isSelectionEmpty() && e.getButton() == 1
&& e.getClickCount() == 2)
{
FtpSite site = sitePanel.getSelectedSite();
int i = rightTabbedPane.indexOfTab(site.getSite());
if (i <= -1)
{
final FTPConnection conn = new FTPConnection();
final RemoteFilePanel pane = new RemoteFilePanel(conn,
localSourcePanel);
TaskTable task = new TaskTable(conn.getTaskQueue());
rightTabbedPane.addTab(site.getSite(), pane);
JLabel label = new JLabel(site.getSite());
rightTabbedPane.setTabComponentAt(
rightTabbedPane.getTabCount() - 1, label);
rightTabbedPane.setSelectedComponent(pane);
label.addMouseListener(new DisconnectListener(rightTabbedPane,
downTabbedPane));
downTabbedPane.setPreferredSize(new Dimension(300, 150));
label = new JLabel(site.getSite() + "任务队列");
JScrollPane s=new JScrollPane(task);
downTabbedPane.addTab(site.getSite(), s);
downTabbedPane.setTabComponentAt(
downTabbedPane.getTabCount() - 1, label);
downTabbedPane.setSelectedComponent(s);
task.setUpdate(true);
//}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/*label.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
if (e.getButton() == MouseEvent.BUTTON1)
{
int i = downTabbedPane.getSelectedIndex();
TaskTable taskTable = (TaskTable) downTabbedPane
.getComponentAt(i);
taskTable.setUpdate(false);
i = downTabbedPane
.indexOfTabComponent(e.getComponent());
downTabbedPane.setSelectedIndex(i);
taskTable = (TaskTable) downTabbedPane
.getComponentAt(i);
taskTable.setUpdate(true);
}
}
});*/
final JTextArea textArea = ((RemoteFilePanel) rightTabbedPane
.getSelectedComponent()).getTextArea();
conn.setHost(site.getSite());
textArea.append(site.getSite() + "\n");
conn.setUser(site.getUser());
conn.setPassword(site.getPassword());
conn.setPort(site.getPort());
conn.getMessageQueue().addMessageListener(new MessageListener()
{
@Override
public void messageAdded(MessageEvent e)
{
MessageReader r = (MessageReader) e.getSource();
textArea.append(r.readMessage() + "\n");
textArea.setCaretPosition(textArea.getText().length());
}
});
Thread thread = new Thread(new Runnable()
{
@Override
public void run()
{
conn.connect();
if (conn.isConnected())
{
conn.login();
}
if (conn.loggedin())
{
conn.changeWorkingDirectory(sitePanel
.getSelectedSite().getFtpPath());
conn.printWorkingDirectory();
pane.getPath().setText(
sitePanel.getSelectedSite().getFtpPath());
FTPFile[] f = conn.listRemoteFiles();
pane.getTable().showFTPFile(f);
}
}
});
thread.start();
} else
{
rightTabbedPane.setSelectedIndex(i);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -