package kaaass.es2k.mission; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.TableColumnModel; import kaaass.es2k.Main; public class MissionFrame extends JFrame { private static final long serialVersionUID = -3203885338701322372L; public static Vector<String> cN = new Vector<String>(); public static Vector<Vector<String>> data = new Vector<Vector<String>>(); public static JScrollPane sp; public static JTable table; public static TableColumnModel tableCM; public static JButton pauseBtn; public static JButton deleteBtn; public static JButton infoBtn; public static JButton startBtn; public static JLabel lable0; public static JComboBox<?> combo0; public JMenuBar mb; public JMenu fileMenu; public JMenuItem fmClose; public JMenuItem mmDelete; public MissionFrame () { cN.add("������"); cN.add("������"); cN.add("��������"); cN.add("����״̬"); table = new JTable(data, cN){ private static final long serialVersionUID = 1L; public boolean isCellEditable(int row, int column) { return false; } }; table.setRowSelectionAllowed(true); sp = new JScrollPane(table); pauseBtn = new JButton("��ͣ"); deleteBtn = new JButton("���"); infoBtn = new JButton("��ϸ��Ϣ"); startBtn = new JButton("��������"); lable0 = new JLabel("����������ɺ�"); String[] action = {"��", "�رճ���", "�ػ�", "ע��", "����"}; combo0 = new JComboBox<String>(action); initMenu(); initBounds(); initListener(); this.add(sp); this.add(pauseBtn); this.add(deleteBtn); this.add(infoBtn); this.add(startBtn); this.add(lable0); this.add(combo0); this.setLayout(null); this.setJMenuBar(mb); this.setSize(560, 402); this.setLocationRelativeTo(null); this.setTitle("������ͼ"); this.setResizable(false); this.setVisible(false); } public void initMenu () { mb = new JMenuBar(); fileMenu = new JMenu("�ļ�"); fmClose = new JMenuItem("�ر�"); mmDelete = new JMenuItem("�������"); fileMenu.add(mmDelete); fileMenu.addSeparator(); fileMenu.add(fmClose); mb.add(fileMenu); } public void initBounds () { sp.setBounds(2, 0, 552, 326); lable0.setBounds(2, 326, 105, 20); combo0.setBounds(104, 326, 80, 20); infoBtn.setBounds(186, 326, 90, 20); startBtn.setBounds(278, 326, 90, 20); pauseBtn.setBounds(370, 326, 90, 20); deleteBtn.setBounds(462, 326, 90, 20); } public void initListener () { infoBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { int row = table.getSelectedRow(); if (row < 0) { return; } int i = Integer.valueOf(data.get(row).get(0)); if (table.getSelectedRow() == 0 && !Main.missionManager.todoList.isEmpty()) { JOptionPane.showMessageDialog(null, Main.missionManager .mList.get(Main.missionManager.todoList.get(0)) .getDesc(), "��ϸ��Ϣ", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, Main.missionManager .mList.get(i).getDesc(), "��ϸ��Ϣ", JOptionPane.INFORMATION_MESSAGE); } } }); startBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { Main.missionManager.runMission(); } }); pauseBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { if (Main.missionManager.running) { if (pauseBtn.getText().equals("��ͣ")) { pauseBtn.setText("�ָ�"); Main.missionManager.pause(); setTitle("������ͼ������ͣ��"); } else { pauseBtn.setText("��ͣ"); Main.missionManager.resume(); setTitle("������ͼ"); } } } }); deleteBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { Main.missionManager.clear(); redraw(); } }); fmClose.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { setVisible(false); } }); mmDelete.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { Main.missionManager.clear(); redraw(); } }); } @SuppressWarnings("deprecation") public void show () { super.show(); redraw(); } public void redraw () { data.clear(); for (int i = Main.missionManager.mList.size() - 1; i >= 0; i--) { IMission m = Main.missionManager.mList.get(i); if (m != null) { Vector<String> v1 = new Vector<String>(); v1.add(String.valueOf(m.id)); v1.add(m.getTitle()); v1.add(m.getTypeName()); v1.add(m.getStates()); if (Main.missionManager.todoList.indexOf(m.id) >= 0) { data.add(0, v1); } else { data.add(v1); } } } table.updateUI(); } }