JGraph(T)图元选择定制
我在使用 JGraph(T) 库时遇到一些问题。 我需要更改默认选择视图,例如:默认背景为橙色,如果选择顶点则添加绿色边框,我可以更改此可视化策略以将所选元素上的背景更改为 Color.BLUE。 我尝试执行以下代码:
GraphSelectionModel graphSelectionModel = new DefaultGraphSelectionModel(jGraph);
graphSelectionModel.setSelectionMode(GraphSelectionModel.MULTIPLE_GRAPH_SELECTION);
graphSelectionModel.addGraphSelectionListener(new GraphSelectionListener()
{
HashMap oldestCellsAndAttrs = new HashMap();
@Override
public void valueChanged(GraphSelectionEvent e)
{
jGraph.getModel().beginUpdate();
m_jgAdapter.edit(oldestCellsAndAttrs, null, null, null);
oldestCellsAndAttrs.clear();
Map cellAndAttrs = new HashMap();
for (Object obj : e.getCells())
{
DefaultGraphCell cell = (DefaultGraphCell) obj;
oldestCellsAndAttrs.put(cell, JGraphModelAdapter.createDefaultVertexAttributes());
Map attrs = cell.getAttributes();
GraphConstants.setBackground(attrs, Color.BLUE);
cellAndAttrs.put(cell, attrs);
}
m_jgAdapter.edit(cellAndAttrs, null, null, null);
jGraph.getModel().endUpdate();
}
});
fillGraph(tree, g);
layout(g, m_jgAdapter, jGraph);
setSize(3 * width / 4, height);
jGraph.setSelectionModel(graphSelectionModel);
这会在相同的选定对象上更改 bkg,但在未选择后不会返回。 是否存在默认解决此问题的方法?
I have as some problem with using JGraph(T) library.
I need change default selection view, example: default background is orange color, if vertex selected then green border was added, can i change this visualization strategy to change background to Color.BLUE on selected element.
I try execute follow code:
GraphSelectionModel graphSelectionModel = new DefaultGraphSelectionModel(jGraph);
graphSelectionModel.setSelectionMode(GraphSelectionModel.MULTIPLE_GRAPH_SELECTION);
graphSelectionModel.addGraphSelectionListener(new GraphSelectionListener()
{
HashMap oldestCellsAndAttrs = new HashMap();
@Override
public void valueChanged(GraphSelectionEvent e)
{
jGraph.getModel().beginUpdate();
m_jgAdapter.edit(oldestCellsAndAttrs, null, null, null);
oldestCellsAndAttrs.clear();
Map cellAndAttrs = new HashMap();
for (Object obj : e.getCells())
{
DefaultGraphCell cell = (DefaultGraphCell) obj;
oldestCellsAndAttrs.put(cell, JGraphModelAdapter.createDefaultVertexAttributes());
Map attrs = cell.getAttributes();
GraphConstants.setBackground(attrs, Color.BLUE);
cellAndAttrs.put(cell, attrs);
}
m_jgAdapter.edit(cellAndAttrs, null, null, null);
jGraph.getModel().endUpdate();
}
});
fillGraph(tree, g);
layout(g, m_jgAdapter, jGraph);
setSize(3 * width / 4, height);
jGraph.setSelectionModel(graphSelectionModel);
This change bkg on same selected objs, but not return after non-selection.
Is exists default solve for this problem ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我用以下代码解决了问题:
I solve problem with foollowing code: