package com.vci.client.portal.platformPortal; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JTable; import javax.swing.JScrollPane; import com.vci.client.LogonApplication; import com.vci.client.omd.btm.wrapper.BtmItemWrapper; import com.vci.client.omd.linktype.LinkTypeWrapper; import com.vci.client.portal.utility.PRM; import com.vci.client.portal.utility.PRMItem; import com.vci.client.portal.utility.UITools; import com.vci.client.ui.swing.VCIOptionPane; import com.vci.client.ui.swing.components.VCIJButton; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.VCIError; import com.vci.corba.portal.data.PortalVI; public class PlatformPortalDialog extends JDialog { private final JPanel contentPanel = new JPanel(); private JTextField textField; private VCIJButton addBtn; private VCIJButton editBtn; private VCIJButton delBtn; private JTable table; private JButton okButton; private JButton cancelButton; private Object selectNodeObject; private PortalTableModel portalTableModel; private PortalVI pvi; private PRM prm; private Boolean editFlag; private short type; public PlatformPortalDialog(Object object,PortalVI pvi,Boolean editFlag,short type) { super(LogonApplication.frame, true); this.selectNodeObject = object; this.editFlag = editFlag; this.pvi = pvi; this.type = type; init(); actionListener(); initData(); this.setLocationRelativeTo(null); this.setVisible(true); } private void init() { setBounds(100, 100, 514, 389); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); contentPanel.setLayout(new BorderLayout(0, 0)); { JPanel attrPanel = new JPanel(); contentPanel.add(attrPanel, BorderLayout.NORTH); attrPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5)); { JLabel lblNewLabel = new JLabel("名称"); attrPanel.add(lblNewLabel); } { textField = new JTextField(); attrPanel.add(textField); textField.setColumns(20); } } { JPanel tablePanel = new JPanel(); contentPanel.add(tablePanel, BorderLayout.CENTER); tablePanel.setLayout(new BorderLayout(0, 0)); { JScrollPane scrollPane = new JScrollPane(); tablePanel.add(scrollPane); { table = new JTable(); portalTableModel = new PortalTableModel(); table.setModel(portalTableModel); scrollPane.setViewportView(table); } } } { JPanel btnPanel = new JPanel(); contentPanel.add(btnPanel, BorderLayout.SOUTH); { addBtn = new VCIJButton("新增"); btnPanel.add(addBtn); } { editBtn = new VCIJButton("修改"); btnPanel.add(editBtn); } { delBtn = new VCIJButton("删除"); btnPanel.add(delBtn); } } { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { okButton = new JButton("保存"); buttonPane.add(okButton); } { cancelButton = new JButton("关闭"); buttonPane.add(cancelButton); } } } private void actionListener(){ addBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent paramActionEvent) { if(textField.getText().trim().equals("")){ VCIOptionPane.showMessage(LogonApplication.frame, "请填写名称"); return; } if(pvi==null){ pvi = new PortalVI(); } pvi.viName = textField.getText().trim(); WidgetDialog dialog = new WidgetDialog(pvi,null,-1,selectNodeObject); dialog.setVisible(true); pvi.prm = dialog.getPrmText(); prm = UITools.getPRM(pvi.prm); initData(); } }); editBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { int selectedRow = table.getSelectedRowCount(); if(selectedRow>1){ VCIOptionPane.showMessage(LogonApplication.frame, "只能修改一条记录"); return; } if(selectedRow == -1){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择一条记录"); return; } PRMItem[] data = portalTableModel.getData(); WidgetDialog dialog = new WidgetDialog(pvi,data[table.getSelectedRow()],table.getSelectedRow(),selectNodeObject); dialog.setVisible(true); pvi.prm = dialog.getPrmText(); prm = UITools.getPRM(pvi.prm); initData(); } }); delBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int selectedRow = table.getSelectedRowCount(); if(selectedRow>1){ VCIOptionPane.showMessage(LogonApplication.frame, "只能修改一条记录"); return; } PRMItem[] data = portalTableModel.getData(); prm = UITools.getPRM(pvi.prm); prm.getPrmItemList().remove(table.getSelectedRow()); try { pvi.prm = UITools.getPRMText(prm); prm = UITools.getPRM(pvi.prm); } catch (Throwable e) { e.printStackTrace(); } initData(); } }); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { if(editFlag == true){ pvi.viName = textField.getText(); UITools.getService().updatePortalVI(pvi); }else{ pvi.id = ObjectUtility.getNewObjectID36(); String btmName = ""; if(selectNodeObject instanceof BtmItemWrapper){ btmName = ((BtmItemWrapper)selectNodeObject).btmItem.name; }else if(selectNodeObject instanceof LinkTypeWrapper){ btmName = ((LinkTypeWrapper)selectNodeObject).linkType.name; } pvi.typeName = btmName; pvi.viType =type; UITools.getService().savePortalVI(pvi); } VCIOptionPane.showMessage(LogonApplication.frame, "保存成功"); dispose(); } catch (VCIError e) { e.printStackTrace(); VCIOptionPane.showMessage(LogonApplication.frame, "保存失败"); } } }); cancelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { dispose(); } }); } public void initData() { if(pvi == null){ return; } textField.setText(pvi.viName); String prmText = pvi.prm; prm = UITools.getPRM(prmText); PRMItem[] dataObjs = prm.getPrmItemList().toArray(new PRMItem[]{}); portalTableModel.setData(dataObjs); table.removeAll(); table.setModel(portalTableModel); } }