/* * 作成日: 2005/06/29 * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ package pwv.spring.view; import java.util.HashMap; import java.util.Observable; import java.util.Observer; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; /** * ErrorFrame * * @author Hiroshi TAKEMOTO */ public class ErrorFrame extends AbstractDispatchDialog implements Observer { private javax.swing.JPanel jContentPane = null; private javax.swing.JPanel jMessagePanel = null; private javax.swing.JPanel jButtonPanel = null; private javax.swing.JButton jCloseButton = null; private javax.swing.JScrollPane jScrollPane = null; private javax.swing.JTextArea jMessageArea = null; /* (非 Javadoc) * @see java.util.Observer#update(java.util.Observable, java.lang.Object) */ public void update(Observable o, Object arg) { ModelAndView mv = (ModelAndView)arg; if (mv != null) { HashMap error = mv.getModel() != null ? (HashMap)mv.getModel().get("error") : null; if (error != null) { BindException bindEx = (BindException)error.get(BindException.class.getName() + ".command"); String msg = bindEx.getMessage(); getJMessageArea().setText(msg.replaceAll(";", "\n")); } } pack(); show(); } /** * This is the default constructor */ public ErrorFrame() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setContentPane(getJContentPane()); this.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private javax.swing.JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new javax.swing.JPanel(); jContentPane.setLayout(new java.awt.BorderLayout()); jContentPane.add(getJMessagePanel(), java.awt.BorderLayout.CENTER); jContentPane.add(getJButtonPanel(), java.awt.BorderLayout.SOUTH); } return jContentPane; } /** * This method initializes jMessagePanel * * @return javax.swing.JPanel */ private javax.swing.JPanel getJMessagePanel() { if(jMessagePanel == null) { jMessagePanel = new javax.swing.JPanel(); jMessagePanel.add(getJScrollPane(), null); jMessagePanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Error message", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); } return jMessagePanel; } /** * This method initializes jButtonPanel * * @return javax.swing.JPanel */ private javax.swing.JPanel getJButtonPanel() { if(jButtonPanel == null) { jButtonPanel = new javax.swing.JPanel(); jButtonPanel.add(getJCloseButton(), null); } return jButtonPanel; } /** * This method initializes jCloseButton * * @return javax.swing.JButton */ private javax.swing.JButton getJCloseButton() { if(jCloseButton == null) { jCloseButton = new javax.swing.JButton(); jCloseButton.setText("閉じる"); jCloseButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { setVisible(false); } }); } return jCloseButton; } /** * This method initializes jScrollPane * * @return javax.swing.JScrollPane */ private javax.swing.JScrollPane getJScrollPane() { if(jScrollPane == null) { jScrollPane = new javax.swing.JScrollPane(); jScrollPane.setViewportView(getJMessageArea()); jScrollPane.setPreferredSize(new java.awt.Dimension(400,200)); } return jScrollPane; } /** * This method initializes jMessageArea * * @return javax.swing.JTextArea */ private javax.swing.JTextArea getJMessageArea() { if(jMessageArea == null) { jMessageArea = new javax.swing.JTextArea(); } return jMessageArea; } }