void (final Object value, final int rowIndex, final int columnIndex) { if (value == null) { return; } if (columnIndex == SEVERITY_COLUMN) { if (value == EDIT_SEVERITIES) return; final HighlightSeverity severity = (HighlightSeverity)value; final HighlightDisplayLevel level = HighlightDisplayLevel.find(severity.getName()); if (level == null) { LOG.error("no display level found for name " + severity.getName()); return; } final String scopeName = rowIndex == lastRowIndex() ? null : getScopeName(rowIndex); myInspectionProfile.setErrorLevel(myKeys, level, scopeName, myProject); myInspectionProfile.setEditorAttributesKey(myKeys, null, scopeName, myProject); } else if (columnIndex == HIGHLIGHTING_COLUMN) { if (value == EDIT_HIGHLIGHTING) return; final TextAttributesKey key = (TextAttributesKey)value; final String scopeName = rowIndex == lastRowIndex() ? null : getScopeName(rowIndex); myInspectionProfile.setEditorAttributesKey(myKeys, key, scopeName, myProject); } else if (columnIndex == SCOPE_ENABLED_COLUMN) { final NamedScope scope = getScope(rowIndex); if (scope == null) { return; } if ((Boolean)value) { if (rowIndex == lastRowIndex()) { myInspectionProfile.enableToolsByDefault(myKeyNames, myProject); } else { //TODO create scopes states if not exist (need scope sorting) myInspectionProfile.enableTools(myKeyNames, scope, myProject); } for (final String keyName : myKeyNames) { myInspectionProfile.enableTool(keyName, myProject); } } else { if (rowIndex == lastRowIndex()) { myInspectionProfile.disableToolByDefault(myKeyNames, myProject); } else { myInspectionProfile.disableTools(myKeyNames, scope, myProject); } } if (myKeyNames.size() == 1) { final String keyName = ContainerUtil.getFirstItem(myKeyNames); final ScopeToolState state = getScopeToolState(keyName, rowIndex); myTableSettings.onScopeChosen(state); } } myTableSettings.onSettingsChanged(); }