package com.vci.client.uif.engine.client.tableArea;
|
|
import java.awt.BorderLayout;
|
import java.awt.Component;
|
import java.awt.Cursor;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Insets;
|
import java.awt.event.AdjustmentEvent;
|
import java.awt.event.AdjustmentListener;
|
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseEvent;
|
import java.lang.reflect.Constructor;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.regex.Pattern;
|
|
import javax.swing.Action;
|
import javax.swing.JScrollBar;
|
import javax.swing.JTable;
|
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionListener;
|
|
import org.jdesktop.swingx.JXCollapsiblePane;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.bof.ClientBusinessObjectOperation;
|
import com.vci.client.bof.ClientLinkObject;
|
import com.vci.client.common.ConfigUtils;
|
import com.vci.client.logon.base.TabPanelManage;
|
import com.vci.client.portal.utility.DataModelFactory;
|
import com.vci.client.portal.utility.PLDefination;
|
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.VCISwingUtil;
|
import com.vci.client.ui.swing.components.VCIJButton;
|
import com.vci.client.ui.swing.components.VCIJLabel;
|
import com.vci.client.ui.swing.components.VCIJOptionPane;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.table.IndexColumnTableCellRender;
|
import com.vci.client.ui.swing.components.table.VCIJTableNode;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
import com.vci.client.uif.actions.client.AbstractBatchBusionessOperationAction;
|
import com.vci.client.uif.actions.client.BrowserAction;
|
import com.vci.client.uif.actions.client.BusinessOperationAction;
|
import com.vci.client.uif.actions.client.UIFUtils;
|
import com.vci.client.uif.engine.client.AbstractRegionPanel;
|
import com.vci.client.uif.engine.client.BasePanel;
|
import com.vci.client.uif.engine.client.IDataModel;
|
import com.vci.client.uif.engine.client.IRegionPanel;
|
import com.vci.client.uif.engine.client.UIHelper;
|
import com.vci.client.uif.engine.client.UILayoutPanel;
|
import com.vci.client.uif.engine.client.event.UIEventConstanct;
|
import com.vci.client.uif.engine.client.objopt.ObjectAddEditDialog;
|
import com.vci.client.uif.engine.client.objopt.ObjectDBClickAddEditDialog;
|
import com.vci.client.uif.engine.common.DefaultTableNode;
|
import com.vci.client.uif.engine.common.IDataNode;
|
import com.vci.client.uif.engine.common.api.CustomActionEvent;
|
import com.vci.client.uif.engine.common.api.ICustomAction;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.portal.data.PLAction;
|
import com.vci.corba.portal.data.PLPageDefination;
|
import com.vci.corba.portal.data.PLTabButton;
|
import com.vci.corba.portal.data.PortalVI;
|
import com.vci.mw.ClientContextVariable;
|
|
public class TablePanel extends AbstractRegionPanel {
|
|
private static final long serialVersionUID = -1614419631152531040L;
|
private ClientBusinessObject cbo = null;
|
@SuppressWarnings("unused")
|
private boolean isSingleCheckManager = false;
|
private Map<String, Object> dataMap = null;
|
private ClientBusinessObjectOperation boOperation = new ClientBusinessObjectOperation();
|
public TablePanel(boolean isSingleCheckManager){
|
this.isSingleCheckManager = isSingleCheckManager;
|
this.setDataModel(tablePanelModel);
|
setComponentPanel(this);
|
}
|
|
public TablePanel(){
|
this.setDataModel(tablePanelModel);
|
setComponentPanel(this);
|
}
|
|
public boolean isSupportEditTableCell(){
|
return false;
|
}
|
|
private VCIJPanel palSearchArea = new VCIJPanel();
|
/**
|
* 按钮区域对象
|
*/
|
private TablePanelButtonAreaPanel buttonAreaPanel = null;
|
private VCIJPanel palTableListArea = new VCIJPanel();
|
private VCIJPanel palTableListDetailArea = new VCIJPanel();
|
private boolean expandSearchArea = false;
|
|
private DataModelFactory factory = new DataModelFactory();
|
|
@Override
|
public void preInit(String type, String context){
|
super.preInit(type, context);
|
}
|
|
@Override
|
public Component init() {
|
setLayout(new BorderLayout(3, 3));
|
|
String tableTitle = "数据列表";
|
if(this.getTabPage() != null){
|
tableTitle = getDefination().getName();
|
}
|
|
initSearchArea(tableTitle);
|
initTableListArea();
|
|
if(!searchAreaPanel.isHasNormatSearchAttrs() && !searchAreaPanel.isHasAdvanceSearchAttrs()){
|
add(UIHelper.getTitleBar(tableTitle, "base.png"), BorderLayout.NORTH);
|
add(palTableListArea, BorderLayout.CENTER);
|
} else {
|
add(palSearchArea, BorderLayout.NORTH);
|
add(palTableListArea, BorderLayout.CENTER);
|
}
|
setBuilt(true);
|
setComponentPanel(this);
|
return this;
|
}
|
|
private TablePanelSearchAreaPanel searchAreaPanel = null;
|
private void initSearchArea(String title){
|
palSearchArea.setLayout(new BorderLayout());
|
|
searchAreaPanel = new TablePanelSearchAreaPanel(
|
getType(), getContext(), getDefination(),
|
factory, this);
|
|
searchAreaPanel.init();
|
JXCollapsiblePane jxc = new JXCollapsiblePane();
|
jxc.add(searchAreaPanel);
|
if(this.isExpandSearchArea()) {
|
jxc.setCollapsed(false);
|
} else {
|
jxc.setCollapsed(true);
|
}
|
Action toggleAction = jxc.getActionMap().get(JXCollapsiblePane.TOGGLE_ACTION);
|
toggleAction.putValue(JXCollapsiblePane.COLLAPSE_ICON, VCISwingUtil.createImageIcon("utilCalendarArrowDown.gif"));
|
toggleAction.putValue(JXCollapsiblePane.EXPAND_ICON, VCISwingUtil.createImageIcon("utilCalendarRightArrow.gif"));
|
//toggleAction.putValue(JXCollapsiblePane.COLLAPSE_ICON, UIManager.getIcon("Tree.expandedIcon"));
|
//toggleAction.putValue(JXCollapsiblePane.EXPAND_ICON, UIManager.getIcon("Tree.collapsedIcon"));
|
JXToggleButton toggleButton = new JXToggleButton(title, toggleAction);
|
toggleButton.setHideActionText(true);
|
palSearchArea.add(toggleButton, BorderLayout.NORTH);
|
palSearchArea.add(jxc, BorderLayout.CENTER);
|
}
|
|
private void initTableListArea(){
|
|
palTableListArea.setLayout(new BorderLayout(3, 3));
|
|
initButtonArea();
|
|
initTableListDetailArea();
|
|
if(buttonAreaPanel != null && buttonAreaPanel.getBtns().length != 0){
|
palTableListArea.add(buttonAreaPanel, BorderLayout.NORTH);
|
}
|
palTableListArea.add(palTableListDetailArea, BorderLayout.CENTER);
|
}
|
|
private void initButtonArea(){
|
buttonAreaPanel = new TablePanelButtonAreaPanel(getTabId(), getType(), getContext(),
|
getDefination(), getFactory(), this);
|
buttonAreaPanel.init();
|
}
|
|
private TablePanelDataProvider dataProvider = null;
|
private VCIJTablePanel<IDataNode> dataTablePanel = null;
|
private IDataModel tablePanelModel = new TablePanelDataModel(this);
|
|
private int[] getPageSizeList(){
|
int[] res = new int[]{10,20,30,40,50,100,200,300,500,800,1000};
|
String pageSizeCfgVal = ConfigUtils.getConfigValue("tablePanel.pageSizeList");
|
if(pageSizeCfgVal == null || pageSizeCfgVal.trim().equals("")){
|
return res;
|
}
|
LinkedList<Integer> list = new LinkedList<Integer>();
|
Pattern ptn = Pattern.compile("[0-9]+");
|
String[] pageSizes = pageSizeCfgVal.split(",");
|
for(String pageSize : pageSizes){
|
if(ptn.matcher(pageSize).matches()){
|
list.add(Integer.valueOf(pageSize));
|
}
|
}
|
Integer[] ress = list.toArray(new Integer[]{});
|
res = new int[ress.length];
|
for (int i = 0; i < ress.length; i++) {
|
Integer integer = ress[i];
|
res[i] = integer.intValue();
|
}
|
Arrays.sort(res);
|
return res;
|
}
|
|
protected Map<String, String> getDefinationEventMap(){
|
Map<String, String> map = new HashMap<String, String>();
|
String[] eventKeys = getDefination().getEventKey().split(",");
|
String[] eventValues = getDefination().getEventValue().split(",");
|
for (int i = 0; i < eventKeys.length; i++) {
|
String key = eventKeys[i];
|
if(key.trim().length() == 0) continue;
|
if(i >= eventValues.length) continue;
|
map.put(key, eventValues[i]);
|
}
|
return map;
|
}
|
|
protected Map<String, String> eventMap = new HashMap<String, String>();
|
@SuppressWarnings("serial")
|
protected void initTableListDetailArea(){
|
dataProvider = new TablePanelDataProvider(this, factory, getType(), getContext(), getDefination());
|
String pageSizes = dataProvider.getTableDefPRM().getPrmItemList().get(0).getItemPageSize().trim();
|
dataTablePanel = new VCIJTablePanel<IDataNode>(dataProvider);
|
if ("".equals(pageSizes) || pageSizes.trim().equals("0")) {
|
dataTablePanel.setPageSizeList(getPageSizeList());
|
}else {
|
String[] pageStrings = pageSizes.split(",");
|
// int[] res =new int[pageStrings.length];
|
ArrayList<Integer> list = new ArrayList<Integer>();
|
for (int i = 0; i < pageStrings.length; i++) {
|
//if (pageStrings[i].trim().equals("all"))
|
if (pageStrings[i].trim().contains("#")){
|
int index = pageStrings[i].indexOf("#");
|
String defaultsize = pageStrings[i].substring(index+1);
|
pageStrings[i] = pageStrings[i].substring(0, index);
|
list.add(Integer.parseInt(pageStrings[i]));
|
list.add(Integer.parseInt(defaultsize));
|
continue;
|
}else {
|
// res[i] = Integer.parseInt(pageStrings[i]);
|
list.add(Integer.parseInt(pageStrings[i]));
|
}
|
}
|
Integer [] resa = (Integer [])list.toArray(new Integer[list.size()]);
|
int[] res =new int[resa.length];
|
for (int i = 0; i < res.length; i++) {
|
res[i] = resa[i];
|
}
|
dataTablePanel.setPageSizeList(res);
|
}
|
dataTablePanel.setColumnDefaultWidth(250);
|
dataTablePanel.setColumnDefaultWidthMax(1500);
|
dataTablePanel.setColumnWidthMaps(dataProvider.getColumnWidthMap());
|
dataTablePanel.setEdiableColumnList(dataProvider.getEditableColumnList());
|
dataTablePanel.setEnableRowColorChangeInMouseHover(false);
|
dataTablePanel.buildTablePanel();
|
dataTablePanel.getTable().setRowHeight(getRowHeight());
|
//dataTablePanel.buildTablePanel(isSingleCheckManager);
|
dataTablePanel.refreshTableData();
|
dataTablePanel.setParentComponent(ClientContextVariable.getFrame());
|
|
JScrollBar horScrollBar = dataTablePanel.getDataScrollPane().getHorizontalScrollBar();
|
JScrollBar verScrollBar = dataTablePanel.getDataScrollPane().getVerticalScrollBar();
|
AdjustmentListener spAdjustmentListener = new AdjustmentListener(){
|
@Override
|
public void adjustmentValueChanged(AdjustmentEvent e) {
|
dataTablePanel.repaint();
|
dataTablePanel.updateUI();
|
}
|
};
|
horScrollBar.addAdjustmentListener(spAdjustmentListener);
|
verScrollBar.addAdjustmentListener(spAdjustmentListener);
|
|
|
eventMap = getDefinationEventMap();
|
|
if(dataProvider.getHrefFieldList().size() != 0){
|
dataTablePanel.setEnableMouseClickEffect(false);
|
dataTablePanel.setEnableMouseMoveEffect(false);
|
|
final String hrefField = dataProvider.getHrefFieldList().get(0);
|
int hrefFieldColumnIndex = dataProvider.getFieldToColumnIndex().get(hrefField);
|
final int compareHrefFieldIndex = hrefFieldColumnIndex;
|
// dataTablePanel.getTable().addMouseListener(new MouseAdapter() {
|
// public void mouseClicked(MouseEvent e) {
|
// int row = dataTablePanel.getTable().rowAtPoint(e.getPoint());
|
// int column = dataTablePanel.getTable().columnAtPoint(e.getPoint());
|
// if(compareHrefFieldIndex == column){
|
// VCIJTableNode<IDataNode> node = dataTablePanel.getTableModel().getList().get(row);
|
// Map<String, String> map = node.getObject().getValueMap();
|
//
|
// // 从主管理界面的数据列表中跳转到数据对象明细数据展示(Navigation\MainData\TabPage)
|
// map.put(UIHelper.TYPE, getRedirectTargetType());
|
// map.put(UIHelper.CONTEXT, getRedirectTargetContext());
|
// map.put(UIHelper.OID, map.get(UIHelper.OID));
|
//
|
// UILayoutPanel uipl = new UILayoutPanel(map);
|
// uipl.setSourceDataNode(node.getObject());
|
// uipl.setDataValueMap(map);
|
// uipl.prep();
|
// uipl.initMainPanel();
|
//
|
// ClientContextVariable.getTabPanel().addTab(map.get(hrefField), uipl, true);
|
// ClientContextVariable.getTabPanel().setSelectedComponent(uipl);
|
// ClientContextVariable.getTabPanel().updateUI();
|
// } else {
|
// valueChange(null);
|
// }
|
// }
|
// });
|
|
dataTablePanel.getTable().getColumnModel().getColumn(hrefFieldColumnIndex).setCellRenderer(
|
new IndexColumnTableCellRender<IDataNode>(dataTablePanel){
|
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
|
Component compt = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
|
if(compareHrefFieldIndex == column){
|
String valueString = value.toString();
|
valueString = "<html><p color='blue'><u>" + valueString + "</u></p></html>";
|
VCIJLabel lbl = new VCIJLabel(valueString);
|
lbl.setIcon(VCISwingUtil.createImageIcon("link.png"));
|
lbl.setFont(UIHelper.Font12B);
|
compt = lbl;
|
|
VCIJPanel pal = new VCIJPanel(new GridBagLayout());
|
pal.add(new VCIJLabel(" "), getGBC(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, 2));
|
pal.add(lbl, getGBC(1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, 2));
|
compt = pal;
|
compt.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
}
|
return compt;
|
}
|
});
|
}
|
dataTablePanel.getTable().getSelectionModel().addListSelectionListener(new ListSelectionListener(){
|
@Override
|
public void valueChanged(ListSelectionEvent e) {
|
//Add 20150723
|
if(dataTablePanel.getTable().getSelectionModel().getValueIsAdjusting()){//true为鼠标按下,false为鼠标释放
|
valueChange(e);
|
}
|
}
|
});
|
|
dataTablePanel.getTable().addMouseListener(new MouseAdapter() {
|
public void mouseClicked(MouseEvent e) {
|
table_mouseClicked(e);
|
}
|
});
|
palTableListDetailArea.setLayout(new BorderLayout());
|
palTableListDetailArea.add(dataTablePanel, BorderLayout.CENTER);
|
setDataModel(tablePanelModel);
|
}
|
|
/**
|
* 获取列表设置的高度
|
* @return
|
*/
|
private int getRowHeight() {
|
int rowHeight = VCISwingUtil.JTABLE_HEADER_HEIGHT;
|
try {
|
// TODO 暂时使用自定义sql语句的字段进行存储,值为整形,后续再进行调整完善
|
String sql = dataProvider.getTableDefPRM().getPrmItemList().get(0).getItemAddFilter();
|
if (sql != null && !sql.trim().equals("")) {
|
rowHeight = Integer.valueOf(sql).intValue();
|
}
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
|
return rowHeight;
|
}
|
|
private void table_mouseClicked(MouseEvent e){
|
String clickEventClass = eventMap.get(UIEventConstanct.SINGLE_CLICK_EVENT_KEY);
|
String dbClickEventClass = eventMap.get(UIEventConstanct.DBCLICK_EVENT_KEY);
|
if(e.getButton() == 1 && (clickEventClass != null && !"".equals(clickEventClass))){
|
responseCustomEvent(clickEventClass);
|
}
|
if(e.getButton() == 1 && e.getClickCount() == 2 ){
|
//add by caill start 双击表格中的某条数据时执行的事件
|
boolean flag = false;
|
if (dbClickEventClass != null && !"".equals(dbClickEventClass)) {
|
PLTabButton[] buttons = getTabButtons(getTabId());
|
if (buttons != null && buttons.length > 0) {
|
for (int i = 0; i < buttons.length; i++) {
|
if (dbClickEventClass.equals(buttons[i].plLabel)) { //遍历配置的按钮,当按钮中含有DBClickEvent设置的事件名字时,双击数据执行对应按钮点击时的效果
|
try {
|
PLAction action = UITools.getService().getPLActionById(buttons[i].plActionOId);
|
VCIJButton cbtn = new BasePanel().getVCIJButton(buttons[i], (IRegionPanel)getComponentPanel(), action);
|
cbtn.doClick();
|
flag = true;
|
break;
|
} catch (VCIError e1) {
|
e1.printStackTrace();
|
}
|
}
|
}
|
}
|
}
|
if(flag == false){ //当按钮中不含有DBClickEvent设置的事件名字时,双击数据执行默认查看的效果
|
String tableName = this.getDefination().getTemplateId(); //获取数据所对应的表格名称
|
try {
|
PortalVI pv=null;
|
if(this.getDefination().getLinkType()!=null && !this.getDefination().getLinkType().equals("")){
|
pv = UITools.getService().getPortalVIByTypeNameAndVIName(this.getDefination().getLinkType(), tableName);
|
}else{
|
pv = UITools.getService().getPortalVIByTypeNameAndVIName(this.getDefination().getShowType(), tableName);
|
}
|
|
String prm = pv.prm;
|
PRM p = UITools.getPRM(prm);
|
List<PRMItem> list = p.getPrmItemList();
|
String formId = list.get(0).getItemInObj();//获取表单id
|
System.out.println(formId);
|
PortalVI portalVI = UITools.getService().getPortalVIById(formId);//根据表单id获取表单
|
dataMap = getBusinessObject();
|
System.out.println(portalVI);
|
BrowserAction bsa = new BrowserAction();
|
bsa.setRegionPanel(this);
|
Map<String, String> paramsMap = new HashMap<String, String>();
|
PLDefination pldef = this.getDefination();
|
ObjectDBClickAddEditDialog oad = new ObjectDBClickAddEditDialog(getType(), this.getContext(),
|
this.getDefination(),portalVI, paramsMap, ObjectDBClickAddEditDialog.OperateType.BROWSER, null, bsa, this.getDataTablePanel());
|
oad.setTypeFlag(0);
|
oad.init();
|
oad.setSize(UIHelper.DIALOG_DEFAULT_WIDTH, UIHelper.DIALOG_DEFAULT_HEIGHT);
|
oad.setLocationRelativeTo(ClientContextVariable.getFrame());
|
//设置属性值
|
setEditDialogValue2(oad,dataMap);
|
oad.setVisible(true);
|
} catch (VCIError en) {
|
// TODO Auto-generated catch block
|
en.printStackTrace();
|
}
|
}
|
}
|
|
if(dataProvider.getHrefFieldList().size() != 0){
|
responseHrefFieldClick(e);
|
}
|
}
|
//add by caill end
|
private void setEditDialogValue(ObjectAddEditDialog oad, ClientBusinessObject cbo){
|
oad.getOaep().setValueToUIControl(cbo);
|
}
|
private void setEditDialogValue2(ObjectDBClickAddEditDialog oad, Map<String,Object> dataMap){
|
oad.getOaep().setValueToUIControl((ClientLinkObject)dataMap.get("lo"), (ClientBusinessObject)dataMap.get("to"));
|
}
|
private PLTabButton[] getTabButtons(String tabId){
|
PLTabButton[] buttons = null;
|
try {
|
PLPageDefination[] pageDef = UITools.getService().getPLPageDefinationsByPageContextOId(tabId);
|
String pageDefId = pageDef[0].plOId;
|
buttons = UITools.getService().getPLTabButtonsByTableOId(pageDefId);
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
return buttons;
|
}
|
private void responseHrefFieldClick(MouseEvent e){
|
final String hrefField = dataProvider.getHrefFieldList().get(0);
|
int hrefFieldColumnIndex = dataProvider.getFieldToColumnIndex().get(hrefField);
|
final int compareHrefFieldIndex = hrefFieldColumnIndex;
|
int row = dataTablePanel.getTable().rowAtPoint(e.getPoint());
|
int column = dataTablePanel.getTable().columnAtPoint(e.getPoint());
|
if(compareHrefFieldIndex == column){
|
VCIJTableNode<IDataNode> node = dataTablePanel.getTableModel().getList().get(row);
|
Map<String, String> map = node.getObject().getValueMap();
|
// 从主管理界面的数据列表中跳转到数据对象明细数据展示(Navigation\MainData\TabPage)
|
map.put(UIHelper.TYPE, getRedirectTargetType());
|
map.put(UIHelper.CONTEXT, getRedirectTargetContext());
|
map.put(UIHelper.OID, map.get(UIHelper.OID));
|
|
UILayoutPanel uipl = new UILayoutPanel(map);
|
uipl.setSourceDataNode(node.getObject());
|
uipl.setDataValueMap(map);
|
uipl.prep();
|
uipl.initMainPanel();
|
TabPanelManage.getInstance().getTabPanel().addTab(map.get(hrefField), uipl, true);
|
TabPanelManage.getInstance().getTabPanel().setSelectedComponent(uipl);
|
TabPanelManage.getInstance().getTabPanel().updateUI();
|
}
|
}
|
|
private synchronized void responseCustomEvent(String eventClass){
|
Object impl = getClassInstance(eventClass);
|
try{
|
if(impl != null && impl instanceof ICustomAction){
|
ICustomAction ica = (ICustomAction)impl;
|
CustomActionEvent e = new CustomActionEvent(this, this);
|
ica.actionPerformed(e);
|
}
|
}catch (Exception e) {
|
e.printStackTrace();
|
VCIJOptionPane.showError(
|
ClientContextVariable.getFrame(),
|
"执行自定义‘" + eventClass + "’时发生错误!");
|
}
|
}
|
|
private Object getClassInstance(String className){
|
Object res = null;
|
try{
|
Class<?> cls = Class.forName(className);
|
if(cls == null) return res;
|
Constructor<?> ctor = cls.getConstructor();
|
if(ctor == null) return res;
|
res = ctor.newInstance();
|
}catch(Exception ex){
|
ex.printStackTrace();
|
}
|
return res;
|
}
|
|
private synchronized void valueChange(ListSelectionEvent e){
|
int row = dataTablePanel.getTable().getSelectedRow();
|
if (row != -1) {
|
Object selectObj = dataTablePanel.getSpecialObjectByRowIndex(row);
|
TablePanel.this.getTablePanelModel().setClickObject(selectObj);
|
TablePanel.this.getDataModel().getUILayoutModel().notify(TablePanel.this.getTablePanelModel());
|
}
|
String selectionEventClass = eventMap.get("SelectionEvent");
|
if(selectionEventClass != null && !"".equals(selectionEventClass)){
|
responseCustomEvent(selectionEventClass);
|
}
|
}
|
private String getRedirectTargetType(){
|
String res = "";
|
res = getType();
|
return res;
|
}
|
|
private String getRedirectTargetContext(){
|
String res = "";
|
res = getType();
|
return res;
|
}
|
|
private GridBagConstraints getGBC(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, int padxy) {
|
return new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, new Insets(padxy, padxy, padxy, padxy), padxy, padxy);
|
}
|
|
public TablePanelDataProvider getDataProvider() {
|
return dataProvider;
|
}
|
|
public void setDataProvider(TablePanelDataProvider dataProvider) {
|
this.dataProvider = dataProvider;
|
}
|
|
public IDataModel getTablePanelModel() {
|
return tablePanelModel;
|
}
|
|
public void setTablePanelModel(IDataModel tablePanelModel) {
|
this.tablePanelModel = tablePanelModel;
|
}
|
|
public VCIJTablePanel<IDataNode> getDataTablePanel() {
|
return dataTablePanel;
|
}
|
|
public void setDataTablePanel(VCIJTablePanel<IDataNode> dataTablePanel) {
|
this.dataTablePanel = dataTablePanel;
|
}
|
|
public DataModelFactory getFactory() {
|
return factory;
|
}
|
|
public void setFactory(DataModelFactory factory) {
|
this.factory = factory;
|
}
|
|
public boolean isExpandSearchArea() {
|
return expandSearchArea;
|
}
|
|
public void setExpandSearchArea(boolean expandSearchArea) {
|
this.expandSearchArea = expandSearchArea;
|
}
|
|
/**
|
* 返回 按钮区域对象
|
* @return
|
*/
|
public TablePanelButtonAreaPanel getButtonAreaPanel() {
|
return buttonAreaPanel;
|
}
|
/**
|
* 设置 按钮区域对象
|
* @param buttonAreaPanel
|
*/
|
public void setButtonAreaPanel(TablePanelButtonAreaPanel buttonAreaPanel) {
|
this.buttonAreaPanel = buttonAreaPanel;
|
}
|
|
/**
|
* 刷新界面 by zhonggy 2015-07
|
*/
|
public void refreshUI(){
|
this.getDataTablePanel().refreshTableData();
|
}
|
//add by caill start
|
private String getSelectionEventValue() {
|
String eventKeys = this.getDefination().getEventKey();
|
if (eventKeys == null || eventKeys.length() == 0) {
|
return null;
|
}
|
String eventVals = this.getDefination().getEventValue();
|
if (eventVals == null || eventVals.length() == 0) {
|
return null;
|
}
|
String[] keys = eventKeys.split(",");
|
String[] values = eventVals.split(",");
|
if (keys.length != values.length) {
|
return null;
|
}
|
for (int i = 0; i < keys.length; i++) {
|
if (keys[i] != null && keys[i].equals(UIEventConstanct.DBCLICK_EVENT_KEY)) {
|
return values[i];
|
}
|
}
|
return null;
|
}
|
|
/**
|
* 得到用户选择的业务对象数据
|
* @return
|
*/
|
private Map<String, Object> getBusinessObject(){
|
//获得业务对象数据
|
Object[] objs = getDataModel().getSelectObjects();
|
if(objs == null || objs.length < 1){
|
return null;
|
}
|
//查询结果
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
DefaultTableNode dtn = (DefaultTableNode) objs[0];
|
try {
|
//判断主对象类型,修改link是主对象类型一定是link对象
|
if (dtn.getMaterObject() instanceof ClientLinkObject){
|
ClientLinkObject lo = (ClientLinkObject) dtn.getMaterObject();
|
//添加link
|
resultMap.put("lo", lo);
|
}else if(dtn.getMaterObject() instanceof ClientBusinessObject){
|
ClientBusinessObject cbo = (ClientBusinessObject) dtn.getMaterObject();
|
if(cbo == null){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.notexistmsg", dtn.getValueMap().get("name"));
|
return null;
|
}
|
resultMap.put("to", cbo);
|
}
|
} catch (Exception e){
|
UIFUtils.showErrorMessage(ClientContextVariable.getFrame(),e);
|
return null;
|
}
|
return resultMap;
|
}
|
//add by caill end
|
}
|