com.eviware.soapui.support.action.swing.JXSoapUIActionListToolBar.java Source code

Java tutorial

Introduction

Here is the source code for com.eviware.soapui.support.action.swing.JXSoapUIActionListToolBar.java

Source

/*
 * 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.support.action.swing;

import java.util.HashMap;
import java.util.Map;

import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.JComponent;

import com.eviware.soapui.model.ModelItem;
import com.eviware.soapui.support.action.SoapUIAction;
import com.eviware.soapui.support.actions.MarkerAction;
import com.eviware.soapui.support.components.JXToolBar;
import com.jgoodies.looks.HeaderStyle;
import com.jgoodies.looks.Options;

public class JXSoapUIActionListToolBar extends JXToolBar {
    private Map<String, Action> actionMap = new HashMap<String, Action>();

    @SuppressWarnings("unchecked")
    public JXSoapUIActionListToolBar(ActionList actions, ModelItem modelItem) {
        addSpace(1);
        setRollover(true);
        putClientProperty(Options.HEADER_STYLE_KEY, HeaderStyle.SINGLE);
        setBorder(BorderFactory.createEmptyBorder(3, 0, 3, 0));

        for (int i = 0; i < actions.getActionCount(); i++) {
            Action action = actions.getActionAt(i);

            if (action instanceof MarkerAction) {
                continue;
            }

            if (action == ActionSupport.SEPARATOR_ACTION) {
                addSeparator();
            } else if (action instanceof ActionSupport.ActionListAction) {
                // JMenu subMenu = buildMenu(
                // ((ActionListAction)action).getActionList() );
                // if( subMenu == null )
                // subMenu = new JMenu(
                // ((ActionListAction)action).getActionList().getLabel() );
                // menu.add( subMenu);
            } else if (action != null) {
                JComponent component = null;

                if (action instanceof SoapUIActionMarker) {
                    SoapUIAction soapUIAction = ((SoapUIActionMarker) action).getSoapUIAction();
                    component = ActionComponentRegistry.buildActionComponent(soapUIAction, modelItem);
                    actionMap.put(soapUIAction.getId(), action);
                }

                if (component != null) {
                    add(component);
                } else {
                    add(action);
                }
            }
        }
    }

    public JXSoapUIActionListToolBar(ModelItem modelItem) {
        this(ActionListBuilder.buildActions(modelItem, "EditorToolbar"), modelItem);
    }

    public void setEnabled(String actionId, boolean enabled) {
        if (actionMap.containsKey(actionId)) {
            actionMap.get(actionId).setEnabled(enabled);
        }
    }

}