Юнг: запретить пользователю перемещать вершину за пределы размера визуализации?

В режиме выбора я хочу запретить пользователю перетаскивать вершину за пределы определенных границ макета. Я установил для ISOMLayout, VisualizationModel и VisualizationViewer одинаковый размер. Но если я уменьшу масштаб (я использую CrossoverScalingControl), я могу перетащить вершины за пределы макета/vv. Это приводит к тому, что полосы прокрутки моего GraphZoomScrollPane не работают должным образом: там могут быть плавающие вершины, до которых вы не можете прокручивать, и вам нужно уменьшить масштаб, чтобы увидеть их.

Наверняка есть способ запереть пользователя в определенных границах?

    Dimension preferredDimension = new Dimension(1200, 800);

    Layout<CNode,CEdge> layout = new ISOMLayout<>(graph);
    layout.setSize(preferredDimension);

    VisualizationModel<CNode, CEdge> visualizationModel = new DefaultVisualizationModel<>(layout, preferredDimension);

    vv = new VisualizationViewer<>(visualizationModel, preferredDimension);

person cjnolen    schedule 20.02.2017    source источник


Ответы (1)


Если вы хотите установить границу, за которую вы не можете вручную переместить вершину, вы можете сделать это в своем коде (в частности, в той части, которая реагирует на перетаскивание выбранной вершины; вы можете указать там пределы того, как далеко вы можно перетащить вершину). JUNG не несет ответственности за то, чтобы вы не могли установить положение вершины на что-то, что не будет использоваться в макете; что касается JUNG, вы можете это сделать, если хотите. :)

person Joshua O'Madadhain    schedule 21.02.2017