Le 05/07/2013 21:55, sebb a ecrit :
On 5 July 2013 21:39,  <[email protected]> wrote:
Author: milamber
Date: Fri Jul  5 20:39:54 2013
New Revision: 1500124

URL: http://svn.apache.org/r1500124
Log:
Bug 55202 - Proposal to add RSyntaxTextArea for BeanShell, BSF, and JSR223 
elements
Bugzilla Id: 55202
-1

I think the jar needs to be obtained somewhere other than Maven
Central, as the pom license there says LGPL.

Not good...

I have sent an email to Filesolft (author of rsyntaxtextarea) to point the difference between their website and the pom file on Maven website, and ask the good license.




Please remove the download part for now.

Added:
     jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties  
 (with props)
Modified:
     jmeter/trunk/LICENSE
     jmeter/trunk/build.properties
     jmeter/trunk/build.xml
     jmeter/trunk/eclipse.classpath
     jmeter/trunk/res/maven/ApacheJMeter_parent.pom
     
jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
     
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
     jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TextAreaEditor.java
     jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/WrapperEditor.java
     
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
     jmeter/trunk/xdocs/changes.xml

Modified: jmeter/trunk/LICENSE
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/LICENSE?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/LICENSE [utf-8] (original)
+++ jmeter/trunk/LICENSE [utf-8] Fri Jul  5 20:39:54 2013
@@ -1565,7 +1565,7 @@ The jsoup code-base (include source and
  distributed under the open source MIT license as described below.
  The MIT License

-Copyright � 2009 - 2012 Jonathan Hedley ([email protected])
+Copyright � 2009 - 2012 Jonathan Hedley ([email protected])

  Permission is hereby granted, free of charge, to any person obtaining a
  copy of this software and associated documentation files (the "Software"),
@@ -1926,7 +1926,7 @@ As a special exception, the copyright ho
  Open Icon Library from
  http://openiconlibrary.sourceforge.net/

-Detailled Licenses information:
+Detailed Licenses information:
  http://openiconlibrary.sourceforge.net/LICENSES.html

  ============ Packages used by Apache JMeter =========
@@ -2029,3 +2029,39 @@ UNLESS OTHERWISE MUTUALLY AGREED TO BY T

  
################################################################################

+RSyntaxTextArea License
+=========================================
+
+RSyntaxTextArea  from
+http://fifesoft.com/rsyntaxtextarea/
+
+Detailed License information:
+http://fifesoft.com/rsyntaxtextarea/RSyntaxTextArea.License.txt
+
+============== RSyntaxTextArea  License =============
+Copyright (c) 2012, Robert Futrell
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of the author nor the names of its contributors may
+      be used to endorse or promote products derived from this software
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+################################################################################
\ No newline at end of file

Modified: jmeter/trunk/build.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/build.properties?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/build.properties (original)
+++ jmeter/trunk/build.properties Fri Jul  5 20:39:54 2013
@@ -223,6 +223,11 @@ mongo-java-driver.jar                                      
= mongo-java-d
  mongo-java-driver.loc                                  = 
${maven2.repo}/org/mongodb/mongo-java-driver/${mongo-java-driver.version}
  mongo-java-driver.md5                                  = 
fed5e6d998256e285396b4e0d81537bd

+rsyntaxtextarea.version     = 2.0.7
+rsyntaxtextarea.jar         = rsyntaxtextarea-${rsyntaxtextarea.version}.jar
+rsyntaxtextarea.loc         = 
${maven2.repo}/com/fifesoft/rsyntaxtextarea/${rsyntaxtextarea.version}
+rsyntaxtextarea.md5         = 00ab3c8ce58bb8bb1dbb3ae506f06d30
-1

I don't think we can download from there until the license issue is sorted out.

+
  slf4j-api.version           = 1.7.5
  slf4j-api.jar               = slf4j-api-${slf4j-api.version}.jar
  slf4j-api.loc               = 
${maven2.repo}/org/slf4j/slf4j-api/${slf4j-api.version}

Modified: jmeter/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/build.xml?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/build.xml (original)
+++ jmeter/trunk/build.xml Fri Jul  5 20:39:54 2013
@@ -387,6 +387,7 @@
      <include name="${lib.dir}/${junit.jar}"/>
      <include name="${lib.dir}/${logkit.jar}"/>
      <include name="${lib.dir}/${mongo-java-driver.jar}"/>
+    <include name="${lib.dir}/${rsyntaxtextarea.jar}"/>
      <include name="${lib.dir}/${serializer.jar}"/>
      <include name="${lib.dir}/${slf4j-api.jar}"/>
      <include name="${lib.dir}/${soap.jar}"/>
@@ -454,6 +455,7 @@
      <pathelement location="${lib.dir}/${junit.jar}"/>
      <pathelement location="${lib.dir}/${logkit.jar}"/>
      <pathelement location="${lib.dir}/${mongo-java-driver.jar}"/>
+    <pathelement location="${lib.dir}/${rsyntaxtextarea.jar}"/>
      <pathelement location="${lib.dir}/${serializer.jar}"/>
      <pathelement location="${lib.dir}/${slf4j-api.jar}"/>
      <pathelement location="${lib.dir}/${soap.jar}"/>
@@ -2879,6 +2881,7 @@ run JMeter unless all the JMeter jars ar
          <process_jarfile jarname="junit"/>
          <process_jarfile jarname="logkit"/>
          <process_jarfile jarname="mongo-java-driver"/>
+        <process_jarfile jarname="rsyntaxtextarea"/>
          <process_jarfile jarname="serializer"/>
         <process_jarfile jarname="slf4j-api"/>
          <process_jarfile jarname="soap"/>

Modified: jmeter/trunk/eclipse.classpath
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/eclipse.classpath?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/eclipse.classpath (original)
+++ jmeter/trunk/eclipse.classpath Fri Jul  5 20:39:54 2013
@@ -76,6 +76,7 @@
         <classpathentry kind="lib" path="lib/logkit-2.0.jar"/>
         <classpathentry kind="lib" path="lib/mail-1.4.4.jar"/>
      <classpathentry kind="lib" path="lib/mongo-java-driver-2.11.2.jar"/>
+    <classpathentry kind="lib" path="lib/rsyntaxtextarea-2.0.7.jar"/>
         <classpathentry kind="lib" path="lib/oro-2.0.8.jar"/>
         <classpathentry kind="lib" path="lib/serializer-2.7.1.jar"/>
      <classpathentry kind="lib" path="lib/slf4j-api-1.7.5.jar"/>

Modified: jmeter/trunk/res/maven/ApacheJMeter_parent.pom
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/res/maven/ApacheJMeter_parent.pom?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/res/maven/ApacheJMeter_parent.pom (original)
+++ jmeter/trunk/res/maven/ApacheJMeter_parent.pom Fri Jul  5 20:39:54 2013
@@ -84,6 +84,7 @@ under the License.
        <junit.version>4.11</junit.version>
        <logkit.version>2.0</logkit.version>
        <mongo-java-driver.version>2.11.2</mongo-java-driver.version>
+      <rsyntaxtextarea.version>2.0.7</rsyntaxtextarea.version>
        <slf4j.version>1.7.5</slf4j.version>
        <soap.version>2.3.1</soap.version>
        <tidy.version>r938</tidy.version>
@@ -357,6 +358,11 @@ under the License.
          <version>${mongo-java-driver.version}</version>
        </dependency>
        <dependency>
+        <groupId>com.fifesoft</groupId>
+        <artifactId>rsyntaxtextarea</artifactId>
+        <version>${rsyntaxtextarea.version}</version>
+      </dependency>
+      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j.version}</version>

Modified: 
jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- 
jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
 (original)
+++ 
jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/BeanShellAssertionGui.java
 Fri Jul  5 20:39:54 2013
@@ -24,7 +24,6 @@ import javax.swing.Box;
  import javax.swing.JCheckBox;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
-import javax.swing.JScrollPane;
  import javax.swing.JTextArea;
  import javax.swing.JTextField;

@@ -32,6 +31,9 @@ import org.apache.jmeter.assertions.Bean
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.testelement.property.BooleanProperty;
  import org.apache.jmeter.util.JMeterUtils;
+import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
+import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
+import org.fife.ui.rtextarea.RTextScrollPane;

  public class BeanShellAssertionGui extends AbstractAssertionGui {

@@ -43,7 +45,7 @@ public class BeanShellAssertionGui exten

      private JTextField parameters;// parameters to pass to script file (or 
script)

-    private JTextArea scriptField;// script area
+    private RSyntaxTextArea scriptField; // script area

      public BeanShellAssertionGui() {
          init();
@@ -139,8 +141,10 @@ public class BeanShellAssertionGui exten
      }

      private JPanel createScriptPanel() {
-        scriptField = new JTextArea();
-        scriptField.setRows(4);
+        scriptField = new RSyntaxTextArea(20,20);
+        scriptField.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
+        scriptField.setCodeFoldingEnabled(true);
+        scriptField.setAntiAliasingEnabled(true);
          scriptField.setLineWrap(true);
          scriptField.setWrapStyleWord(true);

@@ -149,7 +153,7 @@ public class BeanShellAssertionGui exten

          JPanel panel = new JPanel(new BorderLayout());
          panel.add(label, BorderLayout.NORTH);
-        panel.add(new JScrollPane(scriptField), BorderLayout.CENTER);
+        panel.add(new RTextScrollPane(scriptField), BorderLayout.CENTER);

          JTextArea explain = new 
JTextArea(JMeterUtils.getResString("bsh_assertion_script_variables")); 
//$NON-NLS-1$
          explain.setLineWrap(true);

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
 (original)
+++ 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
 Fri Jul  5 20:39:54 2013
@@ -203,6 +203,8 @@ public class GenericTestBeanCustomizer e

          // Obtain the propertyEditors:
          editors = new PropertyEditor[descriptors.length];
+        int scriptLanguageIndex = 0;
+        int textAreaEditorIndex = 0;
          for (int i = 0; i < descriptors.length; i++) { // Index is also used 
for accessing editors array
              PropertyDescriptor descriptor = descriptors[i];
              String name = descriptor.getName();
@@ -218,7 +220,7 @@ public class GenericTestBeanCustomizer e
              PropertyEditor propertyEditor;
              Object guiType = descriptor.getValue(GUITYPE);
              if (guiType instanceof TypeEditor) {
-                propertyEditor = ((TypeEditor) 
guiType).getInstance(descriptor);
+                propertyEditor = ((TypeEditor) 
guiType).getInstance(descriptor);
              } else {
                  Class<?> editorClass = descriptor.getPropertyEditorClass();
                  if (log.isDebugEnabled()) {
@@ -267,6 +269,10 @@ public class GenericTestBeanCustomizer e
              {
                  
((TestBeanPropertyEditor)propertyEditor).setDescriptor(descriptor);
              }
+
+            if (propertyEditor instanceof TextAreaEditor) {
+                textAreaEditorIndex = i;
+            }
              if (propertyEditor.getCustomEditor() instanceof JScrollPane) {
                  scrollerCount++;
              }
@@ -276,6 +282,17 @@ public class GenericTestBeanCustomizer e
              // Initialize the editor with the provided default value or null:
              setEditorValue(i, descriptor.getValue(DEFAULT));

+            if (name.equals("scriptLanguage")) {
+                scriptLanguageIndex = i;
+            }
+
+        }
+        // In case of BSF and JSR elements i want to add textAreaEditor as a 
listener to scriptLanguage ComboBox.
+        String beanName = this.beanInfo.getBeanDescriptor().getName();
+        if (beanName.startsWith("BSF") || beanName.startsWith("JSR223")) { // 
$NON-NLS-1$ $NON-NLS-2$
+            WrapperEditor we = (WrapperEditor) editors[scriptLanguageIndex];
+            TextAreaEditor tae = (TextAreaEditor) editors[textAreaEditorIndex];
+            we.addChangeListener(tae);
          }

          // Obtain message formats:

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TextAreaEditor.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TextAreaEditor.java?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TextAreaEditor.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TextAreaEditor.java 
Fri Jul  5 20:39:54 2013
@@ -24,17 +24,23 @@ package org.apache.jmeter.testbeans.gui;
  import java.awt.Component;
  import java.awt.event.FocusEvent;
  import java.awt.event.FocusListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
  import java.beans.PropertyEditorSupport;
+import java.util.Properties;

-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.ScrollPaneConstants;
+import org.apache.jmeter.util.JMeterUtils;
+import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
+import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
+import org.fife.ui.rtextarea.RTextScrollPane;

-public class TextAreaEditor extends PropertyEditorSupport implements 
FocusListener {
+public class TextAreaEditor extends PropertyEditorSupport implements 
FocusListener, PropertyChangeListener {

-    private JTextArea textUI;
+    private RSyntaxTextArea textUI;

-    private JScrollPane scroller;
+    private RTextScrollPane scroller;
+
+    private Properties languageProperties;

      /** {@inheritDoc} */
      @Override
@@ -48,12 +54,17 @@ public class TextAreaEditor extends Prop
      }

      private final void init() {// called from ctor, so must not be overridable
-        textUI = new JTextArea();
+        textUI = new RSyntaxTextArea(20, 20);
+        textUI.discardAllEdits();
+        textUI.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
+        textUI.setCodeFoldingEnabled(true);
+        textUI.setAntiAliasingEnabled(true);
          textUI.addFocusListener(this);
          textUI.setWrapStyleWord(true);
          textUI.setLineWrap(true);
-        scroller = new JScrollPane(textUI, 
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
-                ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+        scroller = new RTextScrollPane(textUI);
+        scroller.setFoldIndicatorEnabled(true);
+        languageProperties = 
JMeterUtils.loadProperties("org/apache/jmeter/testbeans/gui/textarea.properties");
 //$NON-NLS-1$
      }

      /**
@@ -112,4 +123,19 @@ public class TextAreaEditor extends Prop
      public boolean supportsCustomEditor() {
          return true;
      }
+
+    @Override
+    public void propertyChange(PropertyChangeEvent evt) {
+        Object source = evt.getSource();
+        if (source instanceof ComboStringEditor && source != null) {
+            ComboStringEditor cse = (ComboStringEditor) source;
+            String lang = cse.getAsText().toLowerCase();
+            if (languageProperties.containsKey(lang)) {
+                
textUI.setSyntaxEditingStyle(languageProperties.getProperty(lang));
+            } else {
+                
textUI.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_NONE);
+            }
+
+        }
+    }
  }

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/WrapperEditor.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/WrapperEditor.java?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/WrapperEditor.java 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/WrapperEditor.java 
Fri Jul  5 20:39:54 2013
@@ -445,4 +445,8 @@ class WrapperEditor extends PropertyEdit
              guiEditor.setAsText(lastValidValue);
          }
      }
+
+    public void addChangeListener(PropertyChangeListener listener) {
+        guiEditor.addPropertyChangeListener(listener);
+    }
  }
\ No newline at end of file

Added: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties?rev=1500124&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties 
(added)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties 
Fri Jul  5 20:39:54 2013
@@ -0,0 +1,52 @@
+#
+# 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.
+#
+
+javascript = text/javascript
+js = text/javascript
+jacl = text/tcl
+netrexx = text/plain
+java = text/java
+javaclass = text/java
+bml = text/xml
+vbscript = text/vb
+jscript = text/javascript
+perlscript = text/perl
+perl = text/perl
+jpython = text/python
+jython = text/python
+lotusscript = text/vb
+xslt = text/mxml
+pnuts = text/java
+beanbasic = text/java
+beanshell = text/java
+bsh = text/unix
+ruby = text/ruby
+judoscript = text/plain
+groovy = text/groovy
+objectscript = text/javascript
+prolog = text/plain
+rexx = text/plain
+applescript = text/plain
+ecmascript = text/actionscript
+jexl = text/java
+jexl2 = text/java
+rhino = text/javascript
+edit = text/unix
+lua = text/lua
+php = text/php
+lisp = text/lisp
+sql = text/sql
\ No newline at end of file

Propchange: 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties
------------------------------------------------------------------------------
     svn:eol-style = native

Propchange: 
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/textarea.properties
------------------------------------------------------------------------------
     svn:mime-type = text/plain

Modified: 
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
 (original)
+++ 
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/control/gui/BeanShellSamplerGui.java
 Fri Jul  5 20:39:54 2013
@@ -24,7 +24,6 @@ import javax.swing.Box;
  import javax.swing.JCheckBox;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
-import javax.swing.JScrollPane;
  import javax.swing.JTextArea;
  import javax.swing.JTextField;

@@ -33,6 +32,9 @@ import org.apache.jmeter.samplers.gui.Ab
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.testelement.property.BooleanProperty;
  import org.apache.jmeter.util.JMeterUtils;
+import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
+import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
+import org.fife.ui.rtextarea.RTextScrollPane;

  public class BeanShellSamplerGui extends AbstractSamplerGui {

@@ -44,7 +46,7 @@ public class BeanShellSamplerGui extends

      private JTextField parameters;// parameters to pass to script file (or 
script)

-    private JTextArea scriptField;// script area
+    private RSyntaxTextArea scriptField;// script area

      public BeanShellSamplerGui() {
          init();
@@ -153,8 +155,9 @@ public class BeanShellSamplerGui extends
      }

      private JPanel createScriptPanel() {
-        scriptField = new JTextArea();
-        scriptField.setRows(4);
+        scriptField = new RSyntaxTextArea(20, 20);
+        scriptField.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
+        scriptField.setCodeFoldingEnabled(true);
          scriptField.setLineWrap(true);
          scriptField.setWrapStyleWord(true);

@@ -163,7 +166,7 @@ public class BeanShellSamplerGui extends

          JPanel panel = new JPanel(new BorderLayout());
          panel.add(label, BorderLayout.NORTH);
-        panel.add(new JScrollPane(scriptField), BorderLayout.CENTER);
+        panel.add(new RTextScrollPane(scriptField), BorderLayout.CENTER);

          JTextArea explain = new 
JTextArea(JMeterUtils.getResString("bsh_script_variables")); //$NON-NLS-1$
          explain.setLineWrap(true);

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1500124&r1=1500123&r2=1500124&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Fri Jul  5 20:39:54 2013
@@ -224,6 +224,7 @@ Transaction Controller now sets Response
  <li><bugzilla>54990</bugzilla> - Download large files avoiding 
outOfMemory</li>
  <li><bugzilla>55085</bugzilla> - UX Improvement : Ability to create New Test Plan 
from Templates</li>
  <li><bugzilla>55172</bugzilla> - Provide plugins a way to add Top Menu and menu 
items</li>
+<li><bugzilla>55202</bugzilla> - Add syntax color for scripts elements (BeanShell, 
BSF, and JSR223) with RSyntaxTextArea</li>
  </ul>

  <h2>Non-functional changes</h2>



Reply via email to