Add TopHitProviders for CVS & CLearCase

This commit is contained in:
Sergey Malenkov
2014-09-19 16:49:23 +04:00
parent 47df72b32c
commit 1f32685062
6 changed files with 63 additions and 14 deletions
@@ -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() {
@@ -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() {
@@ -57,10 +57,6 @@ public final class SystemOptionsTopHitProvider extends OptionsTopHitProvider {
public Object getInstance() {
return GeneralSettings.getInstance();
}
@Override
protected void fireUpdated() {
}
};
}
}
@@ -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() {
}
};
}
@@ -50,6 +50,7 @@
<vcsCheckinHandlerFactory implementation="com.intellij.cvsSupport2.CvsCheckinHandlerFactory"/>
<search.topHitProvider implementation="com.intellij.cvsSupport2.config.CvsOptionsTopHitProvider"/>
<vcs name="CVS" vcsClass="com.intellij.cvsSupport2.CvsVcs2" displayName="CVS" administrativeAreaName="CVS"/>
<vcsPopupProvider implementation="com.intellij.cvsSupport2.actions.CvsQuickListContentProvider"/>
</extensions>
@@ -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<BooleanOptionDescription> 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);
}
};
}
}