package com.eviware.soapui.support.editor.inspectors.auth;
import com.eviware.soapui.config.AccessTokenPositionConfig;
import com.eviware.soapui.impl.rest.OAuth1Profile;
import com.eviware.soapui.impl.wsdl.support.HelpUrls;
import com.eviware.soapui.support.MessageSupport;
import com.eviware.x.form.XFormDialog;
import com.eviware.x.form.support.ADialogBuilder;
import com.eviware.x.form.support.AField;
import com.eviware.x.form.support.AForm;
import com.eviware.x.form.support.XFormRadioGroup;
public class OAuth1AdvancedOptionsDialog {
private static final MessageSupport messages = MessageSupport.getMessages(OAuth1AdvancedOptionsDialog.class);
public OAuth1AdvancedOptionsDialog(OAuth1Profile profile) {
XFormDialog dialog = ADialogBuilder.buildDialog(Form.class);
setAccessTokenOptions(profile, dialog);
if (dialog.show()) {
String accessTokenPosition = dialog.getValue(Form.ACCESS_TOKEN_POSITION);
profile.setAccessTokenPosition(AccessTokenPositionConfig.Enum.forString(accessTokenPosition));
}
}
private void setAccessTokenOptions(OAuth1Profile profile, XFormDialog dialog) {
XFormRadioGroup accessTokenPositionField = (XFormRadioGroup) dialog.getFormField(Form.ACCESS_TOKEN_POSITION);
AccessTokenPositionConfig.Enum[] accessTokenPositions = new AccessTokenPositionConfig.Enum[]{
AccessTokenPositionConfig.HEADER,
AccessTokenPositionConfig.QUERY};
accessTokenPositionField.setOptions(accessTokenPositions);
dialog.setValue(Form.ACCESS_TOKEN_POSITION, profile.getAccessTokenPosition().toString());
}
@AForm(name = "Form.Title", description = "Form.Description", helpUrl = HelpUrls.OAUTH_ADVANCED_OPTIONS)
public interface Form {
@AField(description = "Form.AccessTokenPosition.Description", type = AField.AFieldType.RADIOGROUP)
public final static String ACCESS_TOKEN_POSITION = messages.get("Form.SendAuthParameters.Label");
}
}