You need to sign in to do that
Don't have an account?
Behzad
RecordWrapper in Constructor
Hey all,
I got a wrapper that I use for multiselection. I previously used its code in a component controller, but now I want to use it in a constructor extentsion.
Here is the code that I got:
public with sharing class partnershipDeactivatorController {
public program__c prog {get;set;}
public distributionPartnership__c dp {get;set;}
public Terminal__c trm {get;set;}
public Location__c [] locs = new Location__c[0];
public Terminal__c [] trms = new Terminal__c[0];
public distributionPartnership__c [] dps = new distributionPartnership__c[0];
public List<String> recordIds {get;set;}
public string progId {get;set;}
public string retUrl {get;set;}
public string idsToSplit {get;set;}
public string schedule {get;set;}
public string cmd {get;set;}
//Variables for multiselector on Deactivation Partnerhisp Page
public boolean topCheckbox {get; set;}
List<rcrdWrapper> rcrdList {get;set;}
//Constructor
public ApexPages.StandardController controller;
public partnershipDeactivatorController(ApexPages.StandardController controller) {
this.controller = controller;
//make it easy to map page params
PageReference pageRef = ApexPages.CurrentPage();
Map<String, String> page = pageRef.getParameters();
dp = (distributionPartnership__c) controller.getrecord();
Terminal__c trm = new Terminal__c();
progId = page.get('progId');
retUrl = page.get('retUrl');
if (progId != null) {
prog = getProg();
dp.Program__c = prog.id;
}
string s = page.get('records');
this.idsToSplit = s;
this.recordIds = this.idsToSplit.split(',',0);
}
//Get the locations from the list of ids specified
public Terminal__c[] getTrms(){
Trms = [
SELECT
id,
distributionPartnership__c,
Type__c,
Location__c
FROM Terminal__c
WHERE distributionPartnership__c IN :recordIds
];
return Trms;
}
//Get the program
public program__c getProg(){
prog = [select
id,
group__c
from program__c
where id = :progId
limit 1
];
return prog;
}
public void cmdBtn(){
}
//{!rcrds} is the pageBlockTable value to render
public List<rcrdWrapper> rcrds
{
get
{
if (rcrdList == null)
{
rcrdList = new List<rcrdWrapper>();
Terminal__c[] trms = [
SELECT
id,
distributionPartnership__c,
Type__c,
Location__c
FROM Terminal__c
WHERE distributionPartnership__c IN :recordIds
];
for(Terminal__c trm : trms)
rcrdList.add(new rcrdWrapper(trm));
}
return rcrdList;
}
}
private List<rcrdWrapper> selectedRows
{
get
{
List<rcrdWrapper> selectedRows = new List<rcrdWrapper>();
for(rcrdWrapper row : rcrds)
if(row.selected == true)
selectedRows.add(row);
return selectedRows;
}
}
public class rcrdWrapper
{
public distributionPartnership__c rcrd{get; set;}
public Boolean selected {get; set;}
public rcrdWrapper(distributionPartnership__c dp)
{
rcrd = dp;
selected = false;
}
}
}
The highlighted codes is givving me the following error:
Save error: Constructor not defined:
[partnershipDeactivatorController.rcrdWrapper].<Constructor>(SOBJECT:Terminal__c)
I understand this error code, but I don't know how to define the recordWrapper in my constructor.
Your help is greatly appreciated.
Thanks,
Behzad
I had to change the public class rcrdWrapper to point to the right object, as shown below:
public class rcrdWrapper
{
public Terminal__c rcrd{get; set;}
public Boolean selected {get; set;}
public rcrdWrapper(Terminal__c trm)
{
rcrd = trm;
selected = false;
}
}
}