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 setIconImage(Toolkit.getDefaultToolkit().createImage(getClass().getResource("/icon.gif")));
\r
28 addWindowListener(new WindowAdapter() {
\r
29 public void windowClosing(WindowEvent e)
\r
35 JTabbedPane tabbedPane=new JTabbedPane();
\r
36 getContentPane().add(tabbedPane);
\r
39 JPanel controlPanel=new JPanel();
\r
40 JPanel connectPanel=new JPanel();
\r
41 connectPanel.add(new JLabel("Host : "));
\r
42 final JTextField hostText=new JTextField("",10);
\r
43 connectPanel.add(hostText);
\r
44 connectPanel.add(new JLabel("Password : "));
\r
45 final JPasswordField passwordText=new JPasswordField("",5);
\r
46 connectPanel.add(passwordText);
\r
47 JButton connectButton=new JButton("Connect");
\r
48 connectPanel.add(connectButton);
\r
49 JButton killButton=new JButton("Kill");
\r
50 connectPanel.add(killButton);
\r
51 connectButton.addActionListener(new ActionListener() {
\r
52 public void actionPerformed(ActionEvent event)
\r
54 //System.out.println("connectButton");
\r
55 if (hostText.getText().length()==0) return;
\r
56 donkeyCore.connect(hostText.getText(),4001,new String(passwordText.getPassword()));
\r
59 killButton.addActionListener(new ActionListener() {
\r
60 public void actionPerformed(ActionEvent event)
\r
62 //System.out.println("killButton");
\r
66 tabbedPane.add(connectPanel,"Control");
\r
69 JPanel serverPanel=new JPanel(new BorderLayout());
\r
70 JPanel servertopPanel=new JPanel();
\r
71 JButton connectMoreButton=new JButton("Connect More");
\r
72 servertopPanel.add(connectMoreButton);
\r
73 JButton cleanOldButton=new JButton("Clean Old Servers");
\r
74 servertopPanel.add(cleanOldButton);
\r
76 JButton sconnectButton=new JButton("Connect");
\r
77 servertopPanel.add(sconnectButton);
\r
78 JButton disconnectButton=new JButton("Disconnect");
\r
79 servertopPanel.add(disconnectButton);
\r
81 serverPanel.add(servertopPanel,"North");
\r
82 //final JTable serverTable=new JTable(new ServerTableModel(donkeyCore.serverInfos));
\r
84 TableModel dataModel=new ServerTableModel(donkeyCore.serverInfos,donkeyCore);
\r
85 TableSorter sorter=new TableSorter(dataModel);
\r
86 JTable tableView=new JTable(sorter);
\r
87 tableView.setColumnSelectionAllowed(false);
\r
88 tableView.setRowSelectionAllowed(false);
\r
89 sorter.addMouseListenerToHeaderInTable(tableView);
\r
91 //serverPanel.add(new JScrollPane(serverTable),"Center");
\r
92 serverPanel.add(new JScrollPane(tableView),"Center");
\r
93 tabbedPane.add(serverPanel,"Servers");
\r
94 connectMoreButton.addActionListener(new ActionListener() {
\r
95 public void actionPerformed(ActionEvent event)
\r
97 //System.out.println("connectMoreButton");
\r
98 donkeyCore.connectMore();
\r
101 cleanOldButton.addActionListener(new ActionListener() {
\r
102 public void actionPerformed(ActionEvent event)
\r
104 //System.out.println("cleanOldButton");
\r
105 donkeyCore.cleanOld();
\r
109 sconnectButton.addActionListener(new ActionListener() {
\r
110 public void actionPerformed(ActionEvent event)
\r
112 System.out.println("sconnectButton");
\r
113 for (int i=0;i<serverTable.getSelectedRowCount();i++)
\r
115 ServerTableModel m=(ServerTableModel)serverTable.getModel();
\r
116 //Vector v=(Vector)r.serverInfos.get(serverTable.getSelectedRows()[i]);
\r
117 donkeyCore.connectServer((Long)m.getValueAt(i,0));
\r
121 disconnectButton.addActionListener(new ActionListener() {
\r
122 public void actionPerformed(ActionEvent event)
\r
124 System.out.println("disconnectButton");
\r
125 for (int i=0;i<serverTable.getSelectedRowCount();i++)
\r
127 ServerTableModel m=(ServerTableModel)serverTable.getModel();
\r
128 //Vector v=(Vector)r.serverInfos.get(serverTable.getSelectedRows()[i]);
\r
129 donkeyCore.disconnectServer((Long)m.getValueAt(i,0));
\r
136 JPanel searchPanel=new JPanel(new BorderLayout());
\r
137 JPanel topPanel=new JPanel();
\r
138 topPanel.add(new JLabel("Query : "));
\r
139 final JTextField searchText=new JTextField("",15);
\r
140 topPanel.add(searchText);
\r
141 JButton searchButton=new JButton("Search");
\r
142 topPanel.add(searchButton);
\r
143 JButton extendButton=new JButton("Extend");
\r
144 topPanel.add(extendButton);
\r
146 JButton downloadButton=new JButton("Download");
\r
147 topPanel.add(downloadButton);
\r
149 searchPanel.add(topPanel,"North");
\r
150 final JTabbedPane resultsPane=new JTabbedPane();
\r
151 searchPanel.add(resultsPane,"Center");
\r
152 final Vector resultTables=new Vector();
\r
153 searchButton.addActionListener(new ActionListener() {
\r
154 public void actionPerformed(ActionEvent event)
\r
156 //System.out.println("searchButton");
\r
157 if (searchText.getText().length()==0) return;
\r
158 Vector searchResult=donkeyCore.search(searchText.getText());
\r
161 JTable resultTable=new JTable(new ResultTableModel(searchResult));
\r
162 resultTables.add(resultTable);
\r
163 resultsPane.add(new JScrollPane(resultTable),searchText.getText());
\r
164 resultsPane.setSelectedIndex(resultsPane.getTabCount()-1);
\r
167 ResultTableModel resultModel=new ResultTableModel(searchResult,donkeyCore);
\r
168 TableSorter sorter=new TableSorter(resultModel);
\r
169 JTable tableView=new JTable(sorter);
\r
170 tableView.setColumnSelectionAllowed(false);
\r
171 tableView.setRowSelectionAllowed(false);
\r
172 resultTables.add(tableView);
\r
173 sorter.addMouseListenerToHeaderInTable(tableView);
\r
174 resultsPane.add(new JScrollPane(tableView),searchText.getText());
\r
175 resultsPane.setSelectedIndex(resultsPane.getTabCount()-1);
\r
179 extendButton.addActionListener(new ActionListener() {
\r
180 public void actionPerformed(ActionEvent event)
\r
182 //System.out.println("extendButton");
\r
183 donkeyCore.extend();
\r
187 downloadButton.addActionListener(new ActionListener() {
\r
188 public void actionPerformed(ActionEvent event)
\r
190 System.out.println("downloadButton");
\r
191 JTable resultTable=(JTable)resultTables.get(resultsPane.getSelectedIndex());
\r
192 for (int i=0;i<resultTable.getSelectedRowCount();i++)
\r
194 ResultTableModel r=(ResultTableModel)resultTable.getModel();
\r
195 Vector v=(Vector)r.searchResult.get(resultTable.getSelectedRows()[i]);
\r
196 donkeyCore.download((Long)v.get(0));
\r
201 tabbedPane.add(searchPanel,"Search");
\r
204 //tabbedPane.add(new JScrollPane(new JTable(new DownloadTableModel(donkeyCore.fileInfos))),"Downloads");
\r
205 //DownloadTableModel
\r
206 dataModel=new DownloadTableModel(donkeyCore.fileInfos,donkeyCore);
\r
208 sorter=new TableSorter(dataModel);
\r
210 tableView=new JTable(sorter);
\r
211 tableView.setColumnSelectionAllowed(false);
\r
212 tableView.setRowSelectionAllowed(false);
\r
213 sorter.addMouseListenerToHeaderInTable(tableView);
\r
214 tabbedPane.add(new JScrollPane(tableView),"Downloads");
\r
217 tabbedPane.add(new JScrollPane(donkeyCore.console),"Console");
\r
220 //tabbedPane.add(new JScrollPane(new JTable(new StatTableModel(donkeyCore.statInfos))),"Stats");
\r
221 dataModel=new StatTableModel(donkeyCore.statInfos);
\r
222 sorter=new TableSorter(dataModel);
\r
223 tableView=new JTable(sorter);
\r
224 tableView.setColumnSelectionAllowed(false);
\r
225 tableView.setRowSelectionAllowed(false);
\r
226 sorter.addMouseListenerToHeaderInTable(tableView);
\r
227 tabbedPane.add(new JScrollPane(tableView),"Stats");
\r
231 Thread.sleep(2000);
\r
233 catch (Exception e)
\r
235 splash.setVisible(false);
\r