class NodeLabelBuilder extends AbstractLabelBuilder implements ItemBuilder {

    @Override
    public Item[] getItems(Graph graph) {<FILL_FUNCTION_BODY>}

    @Override
    public String getType() {
        return ItemBuilder.NODE_LABEL_BUILDER;
    }
}

        //Build text
        VisualizationController vizController = Lookup.getDefault().lookup(VisualizationController.class);
        Workspace workspace = WorkspaceHelper.getWorkspace(graph);
        Column[] nodeColumns = workspace != null && vizController != null ? vizController.getNodeTextColumns(workspace) : null;

        List<Item> items = new ArrayList<>();
        NodeIterable nodeIterable = graph.getNodes();
        try {
            for (Node n : nodeIterable) {
                NodeLabelItem labelItem = new NodeLabelItem(n);
                String label = getLabel(n, nodeColumns, graph.getView());
                labelItem.setData(NodeLabelItem.LABEL, label);
                TextProperties textData = n.getTextProperties();
                if (textData != null) {
                    if (textData.getR() != -1) {
                        labelItem.setData(NodeLabelItem.COLOR, new Color((int) (textData.getR() * 255),
                            (int) (textData.getG() * 255),
                            (int) (textData.getB() * 255),
                            (int) (textData.getAlpha() * 255)));
                    }
//                labelItem.setData(NodeLabelItem.WIDTH, textData.getWidth());
//                labelItem.setData(NodeLabelItem.HEIGHT, textData.getHeight());
                    labelItem.setData(NodeLabelItem.SIZE, textData.getSize());
                    labelItem.setData(NodeLabelItem.VISIBLE, textData.isVisible());
                    labelItem.setData(NodeLabelItem.LABEL, label);
                    if (textData.isVisible() && !label.isEmpty()) {
                        items.add(labelItem);
                    }
                } else if (!label.isEmpty()) {
                    items.add(labelItem);
                }
            }
        } catch (Exception e) {
            nodeIterable.doBreak();
            Exceptions.printStackTrace(e);
        }
        return items.toArray(new Item[0]);
    
<methods>public non-sealed void <init>() <variables>