mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fixed IDEA-55516 Settings->Editor->Colors&Fonts: sort settings subtree ColorSettingsPage by name
This commit is contained in:
+8
-1
@@ -28,6 +28,8 @@ import com.intellij.openapi.options.colors.AttributesDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorSettingsPage;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -35,7 +37,7 @@ import javax.swing.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColorSettingsPage {
|
||||
public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColorSettingsPage, DisplayPrioritySortable {
|
||||
private static final AttributesDescriptor[] ourDescriptors = {
|
||||
new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.keyword"), SyntaxHighlighterColors.KEYWORD),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.java.attribute.descriptor.number"), SyntaxHighlighterColors.NUMBER),
|
||||
@@ -187,4 +189,9 @@ public class JavaColorSettingsPage implements ColorSettingsPage, InspectionColor
|
||||
public Map<String,TextAttributesKey> getAdditionalHighlightingTagToDescriptorMap() {
|
||||
return ourTags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.KEY_LANGUAGE_SETTINGS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.psi.codeStyle;
|
||||
|
||||
/**
|
||||
* Allows to define in which order settings items must be shown.
|
||||
* @author Rustam Vishnyakov
|
||||
*/
|
||||
public interface DisplayPrioritySortable {
|
||||
DisplayPriority getPriority();
|
||||
}
|
||||
+41
-5
@@ -52,6 +52,8 @@ import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vcs.FileStatus;
|
||||
import com.intellij.openapi.vcs.FileStatusFactory;
|
||||
import com.intellij.openapi.vcs.FileStatusManager;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import com.intellij.psi.search.scope.packageSet.NamedScope;
|
||||
import com.intellij.psi.search.scope.packageSet.NamedScopesHolder;
|
||||
import com.intellij.psi.search.scope.packageSet.PackageSet;
|
||||
@@ -322,11 +324,12 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract
|
||||
protected List<ColorAndFontPanelFactory> createPanelFactories() {
|
||||
ArrayList<ColorAndFontPanelFactory> result = new ArrayList<ColorAndFontPanelFactory>();
|
||||
result.add(new FontConfigurableFactory());
|
||||
result.add(new ConsoleFontConfigurableFactory());
|
||||
|
||||
List<ColorAndFontPanelFactory> extensions = new ArrayList<ColorAndFontPanelFactory>();
|
||||
extensions.add(new ConsoleFontConfigurableFactory());
|
||||
ColorSettingsPage[] pages = ColorSettingsPages.getInstance().getRegisteredPages();
|
||||
for (final ColorSettingsPage page : pages) {
|
||||
result.add(new ColorAndFontPanelFactory() {
|
||||
extensions.add(new ColorAndFontPanelFactoryEx() {
|
||||
@NotNull
|
||||
public NewColorAndFontPanel createPanel(@NotNull ColorAndFontOptions options) {
|
||||
final SimpleEditorPreview preview = new SimpleEditorPreview(options, page);
|
||||
@@ -337,9 +340,37 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract
|
||||
public String getPanelDisplayName() {
|
||||
return page.getDisplayName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
if (page instanceof DisplayPrioritySortable) {
|
||||
return ((DisplayPrioritySortable)page).getPriority();
|
||||
}
|
||||
return DisplayPriority.LANGUAGE_SETTINGS;
|
||||
}
|
||||
});
|
||||
}
|
||||
Collections.addAll(result, Extensions.getExtensions(ColorAndFontPanelFactory.EP_NAME));
|
||||
Collections.addAll(extensions, Extensions.getExtensions(ColorAndFontPanelFactory.EP_NAME));
|
||||
Collections.sort(extensions, new Comparator<ColorAndFontPanelFactory>() {
|
||||
@Override
|
||||
public int compare(ColorAndFontPanelFactory f1, ColorAndFontPanelFactory f2) {
|
||||
if (f1 instanceof DisplayPrioritySortable) {
|
||||
if (f2 instanceof DisplayPrioritySortable) {
|
||||
int result = ((DisplayPrioritySortable)f1).getPriority().compareTo(((DisplayPrioritySortable)f2).getPriority());
|
||||
if (result != 0) return result;
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (f2 instanceof DisplayPrioritySortable) {
|
||||
return -1;
|
||||
}
|
||||
return f1.getPanelDisplayName().compareTo(f2.getPanelDisplayName());
|
||||
}
|
||||
});
|
||||
result.addAll(extensions);
|
||||
|
||||
result.add(new DiffColorsPageFactory());
|
||||
result.add(new FileStatusColorsPageFactory());
|
||||
result.add(new ScopeColorsPageFactory());
|
||||
@@ -365,7 +396,7 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract
|
||||
}
|
||||
}
|
||||
|
||||
private static class ConsoleFontConfigurableFactory implements ColorAndFontPanelFactory {
|
||||
private static class ConsoleFontConfigurableFactory implements ColorAndFontPanelFactoryEx {
|
||||
@NotNull
|
||||
public NewColorAndFontPanel createPanel(@NotNull ColorAndFontOptions options) {
|
||||
FontEditorPreview previewPanel = new FontEditorPreview(options, false) {
|
||||
@@ -386,7 +417,12 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract
|
||||
public String getPanelDisplayName() {
|
||||
return "Console Font";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.COMMON_SETTINGS;
|
||||
}
|
||||
}
|
||||
|
||||
private class DiffColorsPageFactory implements ColorAndFontPanelFactory {
|
||||
@NotNull
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.intellij.application.options.colors;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Rustam Vishnyakov
|
||||
*/
|
||||
public interface ColorAndFontPanelFactoryEx extends ColorAndFontPanelFactory, DisplayPrioritySortable {
|
||||
|
||||
}
|
||||
+7
-1
@@ -10,6 +10,8 @@ import com.intellij.openapi.options.OptionsBundle;
|
||||
import com.intellij.openapi.options.colors.AttributesDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorSettingsPage;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -20,7 +22,7 @@ import java.util.Map;
|
||||
/**
|
||||
* @author oleg, Roman.Chernyatchik
|
||||
*/
|
||||
public class ANSIColoredConsoleColorsPage implements ColorSettingsPage {
|
||||
public class ANSIColoredConsoleColorsPage implements ColorSettingsPage, DisplayPrioritySortable {
|
||||
|
||||
private static final String DEMO_TEXT =
|
||||
"<stdsys>C:\\command.com</stdsys>\n" +
|
||||
@@ -120,4 +122,8 @@ public class ANSIColoredConsoleColorsPage implements ColorSettingsPage {
|
||||
return DEMO_TEXT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.COMMON_SETTINGS;
|
||||
}
|
||||
}
|
||||
|
||||
+8
-1
@@ -24,6 +24,8 @@ import com.intellij.openapi.options.OptionsBundle;
|
||||
import com.intellij.openapi.options.colors.AttributesDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorSettingsPage;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -31,7 +33,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import javax.swing.*;
|
||||
import java.util.Map;
|
||||
|
||||
public class CustomColorsPage implements ColorSettingsPage {
|
||||
public class CustomColorsPage implements ColorSettingsPage, DisplayPrioritySortable {
|
||||
private static final AttributesDescriptor[] ATTRS = {
|
||||
new AttributesDescriptor(OptionsBundle.message("options.custom.attribute.descriptor.keyword1"), CustomHighlighterColors.CUSTOM_KEYWORD1_ATTRIBUTES),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.custom.attribute.descriptor.keyword2"), CustomHighlighterColors.CUSTOM_KEYWORD2_ATTRIBUTES),
|
||||
@@ -108,4 +110,9 @@ public class CustomColorsPage implements ColorSettingsPage {
|
||||
public Map<String, TextAttributesKey> getAdditionalHighlightingTagToDescriptorMap() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.COMMON_SETTINGS;
|
||||
}
|
||||
}
|
||||
+8
-1
@@ -32,13 +32,15 @@ import com.intellij.openapi.options.OptionsBundle;
|
||||
import com.intellij.openapi.options.colors.AttributesDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorSettingsPage;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class GeneralColorsPage implements ColorSettingsPage, InspectionColorSettingsPage {
|
||||
public class GeneralColorsPage implements ColorSettingsPage, InspectionColorSettingsPage, DisplayPrioritySortable {
|
||||
private static final String ADDITIONAL_DEMO_TEXT =
|
||||
"\n" +
|
||||
"<todo>//TODO: Visit JB Web resources:</todo>\n"+
|
||||
@@ -188,6 +190,11 @@ public class GeneralColorsPage implements ColorSettingsPage, InspectionColorSett
|
||||
return ADDITIONAL_HIGHLIGHT_DESCRIPTORS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.GENERAL_SETTINGS;
|
||||
}
|
||||
|
||||
private static String getCustomSeveritiesDemoText() {
|
||||
final StringBuilder buff = new StringBuilder();
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ import com.intellij.openapi.options.colors.AttributesDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorSettingsPage;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import com.intellij.xdebugger.XDebuggerBundle;
|
||||
import com.intellij.xdebugger.ui.DebuggerColors;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -35,7 +37,7 @@ import java.util.Map;
|
||||
/**
|
||||
* @author max
|
||||
*/
|
||||
public class DebuggerColorsPage implements ColorSettingsPage {
|
||||
public class DebuggerColorsPage implements ColorSettingsPage, DisplayPrioritySortable {
|
||||
@NotNull
|
||||
public String getDisplayName() {
|
||||
return XDebuggerBundle.message("xdebugger.colors.page.name");
|
||||
@@ -76,4 +78,9 @@ public class DebuggerColorsPage implements ColorSettingsPage {
|
||||
public Map<String, TextAttributesKey> getAdditionalHighlightingTagToDescriptorMap() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.COMMON_SETTINGS;
|
||||
}
|
||||
}
|
||||
|
||||
+7
-1
@@ -1,6 +1,7 @@
|
||||
package org.jetbrains.plugins.gradle.config;
|
||||
|
||||
import com.intellij.application.options.colors.*;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.gradle.util.GradleBundle;
|
||||
|
||||
@@ -8,7 +9,7 @@ import org.jetbrains.plugins.gradle.util.GradleBundle;
|
||||
* @author Denis Zhdanov
|
||||
* @since 1/19/12 11:32 AM
|
||||
*/
|
||||
public class GradleColorAndFontPanelFactory implements ColorAndFontPanelFactory {
|
||||
public class GradleColorAndFontPanelFactory implements ColorAndFontPanelFactoryEx {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -25,4 +26,9 @@ public class GradleColorAndFontPanelFactory implements ColorAndFontPanelFactory
|
||||
public String getPanelDisplayName() {
|
||||
return GradleBundle.message("gradle.name");
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.LANGUAGE_SETTINGS;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user