/** * Adds the tree item. * * @param label the label * @param parent the parent */ // FIXME: It sounds reasonable to sort the tree after adding a new MIB ? private void addTreeItem(final String label, final String parent) { mibsTree.addItem(label); if (parent == null) { LOG.debug("Adding root directory {}", label); mibsTree.setChildrenAllowed(parent, true); } else { LOG.debug("Adding item {} to {} folder", label, parent); mibsTree.setParent(label, parent); mibsTree.setChildrenAllowed(label, false); } }
private void cleanupExpandedItems() { Set<Object> removedItemIds = new HashSet<Object>(); for (Object expandedItemId : expanded) { if (getItem(expandedItemId) == null) { removedItemIds.add(expandedItemId); if (this.expandedItemId == expandedItemId) { this.expandedItemId = null; } } } expanded.removeAll(removedItemIds); }
/** * @deprecated As of 7.0, replaced by * {@link #addExpandListener(ExpandListener)} */ @Deprecated public void addListener(ExpandListener listener) { addExpandListener(listener); }
/** * Expands an item. * * @param itemId * the item id. * @return True if the expand operation succeeded */ public boolean expandItem(Object itemId) { boolean success = expandItem(itemId, true); markAsDirty(); return success; }
/** * Expands the items recursively * * Expands all the children recursively starting from an item. Operation * succeeds only if all expandable items are expanded. * * @param startItemId * @return True if the expand operation succeeded */ public boolean expandItemsRecursively(Object startItemId) { boolean result = true; // Initial stack final Stack<Object> todo = new Stack<Object>(); todo.add(startItemId); // Expands recursively while (!todo.isEmpty()) { final Object id = todo.pop(); if (areChildrenAllowed(id) && !expandItem(id, false)) { result = false; } if (hasChildren(id)) { todo.addAll(getChildren(id)); } } markAsDirty(); return result; }
horizontalLayout.setSpacing(true); Tree tree = new Tree(); tree.setNullSelectionAllowed(false); tree.setMultiSelect(false); tree.setImmediate(true); tree.addItem("Overview"); tree.setChildrenAllowed("Overview", false); tree.addItem("Installed Dashlets"); tree.setChildrenAllowed("Installed Dashlets", true); tree.addItem(dashletFactory.getName()); tree.setParent(dashletFactory.getName(), "Installed Dashlets"); tree.setChildrenAllowed(dashletFactory.getName(), false); for (final Object id : tree.rootItemIds()) { tree.expandItemsRecursively(id); setExpandRatio(horizontalLayout, 1.0f); tree.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent valueChangeEvent) { tree.select("Overview");
m_tree = new Tree(); m_tree.setCaption("Graph"); m_tree.setSizeFull(); m_tree.setItemCaptionMode(AbstractSelect.ItemCaptionMode.PROPERTY); m_tree.setItemCaptionPropertyId("label"); m_tree.setContainerDataSource(hierarchicalContainer); m_tree.setMultiSelect(false); m_tree.setNewItemsAllowed(false); m_tree.setImmediate(true); m_tree.addExpandListener(new Tree.ExpandListener() { @Override public void nodeExpand(Tree.ExpandEvent expandEvent) { m_tree.expandItem(rrdGraphEntry.getNodeId()); m_tree.expandItem(rrdGraphEntry.getResourceTypeId()); m_tree.expandItem(rrdGraphEntry.getResourceId()); m_tree.select(rrdGraphEntry.getGraphId()); m_tree.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
MouseEventDetails details = MouseEventDetails .deSerialize((String) variables.get("clickEvent")); Item item = getItem(id); if (item != null) { fireEvent(new ItemClickEvent(this, item, id, null, details)); if (!isSelectable() && variables.containsKey("selected")) { for (String key : (String[]) variables.get("collapse")) { final Object id = itemIdMapper.get(key); if (id != null && isExpanded(id)) { expanded.remove(id); if (expandedItemId == id) { expandedItemId = null; fireCollapseEvent(id); final Object id = itemIdMapper.get(key); if (id != null) { expandItem(id, sendChildTree); if (variables.containsKey("selected") && isMultiSelect() && multiSelectMode == MultiSelectMode.DEFAULT) { handleSelectedItems(variables); variables = new HashMap<String, Object>(variables); variables.remove("selected"); final Object itemId = itemIdMapper.get(st.nextToken()); final Action action = actionMapper.get(st.nextToken());
if (m_tree.hasChildren(itemToExpandId)) { return; Item itemToExpand = m_tree.getItem(expandEvent.getItemId()); String type = itemToExpand.getItemProperty("type").getValue().toString(); newResourceTypeItem.getItemProperty("resourceTypeLabel").setValue(resourceTypeMapEntry.getKey().getLabel()); m_tree.setParent(newResourceTypeItemId, itemToExpandId); m_tree.setChildrenAllowed(newResourceTypeItemId, true); newResourceItem.getItemProperty("resourceTypeLabel").setValue(newResourceTypeItem.getItemProperty("label").getValue()); m_tree.setParent(newResourceItemId, newResourceTypeItemId); m_tree.setChildrenAllowed(newResourceItemId, true); newGraphItem.getItemProperty("graphUrl").setValue(map.get(entry.getValue())); m_tree.setParent(newGraphItemId, itemToExpandId); m_tree.setChildrenAllowed(newGraphItemId, false);
addItem(itemId); if (node.hasAttr("icon")) { Resource icon = DesignAttributeHandler.readAttribute("icon", node.attributes(), Resource.class); setItemIcon(itemId, icon); String childItemId = readItem(child, selected, context); setParent(childItemId, itemId);
@Override public void buttonClick(Button.ClickEvent event) { if (m_tree.getValue() != null) { /** * saving the data */ Item selectedItem = m_tree.getItem(m_tree.getValue()); rrdGraphEntry.setGraphId(String.valueOf(selectedItem.getItemProperty("graphId").getValue())); rrdGraphEntry.setResourceTypeId(String.valueOf(selectedItem.getItemProperty("resourceTypeId").getValue())); rrdGraphEntry.setResourceId(String.valueOf(selectedItem.getItemProperty("resourceId").getValue())); rrdGraphEntry.setNodeId(String.valueOf(selectedItem.getItemProperty("nodeId").getValue())); rrdGraphEntry.setGraphLabel(String.valueOf(selectedItem.getItemProperty("graphLabel").getValue())); rrdGraphEntry.setResourceTypeLabel(String.valueOf(selectedItem.getItemProperty("resourceTypeLabel").getValue())); rrdGraphEntry.setResourceLabel(String.valueOf(selectedItem.getItemProperty("resourceLabel").getValue())); rrdGraphEntry.setNodeLabel(String.valueOf(selectedItem.getItemProperty("nodeLabel").getValue())); rrdGraphEntry.setGraphUrl(String.valueOf(selectedItem.getItemProperty("graphUrl").getValue())); rrdGraphEntry.update(); } close(); } });
/** * If the event is on a node that can not have children (see * {@link Tree#areChildrenAllowed(Object)}), this method returns the * parent item id of the target item (see {@link #getItemIdOver()} ). * The identifier of the parent node is also returned if the cursor is * on the top part of node. Else this method returns the same as * {@link #getItemIdOver()}. * <p> * In other words this method returns the identifier of the "folder" * into the drag operation is targeted. * <p> * If the method returns null, the current target is on a root node or * on other undefined area over the tree component. * <p> * The default Tree implementation marks the targetted tree node with * CSS classnames v-tree-node-dragfolder and * v-tree-node-caption-dragfolder (for the caption element). */ public Object getItemIdInto() { Object itemIdOver = getItemIdOver(); if (areChildrenAllowed(itemIdOver) && getDropLocation() == VerticalDropLocation.MIDDLE) { return itemIdOver; } return getParent(itemIdOver); }
mibsTree.expandItemsRecursively(COMPILED); mibsTree.expandItemsRecursively(PENDING); mibsTree.addActionHandler(new Action.Handler() {
mibsTree = new Tree("MIB Tree"); initMibTree(logger); final Label label = new Label("<p>Use the right-click context menu over the MIB tree files, to display the compiler operations.</p>");
@Override public Action[] getActions(Object target, Object sender) { if (target == null) { return new Action[] {}; } Object parent = mibsTree.getParent(target); if (parent == null) { return new Action[] {}; } if (parent.equals(COMPILED)) { return new Action[] { ACTION_EVENTS, ACTION_COLLECT, ACTION_VIEW, ACTION_DELETE }; } else { return new Action[] { ACTION_EDIT, ACTION_DELETE, ACTION_COMPILE }; } }
@Override public boolean accept(DragAndDropEvent dragEvent) { try { TreeTargetDetails eventDetails = (TreeTargetDetails) dragEvent .getTargetDetails(); if (eventDetails.getItemIdOver() != null) { Object itemId = eventDetails.getItemIdOver(); int i = 0; while (itemId != null && (depthToCheck == -1 || i <= depthToCheck)) { if (itemId.equals(rootId)) { return true; } itemId = getParent(itemId); i++; } } return false; } catch (Exception e) { return false; } }
@Override public String getStyle(Tree source, Object itemId) { if ((Boolean) source.getItem(itemId).getItemProperty(MBeansTree.MetaMBeansTreeItem.VALID).getValue()) return ""; return "invalid"; } });
@Override public void valueChange(Property.ValueChangeEvent valueChangeEvent) { if (valueChangeEvent.getProperty().getValue() != null) { Item selectedItem = m_tree.getItem(valueChangeEvent.getProperty().getValue()); Object object = selectedItem.getItemProperty("graphId").getValue(); ok.setEnabled(object != null); } } });