From 1f32685062badbae80bad61ff11200620dc1804d Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 19 Sep 2014 16:19:45 +0400 Subject: [PATCH] Add TopHitProviders for CVS & CLearCase --- .../ui/PublicFieldBasedOptionDescription.java | 3 +- .../PublicMethodBasedOptionDescription.java | 3 +- .../ide/ui/SystemOptionsTopHitProvider.java | 4 -- .../VcsOptionsTopHitProvider.java | 8 --- .../cvs/cvs-plugin/src/META-INF/plugin.xml | 1 + .../config/CvsOptionsTopHitProvider.java | 58 +++++++++++++++++++ 6 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/config/CvsOptionsTopHitProvider.java diff --git a/platform/platform-api/src/com/intellij/ide/ui/PublicFieldBasedOptionDescription.java b/platform/platform-api/src/com/intellij/ide/ui/PublicFieldBasedOptionDescription.java index d0c39893a57f..0379eb030766 100644 --- a/platform/platform-api/src/com/intellij/ide/ui/PublicFieldBasedOptionDescription.java +++ b/platform/platform-api/src/com/intellij/ide/ui/PublicFieldBasedOptionDescription.java @@ -32,7 +32,8 @@ public abstract class PublicFieldBasedOptionDescription extends BooleanOptionDes public abstract Object getInstance(); - protected abstract void fireUpdated(); + protected void fireUpdated() { + } @Override public boolean isOptionEnabled() { diff --git a/platform/platform-api/src/com/intellij/ide/ui/PublicMethodBasedOptionDescription.java b/platform/platform-api/src/com/intellij/ide/ui/PublicMethodBasedOptionDescription.java index bb2f8aebfa8c..98b41bdaa564 100644 --- a/platform/platform-api/src/com/intellij/ide/ui/PublicMethodBasedOptionDescription.java +++ b/platform/platform-api/src/com/intellij/ide/ui/PublicMethodBasedOptionDescription.java @@ -35,7 +35,8 @@ public abstract class PublicMethodBasedOptionDescription extends BooleanOptionDe public abstract Object getInstance(); - protected abstract void fireUpdated(); + protected void fireUpdated() { + } @Override public boolean isOptionEnabled() { diff --git a/platform/platform-impl/src/com/intellij/ide/ui/SystemOptionsTopHitProvider.java b/platform/platform-impl/src/com/intellij/ide/ui/SystemOptionsTopHitProvider.java index 914f2b08f253..2e7edb7c22c9 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/SystemOptionsTopHitProvider.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/SystemOptionsTopHitProvider.java @@ -57,10 +57,6 @@ public final class SystemOptionsTopHitProvider extends OptionsTopHitProvider { public Object getInstance() { return GeneralSettings.getInstance(); } - - @Override - protected void fireUpdated() { - } }; } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsOptionsTopHitProvider.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsOptionsTopHitProvider.java index 5839297dc459..2e8137491e89 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsOptionsTopHitProvider.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/configurable/VcsOptionsTopHitProvider.java @@ -99,10 +99,6 @@ public final class VcsOptionsTopHitProvider extends OptionsTopHitProvider { public Object getInstance() { return instance; } - - @Override - protected void fireUpdated() { - } }; } @@ -112,10 +108,6 @@ public final class VcsOptionsTopHitProvider extends OptionsTopHitProvider { public Object getInstance() { return instance; } - - @Override - protected void fireUpdated() { - } }; } diff --git a/plugins/cvs/cvs-plugin/src/META-INF/plugin.xml b/plugins/cvs/cvs-plugin/src/META-INF/plugin.xml index 339516e0c26a..4ec7be52a5b8 100644 --- a/plugins/cvs/cvs-plugin/src/META-INF/plugin.xml +++ b/plugins/cvs/cvs-plugin/src/META-INF/plugin.xml @@ -50,6 +50,7 @@ + diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/config/CvsOptionsTopHitProvider.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/config/CvsOptionsTopHitProvider.java new file mode 100644 index 000000000000..17ed454c7a2a --- /dev/null +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/config/CvsOptionsTopHitProvider.java @@ -0,0 +1,58 @@ +/* + * Copyright 2000-2014 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.cvsSupport2.config; + +import com.intellij.CvsBundle; +import com.intellij.ide.ui.OptionsTopHitProvider; +import com.intellij.ide.ui.PublicFieldBasedOptionDescription; +import com.intellij.ide.ui.search.BooleanOptionDescription; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.vcs.ProjectLevelVcsManager; +import org.jetbrains.annotations.NotNull; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; + +/** + * @author Sergey.Malenkov + */ +public final class CvsOptionsTopHitProvider extends OptionsTopHitProvider { + @Override + public String getId() { + return "vcs"; + } + + @NotNull + @Override + public Collection getOptions(Project project) { + if (ProjectLevelVcsManager.getInstance(project).getAllVcss().length == 0) { + return Collections.emptyList(); + } + return Collections.unmodifiableCollection(Arrays.asList( + option(project, "checkbox.use.read.only.flag.for.not.edited.files", "MAKE_NEW_FILES_READONLY"), + option(project, "checkbox.show.cvs.server.output", "SHOW_OUTPUT"))); + } + + private static BooleanOptionDescription option(final Project project, String option, String field) { + return new PublicFieldBasedOptionDescription("CVS: " + CvsBundle.message(option), "vcs.CVS", field) { + @Override + public Object getInstance() { + return CvsConfiguration.getInstance(project); + } + }; + } +}