package org.wiztools.restclient.ui;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
import javax.swing.*;
import javax.swing.text.JTextComponent;
/**
*
* @author subwiz
*/
public class RSyntaxScriptEditor extends AbstractScriptEditor {
private final RSyntaxTextArea textArea = new RSyntaxTextArea();
public RSyntaxScriptEditor() {
// remove the default popup:
textArea.setPopupMenu(null);
// Anti-aliased:
textArea.setAntiAliasingEnabled(true);
}
public RSyntaxScriptEditor(TextEditorSyntax syntax) {
this();
setSyntax(syntax);
}
@Override
public final void setSyntax(TextEditorSyntax syntax) {
switch(syntax) {
case GROOVY:
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_GROOVY);
break;
case XML:
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_XML);
break;
case JSON:
case JS:
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
break;
case HTML:
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_HTML);
break;
case CSS:
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_CSS);
break;
default:
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_NONE);
}
}
@Override
public JComponent getEditorView() {
return textArea;
}
@Override
public JTextComponent getEditorComponent() {
return textArea;
}
@Override
public String getText() {
return textArea.getText();
}
@Override
public void setViewText(String text) {
textArea.setText(text);
}
@Override
public String getViewText() {
return textArea.getText();
}
@Override
public void setCaretPosition(int offset) {
textArea.setCaretPosition(offset);
}
@Override
public void setEditable(boolean editable) {
textArea.setEditable(editable);
}
@Override
public void setEnabled(boolean enabled) {
textArea.setEnabled(enabled);
}
@Override
public void setPopupMenu(final JPopupMenu menu) {
textArea.setPopupMenu(menu);
}
}