package com.vci.client.portal.UI.v3;
|
|
import java.awt.BorderLayout;
|
import java.awt.FlowLayout;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.Arrays;
|
import java.util.Comparator;
|
import java.util.HashMap;
|
|
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionListener;
|
|
import com.vci.client.portal.NewNewUI.buttonmng.ButtonSettingDialog;
|
import com.vci.client.portal.UI.v3.comptdesign.UIComptDesignDialog;
|
import com.vci.client.portal.utility.PLDefination;
|
import com.vci.client.portal.utility.UIServiceLocaleDisplay;
|
import com.vci.client.portal.utility.UITools;
|
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.VCIJDialog.DialogResult;
|
import com.vci.client.ui.swing.components.table.AbstractVCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableNode;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
import com.vci.common.portal.enums.ComponentType;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.corba.portal.data.PLPageDefination;
|
import com.vci.corba.portal.data.PLUILayout;
|
import com.vci.corba.portal.data.PLTabPage;
|
import com.vci.mw.ClientContextVariable;
|
|
/**
|
* 单一页签里的组件
|
*
|
* <p>Title: </p>
|
* <p>Description: </p>
|
* <p>Copyright: Copyright (c) 2016</p>
|
* <p>Company: VCI</p>
|
* @author xiongchao
|
* @time 2017-2-16
|
* @version 1.0
|
*/
|
public class TabPageComptPanel extends VCIJPanel {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 5115706634662248470L;
|
private BtmItem btmItem = null;
|
private PLUILayout pageLayoutDefination = null;
|
private PLTabPage tabPage = null;
|
private int areaType = 1;
|
public TabPageComptPanel(){
|
|
}
|
public void refreshUI(){
|
tablePanel.refreshTableData();
|
}
|
public void clearUI(){
|
if(tablePanel != null){
|
tablePanel.getTable().getSelectionModel().clearSelection();
|
tablePanel.getTableModel().clear();
|
tablePanel.getTableModel().fireTableDataChanged();
|
}
|
}
|
public void buildUI(){
|
init();
|
}
|
private void init(){
|
setLayout(new BorderLayout());
|
add(getCenterTablePanel(), BorderLayout.CENTER);
|
}
|
|
private Comparator<PLPageDefination> pageDefinationComparator = new Comparator<PLPageDefination>() {
|
@Override
|
public int compare(PLPageDefination o1, PLPageDefination o2) {
|
return new Integer(o1.seq).compareTo(new Integer(o2.seq));
|
}
|
};
|
private final String SEARCH_TYPE_BTMTYPE = " 本对象属性";
|
private final String SEARCH_TYPE_LINKTYPE = "关联对象属性";
|
private VCIJTableDataProvider<PLPageDefination> dataProvider = null;
|
private VCIJTablePanel<PLPageDefination> tablePanel = null;
|
private VCIJTablePanel<PLPageDefination> getCenterTablePanel(){
|
dataProvider = new AbstractVCIJTableDataProvider<PLPageDefination>() {
|
@Override
|
public String[] getSpecialColumns() {
|
return new String[]{"编号","名称","类型","搜索类型","描述"};
|
}
|
@Override
|
public int getTotal() {
|
return super.total;
|
}
|
@Override
|
public VCIJTableNode<PLPageDefination> getNewRowNode(PLPageDefination dataObj) {
|
VCIJTableNode<PLPageDefination> dataNode = new VCIJTableNode<PLPageDefination>(dataObj);
|
int i = 0;
|
String[] columns = getSpecialColumns();
|
dataNode.setPropertyValue(columns[i++], dataObj.seq);
|
dataNode.setPropertyValue(columns[i++], dataObj.name);
|
String comptTypeString = "";
|
String searchTypeString = "";
|
try {
|
PLDefination d = UITools.getPLDefination(dataObj.plDefination);
|
ComponentType comptType = ComponentType.getByVal(Integer.valueOf(d.getTemplateType()));
|
comptTypeString = comptType.getLabel() + "(" + comptType.getIntVal() + ")";
|
|
String searchType = d.getSearchTarger();
|
if(comptType == ComponentType.Table
|
|| comptType == ComponentType.TreeTable
|
|| comptType == ComponentType.Form
|
){
|
if("1".equals(searchType)){
|
searchTypeString = SEARCH_TYPE_BTMTYPE;
|
} else if("2".equals(searchType)){
|
searchTypeString = SEARCH_TYPE_LINKTYPE;
|
}
|
}
|
else if(comptType == ComponentType.Tree){
|
if("".equals(d.getLinkType())){
|
searchTypeString = SEARCH_TYPE_BTMTYPE;
|
} else {
|
searchTypeString = SEARCH_TYPE_LINKTYPE;
|
}
|
}
|
} catch (Throwable e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
dataNode.setPropertyValue(columns[i++], comptTypeString);
|
dataNode.setPropertyValue(columns[i++], searchTypeString);
|
dataNode.setPropertyValue(columns[i++], dataObj.desc);
|
return dataNode;
|
}
|
@Override
|
public PLPageDefination[] getDatas(int pageIndex, int pageSize) {
|
PLTabPage tabPage = getTabPage();
|
PLPageDefination[] res = new PLPageDefination[0];
|
if(tabPage == null) return res;
|
try {
|
res = UITools.getService().getPLPageDefinationsByPageContextOId(tabPage.plOId);
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
super.total = res.length;
|
Arrays.sort(res, pageDefinationComparator);
|
return res;
|
}
|
};
|
tablePanel = new VCIJTablePanel<PLPageDefination>(dataProvider);
|
tablePanel.setShowRowNumber(false);
|
HashMap<Integer, Integer> columnWidthMaps = new HashMap<Integer, Integer>();
|
columnWidthMaps.put(2, 40);
|
columnWidthMaps.put(3, 200);
|
columnWidthMaps.put(4, 60);
|
columnWidthMaps.put(5, 80);
|
tablePanel.setColumnWidthMaps(columnWidthMaps);
|
tablePanel.setShowExport(false);
|
tablePanel.setShowPaging(false);
|
tablePanel.setColumnDefaultWidth(new Integer(150));
|
tablePanel.setCustomButtonFlowAlign(FlowLayout.CENTER);
|
tablePanel.setCustomButtons(Arrays.asList(btnAdd, btnEdit, btnDelete, btnRefresh, btnBtnDef, btnCopy, btnPaste));
|
//tablePanel.setCustomButtons(Arrays.asList(btnAdd, btnEdit, btnDelete, btnRefresh, btnBtnDef, btnCopy, btnPaste,viewI18nButton));
|
tablePanel.buildTablePanel();
|
tablePanel.refreshTableData();
|
tablePanel.getTable().getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
@Override
|
public void valueChanged(ListSelectionEvent e) {
|
}
|
});
|
return tablePanel;
|
}
|
private VCIJButton btnAdd = VCISwingUtil.createVCIJButton("add", "添加", "添加", "add.png", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
add_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnEdit = VCISwingUtil.createVCIJButton("edit", "修改", "修改", "edit.png", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
edit_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnDelete = VCISwingUtil.createVCIJButton("del", "删除", "删除", "delete.png", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
delete_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnRefresh = VCISwingUtil.createVCIJButton("refresh", "刷新", "刷新", "sync.gif", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
refresh_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnBtnDef = VCISwingUtil.createVCIJButton("btnDef", "按钮设计", "按钮设计", "table_key.png", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
btnDef_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnCopy = VCISwingUtil.createVCIJButton("copy", "复制", "复制", "copy.gif", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
copy_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnPaste = VCISwingUtil.createVCIJButton("paste", "粘贴", "粘贴", "paste.gif", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
paste_actionPerformed(e);
|
}
|
});
|
// private VCIJButton viewI18nButton = VCISwingUtil.createVCIJButton("viewI18nButton", "查看国际化字典", "查看国际化字典", "image.png", new ActionListener() {
|
// @Override
|
// public void actionPerformed(ActionEvent e) {
|
// i18nTable();
|
// }
|
// });
|
private boolean isSelected(){
|
return tablePanel.getTable().getSelectedRow() >= 0;
|
}
|
private void add_actionPerformed(ActionEvent e){
|
try{
|
if(getTabPage() == null){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("请先选择UI上下文及区域里的页签!"));
|
return;
|
}
|
UIComptDesignDialog dialog = showAddOrEditDiaolg(null);
|
if(dialog.getDialogResult() == DialogResult.OK){
|
refreshUI();
|
dialog.dispose();
|
}
|
}catch(Throwable ex){
|
ex.printStackTrace();
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.executingHasError",
|
getSourceButtonText(e), ex.toString()));
|
return;
|
}
|
}
|
|
private void edit_actionPerformed(ActionEvent e){
|
try{
|
PLPageDefination[] pageDefs = tablePanel.getSelectedRowObjectsList().toArray(new PLPageDefination[0]);
|
if(!isSelected() || pageDefs.length == 0){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.pleaseChooseData"));
|
return;
|
}
|
if(pageDefs.length >= 2){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.onlyChooseOneDataToSomeOpt"));
|
return;
|
}
|
|
UIComptDesignDialog dialog = showAddOrEditDiaolg(pageDefs[0]);
|
if(dialog.getDialogResult() == DialogResult.OK){
|
refreshUI();
|
dialog.dispose();
|
}
|
}catch(Throwable ex){
|
ex.printStackTrace();
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.executingHasError",
|
getSourceButtonText(e), ex.toString()));
|
return;
|
}
|
}
|
private UIComptDesignDialog showAddOrEditDiaolg(PLPageDefination pageDefination){
|
UIComptDesignDialog dialog = new UIComptDesignDialog(ClientContextVariable.getFrame(), true);
|
dialog.setTabPage(getTabPage());
|
dialog.setPageDefination(pageDefination);
|
dialog.setWidth(750);
|
dialog.setHeight(750);
|
dialog.setTitle("页面设计窗口");
|
dialog.setRelativeToCompt(ClientContextVariable.getFrame());
|
dialog.buildDialog();
|
dialog.setVisible(true);
|
return dialog;
|
}
|
private void delete_actionPerformed(ActionEvent e){
|
try{
|
PLPageDefination[] pageDefs = tablePanel.getSelectedRowObjectsList().toArray(new PLPageDefination[0]);
|
if(!isSelected() || pageDefs.length == 0){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.pleaseChooseData"));
|
return;
|
}
|
//TODO
|
int optRes = VCIJOptionPane.showConfirm(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.confirmDelete"));
|
if(!(optRes == VCIJOptionPane.YES_OPTION)){
|
return;
|
}
|
String[] oids = new String[pageDefs.length];
|
for (int i = 0; i < oids.length; i++) {
|
oids[i] = pageDefs[i].plOId;
|
}
|
UITools.getService().deletePLPageDefinationByOidsForCascade(oids);
|
refreshUI();
|
}catch(Throwable ex){
|
ex.printStackTrace();
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.executingHasError",
|
getSourceButtonText(e), ex.toString()));
|
return;
|
}
|
}
|
private void refresh_actionPerformed(ActionEvent e){
|
refreshUI();
|
}
|
private void btnDef_actionPerformed(ActionEvent e){
|
try{
|
PLPageDefination[] pageDefs = tablePanel.getSelectedRowObjectsList().toArray(new PLPageDefination[0]);
|
if(!isSelected() || pageDefs.length == 0){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.pleaseChooseData"));
|
return;
|
}
|
if(pageDefs.length >= 2){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(), "一次只能选择一条数据进行此操作!");
|
return;
|
}
|
ButtonSettingDialog dialog = new ButtonSettingDialog(
|
ClientContextVariable.getFrame(),
|
pageDefs[0], getPageLayoutDefination(), "tab");
|
refreshUI();
|
dialog.dispose();
|
}catch(Throwable ex){
|
ex.printStackTrace();
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.executingHasError",
|
getSourceButtonText(e), ex.toString()));
|
return;
|
}
|
}
|
private void copy_actionPerformed(ActionEvent e){
|
try{
|
PLPageDefination[] pageDefs = tablePanel.getSelectedRowObjectsList().toArray(new PLPageDefination[0]);
|
if(!isSelected() || pageDefs.length == 0){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(), "请选择数据后再进行此操作!");
|
return;
|
}
|
|
String[] pageDefOids = new String[pageDefs.length];
|
for (int i = 0; i < pageDefOids.length; i++) {
|
pageDefOids[i] = pageDefs[i].plOId;
|
}
|
UICopyClipboardUtil.addStringContent(pageDefOids);
|
}catch(Throwable ex){
|
ex.printStackTrace();
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.executingHasError",
|
getSourceButtonText(e), ex.toString()));
|
return;
|
}
|
}
|
private void paste_actionPerformed(ActionEvent e){
|
try {
|
String[] pageDefOids = UICopyClipboardUtil.getStringContents();
|
for(String pageDefOid : pageDefOids){
|
PLPageDefination pd = UITools.getService().getPLPageDefinationById(pageDefOid);
|
if(pd == null || "".equals(pd.plOId)){
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("剪贴板中数据无效,无法执行粘贴!"));
|
return;
|
}
|
}
|
// all is ok
|
UITools.getService().copyComptToTabPage(pageDefOids, getTabPage());
|
refreshUI();
|
}catch(Throwable ex){
|
ex.printStackTrace();
|
VCIJOptionPane.showMessage(ClientContextVariable.getFrame(),
|
UIServiceLocaleDisplay.getIl18n("common.msg.executingHasError",
|
getSourceButtonText(e), ex.toString()));
|
return;
|
}
|
}
|
|
/**
|
*
|
* <p>国际化字典Dialog: </p>
|
* @author yangyang
|
* @time 2017-10-31
|
*/
|
// private void i18nTable(){
|
// VciI18nTableDialog vi18n = new VciI18nTableDialog();
|
// vi18n.setModal(true);
|
// vi18n.init();
|
// vi18n.setSize(900,600);
|
// vi18n.setLocationRelativeTo(ClientContextVariable.getFrame());
|
// vi18n.setVisible(true);
|
// }
|
|
private String getSourceButtonText(ActionEvent e){
|
String res = "此操作";
|
if(e.getSource() instanceof VCIJButton){
|
res = ((VCIJButton)e.getSource()).getText();
|
}
|
return res;
|
}
|
|
public BtmItem getBtmItem() {
|
return btmItem;
|
}
|
public void setBtmItem(BtmItem btmItem) {
|
this.btmItem = btmItem;
|
}
|
public PLUILayout getPageLayoutDefination() {
|
return pageLayoutDefination;
|
}
|
public void setPageLayoutDefination(PLUILayout pageLayoutDefination) {
|
this.pageLayoutDefination = pageLayoutDefination;
|
}
|
public PLTabPage getTabPage() {
|
return tabPage;
|
}
|
public void setTabPage(PLTabPage tabPage) {
|
this.tabPage = tabPage;
|
}
|
public VCIJTablePanel<PLPageDefination> getTablePanel() {
|
return tablePanel;
|
}
|
public void setTablePanel(VCIJTablePanel<PLPageDefination> tablePanel) {
|
this.tablePanel = tablePanel;
|
}
|
public int getAreaType() {
|
return areaType;
|
}
|
public void setAreaType(int areaType) {
|
this.areaType = areaType;
|
}
|
|
}
|