/* * 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.actions; import com.eviware.soapui.impl.wsdl.panels.teststeps.support.DefaultPropertyHolderTableModel; import com.eviware.soapui.impl.wsdl.panels.teststeps.support.PropertyHolderTable; import com.eviware.soapui.model.settings.Settings; import com.eviware.soapui.support.SecurityScanUtil; import com.eviware.soapui.support.components.SimpleForm; import com.eviware.soapui.support.types.StringToStringMap; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.TransferHandler; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.Dimension; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; public class SecurityScansPrefs implements Prefs { public static final String GLOBAL_SENSITIVE_INFORMATION_TOKENS = "Global Sensitive Information Tokens"; private SimpleForm securityScansForm; private final String title; public SecurityScansPrefs(String title) { this.title = title; } public SimpleForm getForm() { if (securityScansForm == null) { securityScansForm = new SimpleForm(); PropertyHolderTable propertyHolderTable = new PropertyHolderTable( SecurityScanUtil.getGlobalSensitiveInformationExposureTokens()) { protected JTable buildPropertiesTable() { propertiesModel = new DefaultPropertyHolderTableModel(holder) { @Override public String getColumnName(int columnIndex) { switch (columnIndex) { case 0: return "Token"; case 1: return "Description"; } return null; } }; propertiesTable = new PropertiesHolderJTable(); propertiesTable.setSurrendersFocusOnKeystroke(true); propertiesTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); propertiesTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { int selectedRow = propertiesTable.getSelectedRow(); if (removePropertyAction != null) { removePropertyAction.setEnabled(selectedRow != -1); } if (movePropertyUpAction != null) { movePropertyUpAction.setEnabled(selectedRow > 0); } if (movePropertyDownAction != null) { movePropertyDownAction.setEnabled(selectedRow >= 0 && selectedRow < propertiesTable.getRowCount() - 1); } } }); propertiesTable.setDragEnabled(true); propertiesTable.setTransferHandler(new TransferHandler("testProperty")); if (getHolder().getModelItem() != null) { DropTarget dropTarget = new DropTarget(propertiesTable, new PropertyHolderTablePropertyExpansionDropTarget()); dropTarget.setDefaultActions(DnDConstants.ACTION_COPY_OR_MOVE); } return propertiesTable; } }; propertyHolderTable.setPreferredSize(new Dimension(200, 300)); securityScansForm.append(new JLabel(title)); securityScansForm.addSpace(); securityScansForm.addComponent(propertyHolderTable); } return securityScansForm; } public void getFormValues(Settings settings) { SecurityScanUtil.saveGlobalSecuritySettings(); } public String getTitle() { return GLOBAL_SENSITIVE_INFORMATION_TOKENS; } public StringToStringMap getValues(Settings settings) { return null; } public void setFormValues(Settings settings) { } public void storeValues(StringToStringMap values, Settings settings) { } }