List of usage examples for org.apache.commons.lang3.tuple Pair getKey
@Override public final L getKey()
Gets the key from this pair.
This method implements the Map.Entry interface returning the left element as the key.
From source file:org.apache.samza.sql.serializers.TestSamzaSqlRelRecordSerde.java
@Test public void testNestedRecordConversion() { Map<String, String> props = new HashMap<>(); SystemStream ss1 = new SystemStream("test", "nestedRecord"); props.put(String.format(ConfigBasedAvroRelSchemaProviderFactory.CFG_SOURCE_SCHEMA, ss1.getSystem(), ss1.getStream()), Profile.SCHEMA$.toString()); ConfigBasedAvroRelSchemaProviderFactory factory = new ConfigBasedAvroRelSchemaProviderFactory(); AvroRelSchemaProvider nestedRecordSchemaProvider = (AvroRelSchemaProvider) factory.create(ss1, new MapConfig(props)); AvroRelConverter nestedRecordAvroRelConverter = new AvroRelConverter(ss1, nestedRecordSchemaProvider, new MapConfig()); Pair<SamzaSqlRelMessage, GenericData.Record> messageRecordPair = TestSamzaSqlRelMessageSerde .createNestedSamzaSqlRelMessage(nestedRecordAvroRelConverter); SamzaSqlRelRecordSerdeFactory.SamzaSqlRelRecordSerde serde = (SamzaSqlRelRecordSerdeFactory.SamzaSqlRelRecordSerde) new SamzaSqlRelRecordSerdeFactory() .getSerde(null, null);/*from www . j a v a 2 s .c om*/ SamzaSqlRelRecord resultRecord = serde .fromBytes(serde.toBytes(messageRecordPair.getKey().getSamzaSqlRelRecord())); GenericData.Record recordPostConversion = (GenericData.Record) nestedRecordAvroRelConverter .convertToAvroObject(resultRecord, Profile.SCHEMA$); for (Schema.Field field : Profile.SCHEMA$.getFields()) { // equals() on GenericRecord does the nested record equality check as well. Assert.assertEquals(messageRecordPair.getValue().get(field.name()), recordPostConversion.get(field.name())); } }
From source file:org.apache.syncope.client.cli.commands.configuration.ConfigurationUpdate.java
public void update() { if (input.parameterNumber() >= 1) { List<AttrTO> attrList = new ArrayList<>(); boolean failed = false; for (String parameter : input.getParameters()) { Pair<String, String> pairParameter = Input.toPairParameter(parameter); try { AttrTO attrTO = configurationSyncopeOperations.get(pairParameter.getKey()); attrTO.getValues().clear(); attrTO.getValues().add(pairParameter.getValue()); configurationSyncopeOperations.set(attrTO); attrList.add(attrTO);/*from ww w .j a v a2 s. c o m*/ } catch (IllegalArgumentException ex) { LOG.error("Error updating configuration", ex); configurationResultManager.genericError(ex.getMessage()); configurationResultManager.genericError(UPDATE_HELP_MESSAGE); failed = true; break; } catch (SyncopeClientException | WebServiceException ex) { LOG.error("Error updating configuration", ex); if (ex.getMessage().startsWith("NotFound")) { configurationResultManager.notFoundError("Configuration", pairParameter.getKey()); } else if (ex.getMessage().startsWith("InvalidValues")) { configurationResultManager.genericError( pairParameter.getValue() + " is not a valid value for " + pairParameter.getKey()); } else { configurationResultManager.genericError(ex.getMessage()); } failed = true; break; } } if (!failed) { configurationResultManager.fromUpdate(attrList); } } else { configurationResultManager.commandOptionError(UPDATE_HELP_MESSAGE); } }
From source file:org.apache.syncope.client.cli.commands.logger.LoggerCreate.java
public void create() { if (input.parameterNumber() >= 1) { final List<LoggerTO> loggerTOs = new ArrayList<>(); boolean failed = false; for (String parameter : input.getParameters()) { LoggerTO loggerTO = new LoggerTO(); Pair<String, String> pairParameter = Input.toPairParameter(parameter); try { loggerTO.setKey(pairParameter.getKey()); loggerTO.setLevel(LoggerLevel.valueOf(pairParameter.getValue())); loggerSyncopeOperations.update(loggerTO); loggerTOs.add(loggerTO); } catch (WebServiceException | SyncopeClientException | IllegalArgumentException ex) { LOG.error("Error creating logger", ex); loggerResultManager.typeNotValidError("logger level", input.firstParameter(), CommandUtils.fromEnumToArray(LoggerLevel.class)); failed = true;// w w w . j a va 2 s . c o m break; } } if (!failed) { loggerResultManager.fromUpdate(loggerTOs); } } else { loggerResultManager.commandOptionError(CREATE_HELP_MESSAGE); } }
From source file:org.apache.syncope.client.cli.commands.logger.LoggerUpdate.java
public void update() { if (input.parameterNumber() >= 1) { final List<LoggerTO> loggerTOs = new ArrayList<>(); boolean failed = false; for (String parameter : input.getParameters()) { Pair<String, String> pairParameter = Input.toPairParameter(parameter); try { LoggerTO loggerTO = loggerSyncopeOperations.read(pairParameter.getKey()); loggerTO.setLevel(LoggerLevel.valueOf(pairParameter.getValue())); loggerSyncopeOperations.update(loggerTO); loggerTOs.add(loggerTO); } catch (WebServiceException | SyncopeClientException | IllegalArgumentException ex) { LOG.error("Error updating logger", ex); if (ex.getMessage().startsWith("No enum constant org.apache.syncope.common.lib.types.")) { loggerResultManager.typeNotValidError("logger level", input.firstParameter(), CommandUtils.fromEnumToArray(LoggerLevel.class)); } else if ("Parameter syntax error!".equalsIgnoreCase(ex.getMessage())) { loggerResultManager.genericError(ex.getMessage()); loggerResultManager.genericError(UPDATE_HELP_MESSAGE); } else if (ex.getMessage().startsWith("NotFound")) { loggerResultManager.notFoundError("Logger", parameter); } else { loggerResultManager.genericError(ex.getMessage()); loggerResultManager.genericError(UPDATE_HELP_MESSAGE); }//from www . ja v a 2 s . c o m failed = true; break; } } if (!failed) { loggerResultManager.fromUpdate(loggerTOs); } } else { loggerResultManager.commandOptionError(UPDATE_HELP_MESSAGE); } }
From source file:org.apache.syncope.client.cli.commands.user.UserDeleteByAttribute.java
public void delete() { if (input.parameterNumber() == 2) { String realm = input.firstParameter(); Pair<String, String> pairParameter = Input.toPairParameter(input.secondParameter()); try {// w ww . j av a 2 s . com if (!realmSyncopeOperations.exists(realm)) { userResultManager.notFoundError("Realm", realm); return; } Map<String, BulkActionResult.Status> results = userSyncopeOperations.deleteByAttribute(realm, pairParameter.getKey(), pairParameter.getValue()); Map<String, String> failedUsers = new HashMap<>(); int deletedUsers = 0; for (final Map.Entry<String, BulkActionResult.Status> entrySet : results.entrySet()) { String userId = entrySet.getKey(); BulkActionResult.Status status = entrySet.getValue(); if (BulkActionResult.Status.SUCCESS == status) { deletedUsers++; } else { failedUsers.put(userId, status.name()); } } userResultManager.genericMessage("Deleted users: " + deletedUsers); if (!failedUsers.isEmpty()) { userResultManager.printFailedUsers(failedUsers); } } catch (WebServiceException | SyncopeClientException ex) { LOG.error("Error searching user", ex); if (ex.getMessage().startsWith("NotFound")) { userResultManager.notFoundError("User with " + pairParameter.getKey(), pairParameter.getValue()); } else { userResultManager.genericError(ex.getMessage()); } } catch (IllegalArgumentException ex) { LOG.error("Error searching user", ex); userResultManager.genericError(ex.getMessage()); userResultManager.genericError(SEARCH_HELP_MESSAGE); } } else { userResultManager.commandOptionError(SEARCH_HELP_MESSAGE); } }
From source file:org.apache.syncope.client.cli.commands.user.UserSearchByAttribute.java
public void search() { if (input.parameterNumber() == 2) { String realm = input.firstParameter(); Pair<String, String> pairParameter = Input.toPairParameter(input.secondParameter()); try {/*from w w w .ja v a 2 s . c om*/ if (!realmSyncopeOperations.exists(realm)) { userResultManager.genericMessage( "Operation performed on root realm because " + realm + " does not exists"); } List<UserTO> userTOs = userSyncopeOperations.searchByAttribute(realm, pairParameter.getKey(), pairParameter.getValue()); if (userTOs.isEmpty()) { userResultManager.genericMessage("No users found with attribute " + pairParameter.getKey() + " and value " + pairParameter.getValue()); } else { userResultManager.printUsers(userTOs); } } catch (WebServiceException | SyncopeClientException ex) { LOG.error("Error searching user", ex); if (ex.getMessage().startsWith("NotFound")) { userResultManager.notFoundError("User with " + pairParameter.getKey(), pairParameter.getValue()); } else { userResultManager.genericError(ex.getMessage()); } } catch (IllegalArgumentException ex) { LOG.error("Error searching user", ex); userResultManager.genericError(ex.getMessage()); userResultManager.genericError(SEARCH_HELP_MESSAGE); } } else { userResultManager.commandOptionError(SEARCH_HELP_MESSAGE); } }
From source file:org.apache.syncope.client.console.events.EventCategoryPanel.java
public EventCategoryPanel(final String id, final List<EventCategoryTO> eventCategoryTOs, final IModel<List<String>> model) { super(id);//from w ww .j a v a2 s . c om this.model = model; selectedEventsPanel = new SelectedEventsPanel("selectedEventsPanel", model); add(selectedEventsPanel); this.eventCategoryTOs = eventCategoryTOs; categoryContainer = new WebMarkupContainer("categoryContainer"); categoryContainer.setOutputMarkupId(true); add(categoryContainer); eventsContainer = new WebMarkupContainer("eventsContainer"); eventsContainer.setOutputMarkupId(true); add(eventsContainer); authorizeList(); authorizeChanges(); type = new AjaxDropDownChoicePanel<>("type", "type", new PropertyModel<>(eventCategoryTO, "type"), false); type.setChoices(Arrays.asList(EventCategoryType.values())); type.setStyleSheet("ui-widget-content ui-corner-all"); type.setChoiceRenderer(new IChoiceRenderer<EventCategoryType>() { private static final long serialVersionUID = 2317134950949778735L; @Override public String getDisplayValue(final EventCategoryType eventCategoryType) { return eventCategoryType.name(); } @Override public String getIdValue(final EventCategoryType eventCategoryType, final int i) { return eventCategoryType.name(); } @Override public EventCategoryType getObject(final String id, final IModel<? extends List<? extends EventCategoryType>> choices) { return choices.getObject().stream().filter(object -> object.name().equals(id)).findAny() .orElse(null); } }); categoryContainer.add(type); type.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306810L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(EventCategoryPanel.this, Broadcast.EXACT, new ChangeCategoryEvent(target, type)); } }); category = new AjaxDropDownChoicePanel<>("category", "category", new PropertyModel<>(eventCategoryTO, "category"), false); category.setChoices(filter(eventCategoryTOs, type.getModelObject())); categoryContainer.add(category); category.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306811L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(EventCategoryPanel.this, Broadcast.EXACT, new ChangeCategoryEvent(target, category)); } }); subcategory = new AjaxDropDownChoicePanel<>("subcategory", "subcategory", new PropertyModel<>(eventCategoryTO, "subcategory"), false); subcategory.setChoices(filter(eventCategoryTOs, type.getModelObject(), category.getModelObject())); categoryContainer.add(subcategory); subcategory.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306812L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(EventCategoryPanel.this, Broadcast.EXACT, new ChangeCategoryEvent(target, subcategory)); } }); categoryContainer.add(new Label("customLabel", new ResourceModel("custom", "custom")).setVisible(false)); custom = new AjaxTextFieldPanel("custom", "custom", new Model<>(null)); custom.setVisible(false); custom.setEnabled(false); categoryContainer.add(custom.hideLabel()); actionsPanel = new ActionsPanel<>("customActions", null); actionsPanel.add(new ActionLink<EventCategoryTO>() { private static final long serialVersionUID = -3722207913631435501L; @Override public void onClick(final AjaxRequestTarget target, final EventCategoryTO ignore) { if (StringUtils.isNotBlank(custom.getModelObject())) { Pair<EventCategoryTO, AuditElements.Result> parsed = AuditLoggerName .parseEventCategory(custom.getModelObject()); String eventString = AuditLoggerName.buildEvent(parsed.getKey().getType(), null, null, parsed.getKey().getEvents().isEmpty() ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(), parsed.getValue()); custom.setModelObject(StringUtils.EMPTY); send(EventCategoryPanel.this.getPage(), Broadcast.BREADTH, new EventSelectionChanged(target, Collections.<String>singleton(eventString), Collections.<String>emptySet())); target.add(categoryContainer); } } }, ActionLink.ActionType.CREATE, StringUtils.EMPTY).hideLabel(); actionsPanel.add(new ActionLink<EventCategoryTO>() { private static final long serialVersionUID = -3722207913631435521L; @Override public void onClick(final AjaxRequestTarget target, final EventCategoryTO ignore) { if (StringUtils.isNotBlank(custom.getModelObject())) { Pair<EventCategoryTO, AuditElements.Result> parsed = AuditLoggerName .parseEventCategory(custom.getModelObject()); String eventString = AuditLoggerName.buildEvent(parsed.getKey().getType(), null, null, parsed.getKey().getEvents().isEmpty() ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(), parsed.getValue()); custom.setModelObject(StringUtils.EMPTY); send(EventCategoryPanel.this.getPage(), Broadcast.BREADTH, new EventSelectionChanged(target, Collections.<String>emptySet(), Collections.<String>singleton(eventString))); target.add(categoryContainer); } } }, ActionLink.ActionType.DELETE, StringUtils.EMPTY, true).hideLabel(); categoryContainer.add(actionsPanel); actionsPanel.setVisible(false); actionsPanel.setEnabled(false); actionsPanel.setMarkupId("inline-actions"); eventsContainer.add(new EventSelectionPanel("eventsPanel", eventCategoryTO, model) { private static final long serialVersionUID = 3513194801190026082L; @Override protected void onEventAction(final IEvent<?> event) { EventCategoryPanel.this.onEventAction(event); } }); }
From source file:org.apache.syncope.client.console.pages.Audit.java
public Audit(final PageParameters parameters) { super(parameters); body.add(BookmarkablePageLinkBuilder.build("dashboard", "dashboardBr", Dashboard.class)); final LoggerRestClient loggerRestClient = new LoggerRestClient(); List<String> events = loggerRestClient.listAudits().stream() .map(audit -> AuditLoggerName.buildEvent(audit.getType(), audit.getCategory(), audit.getSubcategory(), audit.getEvent(), audit.getResult())) .collect(Collectors.toList()); WebMarkupContainer content = new WebMarkupContainer("content"); content.setOutputMarkupId(true);//w ww .j av a 2 s . c om Form<?> form = new Form<>("auditForm"); content.add(form); form.add(new EventCategoryPanel("auditPanel", loggerRestClient.listEvents(), new ListModel<>(events)) { private static final long serialVersionUID = 6113164334533550277L; @Override protected List<String> getListAuthRoles() { return Collections.singletonList(StandardEntitlement.AUDIT_LIST); } @Override protected List<String> getChangeAuthRoles() { return Arrays.asList( new String[] { StandardEntitlement.AUDIT_ENABLE, StandardEntitlement.AUDIT_DISABLE }); } @Override public void onEventAction(final IEvent<?> event) { if (event.getPayload() instanceof SelectedEventsPanel.EventSelectionChanged) { final SelectedEventsPanel.EventSelectionChanged eventSelectionChanged = (SelectedEventsPanel.EventSelectionChanged) event .getPayload(); eventSelectionChanged.getToBeRemoved().forEach(toBeRemoved -> { Pair<EventCategoryTO, AuditElements.Result> eventCategory = AuditLoggerName .parseEventCategory(toBeRemoved); AuditLoggerName auditLoggerName = new AuditLoggerName(eventCategory.getKey().getType(), eventCategory.getKey().getCategory(), eventCategory.getKey().getSubcategory(), CollectionUtils.isEmpty(eventCategory.getKey().getEvents()) ? null : eventCategory.getKey().getEvents().iterator().next(), eventCategory.getValue()); loggerRestClient.disableAudit(auditLoggerName); }); eventSelectionChanged.getToBeAdded().forEach(toBeAdded -> { Pair<EventCategoryTO, AuditElements.Result> eventCategory = AuditLoggerName .parseEventCategory(toBeAdded); AuditLoggerName auditLoggerName = new AuditLoggerName(eventCategory.getKey().getType(), eventCategory.getKey().getCategory(), eventCategory.getKey().getSubcategory(), CollectionUtils.isEmpty(eventCategory.getKey().getEvents()) ? null : eventCategory.getKey().getEvents().iterator().next(), eventCategory.getValue()); loggerRestClient.enableAudit(auditLoggerName); }); } } }); body.add(content); }
From source file:org.apache.syncope.client.console.pages.Reports.java
@SuppressWarnings("rawtypes") private void setupAudit() { auditContainer = new WebMarkupContainer("auditContainer"); auditContainer.setOutputMarkupId(true); add(auditContainer);//from w w w .j av a 2 s .c o m MetaDataRoleAuthorizationStrategy.authorize(auditContainer, RENDER, xmlRolesReader.getEntitlement("Audit", "list")); final Form form = new Form("auditForm"); auditContainer.add(form); final List<String> events = new ArrayList<>(); final List<AuditLoggerName> audits = loggerRestClient.listAudits(); for (AuditLoggerName audit : audits) { events.add(AuditLoggerName.buildEvent(audit.getType(), audit.getCategory(), audit.getSubcategory(), audit.getEvent(), audit.getResult())); } final ListModel<String> model = new ListModel<>(new ArrayList<>(events)); form.add(new LoggerCategoryPanel("events", loggerRestClient.listEvents(), model, getPageReference(), "Reports") { private static final long serialVersionUID = 6113164334533550277L; @Override protected String[] getListRoles() { return new String[] { xmlRolesReader.getEntitlement("Audit", "list") }; } @Override protected String[] getChangeRoles() { return new String[] { xmlRolesReader.getEntitlement("Audit", "enable"), xmlRolesReader.getEntitlement("Audit", "disable") }; } @Override public void onEventAction(final IEvent<?> event) { if (event.getPayload() instanceof SelectedEventsPanel.EventSelectionChanged) { final SelectedEventsPanel.EventSelectionChanged eventSelectionChanged = (SelectedEventsPanel.EventSelectionChanged) event .getPayload(); for (String toBeRemoved : eventSelectionChanged.getToBeRemoved()) { if (events.contains(toBeRemoved)) { Pair<EventCategoryTO, Result> eventCategory = AuditLoggerName .parseEventCategory(toBeRemoved); final AuditLoggerName auditLoggerName = new AuditLoggerName( eventCategory.getKey().getType(), eventCategory.getKey().getCategory(), eventCategory.getKey().getSubcategory(), CollectionUtils.isEmpty(eventCategory.getKey().getEvents()) ? null : eventCategory.getKey().getEvents().iterator().next(), eventCategory.getValue()); loggerRestClient.disableAudit(auditLoggerName); events.remove(toBeRemoved); } } for (String toBeAdded : eventSelectionChanged.getToBeAdded()) { if (!events.contains(toBeAdded)) { Pair<EventCategoryTO, Result> eventCategory = AuditLoggerName .parseEventCategory(toBeAdded); final AuditLoggerName auditLoggerName = new AuditLoggerName( eventCategory.getKey().getType(), eventCategory.getKey().getCategory(), eventCategory.getKey().getSubcategory(), CollectionUtils.isEmpty(eventCategory.getKey().getEvents()) ? null : eventCategory.getKey().getEvents().iterator().next(), eventCategory.getValue()); loggerRestClient.enableAudit(auditLoggerName); events.add(toBeAdded); } } } } }); }
From source file:org.apache.syncope.client.console.panels.LoggerCategoryPanel.java
public LoggerCategoryPanel(final String id, final List<EventCategoryTO> eventCategoryTOs, final IModel<List<String>> model, final PageReference pageReference, final String pageId) { super(id);/* w w w . ja v a 2s . c o m*/ this.model = model; selectedEventsPanel = new SelectedEventsPanel("selectedEventsPanel", model); add(selectedEventsPanel); this.eventCategoryTOs = eventCategoryTOs; categoryContainer = new WebMarkupContainer("categoryContainer"); categoryContainer.setOutputMarkupId(true); add(categoryContainer); eventsContainer = new WebMarkupContainer("eventsContainer"); eventsContainer.setOutputMarkupId(true); add(eventsContainer); authorizeList(); authorizeChanges(); categoryContainer.add(new Label("typeLabel", new ResourceModel("type", "type"))); type = new AjaxDropDownChoicePanel<EventCategoryType>("type", "type", new PropertyModel<EventCategoryType>(eventCategoryTO, "type"), false); type.setChoices(Arrays.asList(EventCategoryType.values())); type.setStyleSheet("ui-widget-content ui-corner-all"); type.setChoiceRenderer(new IChoiceRenderer<EventCategoryType>() { private static final long serialVersionUID = 2317134950949778735L; @Override public String getDisplayValue(final EventCategoryType eventCategoryType) { return eventCategoryType.name(); } @Override public String getIdValue(final EventCategoryType eventCategoryType, final int i) { return eventCategoryType.name(); } }); categoryContainer.add(type); type.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306810L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(LoggerCategoryPanel.this, Broadcast.EXACT, new ChangeCategoryEvent(target, type)); } }); categoryContainer.add(new Label("categoryLabel", new ResourceModel("category", "category"))); category = new AjaxDropDownChoicePanel<String>("category", "category", new PropertyModel<String>(eventCategoryTO, "category"), false); category.setChoices(filter(eventCategoryTOs, type.getModelObject())); category.setStyleSheet("ui-widget-content ui-corner-all"); categoryContainer.add(category); category.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306811L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(LoggerCategoryPanel.this, Broadcast.EXACT, new ChangeCategoryEvent(target, category)); } }); categoryContainer.add(new Label("subcategoryLabel", new ResourceModel("subcategory", "subcategory"))); subcategory = new AjaxDropDownChoicePanel<String>("subcategory", "subcategory", new PropertyModel<String>(eventCategoryTO, "subcategory"), false); subcategory.setChoices(filter(eventCategoryTOs, type.getModelObject(), category.getModelObject())); subcategory.setStyleSheet("ui-widget-content ui-corner-all"); categoryContainer.add(subcategory); subcategory.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306812L; @Override protected void onUpdate(final AjaxRequestTarget target) { send(LoggerCategoryPanel.this, Broadcast.EXACT, new ChangeCategoryEvent(target, subcategory)); } }); categoryContainer.add(new Label("customLabel", new ResourceModel("custom", "custom")).setVisible(false)); custom = new AjaxTextFieldPanel("custom", "custom", new Model<String>(null)); custom.setStyleSheet("ui-widget-content ui-corner-all short_fixedsize"); custom.setVisible(false); custom.setEnabled(false); categoryContainer.add(custom); actionPanel = new ActionLinksPanel("customActions", new Model(), pageReference); categoryContainer.add(actionPanel); actionPanel.add(new ActionLink() { private static final long serialVersionUID = -3722207913631435501L; @Override public void onClick(final AjaxRequestTarget target) { if (StringUtils.isNotBlank(custom.getModelObject())) { final Pair<EventCategoryTO, AuditElements.Result> parsed = AuditLoggerName .parseEventCategory(custom.getModelObject()); final String eventString = AuditLoggerName.buildEvent(parsed.getKey().getType(), null, null, parsed.getKey().getEvents().isEmpty() ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(), parsed.getValue()); custom.setModelObject(StringUtils.EMPTY); send(LoggerCategoryPanel.this.getPage(), Broadcast.BREADTH, new EventSelectionChanged(target, Collections.<String>singleton(eventString), Collections.<String>emptySet())); target.add(categoryContainer); } } }, ActionLink.ActionType.CREATE, pageId, true); actionPanel.add(new ActionLink() { private static final long serialVersionUID = -3722207913631435502L; @Override public void onClick(final AjaxRequestTarget target) { if (StringUtils.isNotBlank(custom.getModelObject())) { Pair<EventCategoryTO, AuditElements.Result> parsed = AuditLoggerName .parseEventCategory(custom.getModelObject()); String eventString = AuditLoggerName.buildEvent(parsed.getKey().getType(), null, null, parsed.getKey().getEvents().isEmpty() ? StringUtils.EMPTY : parsed.getKey().getEvents().iterator().next(), parsed.getValue()); custom.setModelObject(StringUtils.EMPTY); send(LoggerCategoryPanel.this.getPage(), Broadcast.BREADTH, new EventSelectionChanged(target, Collections.<String>emptySet(), Collections.<String>singleton(eventString))); target.add(categoryContainer); } } }, ActionLink.ActionType.DELETE, pageId, true); actionPanel.setVisible(false); actionPanel.setEnabled(false); eventsContainer.add(new EventSelectionPanel("eventsPanel", eventCategoryTO, model) { private static final long serialVersionUID = 3513194801190026082L; @Override protected void onEventAction(final IEvent<?> event) { LoggerCategoryPanel.this.onEventAction(event); } }); }