You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2012/09/02 17:54:46 UTC
svn commit: r1379999 - in /jmeter/trunk/src/core/org/apache/jmeter/gui/util:
FilePanel.java FilePanelEntry.java
Author: sebb
Date: Sun Sep 2 15:54:46 2012
New Revision: 1379999
URL: http://svn.apache.org/viewvc?rev=1379999&view=rev
Log:
Split FilePanel to make it easier to re-use without the fixed label and title
Added:
jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java (with props)
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanel.java
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanel.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanel.java?rev=1379999&r1=1379998&r2=1379999&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanel.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanel.java Sun Sep 2 15:54:46 2012
@@ -18,45 +18,16 @@
package org.apache.jmeter.gui.util;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-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
- */
-public class FilePanel extends HorizontalPanel implements ActionListener {
+public class FilePanel extends FilePanelEntry {
private static final long serialVersionUID = 240L;
- private final JTextField filename = new JTextField(10);
-
- private final JLabel label = new JLabel(JMeterUtils.getResString("file_visualizer_filename")); //$NON-NLS-1$
-
- private final JButton browse = new JButton(JMeterUtils.getResString("browse")); //$NON-NLS-1$
-
- private static final String ACTION_BROWSE = "browse"; //$NON-NLS-1$
-
- private final List<ChangeListener> listeners = new LinkedList<ChangeListener>();
-
private final String title;
- private final String[] filetypes;
-
- /**
- * Constructor for the FilePanel object.
- */
public FilePanel() {
this("", (String) null);
}
@@ -66,100 +37,25 @@ public class FilePanel extends Horizonta
}
public FilePanel(String title, String filetype) {
+ super(JMeterUtils.getResString("file_visualizer_filename"), filetype);
this.title = title;
- if (filetype == null){
- this.filetypes = null;
- } else {
- this.filetypes = new String[]{ filetype };
- }
init();
}
- /**
- * Constructor for the FilePanel object.
- */
public FilePanel(ChangeListener l, String title) {
- this(title, (String) null);
- listeners.add(l);
+ super(JMeterUtils.getResString("file_visualizer_filename"), l);
+ this.title = title;
+ init();
}
public FilePanel(String resString, String[] exts) {
+ super(JMeterUtils.getResString("file_visualizer_filename"), exts);
title = resString;
- this.filetypes = new String[exts.length];
- System.arraycopy(exts, 0, this.filetypes, 0, exts.length);
init();
}
- 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(ACTION_BROWSE);
- browse.addActionListener(this);
-
- }
-
- public void clearGui(){
- filename.setText(""); // $NON-NLS-1$
- }
-
- /**
- * If the gui needs to enable/disable the FilePanel, call the method.
- *
- * @param enable
- */
- public void enableFile(boolean enable) {
- browse.setEnabled(enable);
- filename.setEnabled(enable);
- }
-
- /**
- * 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() {
- for (ChangeListener cl : listeners) {
- cl.stateChanged(new ChangeEvent(this));
- }
- }
-
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals(ACTION_BROWSE)) {
- JFileChooser chooser;
- if(filetypes == null || filetypes.length == 0){
- chooser = FileDialoger.promptToOpenFile();
- } else {
- chooser = FileDialoger.promptToOpenFile(filetypes);
- }
- if (chooser != null && chooser.getSelectedFile() != null) {
- filename.setText(chooser.getSelectedFile().getPath());
- fireFileChanged();
- }
- } else {
- fireFileChanged();
- }
}
+
}
Added: jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java?rev=1379999&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java Sun Sep 2 15:54:46 2012
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.LinkedList;
+import java.util.List;
+
+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;
+
+public class FilePanelEntry extends HorizontalPanel implements ActionListener {
+ private static final long serialVersionUID = 280L;
+
+ private final JTextField filename = new JTextField(10);
+
+ private final JLabel label;
+
+ private final JButton browse = new JButton(JMeterUtils.getResString("browse")); //$NON-NLS-1$
+
+ private static final String ACTION_BROWSE = "browse"; //$NON-NLS-1$
+
+ private final List<ChangeListener> listeners = new LinkedList<ChangeListener>();
+
+ private final String[] filetypes;
+
+ public FilePanelEntry(String label) {
+ this(label, (ChangeListener) null);
+ }
+
+ public FilePanelEntry(String label, String ... exts) {
+ this(label, (ChangeListener) null, exts);
+ }
+
+ public FilePanelEntry(String label, ChangeListener listener, String ... exts) {
+ this.label = new JLabel(label);
+ if (listener != null) {
+ listeners.add(listener);
+ }
+ if (exts != null) {
+ this.filetypes = new String[exts.length];
+ System.arraycopy(exts, 0, this.filetypes, 0, exts.length);
+ } else {
+ this.filetypes = null;
+ }
+ init();
+ }
+
+ public final void addChangeListener(ChangeListener l) {
+ listeners.add(l);
+ }
+
+ private void init() {
+ add(label);
+ add(Box.createHorizontalStrut(5));
+ add(filename);
+ add(Box.createHorizontalStrut(5));
+ filename.addActionListener(this);
+ add(browse);
+ browse.setActionCommand(ACTION_BROWSE);
+ browse.addActionListener(this);
+
+ }
+
+ public void clearGui(){
+ filename.setText(""); // $NON-NLS-1$
+ }
+
+ /**
+ * If the gui needs to enable/disable the FilePanel, call the method.
+ *
+ * @param enable
+ */
+ public void enableFile(boolean enable) {
+ browse.setEnabled(enable);
+ filename.setEnabled(enable);
+ }
+
+ /**
+ * 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() {
+ for (ChangeListener cl : listeners) {
+ cl.stateChanged(new ChangeEvent(this));
+ }
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ if (e.getActionCommand().equals(ACTION_BROWSE)) {
+ JFileChooser chooser;
+ if(filetypes == null || filetypes.length == 0){
+ chooser = FileDialoger.promptToOpenFile();
+ } else {
+ chooser = FileDialoger.promptToOpenFile(filetypes);
+ }
+ if (chooser != null && chooser.getSelectedFile() != null) {
+ filename.setText(chooser.getSelectedFile().getPath());
+ fireFileChanged();
+ }
+ } else {
+ fireFileChanged();
+ }
+ }
+}
Propchange: jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jmeter/trunk/src/core/org/apache/jmeter/gui/util/FilePanelEntry.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision