Updated Rules

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-portlet@114359 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2015-04-23 09:59:08 +00:00
parent ec436a5051
commit d1a0bbcbe4
1 changed files with 29 additions and 22 deletions

View File

@ -240,19 +240,6 @@ public class RuleApplyPanel extends FramedPanel {
}
});
/*
ColumnConfig<RuleDescriptionData, String> readableExpressionCol = new ColumnConfig<RuleDescriptionData, String>(
propsRules.readableExpression(), 160, "Expression");
readableExpressionCol.setCell(new AbstractCell<String>() {
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
RuleApplyTemplates ruleApplyTemplates = GWT
.create(RuleApplyTemplates.class);
sb.append(ruleApplyTemplates.format(value));
}
});*/
List<ColumnConfig<RuleDescriptionData, ?>> l = new ArrayList<ColumnConfig<RuleDescriptionData, ?>>();
l.add(nameCol);
@ -509,17 +496,37 @@ public class RuleApplyPanel extends FramedPanel {
ColumnData column = comboColumns.getCurrentValue();
if (column != null) {
ArrayList<RuleDescriptionData> selectedRules = getSelectedItems();
ArrayList<RuleDescriptionData> rulesToBeApplied = new ArrayList<RuleDescriptionData>();
ArrayList<RuleDescriptionData> rulesThatWillBeDetach = new ArrayList<RuleDescriptionData>();
ArrayList<RuleDescriptionData> rulesThatWillBeApplied = new ArrayList<RuleDescriptionData>();
HashMap<String, ArrayList<RuleDescriptionData>> columnRuleMapping = appliedRuleResponseData
.getColumnRuleMapping();
if(columnRuleMapping!=null){
ArrayList<RuleDescriptionData> rulesApplied = columnRuleMapping
.get(column.getColumnId());
for(RuleDescriptionData ruleApplied:rulesApplied){
boolean ruleStillApplied = false;
for (RuleDescriptionData ruleSelected : selectedRules) {
if (ruleSelected.getId() == ruleApplied
.getId()) {
ruleStillApplied = true;
break;
}
}
if(!ruleStillApplied){
rulesThatWillBeDetach.add(ruleApplied);
}
}
}
for (RuleDescriptionData ruleSelected : selectedRules) {
boolean ruleApplied = false;
HashMap<String, ArrayList<RuleDescriptionData>> columnRuleMapping = appliedRuleResponseData
.getColumnRuleMapping();
if (columnRuleMapping != null) {
ArrayList<RuleDescriptionData> applied = columnRuleMapping
ArrayList<RuleDescriptionData> rulesApplied = columnRuleMapping
.get(column.getColumnId());
if (applied != null) {
for (RuleDescriptionData ruleAlreadyApplied : applied) {
if (rulesApplied != null) {
for (RuleDescriptionData ruleAlreadyApplied : rulesApplied) {
if (ruleSelected.getId() == ruleAlreadyApplied
.getId()) {
ruleApplied = true;
@ -534,12 +541,12 @@ public class RuleApplyPanel extends FramedPanel {
}
if (ruleApplied == false) {
rulesToBeApplied.add(ruleSelected);
rulesThatWillBeApplied.add(ruleSelected);
}
}
ApplyColumnRulesSession applyColumnRulesSession = new ApplyColumnRulesSession(
trId, column, rulesToBeApplied);
trId, column, rulesThatWillBeApplied, rulesThatWillBeDetach);
parent.applyRules(applyColumnRulesSession);
} else {
Log.error("No column selected");