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; }