WI-1263 Make Code Style Settings Live Preview editable

This commit is contained in:
Rustam.Vishnyakov
2011-07-15 18:33:15 +04:00
parent 8bdd53200a
commit 3e67542c1b
3 changed files with 13 additions and 12 deletions
@@ -87,7 +87,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
private long myEndHighlightPreviewChangesTimeMillis = -1;
private boolean myShowsPreviewHighlighters;
private boolean mySkipPreviewHighlighting;
private LanguageSelector myLanguageSelector;
private LanguageSelector myLanguageSelector;
protected CodeStyleAbstractPanel(CodeStyleSettings settings) {
mySettings = settings;
@@ -100,7 +100,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
}
});
updatePreview();
updatePreview(true);
}
private synchronized void setSomethingChanged(final boolean b) {
@@ -128,7 +128,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
private Editor createEditor() {
EditorFactory editorFactory = EditorFactory.getInstance();
Document editorDocument = editorFactory.createDocument("");
EditorEx editor = (EditorEx)editorFactory.createViewer(editorDocument);
EditorEx editor = (EditorEx)editorFactory.createEditor(editorDocument);
fillEditorSettings(editor.getSettings());
myLastDocumentModificationStamp = editor.getDocument().getModificationStamp();
return editor;
@@ -145,19 +145,20 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
editorSettings.setUseSoftWraps(false);
}
protected void updatePreview() {
updateEditor();
protected void updatePreview(boolean useDefaultSample) {
updateEditor(useDefaultSample);
updatePreviewHighlighter((EditorEx)myEditor);
}
private void updateEditor() {
private void updateEditor(boolean useDefaultSample) {
if (!myShouldUpdatePreview || !myEditor.getComponent().isShowing()) {
return;
}
if (myLastDocumentModificationStamp != myEditor.getDocument().getModificationStamp()) {
myTextToReformat = myEditor.getDocument().getText();
} else {
}
else if (useDefaultSample || myTextToReformat == null) {
myTextToReformat = getPreviewText();
}
@@ -470,7 +471,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
try {
myUpdateAlarm.cancelAllRequests();
if (isSomethingChanged()) {
updateEditor();
updateEditor(false);
}
if (System.currentTimeMillis() <= myEndHighlightPreviewChangesTimeMillis && !myPreviewRangesToHighlight.isEmpty()) {
blinkHighlighters();
@@ -146,7 +146,7 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
final int selIndex = myIndentOptionsTabs.getSelectedIndex();
if (selIndex != myLastSelectedTab) {
myLastSelectedTab = selIndex;
updatePreview();
updatePreview(true);
somethingChanged();
}
}
@@ -98,7 +98,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
finally {
setSkipPreviewHighlighting(false);
}
updatePreview();
updatePreview(true);
return true;
}
@@ -216,7 +216,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
setPanelLanguage(langs[0]);
}
else {
updatePreview();
updatePreview(true);
}
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
@@ -241,7 +241,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
else {
// If settings are language-specific
previewPanel.add(getEditor().getComponent(), BorderLayout.CENTER);
updatePreview();
updatePreview(true);
}
}