package org.infosec.ismp.applet.manager.component.dialog; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import org.infosec.ismp.applet.manager.model.DomainModel; import twaver.network.TNetwork; import twaver.swing.TableLayout; /** * 部门对话框 * @author 肖高峰 * */ @SuppressWarnings("serial") public class DomainDialog extends JDialog implements PropertyChangeListener{ /** * 名称输入框 */ private JTextField txtName = new JTextField(11); /** * 备注输入框 */ private JTextArea txaRemark=new JTextArea(3,11); private JButton btnEnter = new JButton("确定"); private JButton btnCancel = new JButton("取消"); /** * 云图模型 */ private DomainModel model; /** * 加入到哪个面 */ private TNetwork network; /** * 实例化一个云图 * @param model 模型 * @param title 标题 */ public DomainDialog(DomainModel model,TNetwork network) { this.network = network; if(this.network == null) { JOptionPane.showMessageDialog(null,"当前拓扑面板不存在!","系统异常" , JOptionPane.ERROR_MESSAGE); DomainDialog.this.dispose(); return; } this.model = model; if(this.model == null) { this.model = new DomainModel(); } else if(this.model.getId() == null) { this.setTitle("添加设备"); } else { this.setTitle("修改设备"); } initGUI(); this.pack(); this.setVisible(true); } private void initGUI() { this.setLocationRelativeTo(null); this.setSize(190, 176); double b = 10; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; double vs = 5; double vg = 10; double hg = 5; // b - border yes or no // f - FILL // p - 优选 eclipse Platfor // vs - 标签和文本字段的垂直间距 // vg - 表单元素之间的垂直 // hg - 表单元素之间的水平差距 double size[][] = { { b, f, hg, p, b }, { b, p, vg, p, p, p, vs, p, b } }; JLabel lblName = new JLabel("名称 :"); JLabel lblRemark= new JLabel("描述 :"); JScrollPane sp = new JScrollPane(); sp.getViewport().add(txaRemark); JPanel pane = new JPanel(); pane.add(btnEnter); pane.add(btnCancel); Container c = this.getContentPane(); c.setLayout(new TableLayout(size)); c.add(lblName,"1,1"); c.add(txtName,"3,1"); c.add(lblRemark,"1,4"); c.add(sp,"3,3,3,5"); c.add(pane,"1,7,3,7"); btnEnter.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(txtName.getText().equals("")) { JOptionPane.showMessageDialog(DomainDialog.this, "未输入云图名称!"); txtName.requestFocus(); } else { model.setDomainName(txtName.getText()); model.setDescription(txaRemark.getText()); if(network.getCurrentSubNetwork() instanceof DomainModel) { model.setParentDomain((DomainModel)network.getCurrentSubNetwork()); } model.save(); DialogBuilder.disposeDomainDialog(); DomainDialog.this.dispose(); } } }); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DialogBuilder.disposeDomainDialog(); DomainDialog.this.dispose(); } }); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { DialogBuilder.disposeDomainDialog(); } }); updateFileds(); } private void updateFileds() { if(model.getDomainName() != null && !model.getDomainName().equals("")) { txtName.setText(model.getDomainName()); } if(model.getDescription() != null && !model.getDescription().equals("")) { txaRemark.setText(model.getDescription()); } } public void propertyChange(PropertyChangeEvent evt) { updateFileds(); } public DomainModel getModel() { return model; } public void setModel(DomainModel model) { this.model = model; updateFileds(); } // public static void main(String[] args) { // new DomainDialog(null); // } }