0
이 코드를 사용하여 불투명도를 변경하여 클릭 한 꼭지점과 그 자식을 강조 표시합니다. 그러나 내가 선택한 정점에 연결된 다음 자식에 대해서만 작동합니다. 버텍스를 클릭하면 어떻게 할 수 있습니까?하지만 아이에게 연결된 모든 버텍스와 꼭지점으로 연결되는 버텍스를 강조 표시 할 수도 있습니다. 미리 감사드립니다.jgraphx에서 여러 셀 강조 표시
public void CellHighlight() {
graphComponent.getGraphControl().addMouseListener(new MouseAdapter() {
public void mouseReleased (MouseEvent e1) {
if (e1.getButton() == 1 && e1.getClickCount() == 2) {
final Object selectedCell = graphComponent.getCellAt(e1.getX(), e1.getY());
Object[] allCells = mxGraphModel.getChildren(graph.getModel(), graph.getDefaultParent());
if (selectedCell != null) {
if (graph.getModel().isVertex(selectedCell)) {
for(Object myCell: allCells) {
graph.getView().getState(myCell).getStyle().put(mxConstants.STYLE_OPACITY, OPACITY_PALE);
graph.getView().getState(myCell).getStyle().put(mxConstants.STYLE_TEXT_OPACITY, OPACITY_PALE);
}
List<Object> cellList = new ArrayList<Object>();
cellList.add(selectedCell);
Object[] outgoingEdges = mxGraphModel.getOutgoingEdges(graph.getModel(), selectedCell);
for(Object edge: outgoingEdges) {
cellList.add(graph.getModel().getTerminal(edge, false));
}
cellList.addAll(Arrays.asList(outgoingEdges));
for(Object myCell: cellList) {
graph.getView().getState(myCell).getStyle().put(mxConstants.STYLE_OPACITY, OPACITY_HIGHLIGHT);
graph.getView().getState(myCell).getStyle().put(mxConstants.STYLE_TEXT_OPACITY, OPACITY_HIGHLIGHT);
}
} else {
for(Object myCell: allCells) {
graph.getView().getState(myCell).getStyle().put(mxConstants.STYLE_OPACITY, OPACITY_HIGHLIGHT);
graph.getView().getState(myCell).getStyle().put(mxConstants.STYLE_TEXT_OPACITY, OPACITY_HIGHLIGHT);
}
}
mxRectangle bounds = graph.getBoundsForCells(allCells, true, true, true);
graph.repaint(bounds);
}
}
}
});
}