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:
parent
e01c3cc7c3
commit
cbb43fd93b
2 changed files with 35 additions and 2 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue