PrintOption extension reworked to create new instance each time when the dialog is opened

This commit is contained in:
nik
2010-09-02 10:50:34 +04:00
parent ef91f020cf
commit b34553f2de
3 changed files with 56 additions and 28 deletions
@@ -23,14 +23,16 @@ package com.intellij.codeEditor.printing;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.Map;
import java.util.TreeMap;
public class HyperlinksToClassesOption implements PrintOption {
public class HyperlinksToClassesOption extends PrintOption {
private JCheckBox myCbGenerateHyperlinksToClasses;
private boolean isGenerateHyperlinksToClasses = false;
@@ -42,27 +44,6 @@ public class HyperlinksToClassesOption implements PrintOption {
isGenerateHyperlinksToClasses = generateHyperlinksToClasses;
}
public JComponent createComponent() {
myCbGenerateHyperlinksToClasses = new JCheckBox(CodeEditorBundle.message("export.to.html.generate.hyperlinks.checkbox"), isGenerateHyperlinksToClasses);
return myCbGenerateHyperlinksToClasses;
}
public boolean isModified() {
return myCbGenerateHyperlinksToClasses.isSelected() != isGenerateHyperlinksToClasses;
}
public void apply() throws ConfigurationException {
isGenerateHyperlinksToClasses = myCbGenerateHyperlinksToClasses.isSelected();
}
public void reset() {
myCbGenerateHyperlinksToClasses.setSelected(isGenerateHyperlinksToClasses);
}
public void disposeUIResources() {
myCbGenerateHyperlinksToClasses = null;
}
@Nullable
public TreeMap<Integer, PsiReference> collectReferences(PsiFile psiFile, Map<PsiFile, PsiFile> filesMap) {
if (isGenerateHyperlinksToClasses()) {
@@ -76,6 +57,12 @@ public class HyperlinksToClassesOption implements PrintOption {
return null;
}
@NotNull
@Override
public UnnamedConfigurable createConfigurable() {
return new HyperlinksToClassesConfigurable();
}
private static void findClassReferences(PsiElement psiElement, TreeMap<Integer, PsiReference> refMap, Map<PsiFile, PsiFile> filesMap, PsiFile psiFile) {
PsiReference ref = psiElement.getReference();
@@ -95,4 +82,25 @@ public class HyperlinksToClassesOption implements PrintOption {
}
}
private class HyperlinksToClassesConfigurable implements UnnamedConfigurable {
public JComponent createComponent() {
myCbGenerateHyperlinksToClasses = new JCheckBox(CodeEditorBundle.message("export.to.html.generate.hyperlinks.checkbox"), isGenerateHyperlinksToClasses);
return myCbGenerateHyperlinksToClasses;
}
public boolean isModified() {
return myCbGenerateHyperlinksToClasses.isSelected() != isGenerateHyperlinksToClasses;
}
public void apply() throws ConfigurationException {
isGenerateHyperlinksToClasses = myCbGenerateHyperlinksToClasses.isSelected();
}
public void reset() {
myCbGenerateHyperlinksToClasses.setSelected(isGenerateHyperlinksToClasses);
}
public void disposeUIResources() {
}
}
}