📄 steppanel.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 + -