public ImageIcon getConstraintIcon(Object cons , ConstraintModel constraintModel , CustomizationVersion cv) {
if (!(cons instanceof GroupConstraint)) {
return null;
}
GroupConstraint gc = (GroupConstraint)cons;
if (cv==null) {
return ImageManager.getInstance().getGroupConstraintHeader(gc.getType() , null , ImageManager.ConstraintStat.csNone);
} else {
List<Customization> sCustomization = new ArrayList<Customization>();
for (Iterator<Feature> itFeature=gc.getFeatureSet().iterator() ; itFeature.hasNext() ; ) {
Feature feature = itFeature.next();
CFRelation cf = constraintModel.getCFRelation(feature , gc , true);
if (cf==null) {
cf = constraintModel.getCFRelation(feature , gc , false);
}
sCustomization.add(super.convertCustomization(cv.getFinalCustomizationById(feature.getID()) , cf));
}
Customization value = Customization.Undecided;
if (gc.getType().getName().equals(GroupConstraintType.SingleGroup.getName())) {
if (super.getCustomizationCount(sCustomization , Customization.Selected)>1) {
value = Customization.Unselected;
} else if (super.getCustomizationCount(sCustomization , Customization.Undecided)==0) {
value = Customization.Selected;
} else {
value = Customization.Undecided;
}
} else if (gc.getType().getName().equals(GroupConstraintType.AllGroup.getName())) {
if (super.getCustomizationCount(sCustomization , Customization.Undecided)>0) {
value = Customization.Undecided;
} else if (super.getCustomizationCount(sCustomization , Customization.Unselected)==0) {
value = Customization.Selected;
} else {
value = Customization.Unselected;
}
} else /*if (gc.getType().getName().equals(GroupConstraintType.SingleGroup))*/ {
value = Customization.Selected;
}
return ImageManager.getInstance().getGroupConstraintHeader(gc.getType() , value , ImageManager.ConstraintStat.csNone);
}
}