private void removeFigureForNode(InternalNodeLayout internalNode) { IFigure figure = internalNode.getNode().getFigure(); GraphLabel label = (GraphLabel) nodeFigureToLabel.get(figure); if (label != null && label.getParent() != null) { label.getParent().remove(label); } nodeFigureToLabel.remove(figure); }
void updateNodeLabel(InternalNodeLayout internalNode) { if (internalNode.isDisposed()) { return; } IFigure figure = internalNode.getNode().getFigure(); GraphLabel label = (GraphLabel) nodeFigureToLabel.get(figure); IFigure fisheye = getFisheyeFigure(figure); if (fisheye != null) { figure = fisheye; } if (label == null) { label = new GraphLabel(false); label.setForegroundColor(ColorConstants.white); label.setBackgroundColor(ColorConstants.red); FontData fontData = Display.getDefault().getSystemFont().getFontData()[0]; fontData.setHeight(6); label.setFont(new Font(Display.getCurrent(), fontData)); figure.addFigureListener(nodeFigureListener); addLabelForFigure(figure, label); nodeFigureToLabel.put(figure, label); } GraphNode graphNode = internalNode.getNode(); if (!graphNode.getGraphModel().canExpand(graphNode) || graphNode.getGraphModel().canCollapse(graphNode) || internalNode.isPruned()) { label.setVisible(false); } else { NodeLayout[] successors = internalNode.getSuccessingNodes(); int numberOfHiddenSuccessors = 0; for (int i = 0; i < successors.length; i++) { if (successors[i].isPruned()) { numberOfHiddenSuccessors++; } } String labelText = numberOfHiddenSuccessors > 0 ? "" + numberOfHiddenSuccessors : ""; if (!labelText.equals(label.getText())) { label.setText(labelText); } label.setVisible(true); } refreshLabelBounds(figure, label); }