@Override public NavTree createNavTree() { return new NavTreeImpl(); }
@Override public void moveItemFirst(String id) { changePosition(id, true, null); }
@Override public NavItem setItemDescription(String id, String description) { NavItem navItem = getItemById(id); if (navItem == null) { throw new RuntimeException("Item not found: " + id); } navItem.setDescription(description); return navItem; }
@Override public List<NavItem> searchItems(NavItemContext ctx) { return searchItems(ctx, getRootItems()); }
@Override public NavTree createNavTree(NavItem navItem) { if (navItem instanceof NavGroup) { NavGroup root = (NavGroup) navItem.cloneItem(); root.setParent(null); root.getChildren().forEach(e -> e.setParent(null)); return new NavTreeImpl(root); } else { NavItem i = navItem.cloneItem(); i.setParent(null); NavTreeImpl tree = new NavTreeImpl(); tree.getRootItems().add(i); return tree; } }
public void changePosition(String id, boolean up, Integer npositions) { NavItem navItem = getItemById(id); if (navItem == null) { throw new RuntimeException("Item not found: " + id); } NavGroup parent = navItem.getParent(); List<NavItem> itemList = parent != null ? parent.getChildren() : getRootItems(); int idx = itemList.indexOf(navItem); int newPos = npositions == null ? (up ? 0 : itemList.size()-1) : (up ? idx-npositions: idx+npositions); if ((up && newPos < 0) || (!up && newPos > itemList.size()-1)) { throw new RuntimeException("Item '" + id + "' position out of range (old=" + idx + ", new=" + newPos + ")"); } itemList.remove(idx); itemList.add(newPos, navItem); }
@Override public NavDivider addDivider(String parentId, boolean modifiable) { NavDivider newNavItem = NavFactory.get().createDivider(); newNavItem.setId(Integer.toString(newNavItem.hashCode())); newNavItem.setModifiable(modifiable); addItem(newNavItem, parentId); return newNavItem; }
public List<NavItem> searchItems(NavItemContext ctx, List<NavItem> navItemList) { List<NavItem> result = new ArrayList<>(); if (ctx == null) { return result; } NavItemContext niCtx = NavItemContext.create(); for (NavItem navItem : navItemList) { niCtx.init(navItem.getContext()); if (niCtx.includesPropertiesOf(ctx)) { result.add(navItem); } if (navItem instanceof NavGroup) { List<NavItem> children = searchItems(ctx, ((NavGroup) navItem).getChildren()); result.addAll(children); } } return result; }
@Override public List<NavItem> searchItems(NavItemContext ctx) { return searchItems(ctx, getRootItems()); }
@Override public NavTree createNavTree(NavItem navItem) { if (navItem instanceof NavGroup) { NavGroup root = (NavGroup) navItem.cloneItem(); root.setParent(null); root.getChildren().forEach(e -> e.setParent(null)); return new NavTreeImpl(root); } else { NavItem i = navItem.cloneItem(); i.setParent(null); NavTreeImpl tree = new NavTreeImpl(); tree.getRootItems().add(i); return tree; } }
public void changePosition(String id, boolean up, Integer npositions) { NavItem navItem = getItemById(id); if (navItem == null) { throw new RuntimeException("Item not found: " + id); } NavGroup parent = navItem.getParent(); List<NavItem> itemList = parent != null ? parent.getChildren() : getRootItems(); int idx = itemList.indexOf(navItem); int newPos = npositions == null ? (up ? 0 : itemList.size()-1) : (up ? idx-npositions: idx+npositions); if ((up && newPos < 0) || (!up && newPos > itemList.size()-1)) { throw new RuntimeException("Item '" + id + "' position out of range (old=" + idx + ", new=" + newPos + ")"); } itemList.remove(idx); itemList.add(newPos, navItem); }
@Override public NavDivider addDivider(String parentId, boolean modifiable) { NavDivider newNavItem = NavFactory.get().createDivider(); newNavItem.setId(Integer.toString(newNavItem.hashCode())); newNavItem.setModifiable(modifiable); addItem(newNavItem, parentId); return newNavItem; }
public List<NavItem> searchItems(NavItemContext ctx, List<NavItem> navItemList) { List<NavItem> result = new ArrayList<>(); if (ctx == null) { return result; } NavItemContext niCtx = NavItemContext.create(); for (NavItem navItem : navItemList) { niCtx.init(navItem.getContext()); if (niCtx.includesPropertiesOf(ctx)) { result.add(navItem); } if (navItem instanceof NavGroup) { List<NavItem> children = searchItems(ctx, ((NavGroup) navItem).getChildren()); result.addAll(children); } } return result; }
@Override public NavItem setItemModifiable(String id, boolean modifiable) { NavItem navItem = getItemById(id); if (navItem == null) { throw new RuntimeException("Item not found: " + id); } navItem.setModifiable(modifiable); return navItem; }
@Override public void moveItemUp(String id) { changePosition(id, true, 1); }
@Override public NavGroup addGroup(String id, String name, String description, String parentId, boolean modifiable) { NavGroup newNavItem = NavFactory.get().createNavGroup(); newNavItem.setId(id); newNavItem.setName(name); newNavItem.setDescription(description); newNavItem.setModifiable(modifiable); addItem(newNavItem, parentId); return newNavItem; }
@Override public NavTree createNavTree() { return new NavTreeImpl(); }
@Override public NavItem setItemName(String id, String name) { NavItem navItem = getItemById(id); if (navItem == null) { throw new RuntimeException("Item not found: " + id); } navItem.setName(name); return navItem; }
@Override public void moveItemLast(String id) { changePosition(id, false, null); }
@Override public NavGroup addGroup(String id, String name, String description, String parentId, boolean modifiable) { NavGroup newNavItem = NavFactory.get().createNavGroup(); newNavItem.setId(id); newNavItem.setName(name); newNavItem.setDescription(description); newNavItem.setModifiable(modifiable); addItem(newNavItem, parentId); return newNavItem; }