diff --git a/plugins/copyright/copyright.iml b/plugins/copyright/copyright.iml
index a9dddc7d5dc9..425e3c174a08 100644
--- a/plugins/copyright/copyright.iml
+++ b/plugins/copyright/copyright.iml
@@ -14,6 +14,6 @@
+
-
-
+
\ No newline at end of file
diff --git a/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightConfigurable.java b/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightConfigurable.java
index de3b1d7f3135..b5cf5794e4a1 100644
--- a/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightConfigurable.java
+++ b/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightConfigurable.java
@@ -16,14 +16,26 @@
package com.maddyhome.idea.copyright.ui;
+import com.intellij.openapi.components.ServiceManager;
+import com.intellij.openapi.editor.Document;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.editor.EditorFactory;
+import com.intellij.openapi.editor.EditorSettings;
import com.intellij.openapi.editor.colors.EditorColorsManager;
+import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.editor.colors.EditorFontType;
+import com.intellij.openapi.editor.ex.EditorEx;
+import com.intellij.openapi.fileTypes.FileTypes;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.NamedConfigurable;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.openapi.vcs.VcsConfiguration;
+import com.intellij.spellchecker.ui.SpellCheckingEditorCustomization;
+import com.intellij.ui.*;
+import com.intellij.util.DocumentUtil;
import com.maddyhome.idea.copyright.CopyrightManager;
import com.maddyhome.idea.copyright.CopyrightProfile;
import com.maddyhome.idea.copyright.pattern.EntityUtil;
@@ -33,8 +45,11 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.util.HashSet;
+import java.util.Set;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
@@ -46,16 +61,24 @@ public class CopyrightConfigurable extends NamedConfigurable {
private boolean myModified;
private String myDisplayName;
- private JEditorPane myCopyrightPane;
+ private EditorTextField myEditor;
private JButton myValidateButton;
private JTextField myKeywordTf;
private JTextField myAllowReplaceTextField;
+ private JPanel myEditorPanel;
public CopyrightConfigurable(Project project, CopyrightProfile copyrightProfile, Runnable updater) {
super(true, updater);
myProject = project;
myCopyrightProfile = copyrightProfile;
myDisplayName = myCopyrightProfile.getName();
+ final Set features = new HashSet();
+ features.add(SpellCheckingEditorCustomization.ENABLED);
+ features.add(SoftWrapsEditorCustomization.ENABLED);
+ features.add(AdditionalPageAtBottomEditorCustomization.DISABLED);
+ EditorTextFieldProvider service = ServiceManager.getService(project, EditorTextFieldProvider.class);
+ myEditor = service.getEditorField(FileTypes.PLAIN_TEXT.getLanguage(), project, features);
+ myEditorPanel.add(myEditor.getComponent(), BorderLayout.CENTER);
}
public void setDisplayName(String s) {
@@ -71,11 +94,10 @@ public class CopyrightConfigurable extends NamedConfigurable {
}
public JComponent createOptionsPanel() {
- myCopyrightPane.setFont(EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN));
myValidateButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
- VelocityHelper.verify(myCopyrightPane.getText());
+ VelocityHelper.verify(myEditor.getDocument().getText());
Messages.showInfoMessage(myProject, "Velocity template is valid.", "Validation");
}
catch (Exception e1) {
@@ -99,14 +121,14 @@ public class CopyrightConfigurable extends NamedConfigurable {
public boolean isModified() {
return myModified ||
- !Comparing.strEqual(EntityUtil.encode(myCopyrightPane.getText().trim()), myCopyrightProfile.getNotice()) ||
+ !Comparing.strEqual(EntityUtil.encode(myEditor.getDocument().getText().trim()), myCopyrightProfile.getNotice()) ||
!Comparing.strEqual(myKeywordTf.getText().trim(), myCopyrightProfile.getKeyword()) ||
!Comparing.strEqual(myAllowReplaceTextField.getText().trim(), myCopyrightProfile.getAllowReplaceKeyword()) ||
!Comparing.strEqual(myDisplayName, myCopyrightProfile.getName());
}
public void apply() throws ConfigurationException {
- myCopyrightProfile.setNotice(EntityUtil.encode(myCopyrightPane.getText().trim()));
+ myCopyrightProfile.setNotice(EntityUtil.encode(myEditor.getDocument().getText().trim()));
final String keyword = myKeywordTf.getText().trim();
try {
if (!StringUtil.isEmptyOrSpaces(keyword)) {
@@ -125,7 +147,17 @@ public class CopyrightConfigurable extends NamedConfigurable {
public void reset() {
myDisplayName = myCopyrightProfile.getName();
- myCopyrightPane.setText(EntityUtil.decode(myCopyrightProfile.getNotice()));
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ DocumentUtil.writeInRunUndoTransparentAction(new Runnable() {
+ @Override
+ public void run() {
+ myEditor.getDocument().setText(EntityUtil.decode(myCopyrightProfile.getNotice()));
+ }
+ });
+ }
+ });
myKeywordTf.setText(myCopyrightProfile.getKeyword());
myAllowReplaceTextField.setText(myCopyrightProfile.getAllowReplaceKeyword());
}
diff --git a/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightEditorForm.form b/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightEditorForm.form
index bcaf7c547033..9f0e846a0bef 100644
--- a/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightEditorForm.form
+++ b/plugins/copyright/src/com/maddyhome/idea/copyright/ui/CopyrightEditorForm.form
@@ -8,21 +8,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -77,6 +62,14 @@
+
+
+
+
+
+
+
+