use of com.evolveum.midpoint.studio.action.AsyncAction in project midpoint-studio by Evolveum.
the class BrowseToolPanel method createQueryActionGroup.
private DefaultActionGroup createQueryActionGroup() {
DefaultActionGroup group = new DefaultActionGroup();
objectType = new ComboObjectTypes();
group.add(objectType);
queryType = new ComboQueryType() {
@Override
public void setSelected(Type selected) {
super.setSelected(selected);
if (queryType.getSelected() == null || query == null) {
return;
}
switch(queryType.getSelected()) {
case QUERY_XML:
if (StringUtils.isEmpty(query.getText())) {
query.setText(EMPTY_XML_QUERY);
}
break;
case NAME:
case NAME_OR_OID:
case OID:
// todo file type
break;
case AXIOM:
if (StringUtils.isEmpty(query.getText())) {
query.setText("");
}
break;
}
}
};
group.add(queryType);
CheckboxAction rawSearch = new CheckboxAction("Raw") {
@Override
public void update(AnActionEvent e) {
e.getPresentation().setEnabled(isSearchEnabled());
super.update(e);
}
@Override
public boolean isSelected(@NotNull AnActionEvent e) {
return BrowseToolPanel.this.rawSearch;
}
@Override
public void setSelected(@NotNull AnActionEvent e, boolean state) {
BrowseToolPanel.this.rawSearch = state;
}
};
group.add(rawSearch);
pagingAction = createAnAction("Paging", "Paging Settings", AllIcons.General.GearPlain, e -> pagingSettingsPerformed(e), e -> e.getPresentation().setEnabled(isSearchEnabled()));
group.add(pagingAction);
searchAction = new AsyncAction<>("Search", AllIcons.Actions.Find) {
@Override
protected BackgroundableTask createTask(AnActionEvent e, Environment env) {
return new BackgroundableTask(e.getProject(), "Searching objects", "Searching objects") {
@Override
protected void doRun(ProgressIndicator indicator) {
searchPerformed(e, indicator);
}
};
}
@Override
protected boolean isActionEnabled(AnActionEvent evt) {
return isSearchEnabled();
}
};
group.add(searchAction);
cancelAction = createAnAction("Cancel", AllIcons.Actions.Cancel, e -> cancelPerformed(e), e -> e.getPresentation().setEnabled(isCancelEnabled()));
group.add(cancelAction);
return group;
}
Aggregations