package com.vci.client.uif.engine.client;
|
|
import java.awt.BorderLayout;
|
import java.awt.Component;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.vci.client.portal.utility.DataModelFactory;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
import com.vci.client.uif.engine.client.tableArea.TablePanelButtonAreaPanel;
|
import com.vci.common.utility.ObjectUtility;
|
import com.vci.corba.portal.data.PLPageDefination;
|
import com.vci.corba.portal.data.PLTabPage;
|
|
/**
|
* 文件浏览窗口
|
* @author VCI-STGK006
|
*
|
*/
|
public class FilePanel extends AbstractRegionPanel {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -1614419631152531040L;
|
/**
|
*
|
*/
|
private DataModelFactory factory = new DataModelFactory();
|
/**
|
*
|
*/
|
private FileTableDataProvider dataProvider = null;
|
|
/**
|
* 构造器
|
*/
|
public FilePanel(){
|
//FilePanelModel.setRegionPanel(this);
|
this.setDataModel(FilePanelModel);
|
}
|
|
@Override
|
public void preInit(String type, String context){
|
super.preInit(type, context);
|
|
}
|
|
@Override
|
public Component init() {
|
setLayout(new BorderLayout(3, 3));
|
//窗口主面板
|
VCIJPanel palTableListArea = new VCIJPanel();
|
palTableListArea.setLayout(new BorderLayout(3, 3));
|
//按钮区
|
VCIJPanel palTitleAndBtn = new VCIJPanel(new BorderLayout());
|
VCIJPanel palButtonArea = initButtonArea();
|
palTitleAndBtn.add(UIHelper.getTitleBar("数据列表", "base.png"), BorderLayout.NORTH);
|
palTitleAndBtn.add(palButtonArea, BorderLayout.CENTER);
|
//文件列表区域表格
|
VCIJPanel jtablePanel = initJTablePanel();
|
//将文件按钮区和文件列表区添加到主面板
|
palTableListArea.add(palTitleAndBtn, BorderLayout.NORTH);
|
palTableListArea.add(jtablePanel, BorderLayout.CENTER);
|
add(palTableListArea, BorderLayout.CENTER);
|
setComponentPanel(this);
|
//设置为已经初始化
|
setBuilt(true);
|
return this;
|
}
|
|
|
/**
|
* 创建文件浏览窗口按钮
|
* @return
|
*/
|
private TablePanelButtonAreaPanel initButtonArea(){
|
TablePanelButtonAreaPanel palButtonArea =
|
new TablePanelButtonAreaPanel(getTabId(), getType(), getContext(),
|
getDefination(), getFactory(), this);
|
palButtonArea.init();
|
return palButtonArea;
|
}
|
|
private VCIJTablePanel<Map<String, String>> dataTablePanel = null;
|
|
private IUILayoutModel uiLayoutModel = null;
|
|
private IDataModel FilePanelModel = new AbstractDataModel(){
|
|
private String key = "";
|
private Object clickObject = null;
|
private IRegionPanel regionPanel = null;
|
// 为第一个实例对象创建一个不同的唯一ID
|
{
|
key = ObjectUtility.getNewObjectID36();
|
|
setRegionPanel(FilePanel.this);
|
}
|
|
@Override
|
public Object[] getSelectObjects() {
|
List<Map<String, String>> list = FilePanel.this.getDataTablePanel().getSelectedRowObjects();
|
int size = list.size();
|
if(size <= 0) return null;
|
|
Object[] res = new Object[size];
|
for (int i = 0; i < res.length; i++) {
|
res[i] = list.get(i);
|
}
|
return res;
|
}
|
|
@Override
|
public int[] getSelectObjectRowIndexs() {
|
return FilePanel.this.getDataTablePanel().getSelectedRowIndexs();
|
}
|
|
@Override
|
public void refresh(IDataModel fromDataModel) {
|
// 此model 与Button 的 Action 关联着,当 acton执行成功,会调用此关联的model 的 refresh(null)
|
// UILayout 也会持有此 Model 实例,也会调用 refresh(model)
|
|
FilePanel.this.getDataTablePanel().refreshTableData();
|
|
//TODO 向上通知‘刷新’
|
//getUILayoutModel().notify(this);
|
}
|
|
@Override
|
public Object getRootObject() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public void setClickObject(Object selectObjs) {
|
this.clickObject = selectObjs;
|
}
|
|
@Override
|
public Object getClickObject() {
|
return this.clickObject;
|
}
|
|
@Override
|
public String getKey() {
|
return key;
|
}
|
|
@Override
|
public void setUILayoutModel(IUILayoutModel uiLayoutModel) {
|
FilePanel.this.uiLayoutModel = uiLayoutModel;
|
}
|
|
@Override
|
public IUILayoutModel getUILayoutModel() {
|
return FilePanel.this.uiLayoutModel;
|
}
|
|
@Override
|
public void refreshCache(Object clientObject) {
|
// TODO Auto-generated method stub
|
|
}
|
|
/**
|
* 返回此 model 所在的 regionPanel
|
*/
|
@Override
|
public IRegionPanel getRegionPanel() {
|
return regionPanel;
|
}
|
|
/**
|
* 设置此 model 所在的 regionPanel
|
* @param regionPanel 此 model 所在的 regionPanel
|
*/
|
@Override
|
public void setRegionPanel(IRegionPanel regionPanel) {
|
this.regionPanel = regionPanel;
|
}
|
};
|
|
/**
|
* 创建表格面板
|
* @return
|
*/
|
private VCIJPanel initJTablePanel(){
|
dataProvider = new FileTableDataProvider(this, factory, getType(), getContext(), getDefination(),
|
this.getBusinessObjectOid(getSourceData()), getType().equals(getContext()));
|
dataTablePanel = new VCIJTablePanel<Map<String, String>>(dataProvider);
|
dataTablePanel.setColumnDefaultWidth(250);
|
dataTablePanel.setColumnDefaultWidthMax(1500);
|
|
dataTablePanel.buildTablePanel();
|
dataTablePanel.refreshTableData();
|
//setDataModel(FilePanelModel);
|
return dataTablePanel;
|
}
|
|
public FileTableDataProvider getDataProvider() {
|
return dataProvider;
|
}
|
|
public void setDataProvider(FileTableDataProvider dataProvider) {
|
this.dataProvider = dataProvider;
|
}
|
|
public IDataModel getTablePanelModel() {
|
return FilePanelModel;
|
}
|
|
public void setTablePanelModel(IDataModel tablePanelModel) {
|
this.FilePanelModel = tablePanelModel;
|
}
|
|
public VCIJTablePanel<Map<String, String>> getDataTablePanel() {
|
return dataTablePanel;
|
}
|
|
public void setDataTablePanel(VCIJTablePanel<Map<String, String>> dataTablePanel) {
|
this.dataTablePanel = dataTablePanel;
|
}
|
|
public DataModelFactory getFactory() {
|
return factory;
|
}
|
|
public void setFactory(DataModelFactory factory) {
|
this.factory = factory;
|
}
|
/**
|
* 刷新界面
|
*/
|
public void refreshUI(){
|
FilePanel.this.getDataTablePanel().refreshTableData();
|
}
|
|
@Override
|
public void setPageDefinition(PLPageDefination pageDefinition) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public PLPageDefination getPageDefinition() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public void setTab(PLTabPage tabPage) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public PLTabPage getTabPage() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
}
|