super(new BorderLayout());
this.model = model;
model.addPropertyChangeListener(this);
Settings settings = model.getSettings();
Font editorFont = UISupport.getEditorFont(settings);
editArea = new RSyntaxTextArea();
editArea.restoreDefaultSyntaxScheme();
String defaultScriptLanguage = ((WsdlProject) ModelSupport.getModelItemProject(model.getModelItem()))
.getDefaultScriptLanguage();
if (defaultScriptLanguage.equals(GroovyScriptEngineFactory.ID)) {
editArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_GROOVY);
} else if (defaultScriptLanguage.equals(JsScriptEngineFactory.ID)) {
editArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
}
editArea.setFont(editorFont);
editArea.setBorder(BorderFactory.createMatteBorder(0, 2, 0, 0, Color.WHITE));
editArea.setText(model.getScript());
editArea.setCaretPosition(0);
editArea.setHighlightCurrentLine(false);
Action runAction = model.getRunAction();
if (runAction != null) {
editArea.getInputMap().put(KeyStroke.getKeyStroke("alt ENTER"), "run-action");
editArea.getActionMap().put("run-action", runAction);
}
groovyDocumentListener = new GroovyDocumentListener();
editArea.getDocument().addDocumentListener(groovyDocumentListener);
settingsListener = new InternalSettingsListener();
settings.addSettingsListener(settingsListener);
scrollPane = new RTextScrollPane(editArea, true);
scrollPane.setPreferredSize(new Dimension(500, 300));
add(scrollPane);