/*
* 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.support;
import com.eviware.soapui.config.MaliciousAttachmentConfig;
import com.eviware.soapui.security.tools.AttachmentElement;
import com.eviware.soapui.security.ui.MaliciousAttachmentMutationsPanel.MutationTables;
import com.eviware.x.impl.swing.JFormDialog;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MaliciousAttachmentListToTableHolder {
MaliciousAttachmentFilesListForm filesList;
MaliciousAttachmentTableModel generateTableModel;
MaliciousAttachmentTableModel replaceTableModel;
JFormDialog tablesDialog;
Map<String, List<MaliciousAttachmentConfig>> generateMap = new HashMap<String, List<MaliciousAttachmentConfig>>();
Map<String, List<MaliciousAttachmentConfig>> replaceMap = new HashMap<String, List<MaliciousAttachmentConfig>>();
Map<String, Boolean> removeMap = new HashMap<String, Boolean>();
public JFormDialog getTablesDialog() {
return tablesDialog;
}
public void setTablesDialog(JFormDialog tablesDialog) {
this.tablesDialog = tablesDialog;
}
public MaliciousAttachmentFilesListForm getFilesList() {
return filesList;
}
public void setFilesList(MaliciousAttachmentFilesListForm filesList) {
this.filesList = filesList;
}
public MaliciousAttachmentTableModel getGenerateTableModel() {
return generateTableModel;
}
public void setGenerateTableModel(MaliciousAttachmentTableModel generateTableModel) {
this.generateTableModel = generateTableModel;
}
public MaliciousAttachmentTableModel getReplaceTableModel() {
return replaceTableModel;
}
public void setReplaceTableModel(MaliciousAttachmentTableModel replaceTableModel) {
this.replaceTableModel = replaceTableModel;
}
public void refresh() {
if (filesList != null) {
AttachmentElement item = filesList.getFirstItem();
// String label = ( item != null ) ? item.getAttachment().getName() :
// "";
// tablesDialog.getFormField( MutationTables.LABEL ).setValue( label );
if (item != null) {
load(item);
}
}
}
public void refresh(AttachmentElement oldItem, AttachmentElement newItem) {
if (oldItem != null) {
save(oldItem);
if (newItem != null) {
load(newItem);
}
}
}
public void addResultToGenerateTable(MaliciousAttachmentConfig config) {
generateTableModel.addResult(config);
}
public void addResultToReplaceTable(MaliciousAttachmentConfig config) {
replaceTableModel.addResult(config);
}
private void save(AttachmentElement item) {
List<MaliciousAttachmentConfig> generateList = new ArrayList<MaliciousAttachmentConfig>();
List<MaliciousAttachmentConfig> replaceList = new ArrayList<MaliciousAttachmentConfig>();
for (int i = 0; i < generateTableModel.getRowCount(); i++) {
generateList.add(generateTableModel.getRowValue(i));
}
for (int i = 0; i < replaceTableModel.getRowCount(); i++) {
replaceList.add(replaceTableModel.getRowValue(i));
}
Boolean remove = tablesDialog.getBooleanValue(MutationTables.REMOVE_FILE);
generateMap.put(item.getId(), generateList);
replaceMap.put(item.getId(), replaceList);
removeMap.put(item.getId(), remove);
}
private void load(AttachmentElement item) {
List<MaliciousAttachmentConfig> generateList = generateMap.get(item.getId());
List<MaliciousAttachmentConfig> replaceList = replaceMap.get(item.getId());
Boolean remove = removeMap.get(item.getId());
// tablesDialog.setValue( MutationTables.LABEL,
// item.getAttachment().getName() );
generateTableModel.clear();
replaceTableModel.clear();
tablesDialog.setBooleanValue(MutationTables.REMOVE_FILE, new Boolean(false));
if (remove != null) {
tablesDialog.setBooleanValue(MutationTables.REMOVE_FILE, remove);
}
if (generateList != null) {
for (MaliciousAttachmentConfig element : generateList) {
generateTableModel.addResult(element);
}
}
if (replaceList != null) {
for (MaliciousAttachmentConfig element : replaceList) {
replaceTableModel.addResult(element);
}
}
}
public void removeAttachment(String key) {
generateMap.remove(key);
replaceMap.remove(key);
removeMap.remove(key);
}
public void release() {
filesList.release();
filesList = null;
tablesDialog.release();
generateMap = null;
replaceMap = null;
removeMap = null;
}
}