use of com.evolveum.midpoint.gui.api.model.LoadableModel in project midpoint by Evolveum.
the class FocusPersonasTabPanel method loadModel.
private LoadableModel<List<PrismObject<FocusType>>> loadModel() {
return new LoadableModel<List<PrismObject<FocusType>>>(false) {
@Override
protected List<PrismObject<FocusType>> load() {
List<String> personaOidsList = getPersonasOidsList();
List<PrismObject<FocusType>> personasList = new ArrayList<>();
if (personaOidsList.size() > 0) {
ObjectQuery query = ObjectQuery.createObjectQuery(InOidFilter.createInOid(personaOidsList));
OperationResult result = new OperationResult(OPERATION_SEARCH_PERSONAS_OBJECTS);
personasList = WebModelServiceUtils.searchObjects(FocusType.class, query, result, pageBase);
}
return personasList == null ? new ArrayList<>() : personasList;
}
};
}
use of com.evolveum.midpoint.gui.api.model.LoadableModel in project midpoint by Evolveum.
the class LoggingConfigPanel method initLoggerColumns.
private List<IColumn<LoggerConfiguration, String>> initLoggerColumns() {
List<IColumn<LoggerConfiguration, String>> columns = new ArrayList<>();
IColumn column = new CheckBoxHeaderColumn<LoggerConfiguration>();
columns.add(column);
//name editing column
columns.add(new EditableLinkColumn<LoggerConfiguration>(createStringResource("LoggingConfigPanel.logger"), "name") {
@Override
protected Component createInputPanel(String componentId, final IModel<LoggerConfiguration> model) {
if (model.getObject() instanceof StandardLogger) {
DropDownChoicePanel dropDownChoicePanel = new DropDownChoicePanel(componentId, new PropertyModel(model, "logger"), WebComponentUtil.createReadonlyModelFromEnum(StandardLoggerType.class), new EnumChoiceRenderer<StandardLoggerType>());
FormComponent<StandardLoggerType> input = dropDownChoicePanel.getBaseFormComponent();
input.add(new NotNullValidator<StandardLoggerType>("logger.emptyLogger"));
input.add(new AttributeAppender("style", "width: 100%"));
input.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
addAjaxFormComponentUpdatingBehavior(input);
return dropDownChoicePanel;
} else if (model.getObject() instanceof ComponentLogger) {
DropDownChoicePanel dropDownChoicePanel = new DropDownChoicePanel(componentId, new PropertyModel(model, "component"), WebComponentUtil.createReadonlyModelFromEnum(LoggingComponentType.class), new EnumChoiceRenderer<LoggingComponentType>());
FormComponent<LoggingComponentType> input = dropDownChoicePanel.getBaseFormComponent();
input.add(new NotNullValidator<LoggingComponentType>("logger.emptyLogger"));
input.add(new AttributeAppender("style", "width: 100%"));
input.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
addAjaxFormComponentUpdatingBehavior(input);
return dropDownChoicePanel;
} else {
TextPanel textPanel = new TextPanel<>(componentId, new PropertyModel<String>(model, getPropertyExpression()));
FormComponent input = textPanel.getBaseFormComponent();
addAjaxFormComponentUpdatingBehavior(input);
input.add(new AttributeAppender("style", "width: 100%"));
input.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
input.add(new NotNullValidator<StandardLoggerType>("message.emptyString"));
return textPanel;
}
}
@Override
public void onClick(AjaxRequestTarget target, IModel<LoggerConfiguration> rowModel) {
loggerEditPerformed(target, rowModel);
}
});
//level editing column
columns.add(new EditableLinkColumn<LoggerConfiguration>(createStringResource("LoggingConfigPanel.loggersLevel"), "level") {
@Override
protected Component createInputPanel(String componentId, IModel<LoggerConfiguration> model) {
DropDownChoicePanel dropDownChoicePanel = new DropDownChoicePanel(componentId, new PropertyModel(model, getPropertyExpression()), WebComponentUtil.createReadonlyModelFromEnum(LoggingLevelType.class));
FormComponent<LoggingLevelType> input = dropDownChoicePanel.getBaseFormComponent();
input.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
input.add(new NotNullValidator<LoggingLevelType>("message.emptyLevel"));
addAjaxFormComponentUpdatingBehavior(input);
return dropDownChoicePanel;
}
@Override
public void onClick(AjaxRequestTarget target, IModel<LoggerConfiguration> rowModel) {
loggerEditPerformed(target, rowModel);
}
@Override
protected IModel<String> createLinkModel(IModel<LoggerConfiguration> rowModel) {
LoggerConfiguration configuration = rowModel.getObject();
return WebComponentUtil.createLocalizedModelForEnum(configuration.getLevel(), getPageBase());
}
});
//appender editing column
columns.add(new EditableLinkColumn<LoggerConfiguration>(createStringResource("LoggingConfigPanel.loggersAppender"), "appenders") {
@Override
protected IModel<String> createLinkModel(IModel<LoggerConfiguration> rowModel) {
final LoggerConfiguration configuration = rowModel.getObject();
if (configuration.getAppenders().isEmpty()) {
return createStringResource("LoggingConfigPanel.appenders.Inherit");
} else {
return new LoadableModel<String>() {
@Override
protected String load() {
StringBuilder builder = new StringBuilder();
for (String appender : configuration.getAppenders()) {
if (configuration.getAppenders().indexOf(appender) != 0) {
builder.append(", ");
}
builder.append(appender);
}
return builder.toString();
}
};
}
}
@Override
protected InputPanel createInputPanel(String componentId, IModel<LoggerConfiguration> model) {
IModel<Map<String, String>> options = new Model(null);
Map<String, String> optionsMap = new HashMap<String, String>();
optionsMap.put("nonSelectedText", createStringResource("LoggingConfigPanel.appenders.Inherit").getString());
options.setObject(optionsMap);
ListMultipleChoicePanel panel = new ListMultipleChoicePanel<>(componentId, new PropertyModel<List<String>>(model, getPropertyExpression()), createNewLoggerAppendersListModel(), new StringChoiceRenderer(null), options);
FormComponent<AppenderConfigurationType> input = panel.getBaseFormComponent();
input.add(new EmptyOnChangeAjaxFormUpdatingBehavior());
addAjaxFormComponentUpdatingBehavior(input);
return panel;
}
public void onClick(AjaxRequestTarget target, IModel<LoggerConfiguration> rowModel) {
loggerEditPerformed(target, rowModel);
}
});
return columns;
}
use of com.evolveum.midpoint.gui.api.model.LoadableModel in project midpoint by Evolveum.
the class PageAccounts method createTotalsModel.
private LoadableModel<Integer> createTotalsModel(final SynchronizationSituationType situation) {
return new LoadableModel<Integer>(false) {
@Override
protected Integer load() {
ObjectFilter resourceFilter = createResourceQueryFilter();
if (resourceFilter == null) {
return 0;
}
ObjectFilter filter = createObjectQuery().getFilter();
Collection<SelectorOptions<GetOperationOptions>> options = SelectorOptions.createCollection(GetOperationOptions.createRaw());
Task task = createSimpleTask(OPERATION_GET_TOTALS);
OperationResult result = new OperationResult(OPERATION_GET_TOTALS);
try {
ObjectFilter situationFilter = QueryBuilder.queryFor(ShadowType.class, getPrismContext()).item(ShadowType.F_SYNCHRONIZATION_SITUATION).eq(situation).buildFilter();
ObjectQuery query = ObjectQuery.createObjectQuery(AndFilter.createAnd(filter, situationFilter));
return getModelService().countObjects(ShadowType.class, query, options, task, result);
} catch (CommonException | RuntimeException ex) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't count shadows", ex);
}
return 0;
}
};
}
use of com.evolveum.midpoint.gui.api.model.LoadableModel in project midpoint by Evolveum.
the class PageAccounts method createFilesModel.
private LoadableModel<List<String>> createFilesModel() {
return new LoadableModel<List<String>>(false) {
@Override
protected List<String> load() {
String[] filesArray;
try {
MidpointConfiguration config = getMidpointConfiguration();
File exportFolder = new File(config.getMidpointHome() + "/export");
filesArray = exportFolder.list(new FilenameFilter() {
@Override
public boolean accept(java.io.File dir, String name) {
return name.endsWith("xml");
}
});
} catch (Exception ex) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't list files", ex);
getSession().error("Couldn't list files, reason: " + ex.getMessage());
throw new RestartResponseException(PageDashboard.class);
}
if (filesArray == null) {
return new ArrayList<>();
}
List<String> list = Arrays.asList(filesArray);
Collections.sort(list);
return list;
}
};
}
Aggregations