/* * 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.x.impl.swing; import com.eviware.soapui.support.components.JFormComponent; import javax.swing.JComponent; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Dimension; public class JComponentFormField extends AbstractSwingXFormField<JPanel> { private JComponent component; public JComponentFormField(String label, String description) { super(new JPanel(new BorderLayout())); getComponent().setPreferredSize(new Dimension(400, 200)); } public void setValue(String value) { if (component instanceof JFormComponent) { ((JFormComponent) component).setValue(value); } } public String getValue() { if (component instanceof JFormComponent) { return ((JFormComponent) component).getValue(); } else { return null; } } @Override public void setProperty(String name, Object value) { if (name.equals("component")) { getComponent().removeAll(); if (value != null) { getComponent().add((JComponent) value, BorderLayout.CENTER); } getComponent().revalidate(); getComponent().getParent().repaint(); } else if (name.equals("preferredSize")) { getComponent().setPreferredSize((Dimension) value); getComponent().setMaximumSize((Dimension) value); getComponent().setMinimumSize((Dimension) value); getComponent().setSize((Dimension) value); } else { super.setProperty(name, value); } } }