【问题标题】:create nodes programatically with gmf but without setting its properties使用 gmf 以编程方式创建节点但不设置其属性
【发布时间】:2015-03-02 00:15:22
【问题描述】:

我想通过其属性以编程方式创建节点,但使用以下代码可以创建节点但无法设置其属性。

					CreateUnspecifiedTypeRequest request_ch = new
					        CreateUnspecifiedTypeRequest(
					            Collections.singletonList(xxxElementTypes.yy),
					            diagramEditPart.getDiagramPreferencesHint());
					Command command = diagramEditPart.getCommand(request);
					command.execute();
  
    then element.set("idof element")    but the properties of the node still empty.

谁能帮帮我。谢谢

【问题讨论】:

    标签: eclipse-emf-ecore eclipse-gmf


    【解决方案1】:

    我目前正在使用此方法以编程方式创建节点。节点和属性显示得很好,您可以对其进行编辑。 (请注意,还有一种方法可以使用另一种命令 (EMF) 以编程方式编辑属性)

    public void createAndExecuteShapeRequestCommand(IElementType type, EditPart parent) {
        CreateViewRequest actionRequest = CreateViewRequestFactory
                .getCreateShapeRequest(
                        type,
                        PreferencesHint.USE_DEFAULTS);
        org.eclipse.gef.commands.Command command = parent.getCommand(actionRequest);
        command.execute();
    }
    

    如果节点要添加到图表的主要区域,则该方法的示例调用者。

    createAndExecuteShapeRequestCommand(xxx.diagram.providers.xxxElementTypes.ELEMENT_HERE, diagramEditPart);   
    

    如果节点要添加到另一个节点或隔间内,则该方法的示例调用者。

    DiagramEditPart diagramEditPart = getDiagramEditPart(); //diagram.getDiagramEditPart();
    
    "ParentElement" parentElement = (("Root_ELEMENT") diagramEditPart.resolveSemanticElement())."getTheElement"();
    List list = getDiagramGraphicalViewer().findEditPartsForElement(EMFCoreUtil.
                        getProxyID(parentElement),
                        TheElementsEDITPART.class);
    
    createAndExecuteShapeRequestCommand(xxx.diagram.providers.xxxElementTypes.ELEMENT_HERE, (EditPart)list.get(0)); 
    

    请注意,如果您希望从 xxxDiagramEditor.java 之外的其他类调用此方法,则需要以某种方式将 diagramEditPart 传递到那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 2012-08-20
      • 2015-06-09
      • 2019-06-25
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多