package org.arong.egdownloader.ui.window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import org.arong.egdownloader.model.Task;
import org.arong.egdownloader.ui.ComponentConst;
import org.arong.egdownloader.ui.ComponentUtil;
import org.arong.egdownloader.ui.listener.MenuItemActonListener;
import org.arong.egdownloader.ui.swing.AJButton;
import org.arong.egdownloader.ui.work.listenerWork.DownloadCoverWork;
/**
* 漫画封面窗口
* @author 阿荣
* @since 2014-09-06
*/
public class CoverWindow extends JDialog {
private static final long serialVersionUID = 6624222157904971813L;
private JLabel coverLabel = null;
private JButton downBtn = null;
private EgDownloaderWindow mainWindow;
public CoverWindow(Task task, EgDownloaderWindow mainWindow) {
this.mainWindow = mainWindow;
this.setTitle("漫画封面");
this.getContentPane().setLayout(null);
this.setLocationRelativeTo(mainWindow);
this.setResizable(false);
coverLabel = new JLabel();
showCover(task);
ComponentUtil.addComponents(getContentPane(),coverLabel);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
CoverWindow this_ = (CoverWindow) e.getSource();
this_.dispose();
}
});
}
public void showCover(Task task){
String path = ComponentConst.getSavePathPreffix() + task.getSaveDir() + "/cover.jpg";
File cover = new File(path);
//不存在封面
if(cover == null || !cover.exists()){
this.setSize(200, 80);
coverLabel.setText("还没下载封面");
coverLabel.setBounds(5, 5, 100, 30);
coverLabel.setIcon(null);
if(downBtn == null){
downBtn = new AJButton("下载", "", new MenuItemActonListener(mainWindow, new DownloadCoverWork()), 120, 5, 60, 30);
this.getContentPane().add(downBtn);
}else{
downBtn.setVisible(true);
}
}else{
ImageIcon icon = new ImageIcon(path);
if(icon.getIconWidth() == -1){
this.setSize(200, 80);
coverLabel.setText("封面文件格式错误");
coverLabel.setBounds(50, 5, 150, 30);
coverLabel.setIcon(null);
}else{
this.setSize(icon.getIconWidth() + 20, icon.getIconHeight() + 45);
coverLabel.setBounds(5, 5, icon.getIconWidth(), icon.getIconHeight());
coverLabel.setIcon(icon);
}
if(downBtn != null){
downBtn.setVisible(false);
}
}
this.setLocationRelativeTo(null);
}
}