?? downloadpanel.java
字號:
package connex.plugins.filesharing.ui;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import connex.app.utils.TableUtils.MyTableModel;
import connex.plugins.filesharing.model.DownloadRow;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import connex.plugins.filesharing.FilesharingService;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class DownloadPanel
extends JLabel {
BorderLayout borderLayout1 = new BorderLayout();
JScrollPane jScrollPane1 = new JScrollPane();
private ImageIcon back = new ImageIcon(
DownloadPanel.class.getResource("ConneXLogo_alpha5.png"));
String[] coulumnNames = {
"Name", "Speed", "Downloaded",
"Progress", "Time Remaining", "State"};
private static DownloadPanel dp = null;
private MyTableModel downTM; //= new MyTableModel(coulumnNames) ;
JTable jTable1 = new JTable();
JPanel jPanel1 = new JPanel();
JCheckBox jCheckBox1 = new JCheckBox();
BorderLayout borderLayout2 = new BorderLayout();
JCheckBox jCheckBox2 = new JCheckBox();
private JPopupMenu popup = new JPopupMenu();
private JMenuItem item1 = new JMenuItem();
private int selectedRow;
JCheckBox jCheckBox3 = new JCheckBox();
JMenuItem remove = new JMenuItem();
JMenuItem cancelAll = new JMenuItem();
JMenuItem removeAll = new JMenuItem();
private DownloadRow drow;
JMenuItem open = new JMenuItem();
public DownloadPanel() {
try {
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
dp = this;
}
private void jbInit() throws Exception {
this.setBackground(Color.white);
this.setOpaque(true);
this.setHorizontalAlignment(SwingConstants.TRAILING);
this.setHorizontalTextPosition(SwingConstants.LEADING);
// tm.setColumnNames(coulumnNames) ;
this.setIcon(back);
this.setVerticalAlignment(SwingConstants.BOTTOM);
downTM = new MyTableModel(coulumnNames);
jTable1.setForeground(Color.red);
jTable1.setGridColor(SystemColor.inactiveCaption);
jTable1.setIntercellSpacing(new Dimension(2, 2));
jTable1.setModel(downTM);
jTable1.setRowHeight(22);
jTable1.setShowHorizontalLines(false);
jTable1.setShowVerticalLines(false);
jTable1.addMouseListener(new DownloadPanel_jTable1_mouseAdapter(this));
item1.addActionListener(new DownloadPanel_item1_actionAdapter(this));
jCheckBox2.addItemListener(new DownloadPanel_jCheckBox2_itemAdapter(this));
jCheckBox3.setPreferredSize(new Dimension(200, 23));
jCheckBox3.setText("Clear Canceled");
jCheckBox3.addItemListener(new DownloadPanel_jCheckBox3_itemAdapter(this));
jCheckBox2.setPreferredSize(new Dimension(0, 23));
cancelAll.setText("Cancel all");
cancelAll.addActionListener(new DownloadPanel_cancelAll_actionAdapter(this));
removeAll.setText("Remove all");
removeAll.addActionListener(new DownloadPanel_removeAll_actionAdapter(this));
remove.addActionListener(new DownloadPanel_remove_actionAdapter(this));
remove.setText("Remove");
open.setText(" open file");
open.addActionListener(new DownloadPanel_open_actionAdapter(this));
popup.add(item1);
popup.add(remove);
popup.add(cancelAll);
popup.add(removeAll);
popup.add(open);
item1.setText("Cancel");
popup.setInvoker(jTable1);
this.setLayout(borderLayout1);
jScrollPane1.setOpaque(false);
jScrollPane1.getViewport().setOpaque(false);
jPanel1.setPreferredSize(new Dimension(10, 30));
jPanel1.setLayout(borderLayout2);
jCheckBox1.setText("Clear Completed");
jCheckBox1.addItemListener(new DownloadPanel_jCheckBox1_itemAdapter(this));
jCheckBox2.setText("Clear Failed");
this.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTable1);
this.add(jPanel1, java.awt.BorderLayout.SOUTH);
jPanel1.add(jCheckBox1, java.awt.BorderLayout.WEST);
jPanel1.add(jCheckBox2, java.awt.BorderLayout.CENTER);
jPanel1.add(jCheckBox3, java.awt.BorderLayout.EAST);
jTable1.getColumn("Progress").setCellRenderer(new ProgRenderer());
jTable1.getColumn("State").setCellRenderer(new IconRenderer());
ListSelectionModel rowSM = jTable1.getSelectionModel();
rowSM.addListSelectionListener(new MyDListSelectionListener(this));
}
public MyTableModel getModel() {
return downTM;
}
public static DownloadPanel getInstance() {
if (dp == null) {
return new DownloadPanel();
}
else {
return dp;
}
}
public boolean isFinishedToClear() {
return jCheckBox1.isSelected();
}
public boolean isFailedToClear() {
return jCheckBox2.isSelected();
}
public boolean isCanceledToClear() {
return jCheckBox3.isSelected();
}
protected void row_Selection(ListSelectionEvent e) {
//Ignore extra messages.
if (e.getValueIsAdjusting()) {
return;
}
ListSelectionModel lsm =
(ListSelectionModel) e.getSource();
if (!lsm.isSelectionEmpty()) {
selectedRow = lsm.getMinSelectionIndex();
//selectedRow is selected
}
}
public void jCheckBox1_itemStateChanged(ItemEvent e) {
if (jCheckBox1.isSelected()) {
DownloadRow row = null;
int count = downTM.getRowCount();
for (int i = count - 1; i >= 0; i--) {
row = (DownloadRow) downTM.getRow(i);
if (row.isDownloaded()) {
downTM.removeRow(i);
row.clear();
row = null;
}
}
}
//downTM.clear();
}
public void jCheckBox2_itemStateChanged(ItemEvent e) {
if (jCheckBox2.isSelected()) {
DownloadRow row = null;
int count = downTM.getRowCount();
for (int i = count - 1; i >= 0; i--) {
try {
row = (DownloadRow) downTM.getRow(i);
if (row.isFailed()) {
downTM.removeRow(i);
row.clear();
row = null;
}
}
catch (Exception ex) {
}
}
//downTM.clear();
}
}
public void jCheckBox3_itemStateChanged(ItemEvent e) {
if (jCheckBox3.isSelected()) {
DownloadRow row = null;
int count = downTM.getRowCount();
for (int i = count - 1; i >= 0; i--) {
try {
row = (DownloadRow) downTM.getRow(i);
if (row.isCanceled()) {
downTM.removeRow(i);
row.clear();
row = null;
}
}
catch (Exception ex) {
}
}
//downTM.clear();
}
}
public void jTable1_mouseClicked(MouseEvent e) {
if (e.getButton() == 3) {
int i = jTable1.rowAtPoint(e.getPoint());
jTable1.setRowSelectionInterval(i, i);
drow = (DownloadRow) downTM.getRow(jTable1.getSelectedRow());
if (drow.isDownloaded() || drow.isFailed() || drow.isCanceled()) {
item1.setEnabled(false);
}
else {
item1.setEnabled(true);
}
if (downTM.getRowCount() < 1) {
removeAll.setEnabled(false);
}
else {
removeAll.setEnabled(true);
}
popup.show(jTable1, e.getX(), e.getY());
}
}
public void item1_actionPerformed(ActionEvent e) {
FilesharingService.getInstance().cancelDownload(drow.getID());
}
public void remove_actionPerformed(ActionEvent e) {
FilesharingService.getInstance().cancelDownload(drow.getID());
drow.remove();
drow.clear();
drow = null;
}
public void cancelAll_actionPerformed(ActionEvent e) {
int count = downTM.getRowCount();
for (int i = count - 1; i >= 0; i--) {
drow = (DownloadRow) downTM.getRow(i);
if (!drow.isDownloaded() || !drow.isFailed() || !drow.isCanceled()) {
FilesharingService.getInstance().cancelDownload(drow.getID());
}
}
}
public void removeAll_actionPerformed(ActionEvent e) {
int count = downTM.getRowCount();
for (int i = count - 1; i >= 0; i--) {
drow = (DownloadRow) downTM.getRow(i);
if (!drow.isDownloaded() || !drow.isFailed() || !drow.isCanceled()) {
FilesharingService.getInstance().cancelDownload(drow.getID());
}
drow.remove();
drow.clear();
drow = null;
}
}
public void open_actionPerformed(ActionEvent e) {
}
private class ProgRenderer
extends JProgressBar implements
TableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
try {
this.setValue(new Integer(value.toString()).intValue());
}
catch (NumberFormatException e) {
}
this.setStringPainted(true);
return this;
}
}
private class IconRenderer
extends JLabel implements
TableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
try {
if (value instanceof ImageIcon) {
this.setIcon( (ImageIcon) value);
this.setText( ( (ImageIcon) value).getDescription());
}
this.repaint();
}
catch (NumberFormatException e) {
}
return this;
}
}
}
class DownloadPanel_open_actionAdapter
implements ActionListener {
private DownloadPanel adaptee;
DownloadPanel_open_actionAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.open_actionPerformed(e);
}
}
class DownloadPanel_cancelAll_actionAdapter
implements ActionListener {
private DownloadPanel adaptee;
DownloadPanel_cancelAll_actionAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cancelAll_actionPerformed(e);
}
}
class DownloadPanel_remove_actionAdapter
implements ActionListener {
private DownloadPanel adaptee;
DownloadPanel_remove_actionAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.remove_actionPerformed(e);
}
}
class DownloadPanel_jCheckBox3_itemAdapter
implements ItemListener {
private DownloadPanel adaptee;
DownloadPanel_jCheckBox3_itemAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.jCheckBox3_itemStateChanged(e);
}
}
class DownloadPanel_jCheckBox2_itemAdapter
implements ItemListener {
private DownloadPanel adaptee;
DownloadPanel_jCheckBox2_itemAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.jCheckBox2_itemStateChanged(e);
}
}
class DownloadPanel_item1_actionAdapter
implements ActionListener {
private DownloadPanel adaptee;
DownloadPanel_item1_actionAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.item1_actionPerformed(e);
}
}
class DownloadPanel_removeAll_actionAdapter
implements ActionListener {
private DownloadPanel adaptee;
DownloadPanel_removeAll_actionAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.removeAll_actionPerformed(e);
}
}
class DownloadPanel_jTable1_mouseAdapter
extends MouseAdapter {
private DownloadPanel adaptee;
DownloadPanel_jTable1_mouseAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.jTable1_mouseClicked(e);
}
}
class DownloadPanel_jCheckBox1_itemAdapter
implements ItemListener {
private DownloadPanel adaptee;
DownloadPanel_jCheckBox1_itemAdapter(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.jCheckBox1_itemStateChanged(e);
}
}
class MyDListSelectionListener
implements ListSelectionListener {
private DownloadPanel adaptee;
MyDListSelectionListener(DownloadPanel adaptee) {
this.adaptee = adaptee;
}
public void valueChanged(ListSelectionEvent e) {
adaptee.row_Selection(e);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -