//得到用户参与的场景,如果是owner,则应该得到所有此项目的场景,否则
//找出所有此用户拥有权限的场景,包括两部分,一部分是他作为某个角色的拥有者参与了场景的讨论,另一种是他作为场景的查看者
//可以查看场景,这个数据是从UserScenarioRelation中得到。 将这两部分数据统一转换为Scenario类型的
if(context.getProjectRole()==DictionaryConstant.OWNER) {
Scenario scenario=new Scenario();
sourceList=dp.query(scenario);
}else {
String roles=user.getRoleIds();
if(!GenericValidator.isBlankOrNull(roles)) {
roles=roles.substring(1,roles.length()-1);
SelectCommand scmd = DAOFactory.getSelectCommand(ScenarioRoleRelation.class);
String[] rolesArr=roles.split(",");
Long[] primaryKeysLong = new Long[rolesArr.length];
for (int i = 0; i < rolesArr.length; i++)
primaryKeysLong[i] = new Long(rolesArr[i]);
Filter filter=DAOFactory.getFilter("roleId",SQLOperator.IN,primaryKeysLong);
Filter topFilter=DAOFactory.getFilter();
topFilter.addFilter(filter);
scmd.setFilter(topFilter);
ArrayList relationList=dp.query(scmd);
for(int i=0;i<relationList.size();i++) {
ScenarioRoleRelation relation=(ScenarioRoleRelation)relationList.get(i);
Scenario scenario=new Scenario();
scenario.setScenarioId(relation.getScenarioId());
scenario.setScenarioName(relation.getScenarioName());
sourceList.add(scenario);
}
}
//得到用户可以查看的场景
UserScenarioRelation relation=new UserScenarioRelation();
relation.setUserId(userId);
ArrayList relationList=dp.query(relation);
for(int i=0;i<relationList.size();i++) {
relation=(UserScenarioRelation)relationList.get(i);
Scenario scenario=new Scenario();
scenario.setScenarioId(relation.getScenarioId());
scenario.setScenarioName(relation.getScenarioName());
sourceList.add(scenario);
}
}
StringBuffer buffer= HtmlClientComponentService.getMultiSelect(sourceList, new ArrayList(), "scenarioName",Scenario.class);