package dell_Fence; import javax.swing.*; import java.awt.*; import java.sql.SQLException; import java.util.List; import java.util.ResourceBundle; import dell_Fence.Dell_FenceType; import dell_system.Dell_department; import dell_suanfa.Dell_LayerManagement; import dell_system.Dell_company; import targets.Fence; @SuppressWarnings("serial") public class EditFenceDialog extends JDialog { private boolean saved = false; private Fence fenceData; private JTextField idField; private JTextField nameField; private JComboBox typeComboBox; private JComboBox deptComboBox; private JComboBox layerComboBox; private JTextField startTimeField; private JTextField endTimeField; private JComboBox colorComboBox; private JCheckBox enabledCheckBox; private JComboBox companyComboBox; public EditFenceDialog(JFrame parent, String title, boolean modal, Fence fenceData, ResourceBundle messages) { super(parent, title, modal); this.fenceData = fenceData; initDialog(); } private void initDialog() { setSize(600, 400); setLocationRelativeTo(getOwner()); JPanel mainPanel = new JPanel(new GridLayout(11, 2, 5, 5)); mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // ÐòºÅ mainPanel.add(new JLabel("ÐòºÅ:")); idField = new JTextField(fenceData.getId()); idField.setEditable(false); mainPanel.add(idField); // ΧÀ¸Ãû³Æ mainPanel.add(new JLabel("ΧÀ¸Ãû³Æ:")); nameField = new JTextField(fenceData.getFenceName()); nameField.setEditable(false); mainPanel.add(nameField); // ΧÀ¸ÀàÐÍ mainPanel.add(new JLabel("ΧÀ¸ÀàÐÍ:")); typeComboBox = new JComboBox<>(); try { String[] types = Dell_FenceType.getAllFenceTypeNames(); for (String type : types) { typeComboBox.addItem(type); } typeComboBox.setSelectedItem(Dell_FenceType.getFenceTypeById(Integer.parseInt(fenceData.getFenceType())).getTypeName()); } catch (Exception e) { e.printStackTrace(); } mainPanel.add(typeComboBox); // ¹ØÁª²¿ÃÅ mainPanel.add(new JLabel("¹ØÁª²¿ÃÅ:")); deptComboBox = new JComboBox<>(); String[] depts = Dell_department.getAllDepartmentNames(); for (String dept : depts) { deptComboBox.addItem(dept); } deptComboBox.setSelectedItem(fenceData.getRelatedDepartment()); mainPanel.add(deptComboBox); // ËùÊô²ã mainPanel.add(new JLabel("ËùÊô²ã:")); layerComboBox = new JComboBox<>(); String[] layers = Dell_LayerManagement.getAllLayerNumbers(); for (String layer : layers) { layerComboBox.addItem(layer); } layerComboBox.setSelectedItem(fenceData.getLayer()); mainPanel.add(layerComboBox); // ÉúЧʱ¼ä mainPanel.add(new JLabel("ÉúЧʱ¼ä:")); startTimeField = new JTextField(fenceData.getEffectiveTime()); mainPanel.add(startTimeField); // ʧЧʱ¼ä mainPanel.add(new JLabel("ʧЧʱ¼ä:")); endTimeField = new JTextField(fenceData.getExpirationTime()); mainPanel.add(endTimeField); // ÑÕÉ« mainPanel.add(new JLabel("ÑÕÉ«:")); colorComboBox = new JComboBox<>(new String[]{"ºìÉ«", "À¶É«", "ÂÌÉ«", "×ÏÉ«", "ÇàÉ«"}); colorComboBox.setSelectedIndex(Integer.parseInt(fenceData.getColor())); mainPanel.add(colorComboBox); // ÊÇ·ñÆôÓà mainPanel.add(new JLabel("ÊÇ·ñÆôÓÃ:")); enabledCheckBox = new JCheckBox(); enabledCheckBox.setSelected(fenceData.getIsEnabled().equals("1")); mainPanel.add(enabledCheckBox); // ËùÊô¹«Ë¾ mainPanel.add(new JLabel("ËùÊô¹«Ë¾:")); companyComboBox = new JComboBox<>(); String[] companies = Dell_company.getAllCompanyNames(); for (String company : companies) { companyComboBox.addItem(company); } companyComboBox.setSelectedItem(fenceData.getCompany()); mainPanel.add(companyComboBox); // °´Å¥Ãæ°å JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JButton saveButton = new JButton("È·¶¨"); saveButton.addActionListener(e -> saveFenceData()); buttonPanel.add(saveButton); JButton cancelButton = new JButton("È¡Ïû"); cancelButton.addActionListener(e -> dispose()); buttonPanel.add(cancelButton); add(mainPanel, BorderLayout.CENTER); add(buttonPanel, BorderLayout.SOUTH); } private void saveFenceData() { if (!validateFields()) { return; } // ¸üÐÂΧÀ¸Êý¾Ý fenceData.setFenceType(getTypeCodeFromName((String) typeComboBox.getSelectedItem())); fenceData.setRelatedDepartment((String) deptComboBox.getSelectedItem()); fenceData.setLayer((String) layerComboBox.getSelectedItem()); fenceData.setEffectiveTime(startTimeField.getText()); fenceData.setExpirationTime(endTimeField.getText()); fenceData.setColor(String.valueOf(colorComboBox.getSelectedIndex())); fenceData.setIsEnabled(enabledCheckBox.isSelected() ? "1" : "0"); fenceData.setCompany((String) companyComboBox.getSelectedItem()); saved = true; dispose(); } private String getTypeCodeFromName(String typeName) { try { // ÐÞ¸´: ²»Ê¹Ó÷ºÐͲÎÊý£¬Ê¹ÓÃԭʼÀàÐÍList List types = Dell_FenceType.getAllFenceTypes(); for (Object obj : types) { // ÊÖ¶¯½«¶ÔÏóת»»ÎªFenceType FenceType type = (FenceType) obj; if (type.getTypeName().equals(typeName)) { return type.getTypeCode(); } } } catch (SQLException e) { e.printStackTrace(); } return "1"; // ĬÈÏÖµ } private boolean validateFields() { // ¼òµ¥ÑéÖ¤ - ʵ¼ÊÓ¦ÓÃÖÐÐèÒª¸üÑϸñµÄÑéÖ¤ if (startTimeField.getText().isEmpty()) { JOptionPane.showMessageDialog(this, "ÉúЧʱ¼ä²»ÄÜΪ¿Õ", "ÑéÖ¤´íÎó", JOptionPane.ERROR_MESSAGE); return false; } if (endTimeField.getText().isEmpty()) { JOptionPane.showMessageDialog(this, "ʧЧʱ¼ä²»ÄÜΪ¿Õ", "ÑéÖ¤´íÎó", JOptionPane.ERROR_MESSAGE); return false; } return true; } public boolean isSaved() { return saved; } }