Package com.eviware.soapui.impl.rest.panels.request

Source Code of com.eviware.soapui.impl.rest.panels.request.RestRequestDesktopPanel

/*
* 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.impl.rest.panels.request;

import com.eviware.soapui.impl.rest.RestRequestInterface;
import com.eviware.soapui.impl.rest.actions.request.AddRestRequestToTestCaseAction;
import com.eviware.soapui.impl.rest.panels.component.RestResourceEditor;
import com.eviware.soapui.impl.wsdl.support.HelpUrls;
import com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestInterface;
import com.eviware.soapui.support.action.swing.SwingActionDelegate;
import com.eviware.soapui.support.components.JXToolBar;
import org.apache.commons.lang.mutable.MutableBoolean;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;

public class RestRequestDesktopPanel extends
        AbstractRestRequestDesktopPanel<RestRequestInterface, RestRequestInterface> {
    public static final String REST_REQUEST_EDITOR = "rest-request-editor";
    protected TextPanelWithTopLabel resourcePanel;
    protected ParametersField queryPanel;
    private JButton addToTestCaseButton;
    private MutableBoolean updating;

    public RestRequestDesktopPanel(RestRequestInterface modelItem) {
        super(modelItem, modelItem);
        setName(REST_REQUEST_EDITOR);
    }

    @Override
    protected void initializeFields() {
        String path = getRequest().getResource().getFullPath();
        updating = new MutableBoolean();
        resourcePanel = new TextPanelWithTopLabel("Resource", path, new RestResourceEditor(getRequest().getResource(), updating));
        queryPanel = new ParametersField(getRequest());
    }

    @Override
    protected void init(RestRequestInterface request) {
        addToTestCaseButton = createActionButton(SwingActionDelegate.createDelegate(
                AddRestRequestToTestCaseAction.SOAPUI_ACTION_ID, getRequest(), null, "/addToTestCase.gif"), true);

        super.init(request);
    }

    protected String getHelpUrl() {
        return HelpUrls.RESTREQUESTEDITOR_HELP_URL;
    }

    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        addToTestCaseButton.setEnabled(enabled);
    }

    @Override
    protected void addTopToolbarComponents(JXToolBar toolBar) {
        addResourceAndQueryField(toolBar);
    }

    @Override
    protected void addBottomToolbar(JPanel panel) {
        //RestRequestDesktopPanel does not need a bottom tool bar
    }

    @Override
    protected void updateUiValues() {
        if (updating.booleanValue()) {
            return;
        }
        updating.setValue(true);
        resourcePanel.setText(getRequest().getResource().getFullPath());
        queryPanel.updateTextField();
        updating.setValue(false);

    }

    @Override
    protected void insertButtons(JXToolBar toolbar) {
        toolbar.add(addToTestCaseButton);

        JPanel methodPanel = addMethodCombo();
        toolbar.addWithOnlyMinimumHeight(methodPanel);
    }

    private JPanel addMethodCombo() {
        JPanel methodPanel = new JPanel(new BorderLayout());
        JComboBox methodComboBox = new JComboBox(new RestRequestMethodModel(getRequest()));
        methodComboBox.setSelectedItem(getRequest().getMethod());

        JLabel methodLabel = new JLabel("Method");
        methodPanel.add(methodLabel, BorderLayout.NORTH);
        methodPanel.add(methodComboBox, BorderLayout.SOUTH);
        methodPanel.setMinimumSize(new Dimension(75, STANDARD_TOOLBAR_HEIGHT));
        methodPanel.setMaximumSize(new Dimension(75, STANDARD_TOOLBAR_HEIGHT + 10));
        return methodPanel;
    }

    private void addResourceAndQueryField(JXToolBar toolbar) {
        if (!(getRequest() instanceof RestTestRequestInterface)) {

            toolbar.addWithOnlyMinimumHeight(resourcePanel);

            toolbar.add(Box.createHorizontalStrut(4));


            toolbar.addWithOnlyMinimumHeight(queryPanel);
        }
    }

}
TOP

Related Classes of com.eviware.soapui.impl.rest.panels.request.RestRequestDesktopPanel

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.