/*
* SoapUI, Copyright (C) 2004-2016 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/
package com.eviware.soapui.security.ui;
import com.eviware.soapui.config.MalformedXmlAttributeConfig;
import com.eviware.soapui.config.MalformedXmlConfig;
import com.eviware.x.form.XFormField;
import com.eviware.x.form.XFormFieldListener;
import com.eviware.x.form.support.ADialogBuilder;
import com.eviware.x.form.support.AField;
import com.eviware.x.form.support.AField.AFieldType;
import com.eviware.x.form.support.AForm;
import com.eviware.x.impl.swing.JFormDialog;
import com.eviware.x.impl.swing.JTextFieldFormField;
import javax.swing.JComponent;
public class MalformedXmlAdvancedSettingsPanel {
private JFormDialog dialog;
private MalformedXmlConfig configuration;
private MalformedXmlAttributeConfig attributeConfig;
public MalformedXmlAdvancedSettingsPanel(MalformedXmlConfig malformedXmlConfig) {
this.configuration = malformedXmlConfig;
this.attributeConfig = malformedXmlConfig.getAttributeMutation();
dialog = (JFormDialog) ADialogBuilder.buildDialog(AdvancedSettings.class);
initDialog();
((JTextFieldFormField) dialog.getFormField(AdvancedSettings.NEW_ELEMENT_VALUE)).setWidth(20);
((JTextFieldFormField) dialog.getFormField(AdvancedSettings.NEW_ATTRIBUTE_NAME)).setWidth(20);
((JTextFieldFormField) dialog.getFormField(AdvancedSettings.NEW_ATTRIBUTE_VALUE)).setWidth(20);
}
private void initDialog() {
dialog.setBooleanValue(AdvancedSettings.INSERT_NEW_ELEMENT, configuration.getInsertNewElement());
dialog.setValue(AdvancedSettings.NEW_ELEMENT_VALUE, configuration.getNewElementValue());
dialog.setBooleanValue(AdvancedSettings.CHANGE_TAG_NAME, configuration.getChangeTagName());
dialog.setBooleanValue(AdvancedSettings.LEAVE_TAG_OPEN, configuration.getLeaveTagOpen());
dialog.setBooleanValue(AdvancedSettings.INSERT_INVALID_CHARACTER, configuration.getInsertInvalidCharacter());
dialog.setBooleanValue(AdvancedSettings.MUTATE_ATTRIBUTES, attributeConfig.getMutateAttributes());
dialog.setBooleanValue(AdvancedSettings.INSERT_INVALID_CHARS, attributeConfig.getInsertInvalidChars());
dialog.setBooleanValue(AdvancedSettings.LEAVE_ATTRIBUTE_OPEN, attributeConfig.getLeaveAttributeOpen());
dialog.setBooleanValue(AdvancedSettings.ADD_NEW_ATTRIBUTE, attributeConfig.getAddNewAttribute());
dialog.setValue(AdvancedSettings.NEW_ATTRIBUTE_NAME, attributeConfig.getNewAttributeName());
dialog.setValue(AdvancedSettings.NEW_ATTRIBUTE_VALUE, attributeConfig.getNewAttributeValue());
// listeners...
dialog.getFormField(AdvancedSettings.INSERT_NEW_ELEMENT).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
configuration.setInsertNewElement(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.NEW_ELEMENT_VALUE).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
configuration.setNewElementValue(newValue);
}
});
dialog.getFormField(AdvancedSettings.CHANGE_TAG_NAME).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
configuration.setChangeTagName(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.LEAVE_TAG_OPEN).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
configuration.setLeaveTagOpen(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.MUTATE_ATTRIBUTES).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
attributeConfig.setMutateAttributes(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.INSERT_INVALID_CHARS).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
attributeConfig.setInsertInvalidChars(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.LEAVE_ATTRIBUTE_OPEN).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
attributeConfig.setLeaveAttributeOpen(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.ADD_NEW_ATTRIBUTE).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
attributeConfig.setAddNewAttribute(Boolean.parseBoolean(newValue));
}
});
dialog.getFormField(AdvancedSettings.NEW_ATTRIBUTE_NAME).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
attributeConfig.setNewAttributeName(newValue);
}
});
dialog.getFormField(AdvancedSettings.NEW_ATTRIBUTE_VALUE).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
attributeConfig.setNewAttributeValue(newValue);
}
});
dialog.getFormField(AdvancedSettings.INSERT_INVALID_CHARACTER).addFormFieldListener(new XFormFieldListener() {
@Override
public void valueChanged(XFormField sourceField, String newValue, String oldValue) {
configuration.setInsertInvalidCharacter(Boolean.parseBoolean(newValue));
}
});
}
public JComponent getPanel() {
return dialog.getPanel();
}
@AForm(description = "Malformed XML Configuration", name = "Malformed XML Configuration")
protected interface AdvancedSettings {
@AField(description = "", name = "Insert new element", type = AFieldType.BOOLEAN)
public final static String INSERT_NEW_ELEMENT = "Insert new element";
@AField(description = "", name = "New element value", type = AFieldType.STRING)
public final static String NEW_ELEMENT_VALUE = "New element value";
@AField(description = "", name = "Change tag name", type = AFieldType.BOOLEAN)
public final static String CHANGE_TAG_NAME = "Change tag name";
@AField(description = "", name = "Leave tag open", type = AFieldType.BOOLEAN)
public final static String LEAVE_TAG_OPEN = "Leave tag open";
@AField(description = "", name = "Insert invalid char in xml", type = AFieldType.BOOLEAN)
public final static String INSERT_INVALID_CHARACTER = "Insert invalid char in xml";
@AField(description = "", name = "Mutate attributes", type = AFieldType.BOOLEAN)
public final static String MUTATE_ATTRIBUTES = "Mutate attributes";
@AField(description = "", name = "Insert invalid chars in attribute", type = AFieldType.BOOLEAN)
public final static String INSERT_INVALID_CHARS = "Insert invalid chars in attribute";
@AField(description = "", name = "Leave attribute open", type = AFieldType.BOOLEAN)
public final static String LEAVE_ATTRIBUTE_OPEN = "Leave attribute open";
@AField(description = "", name = "Add new attribute", type = AFieldType.BOOLEAN)
public final static String ADD_NEW_ATTRIBUTE = "Add new attribute";
@AField(description = "", name = "New attribute name", type = AFieldType.STRING)
public final static String NEW_ATTRIBUTE_NAME = "New attribute name";
@AField(description = "", name = "New attribute value", type = AFieldType.STRING)
public final static String NEW_ATTRIBUTE_VALUE = "New attribute value";
}
public void release() {
dialog.release();
dialog = null;
configuration = null;
attributeConfig = null;
}
}