package captor.windowsystem.formcomponent.ncp; import java.awt.Dimension; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.table.DefaultTableModel; import captor.lib.intl.MyIntl; import captor.modelsystem.Model; import captor.windowsystem.CaptorFrame; import captor.windowsystem.formcomponent.FormComponent; /** * @author Kicho * */ public class ShowFormElementFrame extends CaptorFrame implements ActionListener { public static final long serialVersionUID = 147; Element element; CaptorFrame owner; public ShowFormElementFrame(Model model, CaptorFrame owner, String classname, DefaultTableModel tableModel) { super(model, owner); this.model = model; this.element = new Element(model); this.element.setClassname(classname); for ( int i = 0; i < tableModel.getRowCount(); i++ ) { Vector data = (Vector) tableModel.getDataVector().get(i); String name = (String) data.get(0); String value = (String) data.get(1); this.element.addParameter(new Parameter(name, value)); } this.owner = owner; } //------------------------------------------------------------------------- public boolean initialize() { //--------- setCenterSize(800, 300); setResizable(false); setState(Frame.NORMAL); setTitle(MyIntl.NCP_LABEL_FE2); addWindowListener(this); //--------- JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); Dimension minSize = new Dimension(150, 30); Dimension prefSize = new Dimension(100, 300); Dimension maxSize = new Dimension(450, 380); //--------- FormComponent fe = getFormComponent(); if ( fe == null ) return false; //--------- JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); JButton okButton = new JButton(MyIntl.NCP_LABEL_OK); JButton cancelButton = new JButton(MyIntl.NCP_LABEL_CANCEL); okButton.addActionListener(this); cancelButton.addActionListener(this); buttonPanel.add(Box.createHorizontalGlue()); buttonPanel.add(okButton); buttonPanel.add(Box.createRigidArea(new Dimension(12,20))); buttonPanel.add(cancelButton); buttonPanel.add(Box.createRigidArea(new Dimension(12,20))); //--------- panel.add(new Box.Filler(minSize, prefSize, maxSize)); panel.add(fe); panel.add(new Box.Filler(minSize, prefSize, maxSize)); panel.add(buttonPanel); panel.add(new Box.Filler(minSize, prefSize, maxSize)); this.add(panel); return true; } protected void init() throws Exception { } //------------------------------------------------------------------------- public void windowClosing2(WindowEvent e) { close(); } //------------------------------------------------------------------------- public void dispose() { close(); } //------------------------------------------------------------------------- public void actionPerformed (ActionEvent e) { if ( e.getActionCommand().equals(MyIntl.NCP_LABEL_CANCEL) ) { this.setVisible(false); } else { this.setVisible(false); } } //------------------------------------------------------------------------- private FormComponent getFormComponent() { FormComponent fe = null; try { fe = FEUtil.getFormElementInstance(owner, model, element.getClassname()); if ( fe == null ) { //the error was already sinalized by FEUTil return null; } for(int i = 0; i < element.getParameters().size(); i++ ) { Parameter pt = (Parameter) element.getParameters().get(i); fe.setParameter(pt.getName(), pt.getValue()); } fe.parseParameters(); if ( !fe.validateParameters() ) { JOptionPane.showMessageDialog(this, MyIntl.MSG105 + fe.getErrorMsg()); return null; } } catch (Throwable e) { JOptionPane.showMessageDialog(this, MyIntl.MSG105 + e.toString()); e.printStackTrace(); return null; } return fe; } //------------------------------------------------------------------------- }