⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 steppanel.java

📁 一个用于监控WEB服务器和数据库服务器的客户端程序。
💻 JAVA
字号:
/**
 * <p>Title: 卓博营运支撑系统</p>
 *
 * <p>Description: 为本企业内部运作提供支撑,为企业資源的E化管理提供解決方案</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: 卓博信息科技有限公司</p>
 *
 * @author Henry
 * @version 1.0
 */
package com.jobcn.ui;

import java.util.ArrayList;
import java.awt.*;
import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import com.jobcn.control.Constant;
import com.jobcn.control.StepTableModel;

public class StepPanel extends JPanel {

	private ArrayList<String[]> stepData = new ArrayList<String[]>();
   
	private StepGeneralPanel stepGeneralPanel;
	private StepAdvancePanel stepAdvancePanel;
	private JTable table;
	private StepTableModel model;
	private int ID;
	private static TaskDialog taskDialog;
	
	public StepPanel(final TaskDialog taskDialog) {
		super(new BorderLayout());
		this.taskDialog = taskDialog;
		final JButton newStepConfirm = new JButton();
		final JButton newStepCancel = new JButton();
		
		JPanel panel = new JPanel();
		final JButton newStep = new JButton();
		
		newStepDialog = new JDialog(taskDialog, "增加执行步骤", true);
		newStepDialog.add(createNewStepPanel(), BorderLayout.CENTER);
		JPanel funcPanel = new JPanel();
		newStepConfirm.setBounds(21, 19, 59, 25);
		newStepConfirm.setText("确定");
		funcPanel.add(newStepConfirm);
		newStepCancel.setBounds(21, 19, 59, 25);
		newStepCancel.setText("取消");
		funcPanel.add(newStepCancel);
		newStepDialog.add(funcPanel, BorderLayout.SOUTH);
		newStepDialog.setSize(new Dimension(600, 400));
		newStepDialog.setLocationRelativeTo(null);
		
		newStep.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {	
				editable = false;
				stepGeneralPanel.getStepName().setText("");
				stepGeneralPanel.getStepType().setSelectedIndex(0);
				stepGeneralPanel.getProcPack().setSelectedIndex(0);
				stepGeneralPanel.getStepPath().setText("");
				stepGeneralPanel.getDescribe().setText("");
				newStepDialog.setVisible(true);
			}
		});
		
		newStepConfirm.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String[] oneStepData;
				if (!editable) { // 保存所新建的执行步骤
					oneStepData = new String[Constant.stepData.length];
					oneStepData[0] = String.valueOf(table.getRowCount()+1);
					oneStepData[1] = stepGeneralPanel.getStepName().getText();
					JComboBox sType = stepGeneralPanel.getStepType();
					String stepType = (String)sType.getSelectedItem();
					oneStepData[2] = String.valueOf(sType.getSelectedIndex());
					JComboBox sPack = stepGeneralPanel.getProcPack();
					String stepPack = (String)sPack.getSelectedItem();				
					oneStepData[3] = String.valueOf(sPack.getSelectedIndex());
					oneStepData[4] = stepGeneralPanel.getStepPath().getText();
					//oneStepData[5] = (String)stepAdvancePanel.getSuccessAction().getSelectedItem();
					//oneStepData[6] = (String)stepAdvancePanel.getFailureAction().getSelectedItem();
					//oneStepData[7] = stepAdvancePanel.getOutputFile().getText();
					stepData.add(oneStepData);
					String[] clonedOneStepData = oneStepData.clone();
					clonedOneStepData[2] = stepType;
					clonedOneStepData[3] = stepPack;
					model.addRow(clonedOneStepData);
				}
				else { // 保存所编辑的执行步骤
					try {
						int idx = table.getSelectedRow();
						oneStepData = stepData.get(idx);
						oneStepData[1] = stepGeneralPanel.getStepName().getText();
						oneStepData[2] = String.valueOf(stepGeneralPanel.getStepType().getSelectedIndex());
						oneStepData[3] = String.valueOf(stepGeneralPanel.getProcPack().getSelectedIndex());
						oneStepData[4] = stepGeneralPanel.getStepPath().getText();
						stepData.set(idx, oneStepData);
						String[] clonedOneStepData = oneStepData.clone();
						clonedOneStepData[2] = 
							(String)stepGeneralPanel.getStepType().getSelectedItem();
						clonedOneStepData[3] = 
							(String)stepGeneralPanel.getProcPack().getSelectedItem();
						for (int i=0;i<table.getColumnCount();i++) {
							table.setValueAt(clonedOneStepData[i], idx, i);
						}
					}
					catch(Exception ex) {
						ex.printStackTrace();
					}
				}
				table.updateUI();
		        newStepDialog.dispose();
			}
		});
	
		newStepCancel.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				newStepDialog.dispose();
			}
		});
		
		newStep.setBounds(21, 19, 59, 25);
		newStep.setText("新建");
		panel.add(newStep);
		
		final JButton editStep = new JButton();
		editStep.setBounds(89, 19, 59, 25);
		editStep.setText("编辑");
		editStep.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				editStep();				
			}
		});
		panel.add(editStep);

		/*final JButton button_2 = new JButton();
		button_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		button_2.setBounds(157, 19, 59, 25);
		button_2.setText("插入");
		panel.add(button_2);*/

		final JButton delStep = new JButton();
		delStep.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int idx = table.getSelectedRow();
				if (idx < 0){
					JOptionPane.showMessageDialog(taskDialog, "请选择一个步骤!");
					return;
				}
				int n = JOptionPane.showConfirmDialog(
						taskDialog, "您确定要删除该步骤吗?", "删除步骤", JOptionPane.YES_NO_OPTION);
				if (n == JOptionPane.YES_OPTION) {
					for (int i = idx + 1; i < table.getRowCount(); i++) {
						stepData.get(i)[0] = String.valueOf(i);
						table.setValueAt(new Integer(i), i, 0);
					}
					stepData.remove(idx);
					model.removeRow(idx);
				}
			}
		});
		delStep.setBounds(227, 18, 59, 25);
		delStep.setText("删除");
		panel.add(delStep);
		add(panel, BorderLayout.NORTH);
		
        String[] columnNames = Constant.stepData;
        model = new StepTableModel(columnNames, 0);
        table = new JTable(model);
		table.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent e) {
				if (e.getClickCount() == 2){
					editStep();
				}
			}
		});
        JScrollPane scrollPane = new JScrollPane(table);
        add(scrollPane, BorderLayout.CENTER);

	}

	private JComponent createNewStepPanel() {
		JTabbedPane tab = new JTabbedPane(JTabbedPane.TOP);
		stepGeneralPanel = new StepGeneralPanel();
		stepAdvancePanel = null;//new StepAdvancePanel();
		tab.add(stepGeneralPanel, BorderLayout.CENTER);
		tab.setTitleAt(0, "常规    ");
		tab.add(stepAdvancePanel, BorderLayout.CENTER);
		tab.setTitleAt(1, "高级    ");
		tab.setEnabledAt(1, false);
		tab.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
					newStepDialog.dispose();
					int rowNo = table.getSelectedRow();
					if (rowNo > 0) {
						table.setRowSelectionInterval(rowNo, rowNo);						
					}
				}
			}
		});		
		return tab;
	}
	
	private void editStep() {
		editable = true;
		int idx = table.getSelectedRow();
		if (idx >= 0) {
			String[] one = stepData.get(idx);
			stepGeneralPanel.getStepName().setText(one[1]);
			stepGeneralPanel.getStepType().setSelectedIndex(Integer.parseInt(one[2]));
			stepGeneralPanel.getProcPack().setSelectedIndex(Integer.parseInt(one[3]));
			stepGeneralPanel.getStepPath().setText(one[4]);
			newStepDialog.setTitle("编辑执行步骤");
			newStepDialog.setVisible(true);
		}
		else {
			JOptionPane.showMessageDialog(taskDialog, "请选择一个步骤!");
			return;
		}
	}
    
    private JDialog newStepDialog;
    private boolean editable;
    
	public ArrayList<String[]> getStepData() {
		return stepData;
	}

	public void setStepData(ArrayList<String[]> stepData) {
		this.stepData = stepData;
	}

	public JTable getTable() {
		return table;
	}

	public void setTable(JTable table) {
		this.table = table;
	}

	public StepTableModel getModel() {
		return model;
	}

	public void setModel(StepTableModel model) {
		this.model = model;
	}

	public int getID() {
		return ID;
	}

	public void setID(int id) {
		ID = id;
	}

	public JDialog getNewStepDialog() {
		return newStepDialog;
	}
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -