当前位置: 首页 > 面试题库 >

如何向AlloyUI图生成器添加自定义节点和属性

祁均
2023-03-14
问题内容

我一直在尝试使用AlloyUI的图表构建器示例。

我需要添加一些额外的自定义节点类型以及这些节点的一些其他属性。我曾考虑过修改然后构建库,但这听起来像是对这项任务的过大杀伤力,而且我在构建时遇到了问题。

是否有捷径可寻?

更新

我意识到我可以直接修改构建文件夹中的文件以摆脱构建过程。我尝试添加类似的内容:

var Lang = A.Lang,
..
CUSTOM = 'custom',
..

..
A.DiagramNodeCustom = A.Component.create({
  NAME: DIAGRAM_NODE_NAME,

  ATTRS: {
    type: {
      value: CUSTOM
    },
  },

  EXTENDS: A.DiagramNodeTask
});

A.DiagramBuilder.types[CUSTOM] = A.DiagramNodeCustom;

/build/aui-diagram-builder-impl/aui-diagram-builder-impl.js

我有这样的主要javascript文件结构:

var Y = YUI().use(
  'aui-diagram-builder',
  ..
  function(Y) {
    var availableFields = [
      ..
      {
        iconClass: 'aui-diagram-node-task-icon',
        label: 'Custom',
        type: 'custom'
      },
      ..
    ];

    diagram = new Y.DiagramBuilder(
      {
        availableFields: availableFields,
        boundingBox: '#myDiagramContainer',
        srcNode: '#myDiagramBuilder'
      }
    ).render();
    ..
  }
);

我知道可以在图表中添加自定义节点。我可以单击它并更改名称,但是不幸的是,它在图表中不可见。另外我仍然找不到如何向节点添加新属性。有任何想法吗?


问题答案:

如前所述,到目前为止您所做的一切听起来都不错。

我认为您只是缺少一些CSS才能看到您的节点。你可以看到它在这里工作

查看CSS面板

.aui-diagram-node-custom .aui-diagram-node-content {
   /* Style of your node in the diagram */
}

.aui-diagram-node-custom-icon {
   /* Style of your node icon in the nodes lists */
}

注意: 从Alloy-2.0.0pr6开始,css类不再以 aui-
作为前缀,因此在开始使用较新版本时请记住这一点。我在这里整理了一个例子

编辑: 为了能够向编辑器面板公开新属性,自定义字段需要扩展getPropertyModel方法以将新属性添加到模型。

getPropertyModel: function() {
    var instance = this;

    var model = Y.DiagramNodeTask.superclass.getPropertyModel.apply(instance, arguments);

    model.push({
        attributeName: 'customAttr',
        name: 'Custom Attribute'
    });

    return model;
}

在这里您可以找到更新的示例



 类似资料:
  • 我正在将XML返回到一个jsp页面。 最终的XML结构如下所示: 的根节点作为向量返回,我使用xtream将其别名为“tasks”,如上图所示。 如何使用XStream实现这一点?我需要使用XSLT文件来转换XML输出吗?完成这一点的最佳方法是什么?

  • 一个具有“姓名”、“地址”和“工资”属性的实体“人” 两个角色-“员工”和“经理” 虽然员工应该能够编辑他自己的地址,但他肯定不能改变他的工资或其他人的地址。虽然他可能被允许看到自己的工资和其他用户的地址,但他甚至不允许看到其他人的工资,更不用说编辑了。另一方面,manager具有完全的readwrite权限。 这在后端不是问题--我们可以在那里使用自定义bean验证来强制执行写权限。 我想收到

  • 在我的SpringMVC应用程序中,我试图创建一个自定义的thymeleaf方言来将ASCII字符串转换为文本。我能够创建前缀不是的方言。但是如果我尝试使用作为前缀,那么服务器将抛出以下运行时异常。 基本上,我需要在这里实现的是创建一个像这样的自定义方言。任何帮助都将不胜感激。 注:如果有人需要查看我已经尝试过的代码,请在评论部分提问。

  • 我有一个XML: 我想向根元素:/doc添加一个属性(名称空间),以便输出如下所示: 我尝试了三种xslt(跳过了默认的“复制所有”部分以减少问题的长度)。 xslt1:见下文,问题在于将空名称空间xmlns=”“添加到/doc的所有子节点(即:/doc/tag1和/doc/tag2) Xslt2:见下文,问题是“ns”被添加到根节点:和 xslt3:请参见下文,问题是报告了错误:未定义名称空间前

  • 问题内容: 如果我想向根元素记录添加属性,可以从sql端执行此操作吗? 我想产生这样的xml: 问题答案: 使用新的语法: 这会给像 在这里阅读更多关于它的信息: 使用T-SQL创建XML文件的简单示例 将XML序列化与SQL的FOR XML PATH一起使用

  • 我试图添加一个属性到一个节点,它是CDATA的一部分。我的XML是 结果应该是xml 文档节点中的id属性应作为属性添加到CDATA中的节点。 我能够以字段[@name='CDATA']的形式获取CDATA值,但我不确定如何将文档的属性添加到CDATA中。。 谁能给我建议一下怎么做,或者给我指出正确的方向?