package org.arong.egdownloader.ui.window; import java.awt.Color; import java.awt.Window; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import org.arong.egdownloader.model.Task; import org.arong.egdownloader.ui.ComponentUtil; import org.arong.egdownloader.ui.IconManager; 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.AJTextField; import org.arong.egdownloader.ui.work.interfaces.IListenerTask; /** * 编辑任务信息窗口 * @author 阿荣 * @since 2014-09-18 */ public class EditWindow extends JDialog { private static final long serialVersionUID = -4627145534664363270L; private JButton editTaskBtn; private JLabel nameLabel; private JTextField nameField; private JLabel subnameLabel; private JTextField subnameField; private JLabel tagLabel; private JTextField tagField; private JLabel startLabel; private JTextField startField; private JLabel endLabel; private JTextField endField; private Task task; EgDownloaderWindow mainWindow; public EditWindow(EgDownloaderWindow _mainWindow, Task _task){ this.mainWindow = _mainWindow; this.setTask(_task); this.setTitle("编辑任务信息"); this.setSize(480, 250); this.getContentPane().setLayout(null); this.setResizable(false); this.setLocationRelativeTo(null); nameLabel = new AJLabel("名称:", Color.BLUE, 5, 10, 40, 30); nameField = new AJTextField("", 65, 10, 395, 30); subnameLabel = new AJLabel("子标题", Color.BLUE, 5, 55, 40, 30); subnameField = new AJTextField("", 65, 55, 395, 30); tagLabel = new AJLabel("标签:", Color.BLUE, 5, 100, 40, 30); tagField = new AJTextField("", 65, 100, 160, 30); startLabel = new AJLabel("开始:", Color.BLUE, 250, 100, 40, 30); startField = new AJTextField("", 290, 100, 60, 30); endLabel = new AJLabel("结束:", Color.BLUE, 360, 100, 40, 30); endField = new AJTextField("", 400, 100, 60, 30); editTaskBtn = new AJButton("保存", IconManager.getIcon("save"), new OperaBtnMouseListener(this, MouseAction.CLICK, new IListenerTask() { public void doWork(Window dialog, MouseEvent event) { String name = nameField.getText().trim(); String subname = subnameField.getText().trim(); String tag = tagField.getText().trim(); String start = startField.getText().trim(); String end = endField.getText().trim(); if("".equals(name)){ JOptionPane.showMessageDialog(dialog, "请填写任务名称"); }else if(!start.matches("^[0-9]*[1-9][0-9]*$")){ JOptionPane.showMessageDialog(dialog, "[开始]请填写正整数"); }else if(!end.matches("^[0-9]*[1-9][0-9]*$")){ JOptionPane.showMessageDialog(dialog, "[结束]请填写正整数"); }else if(Integer.parseInt(start) > Integer.parseInt(end)){ JOptionPane.showMessageDialog(dialog, "[开始]不能大于[结束]"); }else if(Integer.parseInt(end) > task.getTotal()){ JOptionPane.showMessageDialog(dialog, "[结束]不能大于图片总数:" + task.getTotal()); }else{ if("".equals(subname)){ subname = null; } if("".equals(tag)){ tag = "一般"; } task.setName(name); task.setSubname(subname); task.setTag(tag); task.setStart(Integer.parseInt(start)); task.setEnd(Integer.parseInt(end)); //保存 mainWindow.taskDbTemplate.update(task); dialog.dispose(); } } }), 190, 145, 100, 30); ComponentUtil.addComponents(getContentPane(), nameLabel, nameField, subnameLabel, subnameField, tagLabel, tagField, startLabel, startField, endLabel, endField, editTaskBtn); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { EditWindow this_ = (EditWindow) e.getSource(); mainWindow.setVisible(true); mainWindow.setEnabled(true); this_.dispose(); } //窗体由激活状态变成非激活状态 /*public void windowDeactivated(WindowEvent e) { mainWindow.setVisible(true); mainWindow.setEnabled(true); }*/ public void windowActivated(WindowEvent e) { mainWindow.setEnabled(false); } }); } public void initInfo(){ nameField.setText(task.getName()); subnameField.setText(task.getSubname()); tagField.setText(task.getTag()); startField.setText(task.getStart() + ""); endField.setText(task.getEnd() + ""); } public Task getTask() { return task; } public void setTask(Task task) { this.task = task; } public void dispose() { mainWindow.setEnabled(true); mainWindow.setVisible(true); super.dispose(); } }