Package org.apache.jmeter.gui.util

Source Code of org.apache.jmeter.gui.util.FilePanel

// $Header: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/util/FilePanel.java,v 1.11 2004/02/13 02:21:38 sebb Exp $
/*
* Copyright 2002-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

package org.apache.jmeter.gui.util;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import org.apache.jmeter.util.JMeterUtils;

/**
* @author     Michael Stover
* Created    April 18, 2002
* @version    $Revision: 1.11 $ Last updated: $Date: 2004/02/13 02:21:38 $
*/
public class FilePanel extends HorizontalPanel implements ActionListener
{
    JTextField filename = new JTextField(20);
    JLabel label =
        new JLabel(JMeterUtils.getResString("file_visualizer_filename"));
    JButton browse = new JButton(JMeterUtils.getResString("browse"));
    List listeners = new LinkedList();
    String title;
    String filetype;

    /**
     *  Constructor for the FilePanel object.
     */
    public FilePanel()
    {
        title = "";
        init();
    }

    public FilePanel(String title)
    {
        this.title = title;
        init();
    }

    public FilePanel(String title, String filetype)
    {
        this(title);
        this.filetype = filetype;
    }

    /**
     *  Constructor for the FilePanel object.
     */
    public FilePanel(ChangeListener l, String title)
    {
        this.title = title;
        init();
        listeners.add(l);
    }

    public void addChangeListener(ChangeListener l)
    {
        listeners.add(l);
    }

    private void init()
    {
        setBorder(BorderFactory.createTitledBorder(title));
        add(label);
        add(Box.createHorizontalStrut(5));
        add(filename);
        add(Box.createHorizontalStrut(5));
        filename.addActionListener(this);
        add(browse);
        browse.setActionCommand("browse");
        browse.addActionListener(this);

    }

    /**
     * Gets the filename attribute of the FilePanel object.
     *
     * @return    the filename value
     */
    public String getFilename()
    {
        return filename.getText();
    }

    /**
     * Sets the filename attribute of the FilePanel object.
     *
     * @param  f  the new filename value
     */
    public void setFilename(String f)
    {
        filename.setText(f);
    }

    private void fireFileChanged()
    {
        Iterator iter = listeners.iterator();
        while (iter.hasNext())
        {
            ((ChangeListener) iter.next()).stateChanged(new ChangeEvent(this));
        }
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getActionCommand().equals("browse"))
        {
            JFileChooser chooser =
                FileDialoger.promptToOpenFile(new String[] { filetype });
            if (chooser != null && chooser.getSelectedFile() != null)
            {
                filename.setText(chooser.getSelectedFile().getPath());
                fireFileChanged();
            }
        }
        else
        {
            fireFileChanged();
        }
    }
}
TOP

Related Classes of org.apache.jmeter.gui.util.FilePanel

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.