Object (final Property property) { if (mySelection.size() == 0) { return null; } //noinspection unchecked Object result = property.getValue(mySelection.get(0)); for(int i=1; i<mySelection.size(); i++) { Object otherValue = null; if (property instanceof IntrospectedProperty) { IntrospectedProperty[] props = Palette.getInstance(myProject).getIntrospectedProperties(mySelection.get(i)); for(IntrospectedProperty otherProperty: props) { if (otherProperty.getName().equals(property.getName())) { otherValue = otherProperty.getValue(mySelection.get(i)); break; } } } else { //noinspection unchecked otherValue = property.getValue(mySelection.get(i)); } if (!Comparing.equal(result, otherValue)) { return null; } } return result; }