blob: 3d85aa75182ad0941a7a6b90a83ae49838641d4a [file] [log] [blame]
/*
* Copyright 2000-2010 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.internal.validation;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.ValidationInfo;
import javax.swing.*;
import java.util.regex.Pattern;
/**
* @author Konstantin Bulenkov
*/
public class ValidationTest extends DialogWrapper {
private ValidTest myPanel;
final ValidationInfo[] ERRORS;
protected ValidationTest(Project project) {
super(project);
myPanel = new ValidTest();
ERRORS = new ValidationInfo[]{
new ValidationInfo("Field1 should not be empty", myPanel.field1),
new ValidationInfo("Field2 is zip. It should contain 5 digits", myPanel.field2),
new ValidationInfo("Field3. Value is not chosen", myPanel.field3),
new ValidationInfo("Field4: Select A or B", myPanel.p4),
new ValidationInfo("Field5: You should accept license agreement<br/>text text text text text text text text text text text text<br/>text text text text text text text text text text text text")
};
init();
}
@Override
protected boolean postponeValidation() {
return true;
}
@Override
public JComponent getPreferredFocusedComponent() {
return myPanel.field2;
}
@Override
protected void doOKAction() {
super.doOKAction();
Messages.showInfoMessage("on OK", "Info");
}
@Override
protected ValidationInfo doValidate() {
if (myPanel.field1.getText().isEmpty()) return ERRORS[0];
if (!Pattern.compile("[0-9]{5}").matcher(myPanel.field2.getText()).matches()) return ERRORS[1];
if (myPanel.field3.getSelectedItem() == null || "".equals(myPanel.field3.getSelectedItem())) return ERRORS[2];
if (!myPanel.field4A.isSelected() && !myPanel.field4B.isSelected()) return ERRORS[3];
if (!myPanel.field5.isSelected()) return ERRORS[4];
return null;
}
@Override
protected JComponent createCenterPanel() {
return myPanel.panel;
}
}