diff --git a/swing/.classpath b/swing/.classpath
index c20dd6265..1d0de79bd 100644
--- a/swing/.classpath
+++ b/swing/.classpath
@@ -21,5 +21,6 @@
+
diff --git a/swing/build.xml b/swing/build.xml
index 0256084b9..9ea6df315 100644
--- a/swing/build.xml
+++ b/swing/build.xml
@@ -105,6 +105,7 @@
+
diff --git a/swing/lib/rsyntaxtextarea-2.5.6.jar b/swing/lib/rsyntaxtextarea-2.5.6.jar
new file mode 100644
index 000000000..b60def66e
Binary files /dev/null and b/swing/lib/rsyntaxtextarea-2.5.6.jar differ
diff --git a/swing/src/net/sf/openrocket/simulation/extension/impl/ScriptingConfigurator.java b/swing/src/net/sf/openrocket/simulation/extension/impl/ScriptingConfigurator.java
index b567b37f5..cec255f0a 100644
--- a/swing/src/net/sf/openrocket/simulation/extension/impl/ScriptingConfigurator.java
+++ b/swing/src/net/sf/openrocket/simulation/extension/impl/ScriptingConfigurator.java
@@ -1,20 +1,22 @@
package net.sf.openrocket.simulation.extension.impl;
+import java.awt.Color;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JComponent;
import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
import net.sf.openrocket.document.Simulation;
import net.sf.openrocket.gui.components.StyledLabel;
import net.sf.openrocket.gui.components.StyledLabel.Style;
-import net.sf.openrocket.gui.util.GUIUtil;
import net.sf.openrocket.plugin.Plugin;
import net.sf.openrocket.simulation.extension.AbstractSwingSimulationExtensionConfigurator;
+import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
+import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
+import org.fife.ui.rtextarea.RTextScrollPane;
+
@Plugin
public class ScriptingConfigurator extends AbstractSwingSimulationExtensionConfigurator {
@@ -27,11 +29,13 @@ public class ScriptingConfigurator extends AbstractSwingSimulationExtensionConfi
panel.add(new StyledLabel(trans.get("SimulationExtension.scripting.script.label"), Style.BOLD), "wrap");
- final JTextArea text = new JTextArea(extension.getScript(), 20, 60);
+ final RSyntaxTextArea text = new RSyntaxTextArea(extension.getScript(), 15, 60);
+ text.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
+ text.setCodeFoldingEnabled(true);
text.setLineWrap(true);
text.setWrapStyleWord(true);
text.setEditable(true);
- GUIUtil.setTabToFocusing(text);
+ text.setCurrentLineHighlightColor(new Color(255, 255, 230));
text.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent event) {
@@ -46,7 +50,8 @@ public class ScriptingConfigurator extends AbstractSwingSimulationExtensionConfi
}
});
- panel.add(new JScrollPane(text), "grow");
+ RTextScrollPane scroll = new RTextScrollPane(text);
+ panel.add(scroll, "grow");
return panel;
}