protected void shiftIfNecessary(long priority, ShortAdminRule keep) { boolean necessary = false; for (ShortAdminRule rule : rules) { if (rule.getPriority() == priority) { necessary = true; continue; } } if (necessary) { for (ShortAdminRule rule : rules) { if (rule.getPriority() >= priority && rule != keep) { rule.setPriority(rule.getPriority() + 1); } } adminService().shift(priority, 1); } }
protected void swap(ShortAdminRule rule, ShortAdminRule otherRule) { long p = otherRule.getPriority(); otherRule.setPriority(rule.getPriority()); rule.setPriority(p); adminService().swap(rule.getId(), otherRule.getId()); }
public void onDrop( AjaxRequestTarget target, Transfer transfer, Location location) { if (location == null || !(location.getComponent().getDefaultModel().getObject() instanceof ShortAdminRule)) { return; } ShortAdminRule movedRule = transfer.getData(); ShortAdminRule targetRule = (ShortAdminRule) location.getComponent().getDefaultModel().getObject(); if (movedRule.getId().equals(targetRule.getId())) { return; } if (movedRule.getPriority() < targetRule.getPriority()) { movedRule.setPriority(targetRule.getPriority() + 1); } else { movedRule.setPriority(targetRule.getPriority()); } rulesModel.save(movedRule); doReturn(GeofenceServerAdminPage.class); } }.dropCenter("tr"));
public void save(ShortAdminRule rule) { if (rule.getId() == null) { shiftIfNecessary(rule.getPriority(), rule); int i = 0; while (i < rules.size() && rules.get(i).getPriority() < rule.getPriority()) { i++; } rules.add(i, rule); AdminRule bigRule = new AdminRule(); syncRule(rule, bigRule); rule.setId(adminService().insert(bigRule)); } else { AdminRule bigRule = adminService().get(rule.getId()); if (bigRule.getPriority() != rule.getPriority()) { shiftIfNecessary(rule.getPriority(), rule); } syncRule(rule, bigRule); adminService().update(bigRule); } }
protected static void syncRule(ShortAdminRule shortRule, AdminRule rule) { rule.setPriority(shortRule.getPriority()); rule.setUsername(shortRule.getUserName()); rule.setRolename(shortRule.getRoleName()); rule.setWorkspace(shortRule.getWorkspace()); rule.setAccess(shortRule.getAccess()); } }