package org.arong.egdownloader.ui.window;
import java.awt.Color;
import java.awt.Font;
import java.awt.Window;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import org.arong.egdownloader.model.Setting;
import org.arong.egdownloader.spider.WebClient;
import org.arong.egdownloader.ui.ComponentUtil;
import org.arong.egdownloader.ui.listener.MouseAction;
import org.arong.egdownloader.ui.listener.OperaBtnMouseListener;
import org.arong.egdownloader.ui.swing.AJButton;
import org.arong.egdownloader.ui.swing.AJLabel;
import org.arong.egdownloader.ui.swing.AJTextArea;
import org.arong.egdownloader.ui.swing.AJTextField;
import org.arong.egdownloader.ui.work.interfaces.IListenerTask;
/**
* 代理测试窗口
* @author dipoo
* @since 2016-03-23
*/
public class TestProxyWindow extends JDialog{
private static final long serialVersionUID = 1922141062996395003L;
public TestProxyWindow(final Setting setting){
this.setTitle("代理测试");
this.setSize(600, 460);
this.getContentPane().setLayout(null);
this.setResizable(false);
this.setLocationRelativeTo(null);
JLabel urlLabel = new AJLabel("测试地址:", Color.BLUE, 10, 15, 60, 30);
final JTextField urlField = new AJTextField("http://1212.ip138.com/ic.asp", "", 70, 15, 435, 30);
JLabel typeLabel = new AJLabel("测试类型:", Color.BLUE, 10, 55, 60, 30);
// ButtonGroup buttonGroup = new ButtonGroup();
/*final JRadioButton rb1 = new JRadioButton("内置", true);
rb1.setBounds(125, 55, 100, 30);
final JRadioButton rb2 = new JRadioButton("HttpClient");
rb2.setBounds(225, 55, 100, 30);*/
// buttonGroup.add(rb1);
// buttonGroup.add(rb2);
final JTextArea resultArea = new AJTextArea();
resultArea.setEditable(false);
resultArea.setAutoscrolls(true);
resultArea.setLineWrap(true);
resultArea.setBorder(null);
resultArea.setFont(new Font("宋体", Font.PLAIN, 12));
resultArea.setForeground(new Color(63,127,95));
JScrollPane consolePane = new JScrollPane(resultArea);
TitledBorder border = BorderFactory.createTitledBorder(BorderFactory.createLineBorder(new Color(219,219,219)), "测试结果");
consolePane.setBounds(10, 100, 568, 310);
consolePane.setAutoscrolls(true);
consolePane.setBorder(border);
final JButton testBtn = new AJButton("执行测试", "", "", new OperaBtnMouseListener(this, MouseAction.CLICK, new IListenerTask() {
public void doWork(Window window, MouseEvent e) {
String url = urlField.getText();
if("".equals(url)){
JOptionPane.showMessageDialog(null, "地址不能为空");
return;
}
//resultArea.setText("");
String result = null;
try{
// if(rb1.isSelected()){
result = WebClient.getRequestUseJava(url, "gb2312");
// }
/*if(rb2.isSelected()){
result = WebClient.postRequest(url, "gb2312");
}*/
resultArea.setText(resultArea.getText() + "\n================\n" + result);
}catch(Exception e1){
e1.printStackTrace();
resultArea.setText(resultArea.getText() + "\n================\n" + e1.getMessage());
}
}
}), 515, 15, 60, 30);
ComponentUtil.addComponents(getContentPane(), urlLabel, urlField, testBtn, typeLabel, /*rb1, rb2,*/ consolePane);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//关闭后显示主界面
TestProxyWindow w = (TestProxyWindow)e.getSource();
w.dispose();
}
//窗体由激活状态变成非激活状态
public void windowDeactivated(WindowEvent e) {
//关闭后显示主界面
TestProxyWindow w = (TestProxyWindow)e.getSource();
w.dispose();
}
});
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setVisible(true);
}
}