protected void shiftIfNecessary(long priority, ShortRule keep) { // detect if necessary boolean necessary = false; for (ShortRule rule : rules) { if (rule.getPriority() == priority) { necessary = true; continue; } } if (necessary) { // local for (ShortRule rule : rules) { if (rule.getPriority() >= priority && rule != keep) { rule.setPriority(rule.getPriority() + 1); } } // db adminService().shift(priority, 1); } }
protected void swap(ShortRule rule, ShortRule otherRule) { // local long p = otherRule.getPriority(); otherRule.setPriority(rule.getPriority()); rule.setPriority(p); // db adminService().swap(rule.getId(), otherRule.getId()); }
public void onDrop( AjaxRequestTarget target, Transfer transfer, Location location) { if (location == null || !(location.getComponent().getDefaultModel().getObject() instanceof ShortRule)) { return; } ShortRule movedRule = transfer.getData(); ShortRule targetRule = (ShortRule) 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(GeofenceServerPage.class); } }.dropCenter("tr"));
public void save(ShortRule rule) { if (rule.getId() == null) { shiftIfNecessary(rule.getPriority(), rule); // local int i = 0; while (i < rules.size() && rules.get(i).getPriority() < rule.getPriority()) { i++; } rules.add(i, rule); // db Rule bigRule = new Rule(); syncRule(rule, bigRule); rule.setId(adminService().insert(bigRule)); } else { // db Rule bigRule = adminService().get(rule.getId()); if (bigRule.getPriority() != rule.getPriority()) { shiftIfNecessary(rule.getPriority(), rule); } syncRule(rule, bigRule); adminService().update(bigRule); } }
protected static void syncRule(ShortRule shortRule, Rule rule) { rule.setPriority(shortRule.getPriority()); rule.setUsername(shortRule.getUserName()); rule.setRolename(shortRule.getRoleName()); rule.setService(shortRule.getService()); rule.setRequest(shortRule.getRequest()); rule.setWorkspace(shortRule.getWorkspace()); rule.setLayer(shortRule.getLayer()); rule.setAccess(shortRule.getAccess()); }
} catch (NotFoundServiceEx e) { if (logger.isErrorEnabled()) { logger.error("Details for rule " + shortRule.getPriority() + " not found on Server!"); + shortRule.getPriority() + " not found on Server!");
assertEquals(rule3, model.getItems().get(0)); assertEquals(0, rule3.getPriority()); assertEquals(1, rule2.getPriority()); assertEquals(2, rule1.getPriority()); assertEquals(rule2, model.getItems().get(2)); assertEquals(0, rule3.getPriority()); assertEquals(1, rule1.getPriority()); assertEquals(2, rule2.getPriority());