public void disableToolByDefault(@NotNull Collection<String> toolIds, @Nullable Project project) {
for (String toolId : toolIds) {
- getToolDefaultState(toolId, project).setEnabled(false);
+ getTools(toolId, project).setDefaultEnabled(false);
}
}
public void enableToolsByDefault(@NotNull List<String> toolIds, Project project) {
for (final String toolId : toolIds) {
- getToolDefaultState(toolId, project).setEnabled(true);
+ getTools(toolId, project).setDefaultEnabled(true);
}
}
return myDefaultState;
}
+ public void setDefaultEnabled(boolean isEnabled) {
+ getDefaultState().setEnabled(isEnabled);
+ if (isEnabled) {
+ setEnabled(true);
+ }
+ else {
+ disableWholeToolIfCan();
+ }
+ }
+
public void removeScope(int scopeIdx) {
if (myTools != null && scopeIdx >= 0 && myTools.size() > scopeIdx) {
myTools.remove(scopeIdx);
state.setEnabled(false);
}
}
+ disableWholeToolIfCan();
}
}
public List<ScopeToolState> getNonDefaultTools() {
return myTools;
}
+
+ private void disableWholeToolIfCan() {
+ if (myDefaultState.isEnabled()) {
+ return;
+ }
+ if (myTools != null) {
+ for (ScopeToolState tool : myTools) {
+ if (tool.isEnabled()) {
+ return;
+ }
+ }
+ }
+ setEnabled(false);
+ }
}
\ No newline at end of file