List of usage examples for org.apache.wicket.ajax AjaxRequestTarget prependJavaScript
void prependJavaScript(CharSequence javascript);
From source file:org.apache.directory.fortress.web.panel.RoleAdminDetailPanel.java
License:Apache License
private void addPermOUSearchModal() { final ModalWindow permousModalWindow; add(permousModalWindow = new ModalWindow("permoumodal")); final OUSearchModalPanel permouSearchModalPanel = new OUSearchModalPanel(permousModalWindow.getContentId(), permousModalWindow, false);/*from w w w .j ava 2 s . c o m*/ permousModalWindow.setContent(permouSearchModalPanel); permousModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public void onClose(AjaxRequestTarget target) { OrgUnit ou = permouSearchModalPanel.getSelection(); if (ou != null) { permouSelection = ou.getName(); AdminRole adminRole = (AdminRole) getDefaultModelObject(); adminRole.setOsP(permouSelection); target.add(permouCB); } } }); add(new AjaxButton(GlobalIds.PERMOU_SEARCH) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { String msg = "clicked on permission OU search"; msg += permouSelection != null ? ": " + permouSelection : ""; permouSearchModalPanel.setSearchVal(permouSelection); LOG.debug(msg); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); permousModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); permousModalWindow.setTitle("Perm Organization Selection Modal"); permousModalWindow.setInitialWidth(450); permousModalWindow.setInitialHeight(450); permousModalWindow.setCookieName("permou-modal"); add(new AjaxButton("permou.delete") { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { String msg = "clicked on permous.delete"; if (StringUtils.isNotEmpty(permouSelection)) { msg += " selection:" + permouSelection; AdminRole adminRole = (AdminRole) form.getModel().getObject(); if (adminRole.getOsPSet() != null) { adminRole.getOsPSet().remove(permouSelection); permous.remove(permouSelection); permouSelection = ""; target.add(permouCB); msg += ", was removed from local, commit to persist changes on server"; } else { msg += ", no action taken because org unit does not have parent set"; } } else { msg += ", no action taken because parents selection is empty"; } LOG.debug(msg); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); }
From source file:org.apache.directory.fortress.web.panel.RoleAdminDetailPanel.java
License:Apache License
private void addUserOUSearchModal() { final ModalWindow userousModalWindow; add(userousModalWindow = new ModalWindow("useroumodal")); final OUSearchModalPanel userouSearchModalPanel = new OUSearchModalPanel(userousModalWindow.getContentId(), userousModalWindow, true);//from w w w. j a v a 2 s.c o m userousModalWindow.setContent(userouSearchModalPanel); userousModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public void onClose(AjaxRequestTarget target) { OrgUnit ou = userouSearchModalPanel.getSelection(); if (ou != null) { userouSelection = ou.getName(); AdminRole adminRole = (AdminRole) getDefaultModelObject(); adminRole.setOsU(userouSelection); target.add(userouCB); } } }); add(new AjaxButton(GlobalIds.USEROU_SEARCH) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { String msg = "clicked on user OU search"; msg += userouSelection != null ? ": " + userouSelection : ""; userouSearchModalPanel.setSearchVal(userouSelection); LOG.debug(msg); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); userousModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); userousModalWindow.setTitle("User Organization Selection Modal"); userousModalWindow.setInitialWidth(450); userousModalWindow.setInitialHeight(450); userousModalWindow.setCookieName("permou-modal"); add(new AjaxButton("userou.delete") { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { String msg = "clicked on userous.delete"; if (StringUtils.isNotEmpty(userouSelection)) { msg += " selection:" + userouSelection; AdminRole adminRole = (AdminRole) form.getModel().getObject(); if (adminRole.getOsUSet() != null) { adminRole.getOsUSet().remove(userouSelection); userous.remove(userouSelection); userouSelection = ""; target.add(userouCB); msg += ", was removed from local, commit to persist changes on server"; } else { msg += ", no action taken because org unit does not have parent set"; } } else { msg += ", no action taken because parents selection is empty"; } LOG.debug(msg); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); }
From source file:org.apache.directory.fortress.web.panel.RoleAdminDetailPanel.java
License:Apache License
private void addBeginRoleSearchModal() { final ModalWindow beginRoleModalWindow; add(beginRoleModalWindow = new ModalWindow("beginrolesmodal")); final RoleSearchModalPanel beginRoleSearchModalPanel = new RoleSearchModalPanel( beginRoleModalWindow.getContentId(), beginRoleModalWindow, false); beginRoleModalWindow.setContent(beginRoleSearchModalPanel); beginRoleModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override//from w w w . j a v a 2 s. co m public void onClose(AjaxRequestTarget target) { UserRole userRole = beginRoleSearchModalPanel.getRoleSelection(); if (userRole != null) { AdminRole adminRole = (AdminRole) getDefaultModelObject(); adminRole.setBeginRange(userRole.getName()); target.add(beginRangeTF); } } }); add(new AjaxButton(GlobalIds.BEGIN_RANGE_SEARCH) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { AdminRole adminRole = (AdminRole) form.getModel().getObject(); beginRoleSearchModalPanel.setRoleSearchVal(adminRole.getBeginRange()); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); beginRoleModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); beginRoleModalWindow.setTitle("Begin Range Role Selection Modal"); beginRoleModalWindow.setInitialWidth(700); beginRoleModalWindow.setInitialHeight(450); beginRoleModalWindow.setCookieName(ROLE_ASSIGN_MODAL); }
From source file:org.apache.directory.fortress.web.panel.RoleAdminDetailPanel.java
License:Apache License
private void addEndRoleSearchModal() { final ModalWindow endRoleModalWindow; add(endRoleModalWindow = new ModalWindow("endrolesmodal")); final RoleSearchModalPanel endRoleSearchModalPanel = new RoleSearchModalPanel( endRoleModalWindow.getContentId(), endRoleModalWindow, false); endRoleModalWindow.setContent(endRoleSearchModalPanel); endRoleModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override//w w w . jav a2s . c o m public void onClose(AjaxRequestTarget target) { UserRole userRole = endRoleSearchModalPanel.getRoleSelection(); if (userRole != null) { AdminRole adminRole = (AdminRole) getDefaultModelObject(); adminRole.setEndRange(userRole.getName()); target.add(endRangeTF); } } }); add(new AjaxButton(GlobalIds.END_RANGE_SEARCH) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { AdminRole adminRole = (AdminRole) form.getModel().getObject(); endRoleSearchModalPanel.setRoleSearchVal(adminRole.getBeginRange()); endRoleSearchModalPanel.setParentSearch(true); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); endRoleModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); endRoleModalWindow.setTitle("End Range Role Selection Modal"); endRoleModalWindow.setInitialWidth(700); endRoleModalWindow.setInitialHeight(450); endRoleModalWindow.setCookieName(ROLE_ASSIGN_MODAL); }
From source file:org.apache.directory.fortress.web.panel.SDListPanel.java
License:Apache License
private void addRoleSearchModal(Radio roleRb) { final ModalWindow rolesModalWindow; listForm.add(rolesModalWindow = new ModalWindow("rolesearchmodal")); final RoleSearchModalPanel roleSearchModalPanel = new RoleSearchModalPanel(rolesModalWindow.getContentId(), rolesModalWindow, false);/*from ww w .ja va 2 s. c o m*/ rolesModalWindow.setContent(roleSearchModalPanel); rolesModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public void onClose(AjaxRequestTarget target) { UserRole roleConstraint = roleSearchModalPanel.getRoleSelection(); if (roleConstraint != null) { log.debug("modal selected:" + roleConstraint.getName()); searchVal = roleConstraint.getName(); selectedRadioButton = ROLES; target.add(radioGroup); } } }); roleRb.add(new SecureIndicatingAjaxLink("roleAssignLinkLbl", GlobalIds.REVIEW_MGR, "findRoles") { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { String msg = "clicked on roles search"; msg += "roleSelection: " + searchVal; roleSearchModalPanel.setRoleSearchVal(searchVal); log.debug(msg); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); rolesModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); rolesModalWindow.setTitle("Role Search Modal"); rolesModalWindow.setInitialWidth(700); rolesModalWindow.setInitialHeight(450); rolesModalWindow.setCookieName("role-assign-modal"); }
From source file:org.apache.directory.fortress.web.panel.UserListPanel.java
License:Apache License
private void addRoleSearchModal(Radio roleRb) { final ModalWindow rolesModalWindow; userformsearchfields.add(rolesModalWindow = new ModalWindow("rolesearchmodal")); final RoleSearchModalPanel roleSearchModalPanel = new RoleSearchModalPanel(rolesModalWindow.getContentId(), rolesModalWindow, false);//from w w w . j av a2s . co m rolesModalWindow.setContent(roleSearchModalPanel); rolesModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public void onClose(AjaxRequestTarget target) { UserRole roleConstraint = roleSearchModalPanel.getRoleSelection(); if (roleConstraint != null) { LOG.debug("modal selected:" + roleConstraint.getName()); searchData.setField1(roleConstraint.getName()); selectedRadioButton = ROLES; enableRoleSearch(); target.add(searchFields); target.add(radioGroup); } } }); roleRb.add(new SecureIndicatingAjaxLink("roleAssignLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_ROLES) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { roleSearchModalPanel.setRoleSearchVal(searchData.getField1()); roleSearchModalPanel.setAdmin(false); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); rolesModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); rolesModalWindow.setTitle("RBAC Role Search Modal"); rolesModalWindow.setInitialWidth(700); rolesModalWindow.setInitialHeight(450); rolesModalWindow.setCookieName("role-assign-modal"); }
From source file:org.apache.directory.fortress.web.panel.UserListPanel.java
License:Apache License
private void addAdminRoleSearchModal(Radio adminRoleRb) { final ModalWindow adminRolesModalWindow; userformsearchfields.add(adminRolesModalWindow = new ModalWindow("adminrolesearchmodal")); final RoleSearchModalPanel adminRoleSearchModalPanel = new RoleSearchModalPanel( adminRolesModalWindow.getContentId(), adminRolesModalWindow, true); adminRolesModalWindow.setContent(adminRoleSearchModalPanel); adminRolesModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override//from ww w .ja v a 2s. com public void onClose(AjaxRequestTarget target) { UserRole roleConstraint = adminRoleSearchModalPanel.getRoleSelection(); if (roleConstraint != null) { searchData.setField1(roleConstraint.getName()); selectedRadioButton = ADMIN_ROLES; enableAdminSearch(); target.add(searchFields); target.add(radioGroup); } } }); adminRoleRb.add(new SecureIndicatingAjaxLink("adminRoleAssignLinkLbl", GlobalIds.DEL_REVIEW_MGR, GlobalIds.FIND_ROLES) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { String msg = "clicked on admin roles search"; msg += "adminRoleSelection: " + searchData.getField1(); adminRoleSearchModalPanel.setRoleSearchVal(searchData.getField1()); adminRoleSearchModalPanel.setAdmin(true); LOG.debug(msg); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); adminRolesModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); adminRolesModalWindow.setTitle("Admin Role Search Modal"); adminRolesModalWindow.setInitialWidth(700); adminRolesModalWindow.setInitialHeight(450); adminRolesModalWindow.setCookieName("role-assign-modal"); }
From source file:org.apache.directory.fortress.web.panel.UserListPanel.java
License:Apache License
private void addOUSearchModal(Radio ouRb) { final ModalWindow ousModalWindow; userformsearchfields.add(ousModalWindow = new ModalWindow("ousearchmodal")); final OUSearchModalPanel ouSearchModalPanel = new OUSearchModalPanel(ousModalWindow.getContentId(), ousModalWindow, true);//w w w . j a v a 2 s . c om ousModalWindow.setContent(ouSearchModalPanel); ousModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public void onClose(AjaxRequestTarget target) { OrgUnit ou = ouSearchModalPanel.getSelection(); if (ou != null) { searchData.setField1(ou.getName()); } selectedRadioButton = OUS; enableOuSearch(); target.add(searchFields); target.add(radioGroup); } }); ouRb.add(new SecureIndicatingAjaxLink("ouAssignLinkLbl", GlobalIds.DEL_REVIEW_MGR, "searchOU") { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { ouSearchModalPanel.setSearchVal(searchData.getField1()); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); ousModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); ousModalWindow.setTitle("User Organizational Unit Search Modal"); ousModalWindow.setInitialWidth(450); ousModalWindow.setInitialHeight(450); ousModalWindow.setCookieName("userou-modal"); }
From source file:org.apache.directory.fortress.web.panel.UserListPanel.java
License:Apache License
private void addPermSearchModal(Radio permRb) { final ModalWindow permsModalWindow; userformsearchfields.add(permsModalWindow = new ModalWindow("permsearchmodal")); final PermSearchModalPanel permSearchModalPanel = new PermSearchModalPanel(permsModalWindow.getContentId(), permsModalWindow, false);//from w ww . ja v a 2 s. co m permsModalWindow.setContent(permSearchModalPanel); permsModalWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public void onClose(AjaxRequestTarget target) { Permission permSelection = permSearchModalPanel.getSelection(); if (permSelection != null) { searchData.setField1(permSelection.getObjName()); searchData.setField2(permSelection.getOpName()); } selectedRadioButton = PERMS; enablePermSearch(); target.add(searchFields); target.add(radioGroup); } }); permRb.add(new SecureIndicatingAjaxLink("permLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_PERMISSIONS) { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; public void onClick(AjaxRequestTarget target) { String msg = "clicked on perms search"; msg += "permSelection: " + permission; String objectSearchVal = ""; if (StringUtils.isNotEmpty(searchData.getField1())) { objectSearchVal = searchData.getField1(); } permSearchModalPanel.setSearchVal(objectSearchVal); LOG.debug(msg); target.prependJavaScript(GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE); permsModalWindow.show(target); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener() { /** Default serialVersionUID */ private static final long serialVersionUID = 1L; @Override public CharSequence getFailureHandler(Component component) { return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; } }; attributes.getAjaxCallListeners().add(ajaxCallListener); } }); permsModalWindow.setTitle("Permission Search Modal"); permsModalWindow.setInitialWidth(650); permsModalWindow.setInitialHeight(450); permsModalWindow.setCookieName("perm-search-modal"); }
From source file:org.apache.syncope.client.console.pages.LogViewer.java
License:Apache License
public LogViewer() { final WebMarkupContainer viewer = new WebMarkupContainer("viewer"); viewer.setOutputMarkupId(true);/* w w w . j a v a 2 s . c o m*/ add(viewer); final AjaxDropDownChoicePanel<String> appenders = new AjaxDropDownChoicePanel<>("appenders", "Appender", new Model<String>(), false); MetaDataRoleAuthorizationStrategy.authorize(appenders, ENABLE, StandardEntitlement.LOG_READ); appenders.setChoices(restClient.listMemoryAppenders()); viewer.add(appenders); final WebMarkupContainer stContainer = new WebMarkupContainer("stContainer"); stContainer.setOutputMarkupId(true); viewer.add(stContainer); final Model<Long> lastTimeInMillis = Model.of(0L); final IModel<List<LogStatementTO>> statementViewModel = new ListModel<>(new ArrayList<LogStatementTO>()); final ListView<LogStatementTO> statementView = new ListView<LogStatementTO>("statements", statementViewModel) { private static final long serialVersionUID = -9180479401817023838L; @Override protected void populateItem(final ListItem<LogStatementTO> item) { LogStatementPanel panel = new LogStatementPanel("statement", item.getModelObject()); panel.setOutputMarkupId(true); item.add(panel); } }; statementView.setOutputMarkupId(true); stContainer.add(statementView); stContainer.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(10)) { private static final long serialVersionUID = 7298597675929755960L; @Override protected void onPostProcessTarget(final AjaxRequestTarget target) { // save scroll position target.prependJavaScript( String.format("window.scrollTop = $('#%s').scrollTop();", stContainer.getMarkupId())); List<LogStatementTO> recentLogStatements = appenders.getModelObject() == null ? new ArrayList<LogStatementTO>() : restClient.getLastLogStatements(appenders.getModelObject(), lastTimeInMillis.getObject()); if (!recentLogStatements.isEmpty()) { lastTimeInMillis .setObject(recentLogStatements.get(recentLogStatements.size() - 1).getTimeMillis()); int currentSize = statementView.getModelObject().size(); int recentSize = recentLogStatements.size(); List<LogStatementTO> newModelObject = SetUniqueList.<LogStatementTO>setUniqueList( new ArrayList<LogStatementTO>(MAX_STATEMENTS_PER_APPENDER)); if (currentSize <= MAX_STATEMENTS_PER_APPENDER - recentSize) { newModelObject.addAll(statementView.getModelObject()); } else { newModelObject.addAll(statementView.getModelObject() .subList(currentSize - (MAX_STATEMENTS_PER_APPENDER - recentSize), currentSize)); } newModelObject.addAll(recentLogStatements); statementViewModel.setObject(newModelObject); target.add(stContainer); } // restore scroll position - might not work perfectly if items were removed from the top target.appendJavaScript( String.format("$('#%s').scrollTop(window.scrollTop);", stContainer.getMarkupId())); } }); appenders.getField().add(new AjaxFormComponentUpdatingBehavior(Constants.ON_CHANGE) { private static final long serialVersionUID = -1107858522700306810L; @Override protected void onUpdate(final AjaxRequestTarget target) { List<LogStatementTO> lastStatements = appenders.getModelObject() == null ? new ArrayList<LogStatementTO>() : restClient.getLastLogStatements(appenders.getModelObject(), 0); statementViewModel.setObject(lastStatements); target.add(stContainer); lastTimeInMillis.setObject(0L); } }); }