1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

added ui code to grey out checkboxes which are conditionally enabled based on launch mode

This commit is contained in:
Alena Laskavaia 2011-02-27 03:13:31 +00:00
parent e01c3cc7c3
commit cbb43fd93b
2 changed files with 35 additions and 2 deletions

View file

@ -14,7 +14,7 @@ import org.eclipse.cdt.codan.core.model.CheckerLaunchMode;
/**
* Problem preference for launch type of the checker
*
*
* @since 2.0
*/
public class LaunchTypeProblemPreference extends MapProblemPreference {
@ -71,4 +71,19 @@ public class LaunchTypeProblemPreference extends MapProblemPreference {
public void setRunningMode(CheckerLaunchMode mode, boolean value) {
setChildValue(mode.name(), value);
}
/**
* @return true if all modes are enabled (or this is parent mode)
*/
public boolean isAllEnabled() {
return isRunningInMode(CheckerLaunchMode.RUN_AS_YOU_TYPE) && isRunningInMode(CheckerLaunchMode.RUN_ON_DEMAND)
&& isRunningInMode(CheckerLaunchMode.RUN_ON_FULL_BUILD);
}
/**
* @return true if all modes are disabled
*/
public boolean isAllDisabled() {
return !isRunningInMode(CheckerLaunchMode.RUN_AS_YOU_TYPE) && !isRunningInMode(CheckerLaunchMode.RUN_ON_DEMAND)
&& !isRunningInMode(CheckerLaunchMode.RUN_ON_FULL_BUILD);
}
}

View file

@ -13,12 +13,16 @@ package org.eclipse.cdt.codan.internal.ui.preferences;
import java.text.MessageFormat;
import org.eclipse.cdt.codan.core.PreferenceConstants;
import org.eclipse.cdt.codan.core.model.CheckerLaunchMode;
import org.eclipse.cdt.codan.core.model.CodanSeverity;
import org.eclipse.cdt.codan.core.model.IProblem;
import org.eclipse.cdt.codan.core.model.IProblemCategory;
import org.eclipse.cdt.codan.core.model.IProblemElement;
import org.eclipse.cdt.codan.core.model.IProblemProfile;
import org.eclipse.cdt.codan.core.model.IProblemWorkingCopy;
import org.eclipse.cdt.codan.core.param.IProblemPreference;
import org.eclipse.cdt.codan.core.param.LaunchTypeProblemPreference;
import org.eclipse.cdt.codan.core.param.MapProblemPreference;
import org.eclipse.cdt.codan.internal.core.CodanPreferencesLoader;
import org.eclipse.cdt.codan.internal.ui.CodanUIMessages;
import org.eclipse.core.resources.IMarker;
@ -85,6 +89,20 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
*/
public boolean isGrayed(Object element) {
if (element instanceof IProblem) {
IProblem p = (IProblem) element;
IProblemPreference preference = p.getPreference();
if (preference instanceof MapProblemPreference) {
LaunchTypeProblemPreference pref = (LaunchTypeProblemPreference) ((MapProblemPreference) preference)
.getChildDescriptor(LaunchTypeProblemPreference.KEY);
if (pref == null || pref.isRunningInMode(CheckerLaunchMode.USE_PARENT)) {
return false;
}
boolean enabled = p.isEnabled();
boolean match = pref.isAllEnabled();
if (enabled && match) return false;
if (!enabled && pref.isAllDisabled()) return false;
return true;
}
return false;
}
if (element instanceof IProblemCategory) {
@ -368,7 +386,7 @@ public class ProblemsTreeEditor extends CheckedTreeEditor {
protected String modelToString(Object model) {
return ""; //$NON-NLS-1$
}
/**
* @return
*/