2 import java.awt.event.*;
\r
3 import javax.swing.*;
\r
4 import javax.swing.table.*;
\r
5 import java.util.Vector;
\r
7 public class DonkeyGui extends JFrame
\r
10 DonkeyGui(final DonkeyCore donkeyCore)
\r
12 Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
\r
15 JWindow splash=new JWindow();
\r
16 splash.getContentPane().add(new JLabel(new ImageIcon(getClass().getResource("/splash.jpg"))));
\r
18 Dimension windowsize=splash.getSize();
\r
19 splash.setLocation((screensize.width-windowsize.width)/2,(screensize.height-windowsize.height)/2);
\r
20 splash.setVisible(true);
\r
25 windowsize=getSize();
\r
26 setLocation((screensize.width-windowsize.width)/2,(screensize.height-windowsize.height)/2);
\r
27 addWindowListener(new WindowAdapter() {
\r
28 public void windowClosing(WindowEvent e)
\r
34 JTabbedPane tabbedPane=new JTabbedPane();
\r
35 getContentPane().add(tabbedPane);
\r
38 JPanel controlPanel=new JPanel();
\r
39 JPanel connectPanel=new JPanel();
\r
40 connectPanel.add(new JLabel("Host : "));
\r
41 final JTextField hostText=new JTextField("",10);
\r
42 connectPanel.add(hostText);
\r
43 connectPanel.add(new JLabel("Password : "));
\r
44 final JPasswordField passwordText=new JPasswordField("",5);
\r
45 connectPanel.add(passwordText);
\r
46 JButton connectButton=new JButton("Connect");
\r
47 connectPanel.add(connectButton);
\r
48 JButton killButton=new JButton("Kill");
\r
49 connectPanel.add(killButton);
\r
50 connectButton.addActionListener(new ActionListener() {
\r
51 public void actionPerformed(ActionEvent event)
\r
53 //System.out.println("connectButton");
\r
54 if (hostText.getText().length()==0) return;
\r
55 donkeyCore.connect(hostText.getText(),4001,new String(passwordText.getPassword()));
\r
58 killButton.addActionListener(new ActionListener() {
\r
59 public void actionPerformed(ActionEvent event)
\r
61 //System.out.println("killButton");
\r
65 tabbedPane.add(connectPanel,"Control");
\r
68 JPanel serverPanel=new JPanel(new BorderLayout());
\r
69 JPanel servertopPanel=new JPanel();
\r
70 JButton connectMoreButton=new JButton("Connect More");
\r
71 servertopPanel.add(connectMoreButton);
\r
72 JButton cleanOldButton=new JButton("Clean Old Servers");
\r
73 servertopPanel.add(cleanOldButton);
\r
75 JButton sconnectButton=new JButton("Connect");
\r
76 servertopPanel.add(sconnectButton);
\r
77 JButton disconnectButton=new JButton("Disconnect");
\r
78 servertopPanel.add(disconnectButton);
\r
80 serverPanel.add(servertopPanel,"North");
\r
81 //final JTable serverTable=new JTable(new ServerTableModel(donkeyCore.serverInfos));
\r
83 TableModel dataModel=new ServerTableModel(donkeyCore.serverInfos,donkeyCore);
\r
84 TableSorter sorter=new TableSorter(dataModel);
\r
85 JTable tableView=new JTable(sorter);
\r
86 tableView.setColumnSelectionAllowed(false);
\r
87 tableView.setRowSelectionAllowed(false);
\r
88 sorter.addMouseListenerToHeaderInTable(tableView);
\r
90 //serverPanel.add(new JScrollPane(serverTable),"Center");
\r
91 serverPanel.add(new JScrollPane(tableView),"Center");
\r
92 tabbedPane.add(serverPanel,"Servers");
\r
93 connectMoreButton.addActionListener(new ActionListener() {
\r
94 public void actionPerformed(ActionEvent event)
\r
96 //System.out.println("connectMoreButton");
\r
97 donkeyCore.connectMore();
\r
100 cleanOldButton.addActionListener(new ActionListener() {
\r
101 public void actionPerformed(ActionEvent event)
\r
103 //System.out.println("cleanOldButton");
\r
104 donkeyCore.cleanOld();
\r
108 sconnectButton.addActionListener(new ActionListener() {
\r
109 public void actionPerformed(ActionEvent event)
\r
111 System.out.println("sconnectButton");
\r
112 for (int i=0;i<serverTable.getSelectedRowCount();i++)
\r
114 ServerTableModel m=(ServerTableModel)serverTable.getModel();
\r
115 //Vector v=(Vector)r.serverInfos.get(serverTable.getSelectedRows()[i]);
\r
116 donkeyCore.connectServer((Long)m.getValueAt(i,0));
\r
120 disconnectButton.addActionListener(new ActionListener() {
\r
121 public void actionPerformed(ActionEvent event)
\r
123 System.out.println("disconnectButton");
\r
124 for (int i=0;i<serverTable.getSelectedRowCount();i++)
\r
126 ServerTableModel m=(ServerTableModel)serverTable.getModel();
\r
127 //Vector v=(Vector)r.serverInfos.get(serverTable.getSelectedRows()[i]);
\r
128 donkeyCore.disconnectServer((Long)m.getValueAt(i,0));
\r
135 JPanel searchPanel=new JPanel(new BorderLayout());
\r
136 JPanel topPanel=new JPanel();
\r
137 topPanel.add(new JLabel("Query : "));
\r
138 final JTextField searchText=new JTextField("",15);
\r
139 topPanel.add(searchText);
\r
140 JButton searchButton=new JButton("Search");
\r
141 topPanel.add(searchButton);
\r
142 JButton extendButton=new JButton("Extend");
\r
143 topPanel.add(extendButton);
\r
145 JButton downloadButton=new JButton("Download");
\r
146 topPanel.add(downloadButton);
\r
148 searchPanel.add(topPanel,"North");
\r
149 final JTabbedPane resultsPane=new JTabbedPane();
\r
150 searchPanel.add(resultsPane,"Center");
\r
151 final Vector resultTables=new Vector();
\r
152 searchButton.addActionListener(new ActionListener() {
\r
153 public void actionPerformed(ActionEvent event)
\r
155 //System.out.println("searchButton");
\r
156 if (searchText.getText().length()==0) return;
\r
157 Vector searchResult=donkeyCore.search(searchText.getText());
\r
160 JTable resultTable=new JTable(new ResultTableModel(searchResult));
\r
161 resultTables.add(resultTable);
\r
162 resultsPane.add(new JScrollPane(resultTable),searchText.getText());
\r
163 resultsPane.setSelectedIndex(resultsPane.getTabCount()-1);
\r
166 ResultTableModel resultModel=new ResultTableModel(searchResult,donkeyCore);
\r
167 TableSorter sorter=new TableSorter(resultModel);
\r
168 JTable tableView=new JTable(sorter);
\r
169 tableView.setColumnSelectionAllowed(false);
\r
170 tableView.setRowSelectionAllowed(false);
\r
171 resultTables.add(tableView);
\r
172 sorter.addMouseListenerToHeaderInTable(tableView);
\r
173 resultsPane.add(new JScrollPane(tableView),searchText.getText());
\r
174 resultsPane.setSelectedIndex(resultsPane.getTabCount()-1);
\r
178 extendButton.addActionListener(new ActionListener() {
\r
179 public void actionPerformed(ActionEvent event)
\r
181 //System.out.println("extendButton");
\r
182 donkeyCore.extend();
\r
186 downloadButton.addActionListener(new ActionListener() {
\r
187 public void actionPerformed(ActionEvent event)
\r
189 System.out.println("downloadButton");
\r
190 JTable resultTable=(JTable)resultTables.get(resultsPane.getSelectedIndex());
\r
191 for (int i=0;i<resultTable.getSelectedRowCount();i++)
\r
193 ResultTableModel r=(ResultTableModel)resultTable.getModel();
\r
194 Vector v=(Vector)r.searchResult.get(resultTable.getSelectedRows()[i]);
\r
195 donkeyCore.download((Long)v.get(0));
\r
200 tabbedPane.add(searchPanel,"Search");
\r
203 //tabbedPane.add(new JScrollPane(new JTable(new DownloadTableModel(donkeyCore.fileInfos))),"Downloads");
\r
204 //DownloadTableModel
\r
205 dataModel=new DownloadTableModel(donkeyCore.fileInfos,donkeyCore);
\r
207 sorter=new TableSorter(dataModel);
\r
209 tableView=new JTable(sorter);
\r
210 tableView.setColumnSelectionAllowed(false);
\r
211 tableView.setRowSelectionAllowed(false);
\r
212 sorter.addMouseListenerToHeaderInTable(tableView);
\r
213 tabbedPane.add(new JScrollPane(tableView),"Downloads");
\r
216 tabbedPane.add(new JScrollPane(donkeyCore.console),"Console");
\r
220 Thread.sleep(2000);
\r
222 catch (Exception e)
\r
224 splash.setVisible(false);
\r