gpt4 book ai didi

java - 如何获得 GEF GraphicalViewer 以适合其所在的 View /编辑器?

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:40 24 4
gpt4 key购买 nike

我的 ScrollingGraphicalViewer 显示在 ViewPart 中。但是,如果包含的图表大于 ViewPart,则会出现滚动条,并且无法看到整个图表。相反,我想缩小直到无需滚动即可看到整个图表。

我已经尝试调用viewer.zoomTo(Rectangle),但显然,该方法尚未实现。还有其他方法可以实现这一目标吗?

我仍然需要滚动功能,因此我必须使用 ScrollingGraphicalViewer。第一次打开 ViewPart 时,应按上述方式调整缩放。

最佳答案

尝试将 GEF LayoutListener 安装到图表中​​,覆盖您的内容 editpart 的 #createFigure() 方法(例如,DiagramEditPart#createFigure()。类似这样的事情:

protected IFigure createFigure() {
IFigure f = super.createFigure();
f.addLayoutListener(new LayoutListener.Stub(IFigure container) {
public void postLayout() {
Rectangle diagramBounds = new PrecisionRectangle(container.getBounds());
container.translateToAbsolute(diagramBounds);

/*
* Do the scale factor calculation based on you viewport/control size
*/

ZoomManager zoomManager = (ZoomManager)DiuagramEditPart.this.getViewer().getProperty(ZoomManager.class.toString());
if (zoomManager != null) {
zoomManager.setScale(scaleFactor);
}
}
});
return f;
}

关于java - 如何获得 GEF GraphicalViewer 以适合其所在的 View /编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24612674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com