@Override public void validate(Problems problems, String compName, ListSelectionModel model) { if (model.isSelectionEmpty()) { wrapped.validate(problems, compName, new Integer[0]); } else { List<Integer> list = new ArrayList<Integer>(model.getMaxSelectionIndex() + 1 - model.getMinSelectionIndex()); for (int i = model.getMinSelectionIndex(); i <= model.getMaxSelectionIndex(); ++i) { if (model.isSelectedIndex(i)) { list.add(i); } } wrapped.validate(problems, compName, list.toArray(new Integer[list.size()])); } }
private boolean validate(String realName, String address, Problems problems, String compName) { String[] nameAndHost = address.split("@"); if (nameAndHost.length == 1 && nameAndHost[0].contains("@")) { problems.add( NbBundle.getMessage( EmailAddressValidator.class, "EMAIL_MISSING_HOST", compName, nameAndHost[0])); return false; } if (nameAndHost.length > 2) { problems.add( NbBundle.getMessage(EmailAddressValidator.class, "EMAIL_HAS_>1_@", compName, address)); return false; } String name = nameAndHost[0]; if (name.length() == 0) { problems.add( NbBundle.getMessage(EmailAddressValidator.class, "EMAIL_MISSING_NAME", compName, name)); return false; } if (name.length() > 64) { problems.add( new Problem( NbBundle.getMessage( EmailAddressValidator.class, "ADDRESS_MAY_BE_TOO_LONG", compName, name), Severity.WARNING)); } String host = nameAndHost.length >= 2 ? nameAndHost[1] : null; boolean result = host != null; if (result) { result = hv.validate(problems, compName, host); if (result) { MayNotContainSpacesValidator v = new MayNotContainSpacesValidator(); result = v.validate(problems, compName, name); } Validator<String> v = new EncodableInCharsetValidator("US-ASCII"); if (result) { result = v.validate(problems, compName, address); } } else { problems.add( NbBundle.getMessage( EmailAddressValidator.class, "EMAIL_MISSING_HOST", compName, nameAndHost[0])); } return result; }