/**
|
* 一覧共通component用
|
*
|
*/
|
public with sharing abstract class CreateRelationListPagingCtrlBase {
|
|
// 打勾后要不要trigger一个Event
|
public Boolean isNeedCheckEvent {
|
get {
|
if (isNeedCheckEvent == null) { return false; }
|
return isNeedCheckEvent;
|
}
|
set;
|
}
|
public Boolean isNeedSearchFirst {
|
get {
|
if (isNeedSearchFirst == null) { return false; }
|
return isNeedSearchFirst;
|
}
|
set;
|
}
|
// checkEventより、遷移先のurlを返す
|
// assignTo="{!clickLineNo}" より url を組み立てる
|
public virtual void checkEvent() { }
|
|
// 検索条件なしで、検索を行わない
|
public Boolean isNeedRunSearch { get; set; }
|
public abstract Boolean getIsNeedRunSearch();
|
|
// 画面パラメータ:親Id
|
public String parentId { get; set; }
|
// 親オブジェクトAPI名
|
public String selectedDataSql;
|
public abstract String getSelectedDataSql();
|
|
// 検索元対象オブジェクトAPI名
|
public String originObjName;
|
public abstract String getOriginObjName();
|
// 検索元対象項目セット
|
public String originObjColumns;
|
public abstract String getOriginObjColumns();
|
|
// 選択されたデータリスト
|
public List<SObject> selectedData { get; set; }
|
// 選択されたデータの連絡先のIdリスト
|
public List<Id> selectedFKIdList { get; set; }
|
// 選択されたデータIdのSet
|
public Set<Id> selectedIdSet { get; set; }
|
|
// 画面件数毎ページ
|
public String pageSize { get; set; }
|
// ソートキー
|
public String sortKey { get; set; }
|
// ソートキー(前回)
|
public String preSortKey { get; set; }
|
|
// システムのOFFSET_LIMIT より小さい検索Limitにしたい場合、定義する
|
public Integer searchNumMax;
|
public abstract Integer getSearchNumMax(); // 定义 > 2000 的话, 不能用offset来翻页
|
// オブジェクトAPI名
|
public String objName;
|
public abstract String getObjName();
|
// Where文
|
public String sqlWhereStr;
|
public abstract String getSqlWhereStr();
|
public virtual String getOrderbyStr() {
|
return null;
|
}
|
// 左の項目セット
|
public String columnLeftFieldSetName;
|
public abstract String getColumnLeftFieldSetName();
|
// 右の項目セット
|
public String columnRightFieldSetName;
|
public abstract String getColumnRightFieldSetName();
|
// Select 里加直接加的項目 List
|
public abstract List<String> getColumnFieldList();
|
// Hidden項目 List
|
public virtual List<String> getHiddenFieldList() {
|
return new List<String>();
|
}
|
// 宽度是0的項目
|
public virtual String getWidth0Field() {
|
return '';
|
}
|
// 画面里直接可以输入的項目 List
|
public virtual List<String> getWritableColumnFieldList() {
|
return new List<String>();
|
}
|
// getObjName 连 getOriginObjName 的 FK
|
public abstract String getFKColumnField();
|
|
public Integer clickLineNo { get; set; }
|
|
// 検索結果メッセージ表示
|
public Boolean showRecordCountMSG { get; set; }
|
public virtual Boolean getShowRecordCountMSG() {
|
return true;
|
}
|
|
// ページレイアウトを収得するのレコードタイプ
|
public String recordTypeId;
|
public abstract String getRecordTypeId();
|
// 共通コンポーネントにも参照できるwrapperリスト
|
public List<WrapperInfo> viewList;
|
public List<WrapperInfo> getViewList(){return viewList;}
|
public abstract void setViewList(List<SObject> rSObject);
|
|
public CreateRelationListPagingCmpCtrl myComponentController;
|
|
public CreateRelationListPagingCmpCtrl getMyComponentController() {
|
return myComponentController;
|
}
|
|
public void setComponentController(CreateRelationListPagingCmpCtrl compController) {
|
System.debug('SSSSSSSSSSSSSSSSS: setComponentController start');
|
myComponentController = compController;
|
}
|
|
public CreateRelationListPagingCtrlBase getThis() {
|
return this;
|
}
|
public CreateRelationListPagingCtrlBase(){
|
}
|
|
public void makeSelectedDataInfo() {
|
selectedFKIdList = new List<Id>();
|
selectedIdSet = new Set<Id>();
|
for (Sobject mf : selectedData) {
|
if (!String.isBlank(getFKColumnField())
|
&& mf.get(getFKColumnField()) != null) {
|
selectedFKIdList.add((Id) mf.get(getFKColumnField()));
|
}
|
selectedIdSet.add(mf.Id);
|
}
|
}
|
|
public class WrapperInfo implements Comparable {
|
public SObject sobj { get; set; }
|
// public Map<String, Object> sobjMap { get; set; }
|
public Boolean canEdit { get; set; }
|
public Boolean hasError { get; set; }
|
public Boolean hasFieldError { get; set; }
|
public Integer lineNo { get; set; }
|
public Integer orderNo { get; set; }
|
public String changeFlg { get; set; }
|
public Boolean check { get; set; } // 是否选择
|
public Boolean oldCheck { get; set; }
|
public Integer inputInt {get; set;} // 数量
|
|
public Map<String, String> additionalInfoMap {get; set;} // 追加信息
|
|
public WrapperInfo(SObject record, CreateRelationListPagingCmpCtrl myComponentController) {
|
if (record == null) {
|
throw new ControllerUtil.myException('new WrapperInfo with null record.');
|
}
|
sobj = record;
|
check = false;
|
oldCheck = false;
|
canEdit = true;
|
// For JS index
|
lineNo = 0;
|
// For JS index
|
orderNo = 0;
|
changeFlg = '0';
|
additionalInfoMap = new Map<String, String>();
|
// // field name の階層を一階層にする
|
// sobjMap = new Map<String, Object>();
|
// for (List<String> splitFieldPath : myComponentController.columnsLeftApi) {
|
// if (splitFieldPath.size() == 2) {
|
// if (record.getSObject(splitFieldPath[0]) == null) {
|
// sobjMap.put(splitFieldPath[0] + '.' + splitFieldPath[1], '');
|
// } else {
|
// sobjMap.put(splitFieldPath[0] + '.' + splitFieldPath[1],
|
// record.getSObject(splitFieldPath[0]).get(splitFieldPath[1]));
|
// }
|
// }
|
// }
|
// for (List<String> splitFieldPath : myComponentController.columnsRightApi) {
|
// if (splitFieldPath.size() == 2) {
|
// if (record.getSObject(splitFieldPath[0]) == null) {
|
// sobjMap.put(splitFieldPath[0] + '.' + splitFieldPath[1], '');
|
// } else {
|
// sobjMap.put(splitFieldPath[0] + '.' + splitFieldPath[1],
|
// record.getSObject(splitFieldPath[0]).get(splitFieldPath[1]));
|
// }
|
// }
|
// }
|
}
|
|
// 排序
|
public Integer compareTo(Object compareTo) {
|
WrapperInfo compareToWrap = (WrapperInfo) compareTo;
|
if (orderNo == null && compareToWrap.orderNo != null) {
|
return 1;
|
}
|
if (orderNo == compareToWrap.orderNo) {
|
return 0;
|
}
|
if (orderNo > compareToWrap.orderNo) {
|
return 1;
|
}
|
return -1;
|
}
|
}
|
}
|