@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);
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", "read");
panel.add(new ActionLink() {
private static final long serialVersionUID = -3722207913631435501L;
@Override
public void onClick(final AjaxRequestTarget target) {
try {
connectorRestClient.delete(connectorTO.getId());
info(getString("operation_succeded"));
} catch (SyncopeClientCompositeErrorException e) {
error(getString("operation_error"));
LOG.error("While deleting connector " + connectorTO.getId(), e);
}
target.add(connectorContainer);
target.add(feedbackPanel);
}
}, ActionLink.ActionType.DELETE, "Connectors", "delete");
cellItem.add(panel);
}
});
final AjaxFallbackDefaultDataTable table = new AjaxFallbackDefaultDataTable("connectorDatatable", columns,
new ConnectorsProvider(), connectorPaginatorRows);
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 IndicatingAjaxLink("createConnectorLink") {
private static final long serialVersionUID = -7978723352517770644L;
@Override
public void onClick(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);