Author: sebb
Date: Wed Sep 9 23:02:00 2009
New Revision: 813160
URL: http://svn.apache.org/viewvc?rev=813160&view=rev
Log:
Bug 36726 - add search function to Tree View Listener
Added:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
(with props)
Modified:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jakarta/jmeter/trunk/xdocs/changes.xml
Added:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java?rev=813160&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
(added)
+++
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
Wed Sep 9 23:02:00 2009
@@ -0,0 +1,359 @@
+/*
+ * 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.visualizers;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.AbstractAction;
+import javax.swing.ActionMap;
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.InputMap;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JEditorPane;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.KeyStroke;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.DefaultHighlighter;
+import javax.swing.text.Document;
+import javax.swing.text.Highlighter;
+
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+public class SearchTextExtension implements ActionListener, DocumentListener {
+
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ public static final String SEARCH_TEXT_COMMAND = "search_text"; //
$NON-NLS-1$
+
+ public static final String DIALOG_SEARCH_SHOW_COMMAND =
"show_search_dialog"; // $NON-NLS-1$
+
+ public static final String DIALOG_SEARCH_HIDE_COMMAND =
"close_search_dialog"; // $NON-NLS-1$
+
+ private static final String SEARCH_SHOW_COMMAND = "show_search_text"; //
$NON-NLS-1$
+
+ // set default command to Text
+ private String command = DIALOG_SEARCH_SHOW_COMMAND;
+
+ private static int LAST_POSITION_DEFAULT = 0;
+
+ private int lastPosition = LAST_POSITION_DEFAULT;
+
+ private final static Color HILIT_COLOR = Color.LIGHT_GRAY;
+
+ private Highlighter selection;
+
+ private Highlighter.HighlightPainter painter;
+
+ private JLabel label;
+
+ private JButton findButton;
+
+ private JTextField textToFindField;
+
+ private JCheckBox caseChkBox;
+
+ private JCheckBox regexpChkBox;
+
+ private String lastTextTofind;
+
+ private boolean newSearch = false;
+
+ private JEditorPane results;
+
+ private JPanel searchPanel;
+
+ private boolean enabled = true;
+
+ private JCheckBox showSearch;
+
+
+ public void init(JPanel resultsPane) {
+ // when CTRL-T is pressed, (un-)show search dialog box (only in
results pane)
+ InputMap im = resultsPane
+ .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
+ im.put(KeyStroke.getKeyStroke(KeyEvent.VK_T,
+ InputEvent.CTRL_MASK), SEARCH_SHOW_COMMAND);
+ ActionMap am = resultsPane.getActionMap();
+ am.put(SEARCH_SHOW_COMMAND, new DisplaySearchAction());
+ }
+
+ public void setResults(JEditorPane results) {
+ if (this.results != null) {
+ newSearch = true;
+ resetTextToFind();
+ }
+ this.results = results;
+ // prepare highlighter to show text find with search command
+ selection = new DefaultHighlighter();
+ painter = new DefaultHighlighter.DefaultHighlightPainter(HILIT_COLOR);
+ results.setHighlighter(selection);
+ }
+
+ /**
+ * Launch find text engine on response text
+ */
+ public void executeAndShowTextFind() {
+ if (results != null && results.getText().length() > 0
+ && this.textToFindField.getText().length() > 0) {
+ String textToFind = textToFindField.getText();
+
+ // new search?
+ if (lastTextTofind != null && !lastTextTofind.equals(textToFind)) {
+ lastPosition = LAST_POSITION_DEFAULT;
+ }
+
+ log.debug("lastPosition=" + lastPosition);
+ Matcher matcher = null;
+ try {
+ Pattern pattern = createPattern(textToFind);
+ Document contentDoc = results.getDocument();
+ String body = contentDoc.getText(lastPosition,
+ (contentDoc.getLength() - lastPosition));
+ matcher = pattern.matcher(body);
+
+ if ((matcher != null) && (matcher.find())) {
+ selection.removeAllHighlights();
+ selection.addHighlight(lastPosition + matcher.start(),
+ lastPosition + matcher.end(), painter);
+ results.setCaretPosition(lastPosition + matcher.end());
+
+ // save search position
+ lastPosition = lastPosition + matcher.end();
+ findButton.setText(JMeterUtils
+ .getResString("search_text_button_next"));//
$NON-NLS-1$
+ lastTextTofind = textToFind;
+ newSearch = true;
+ } else {
+ // Display not found message and reset search
+ JOptionPane.showMessageDialog(null, JMeterUtils
+ .getResString("search_text_msg_not_found"),//
$NON-NLS-1$
+
JMeterUtils.getResString("search_text_title_not_found"), // $NON-NLS-1$
+ JOptionPane.INFORMATION_MESSAGE);
+ lastPosition = LAST_POSITION_DEFAULT;
+ findButton.setText(JMeterUtils
+ .getResString("search_text_button_find"));//
$NON-NLS-1$
+ results.setCaretPosition(0);
+ }
+ } catch (BadLocationException ble) {
+ log.error("Location exception in text find", ble);//
$NON-NLS-1$
+ }
+ }
+ }
+
+ /**
+ * Create the text find task pane
+ *
+ * @return Text find task pane
+ */
+ public JPanel createSearchTextPanel() {
+ Font font = new Font("SansSerif", Font.PLAIN, 10);
+
+ // Search field
+ searchPanel = new JPanel();
+ searchPanel.setLayout(new BoxLayout(searchPanel, BoxLayout.X_AXIS));
+ searchPanel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
+ label = new JLabel(JMeterUtils.getResString("search_text_field")); //
$NON-NLS-1$
+ label.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
+ searchPanel.add(label);
+ textToFindField = new JTextField(); // $NON-NLS-1$
+ searchPanel.add(textToFindField);
+ searchPanel.add(Box.createRigidArea(new Dimension(5,0)));
+
+ // add listener to intercept texttofind changes and reset search
+ textToFindField.getDocument().addDocumentListener(this);
+
+ // Buttons
+ findButton = new JButton(JMeterUtils
+ .getResString("search_text_button_find")); // $NON-NLS-1$
+ findButton.setFont(font);
+ findButton.setActionCommand(SEARCH_TEXT_COMMAND);
+ findButton.addActionListener(this);
+ searchPanel.add(findButton);
+
+ // checkboxes
+ caseChkBox = new JCheckBox(JMeterUtils
+ .getResString("search_text_chkbox_case"), false); //
$NON-NLS-1$
+ caseChkBox.setFont(font);
+ searchPanel.add(caseChkBox);
+ regexpChkBox = new JCheckBox(JMeterUtils
+ .getResString("search_text_chkbox_regexp"), false); //
$NON-NLS-1$
+ regexpChkBox.setFont(font);
+ searchPanel.add(regexpChkBox);
+
+ // when Enter is pressed, search start
+ InputMap im = textToFindField
+ .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
+ im.put(KeyStroke.getKeyStroke("ENTER"), SEARCH_TEXT_COMMAND);
+ ActionMap am = textToFindField.getActionMap();
+ am.put(SEARCH_TEXT_COMMAND, new EnterAction());
+
+ return searchPanel;
+ }
+
+ public JPanel createSearchTextExtensionPane() {
+ JPanel pane = new JPanel();
+ pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
+ pane.add(createShowSearchPanel());
+ pane.add(createSearchTextPanel());
+ return pane;
+ }
+
+ public JPanel createShowSearchPanel() {
+ Font fontBold = new Font("SansSerif", Font.BOLD, 10);
+
+ showSearch = new JCheckBox();
+ showSearch.setFont(fontBold);
+ showSearch.setAction(new DisplaySearchAction());
+ showSearch.setText(JMeterUtils
+ .getResString("view_results_search_pane")); // $NON-NLS-1$
+
+ JPanel pane = new JPanel();
+ pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
+ pane.add(showSearch);
+
+ return pane;
+ }
+
+
+ /**
+ * Display the response as text or as rendered HTML. Change the text on the
+ * button appropriate to the current display.
+ *
+ * @param e
+ * the ActionEvent being processed
+ */
+ public void actionPerformed(ActionEvent e) {
+ command = e.getActionCommand();
+
+ // Search text in response data
+ if (command != null
+ && (command.equals(SearchTextExtension.SEARCH_TEXT_COMMAND))) {
+ executeAndShowTextFind();
+ }
+ // hide search dialog box
+ else if (command != null && command.equals(
+ SearchTextExtension.DIALOG_SEARCH_HIDE_COMMAND)) {
+ hideSearchBox();
+ }
+ }
+
+ private class EnterAction extends AbstractAction {
+ private static final long serialVersionUID = 1L;
+ public void actionPerformed(ActionEvent ev) {
+ executeAndShowTextFind();
+ }
+ }
+
+ private class DisplaySearchAction extends AbstractAction {
+ private static final long serialVersionUID = 1L;
+ public void actionPerformed(ActionEvent ev) {
+ if (searchPanel != null) {
+ resetTextToFind();
+ if (searchPanel.isVisible()) {
+ searchPanel.setVisible(false);
+ showSearch.setSelected(false);
+ } else {
+ searchPanel.setVisible(true);
+ showSearch.setSelected(true);
+ }
+ }
+ }
+ }
+
+ // DocumentListener method
+ public void changedUpdate(DocumentEvent e) {
+ // do nothing
+ }
+
+ // DocumentListener method
+ public void insertUpdate(DocumentEvent e) {
+ resetTextToFind();
+ }
+
+ // DocumentListener method
+ public void removeUpdate(DocumentEvent e) {
+ resetTextToFind();
+ }
+
+ public void hideSearchBox() {
+ searchPanel.setVisible(false);
+ }
+
+ public void resetTextToFind() {
+ if (newSearch) {
+ log.debug("reset pass");
+ // Reset search
+ lastPosition = LAST_POSITION_DEFAULT;
+ lastTextTofind = null;
+ findButton.setText(JMeterUtils
+ .getResString("search_text_button_find"));// $NON-NLS-1$
+ selection.removeAllHighlights();
+ results.setCaretPosition(0);
+ newSearch = false;
+ }
+ }
+
+ public boolean isEnabled() {
+ return enabled ;
+ }
+
+ public void setEnabled(boolean b) {
+ this.enabled = b;
+ label.setEnabled(b);
+ textToFindField.setEnabled(b);
+ findButton.setEnabled(b);
+ caseChkBox.setEnabled(b);
+ regexpChkBox.setEnabled(b);
+ }
+
+ private Pattern createPattern(String textToFind) {
+ // desactivate or not specials regexp char
+ String textToFindQ = Pattern.quote(textToFind);
+ if (regexpChkBox.isSelected()) {
+ textToFindQ = textToFind;
+ }
+ Pattern pattern = null;
+ if (caseChkBox.isSelected()) {
+ pattern = Pattern.compile(textToFindQ);
+ } else {
+ pattern = Pattern.compile(textToFindQ, Pattern.CASE_INSENSITIVE);
+ }
+ return pattern;
+ }
+}
Propchange:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified:
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=813160&r1=813159&r2=813160&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
(original)
+++
jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
Wed Sep 9 23:02:00 2009
@@ -22,9 +22,12 @@
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
import java.io.ByteArrayInputStream;
import java.io.StringWriter;
import java.text.DateFormat;
@@ -33,11 +36,17 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.swing.AbstractAction;
+import javax.swing.ActionMap;
import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
+import javax.swing.InputMap;
import javax.swing.JCheckBox;
+import javax.swing.JComponent;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
@@ -49,6 +58,7 @@
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.JTree;
+import javax.swing.KeyStroke;
import javax.swing.ToolTipManager;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
@@ -182,11 +192,17 @@
private JRadioButton xmlButton;
private JCheckBox downloadAll;
+
+ private JLabel renderLabel;
private JTree jTree;
private JTabbedPane rightSide;
+ private SearchTextExtension searchTextExtension;
+
+ private JPanel searchPanel = null;
+
private static final ImageIcon imageSuccess = JMeterUtils.getImage(
JMeterUtils.getPropDefault("viewResultsTree.success",
//$NON-NLS-1$
"icon_success_sml.gif")); //$NON-NLS-1$
@@ -408,6 +424,9 @@
statsDoc.insertString(statsDoc.getLength(),
statsBuff.toString(), null);
statsBuff = null; // Done
+ // Reset search
+ searchTextExtension.resetTextToFind();
+
// get the text response and image icon
// to determine which is NOT null
if ((SampleResult.TEXT).equals(res.getDataType())) //
equals(null) is OK
@@ -422,10 +441,16 @@
} else if (command.equals(XML_COMMAND)) {
showRenderXMLResponse(res);
}
+ if (!searchTextExtension.isEnabled()) {
+ searchTextExtension.setEnabled(true);
+ }
} else {
byte[] responseBytes = res.getResponseData();
if (responseBytes != null) {
showImage(new ImageIcon(responseBytes)); //TODO
implement other non-text types
+ if (searchTextExtension.isEnabled()) {
+ searchTextExtension.setEnabled(false);
+ }
}
}
}
@@ -457,10 +482,7 @@
private void showImage(Icon image) {
imageLabel.setIcon(image);
resultsScrollPane.setViewportView(imageLabel);
- textButton.setEnabled(false);
- htmlButton.setEnabled(false);
- jsonButton.setEnabled(false);
- xmlButton.setEnabled(false);
+ setEnabledButtons(false);
}
private void showTextResponse(String response) {
@@ -469,10 +491,7 @@
results.setCaretPosition(0);
resultsScrollPane.setViewportView(results);
- textButton.setEnabled(true);
- htmlButton.setEnabled(true);
- jsonButton.setEnabled(true);
- xmlButton.setEnabled(true);
+ setEnabledButtons(true);
}
// It might be useful also to make this available in the 'Request' tab, for
@@ -536,10 +555,7 @@
results.setCaretPosition(0);
resultsScrollPane.setViewportView(results);
- textButton.setEnabled(true);
- htmlButton.setEnabled(true);
- jsonButton.setEnabled(true);
- xmlButton.setEnabled(true);
+ setEnabledButtons(true);
}
private void showRenderXMLResponse(SampleResult res) {
@@ -571,10 +587,7 @@
JPanel domTreePanel = new DOMTreePanel(document);
view = domTreePanel;
resultsScrollPane.setViewportView(view);
- textButton.setEnabled(true);
- htmlButton.setEnabled(true);
- jsonButton.setEnabled(true);
- xmlButton.setEnabled(true);
+ setEnabledButtons(true);
}
private static String getResponseAsString(SampleResult res) {
@@ -623,7 +636,8 @@
results.setText("");
return;
}
-
+ searchTextExtension.resetTextToFind();
+
SampleResult res = (SampleResult) node.getUserObject();
String response = getResponseAsString(res);
@@ -688,47 +702,61 @@
results.setCaretPosition(0);
resultsScrollPane.setViewportView(results);
- textButton.setEnabled(true);
- htmlButton.setEnabled(true);
- jsonButton.setEnabled(true);
- xmlButton.setEnabled(true);
+ setEnabledButtons(true);
}
private Component createHtmlOrTextPane() {
ButtonGroup group = new ButtonGroup();
+ Font font = new Font("SansSerif", Font.PLAIN, 10);
+ Font fontBold = new Font("SansSerif", Font.BOLD, 10);
+
+ renderLabel = new JLabel(JMeterUtils
+ .getResString("view_results_render")); // $NON-NLS-1$
+ renderLabel.setFont(fontBold);
textButton = new
JRadioButton(JMeterUtils.getResString("view_results_render_text")); //
$NON-NLS-1$
+ textButton.setFont(font);
textButton.setActionCommand(TEXT_COMMAND);
textButton.addActionListener(this);
textButton.setSelected(textMode);
group.add(textButton);
htmlButton = new
JRadioButton(JMeterUtils.getResString("view_results_render_html")); //
$NON-NLS-1$
+ htmlButton.setFont(font);
htmlButton.setActionCommand(HTML_COMMAND);
htmlButton.addActionListener(this);
htmlButton.setSelected(!textMode);
group.add(htmlButton);
jsonButton = new
JRadioButton(JMeterUtils.getResString("view_results_render_json")); //
$NON-NLS-1$
+ jsonButton.setFont(font);
jsonButton.setActionCommand(JSON_COMMAND);
jsonButton.addActionListener(this);
jsonButton.setSelected(!textMode);
group.add(jsonButton);
xmlButton = new
JRadioButton(JMeterUtils.getResString("view_results_render_xml")); //
$NON-NLS-1$
+ xmlButton.setFont(font);
xmlButton.setActionCommand(XML_COMMAND);
xmlButton.addActionListener(this);
xmlButton.setSelected(!textMode);
group.add(xmlButton);
downloadAll = new
JCheckBox(JMeterUtils.getResString("view_results_render_embedded")); //
$NON-NLS-1$
-
+ downloadAll.setFont(font);
+
JPanel pane = new JPanel();
+ pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
+ pane.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
+ pane.add(searchTextExtension.createShowSearchPanel());
+ pane.add(Box.createRigidArea(new Dimension(30, 0)));
+ pane.add(renderLabel);
pane.add(textButton);
pane.add(htmlButton);
pane.add(xmlButton);
pane.add(jsonButton);
pane.add(downloadAll);
+
return pane;
}
@@ -751,6 +779,8 @@
JSplitPane mainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
leftSide, rightSide);
add(mainSplit, BorderLayout.CENTER);
+
+ searchTextExtension.init(resultsPane);
}
private void setupTabPaneForSampleResult() {
@@ -838,13 +868,35 @@
resultsScrollPane = makeScrollPane(results);
imageLabel = new JLabel();
+ // Add search text extension
+ searchTextExtension = new SearchTextExtension();
+ searchPanel = searchTextExtension.createSearchTextPanel();
+ searchTextExtension.setResults(results);
+ searchPanel.setVisible(false);
+ JPanel panelSouth = new JPanel(new BorderLayout());
+ panelSouth.add(createHtmlOrTextPane(), BorderLayout.CENTER);
+ panelSouth.add(searchPanel, BorderLayout.SOUTH);
+
JPanel panel = new JPanel(new BorderLayout());
panel.add(resultsScrollPane, BorderLayout.CENTER);
- panel.add(createHtmlOrTextPane(), BorderLayout.SOUTH);
+ panel.add(panelSouth, BorderLayout.SOUTH);
return panel;
}
+ private void setEnabledButtons(boolean b) {
+ renderLabel.setEnabled(b);
+ textButton.setEnabled(b);
+ htmlButton.setEnabled(b);
+ jsonButton.setEnabled(b);
+ xmlButton.setEnabled(b);
+ if (b && command.equals(HTML_COMMAND)) {
+ downloadAll.setEnabled(b);
+ } else {
+ downloadAll.setEnabled(false);
+ }
+ }
+
private static class ResultsNodeRenderer extends DefaultTreeCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object
value, boolean sel, boolean expanded,
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=813160&r1=813159&r2=813160&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
Wed Sep 9 23:02:00 2009
@@ -721,6 +721,14 @@
search_base=Search base
search_filter=Search Filter
search_test=Search Test
+search_text_button_close=Close
+search_text_button_find=Find
+search_text_button_next=Find next
+search_text_chkbox_case=Case sensitive
+search_text_chkbox_regexp=Regular exp.
+search_text_field=Search:
+search_text_msg_not_found=Text not found
+search_text_title_not_found=Not found
searchbase=Search base
searchfilter=Search Filter
searchtest=Search test
@@ -874,11 +882,12 @@
view_results_in_table=View Results in Table
view_results_latency=Latency:
view_results_load_time=Load time:
+view_results_render=Render:
view_results_render_embedded=Download embedded resources
-view_results_render_html=Render HTML
-view_results_render_json=Render JSON
-view_results_render_text=Show Text
-view_results_render_xml=Render XML
+view_results_render_html=HTML
+view_results_render_json=JSON
+view_results_render_text=Text
+view_results_render_xml=XML
view_results_request_headers=Request Headers:
view_results_response_code=Response code:
view_results_response_headers=Response headers:
@@ -886,6 +895,7 @@
view_results_response_too_large_message=Response too large to be displayed.
Size:
view_results_sample_count=Sample Count:
view_results_sample_start=Sample Start:
+view_results_search_pane=Search pane
view_results_size_in_bytes=Size in bytes:
view_results_tab_assertion=Assertion result
view_results_tab_request=Request
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=813160&r1=813159&r2=813160&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
Wed Sep 9 23:02:00 2009
@@ -579,6 +579,14 @@
search_base=Base de recherche
search_filter=Filtre de recherche
search_test=Recherche
+search_text_button_close=Fermer
+search_text_button_find=Rechercher
+search_text_button_next=Suivant
+search_text_chkbox_case=Consid\u00E9rer la casse
+search_text_chkbox_regexp=Exp. reguli\u00E8re
+search_text_field=Rechercher \:
+search_text_msg_not_found=Text non trouv\u00E9
+search_text_title_not_found=Pas trouv\u00E9
second=seconde
secure=S\u00E9curis\u00E9 \:
send_file=Envoyer un fichier avec la requ\u00EAte \:
@@ -719,11 +727,12 @@
view_results_in_table=Tableau de r\u00E9sultats
view_results_latency=Latence \:
view_results_load_time=Temps de r\u00E9ponse \:
+view_results_render=Rendu \:
view_results_render_embedded=T\u00E9l\u00E9charger les ressources incluses
-view_results_render_html=Afficher en HTML
-view_results_render_json=Afficher en JSON
-view_results_render_text=Afficher en texte brut
-view_results_render_xml=Afficher en XML
+view_results_render_html=HTML
+view_results_render_json=JSON
+view_results_render_text=Texte brut
+view_results_render_xml=XML
view_results_request_headers=Ent\u00EAtes de requ\u00EAte \:
view_results_response_code=Code HTTP de r\u00E9ponse \:
view_results_response_headers=Ent\u00EAtes de r\u00E9ponse \:
@@ -731,6 +740,7 @@
view_results_response_too_large_message=R\u00E9ponse d\u00E9passant la taille
maximale d'affichage. Taille \:
view_results_sample_count=Compteur \u00E9chantillon \:
view_results_sample_start=Date d\u00E9but \u00E9chantillon \:
+view_results_search_pane=Volet recherche
view_results_size_in_bytes=Taille en octets \:
view_results_tab_assertion=R\u00E9sultats d'assertion
view_results_tab_request=Requ\u00EAte
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=813160&r1=813159&r2=813160&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Wed Sep 9 23:02:00 2009
@@ -125,6 +125,7 @@
<li>Bug 47398 - SampleEvents are sent twice over RMI in distributed testing
and non gui mode</li>
<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch"
modes.</li>
<li>Added Comparison Assertion Visualizer</li>
+<li>Bug 36726 - add search function to Tree View Listener</li>
</ul>
<h3>Assertions, Config, Pre- & Post-Processors</h3>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]