use of com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition in project intellij-community by JetBrains.
the class ArrangementMatchingRuleEditor method apply.
private void apply() {
final Pair<ArrangementMatchCondition, ArrangementSettingsToken> pair = buildCondition();
final Object modelValue;
if (pair == null) {
modelValue = new EmptyArrangementRuleComponent(myControl.getRowHeight(myRow));
} else {
modelValue = new StdArrangementMatchRule(new StdArrangementEntryMatcher(pair.first), pair.second);
}
myControl.getModel().set(myRow, modelValue);
myControl.repaintRows(myRow, myRow, true);
}
use of com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition in project intellij-community by JetBrains.
the class ArrangementMatchingRuleEditor method refreshConditions.
/**
* Disable conditions not applicable at the current context (e.g. disable 'synchronized' if no 'method' is selected).
*/
private void refreshConditions() {
Pair<ArrangementMatchCondition, ArrangementSettingsToken> pair = buildCondition();
ArrangementMatchCondition condition = pair == null ? null : pair.first;
for (ArrangementUiComponent component : myComponents.values()) {
ArrangementSettingsToken token = component.getToken();
if (token == null) {
continue;
}
boolean enabled = isEnabled(condition, token);
component.setEnabled(enabled);
if (!enabled) {
component.setSelected(false);
}
}
}
use of com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition in project intellij-community by JetBrains.
the class ArrangementSectionRuleManager method createDefaultSectionRule.
@NotNull
public StdArrangementMatchRule createDefaultSectionRule() {
final ArrangementAtomMatchCondition type = new ArrangementAtomMatchCondition(START_SECTION);
final ArrangementAtomMatchCondition text = new ArrangementAtomMatchCondition(TEXT, createDefaultSectionText());
final ArrangementMatchCondition condition = ArrangementUtil.combine(type, text);
return new StdArrangementMatchRule(new StdArrangementEntryMatcher(condition));
}
use of com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition in project intellij-community by JetBrains.
the class AbstractRearrangerTest method nameRule.
@NotNull
protected static StdArrangementMatchRule nameRule(@NotNull String nameFilter, @NotNull ArrangementSettingsToken... tokens) {
if (tokens.length == 0) {
return new StdArrangementMatchRule(new StdArrangementEntryMatcher(atom(nameFilter)));
} else {
ArrangementAtomMatchCondition[] conditions = new ArrangementAtomMatchCondition[tokens.length + 1];
conditions[0] = atom(nameFilter);
for (int i = 0; i < tokens.length; i++) conditions[i + 1] = atom(tokens[i]);
ArrangementMatchCondition compositeCondition = ArrangementUtil.combine(conditions);
return new StdArrangementMatchRule(new StdArrangementEntryMatcher(compositeCondition));
}
}
use of com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition in project intellij-community by JetBrains.
the class ArrangementUtil method combine.
//endregion
@NotNull
public static ArrangementMatchCondition combine(@NotNull ArrangementMatchCondition... nodes) {
final ArrangementCompositeMatchCondition result = new ArrangementCompositeMatchCondition();
final ArrangementMatchConditionVisitor visitor = new ArrangementMatchConditionVisitor() {
@Override
public void visit(@NotNull ArrangementAtomMatchCondition node) {
result.addOperand(node);
}
@Override
public void visit(@NotNull ArrangementCompositeMatchCondition node) {
for (ArrangementMatchCondition operand : node.getOperands()) {
operand.invite(this);
}
}
};
for (ArrangementMatchCondition node : nodes) {
node.invite(visitor);
}
return result.getOperands().size() == 1 ? result.getOperands().iterator().next() : result;
}
Aggregations