@Override
public void populateItem(final Item<ICellPopulator<ConnInstanceTO>> cellItem, final String componentId,
final IModel<ConnInstanceTO> model) {
final ConnInstanceTO connectorTO = model.getObject();
final ActionLinksPanel panel = new ActionLinksPanel(componentId, model, getPageReference());
panel.add(new ActionLink() {
private static final long serialVersionUID = -3722207913631435501L;
@Override
public void onClick(final AjaxRequestTarget target) {
editConnectorWin.setPageCreator(new ModalWindow.PageCreator() {
private static final long serialVersionUID = -7834632442532690940L;
@Override
public Page createPage() {
return new ConnectorModalPage(Resources.this.getPageReference(), editConnectorWin,
connectorTO);
}
});
editConnectorWin.show(target);
}
}, ActionLink.ActionType.EDIT, "Connectors");
panel.add(new ActionLink() {
private static final long serialVersionUID = -3722207913631435501L;
@Override
public void onClick(final AjaxRequestTarget target) {
try {
connectorRestClient.delete(connectorTO.getId());
info(getString(Constants.OPERATION_SUCCEEDED));
} catch (SyncopeClientCompositeErrorException e) {
error(getString(Constants.ERROR) + ":" + e.getMessage());
LOG.error("While deleting connector " + connectorTO.getId(), e);
}
target.add(connectorContainer);
target.add(feedbackPanel);
}
}, ActionLink.ActionType.DELETE, "Connectors");
cellItem.add(panel);
}
});
final AjaxDataTablePanel<ConnInstanceTO, String> table = new AjaxDataTablePanel<ConnInstanceTO, String>(
"connectorDatatable",
columns,
(ISortableDataProvider<ConnInstanceTO, String>) new ConnectorsProvider(),
connectorPaginatorRows,
Arrays.asList(new ActionLink.ActionType[] { ActionLink.ActionType.DELETE }),
connectorRestClient,
"id",
"Connectors",
getPageReference());
connectorContainer = new WebMarkupContainer("connectorContainer");
connectorContainer.add(table);
connectorContainer.setOutputMarkupId(true);
MetaDataRoleAuthorizationStrategy.authorize(connectorContainer, RENDER, xmlRolesReader.getAllAllowedRoles(
"Connectors", "list"));
add(connectorContainer);
setWindowClosedCallback(createConnectorWin, connectorContainer);
setWindowClosedCallback(editConnectorWin, connectorContainer);
createConnectorWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
createConnectorWin.setInitialHeight(WIN_HEIGHT);
createConnectorWin.setInitialWidth(WIN_WIDTH);
createConnectorWin.setCookieName("create-conn-modal");
editConnectorWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
editConnectorWin.setInitialHeight(WIN_HEIGHT);
editConnectorWin.setInitialWidth(WIN_WIDTH);
editConnectorWin.setCookieName("edit-conn-modal");
AjaxLink createConnectorLink = new ClearIndicatingAjaxLink("createConnectorLink", getPageReference()) {
private static final long serialVersionUID = -7978723352517770644L;
@Override
protected void onClickInternal(final AjaxRequestTarget target) {
createConnectorWin.setPageCreator(new ModalWindow.PageCreator() {
private static final long serialVersionUID = -7834632442532690940L;
@Override
public Page createPage() {
ConnectorModalPage form = new ConnectorModalPage(Resources.this.getPageReference(),
editConnectorWin, new ConnInstanceTO());
return form;
}
});
createConnectorWin.show(target);