package com.vci.client.portal.UI.v3.comptdesign.compt.popupcompt; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JRootPane; import javax.swing.border.LineBorder; import com.vci.client.portal.UI.v3.comptdesign.UIComptDesignDialog; import com.vci.client.ui.swing.VCISwingUtil; import com.vci.client.ui.swing.components.VCIJButton; import com.vci.client.ui.swing.components.VCIJOptionPane; import com.vci.client.ui.swing.components.VCIJPanel; import com.vci.client.ui.swing.components.VCIJTextField; import com.vci.corba.omd.btm.BtmItem; import com.vci.mw.ClientContextVariable; public class BtmTypePopupDialog extends BasePopupDialog { /** * */ private static final long serialVersionUID = 7777846452758890109L; private BtmTypePopupTablePanel btmTypeTablePanel = null; private VCIJButton btnOk = VCISwingUtil.createVCIJButton("ok", "确定", "确定", "accept.png", new ActionListener() { @Override public void actionPerformed(ActionEvent e) { btnOk_actionPerformed(e, true); } }); private VCIJButton btnCancel = VCISwingUtil.createVCIJButton("cancel", "取消", "取消", "cancel.png", new ActionListener() { @Override public void actionPerformed(ActionEvent e) { btnCancel_actionPerformed(e); } }); public BtmTypePopupDialog(UIComptDesignDialog ownedUIComptDesignDialog, VCIJTextField searchInputTxt){ super(ownedUIComptDesignDialog, searchInputTxt); } @Override public void buildDialog(){ init(); super.setBuildCompleted(true); } private void init(){ initUI(); } private void initUI(){ setUndecorated(true); getRootPane().setWindowDecorationStyle(JRootPane.NONE); setLayout(new BorderLayout()); VCIJPanel pal = new VCIJPanel(new BorderLayout()); pal.setBorder(new LineBorder(Color.black)); btmTypeTablePanel = new BtmTypePopupTablePanel(this); btmTypeTablePanel.buildTablePanel(); btmTypeTablePanel.getTablePanel().getTable().addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int row = btmTypeTablePanel.getTablePanel().getTable().rowAtPoint(e.getPoint()); int column = btmTypeTablePanel.getTablePanel().getTable().columnAtPoint(e.getPoint()); if(row < 0 || column <= 0){ return; } setBtmTypeNameTableRowIndex(row); } }); pal.add(btmTypeTablePanel, BorderLayout.CENTER); pal.add(getSouthButtonPanel(), BorderLayout.SOUTH); add(pal, BorderLayout.CENTER); } private VCIJPanel getSouthButtonPanel(){ VCIJPanel pal = new VCIJPanel(); pal.add(btnOk); pal.add(btnCancel); return pal; } private void btnOk_actionPerformed(ActionEvent e, boolean fromBtnOk){ if(fromBtnOk){ BtmItem[] sels = btmTypeTablePanel.getTablePanel().getSelectedRowObjectsList().toArray(new BtmItem[]{}); if(sels.length == 0 && !isSelected()){ VCIJOptionPane.showMessage(ClientContextVariable.getFrame(), "请先选择数据"); return; } if(sels.length >= 2){ VCIJOptionPane.showMessage(ClientContextVariable.getFrame(), "只能选择一条数据"); return; } setBtmTypeName(sels[0]); close(DialogResult.OK); } else { int row = btmTypeTablePanel.getTablePanel().getTable().getSelectedRow(); setBtmTypeNameTableRowIndex(row); } } private void setBtmTypeNameTableRowIndex(int rowIndex){ if(rowIndex >= 0 && rowIndex < btmTypeTablePanel.getTablePanel().getTableModel().getList().size()){ BtmItem bi = btmTypeTablePanel.getTablePanel().getSpecialObjectByRowIndex(rowIndex); setBtmTypeName(bi); close(DialogResult.OK); } } private void setBtmTypeName(BtmItem bi){ selectedBtmTypeName = bi.name; } private String selectedBtmTypeName = ""; public String getSelectedBtmTypeName(){ return selectedBtmTypeName; } private boolean isSelected(){ return btmTypeTablePanel.getTablePanel().getTable().getSelectedRow() >= 0; } private void btnCancel_actionPerformed(ActionEvent e){ close(DialogResult.CANCEL); } private void close(DialogResult dialogRes){ setDialogResult(dialogRes); if(getDialogCallback() != null){ getDialogCallback().run(); } setVisible(false); } public BtmTypePopupTablePanel getBtmTypeTablePanel() { return btmTypeTablePanel; } public void setBtmTypeTablePanel(BtmTypePopupTablePanel btmTypeTablePanel) { this.btmTypeTablePanel = btmTypeTablePanel; } @Override public void loadData(){ btmTypeTablePanel.getTablePanel().refreshTableData(); } }