Package com.eviware.soapui.security.support

Source Code of com.eviware.soapui.security.support.MaliciousAttachmentFilesListForm

/*
* Copyright 2004-2014 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 java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.DefaultListModel;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import com.eviware.soapui.config.MaliciousAttachmentConfig;
import com.eviware.soapui.config.MaliciousAttachmentElementConfig;
import com.eviware.soapui.config.MaliciousAttachmentSecurityScanConfig;
import com.eviware.soapui.model.iface.Attachment;
import com.eviware.soapui.security.tools.AttachmentElement;
import com.eviware.soapui.security.ui.MaliciousAttachmentMutationsPanel.MutationTables;
import com.eviware.soapui.support.UISupport;

public class MaliciousAttachmentFilesListForm extends JPanel {
    private DefaultListModel listModel;
    private JList list;
    private AttachmentElement oldSelection;
    private AttachmentElement currentSelection;
    private MaliciousAttachmentSecurityScanConfig config;
    final MaliciousAttachmentListToTableHolder holder;

    public MaliciousAttachmentFilesListForm(MaliciousAttachmentSecurityScanConfig config,
                                            MaliciousAttachmentListToTableHolder holder) {
        super(new BorderLayout());

        this.config = config;
        this.holder = holder;

        JPanel p = UISupport.createEmptyPanel(3, 3, 3, 3);
        p.add(new JLabel("<html><b>Existing Attachments</b></html>"), BorderLayout.WEST);
        add(p, BorderLayout.NORTH);

        listModel = new DefaultListModel();
        list = new JList(listModel);
        list.setToolTipText("Choose file");
        JScrollPane scrollPane = new JScrollPane(list);
        scrollPane.setPreferredSize(new Dimension(30, 50));
        add(scrollPane, BorderLayout.CENTER);

        list.addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent e) {
                currentSelection = (list.getSelectedIndex() == -1) ? null : (AttachmentElement) listModel.get(list
                        .getSelectedIndex());
                MaliciousAttachmentFilesListForm.this.holder.refresh(oldSelection, currentSelection);
                oldSelection = currentSelection;
            }
        });

        setBorder(null);
    }

    public AttachmentElement getFirstItem() {
        if (list.getModel().getSize() != 0) {
            list.setSelectedIndex(0);
            return (AttachmentElement) list.getSelectedValue();
        }
        return null;
    }

    public JList getList() {
        return list;
    }

    public AttachmentElement[] getData() {
        AttachmentElement[] result = new AttachmentElement[listModel.size()];
        for (int c = 0; c < result.length; c++) {
            result[c] = (AttachmentElement) listModel.get(c);
        }
        return result;
    }

    public void setData(Attachment[] attachments) {
        MaliciousAttachmentSecurityScanConfig copy = (MaliciousAttachmentSecurityScanConfig) config.copy();

        listModel.clear();
        config.getElementList().clear();
        holder.getGenerateTableModel().clear();
        holder.getReplaceTableModel().clear();
        holder.getTablesDialog().setBooleanValue(MutationTables.REMOVE_FILE, new Boolean(false));

        if (attachments != null) {
            for (Attachment att : attachments) {
                AttachmentElement attEl = new AttachmentElement(att, att.getId());
                listModel.addElement(attEl);

                holder.getGenerateTableModel().clear();
                holder.getReplaceTableModel().clear();
                holder.getTablesDialog().setBooleanValue(MutationTables.REMOVE_FILE, new Boolean(false));

                // add empty element
                MaliciousAttachmentElementConfig newElement = config.addNewElement();

                newElement.setKey(attEl.getId());

                for (MaliciousAttachmentElementConfig element : copy.getElementList()) {
                    if (attEl.getId().equals(element.getKey())) {
                        newElement.setRemove(element.getRemove());
                        holder.getTablesDialog().setBooleanValue(MutationTables.REMOVE_FILE, element.getRemove());

                        for (MaliciousAttachmentConfig el : element.getGenerateAttachmentList()) {
                            MaliciousAttachmentConfig newEl = newElement.addNewGenerateAttachment();
                            newEl.setFilename(el.getFilename());
                            newEl.setSize(el.getSize());
                            newEl.setContentType(el.getContentType());
                            newEl.setEnabled(el.getEnabled());
                            newEl.setCached(el.getCached());

                            holder.addResultToGenerateTable(newEl);
                        }

                        for (MaliciousAttachmentConfig el : element.getReplaceAttachmentList()) {
                            MaliciousAttachmentConfig newEl = newElement.addNewReplaceAttachment();
                            newEl.setFilename(el.getFilename());
                            newEl.setSize(el.getSize());
                            newEl.setContentType(el.getContentType());
                            newEl.setEnabled(el.getEnabled());
                            newEl.setCached(el.getCached());

                            holder.addResultToReplaceTable(newEl);
                        }

                        holder.refresh(attEl, null);
                        break;
                    }
                }
            }
        }
    }

    public void updateConfig(MaliciousAttachmentSecurityScanConfig config) {
        this.config = config;
    }

    public void release() {
        list = null;
        config = null;
    }
}
TOP

Related Classes of com.eviware.soapui.security.support.MaliciousAttachmentFilesListForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.