zoukankan      html  css  js  c++  java
  • GMF:如何让网格显示在background,而不是foreground

    前言

    很久没写文章了,准备写一系列关于Eclipse RCP /Plugin的文章。 这些文章都是trouble shooting性质的,不准备写的很细,当你碰到这样的问题,google到时,能帮你把问题解决了,这就ok了。另外有些问题我也是不求甚解的,哈。

    正文

    GMF中,Grid,也就是用来对齐的网格,默认是显示在foreground的,这样网格就会覆盖在你的图形上面,看上去很糟糕。解决办法是在Editor中configureGraphicalViewer()方法添加如下代码

    protected void configureGraphicalViewer() {
    	super.configureGraphicalViewer();
    	DiagramEditorContextMenuProvider provider = new DiagramEditorContextMenuProvider(this, getDiagramGraphicalViewer());
    	getDiagramGraphicalViewer().setContextMenu(provider);
    	getSite().registerContextMenu(ActionIds.DIAGRAM_EDITOR_CONTEXT_MENU, provider, getDiagramGraphicalViewer());
    	
    	//ADDED START
    	DiagramRootEditPart root = (DiagramRootEditPart) getDiagramGraphicalViewer().getRootEditPart();
    	Layer printableLayers = (Layer)root.getLayer(LayerConstants.PRINTABLE_LAYERS);
    	Layer gridLayer = (Layer)root.getLayer(LayerConstants.GRID_LAYER);
    	if (printableLayers != null && gridLayer != null){
    		LayeredPane paneForPrintable = (LayeredPane)printableLayers.getParent();
    		LayeredPane paneForGrid = (LayeredPane)gridLayer.getParent();
    		if (paneForGrid == paneForPrintable) {
    			paneForGrid.removeLayer(LayerConstants.GRID_LAYER);
    			paneForGrid.addLayerBefore(gridLayer, LayerConstants.GRID_LAYER, LayerConstants.PRINTABLE_LAYERS);
    		}
    	}
    	//ADDED END
    }

     

    解决方案来自http://www.eclipse.org/forums/index.php/t/296417/

  • 相关阅读:
    arc路径例子-磊哥
    使用路径arc-奥运五环
    arc路径-磊哥
    使用路径arc-七彩
    html5- 摘自网友dudu
    使用路径arc
    textBaseline
    html5-磊哥
    【洛谷1345】 [USACO5.4]奶牛的电信(最小割)
    【洛谷1231】 教辅的组成(网络流)
  • 原文地址:https://www.cnblogs.com/Binhua-Liu/p/3266784.html
Copyright © 2011-2022 走看看