【问题标题】:Add custom node to Alloyui DiagramBuilder in JAVA在 JAVA 中将自定义节点添加到 Alloyui DiagramBuilder
【发布时间】:2015-10-27 07:40:47
【问题描述】:

我一直在用this example用Alloyui做图表,但是我没有找到在JAVA中制作自定义节点的方法。

我尝试将其简单地添加到 AvaliableFields 中,但似乎不起作用:

diagramBuilder.setAvailableFields(
    new NodeType(
         "diagram-node-custom-icon",
         "Custom",
         "custom"
     ));

我已经在另一个示例中直接在 javascript 中完成了这项工作:

 Y.DiagramNodeCustom = Y.Component.create({
        NAME: 'diagram-node',

        ATTRS: {
            type: {
                value: 'custom'
            },
            myAtt: {
                validator: Y.Lang.isString,
                value: ''
            },
            myAtt2: {
                validator: Y.Lang.isString,
                value: ''
            }
        },

        EXTENDS: Y.DiagramNodeTask,

        prototype: {
            getPropertyModel: function () {
                var instance = this;

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

                model.push({
                    attributeName: 'myAtt',
                    name: '123'
                });

                model.push({
                    attributeName: 'myAtt2',
                    name: '456'
                });

                return model;
            }
        }
    });

但我只是想触摸 java 部分。有任何想法吗?

【问题讨论】:

    标签: java alloy-ui


    【解决方案1】:

    好像这个插件不接受自定义节点,所以我正在使用 Javascript。

    【讨论】:

      【解决方案2】:

      这里是an example,希望对你有帮助:

      var Y = YUI().use(
          'aui-diagram-builder',
      
      function (Y) {
      
          Y.DiagramNodeCustom = Y.Component.create({
              NAME: 'diagram-node',
      
              ATTRS: {
                  type: {
                      value: 'custom'
                  },
                  customAttr: {
                      validator: Y.Lang.isString,
                      value: 'A Custom default'
                  }
              },
      
              EXTENDS: Y.DiagramNodeTask,
      
              prototype: {
                  getPropertyModel: function () {
                      var instance = this;
      
                      var model = Y.DiagramNodeTask.superclass.getPropertyModel.apply(instance, arguments);
      
                      model.push({
                          attributeName: 'customAttr',
                          name: 'Custom Attribute'
                      });
      
                      return model;
                  }
              }
          });
      
          Y.DiagramBuilder.types['custom'] = Y.DiagramNodeCustom;
      
          var availableFields = [{
              iconClass: 'diagram-node-start-icon',
              label: 'Start',
              type: 'start'
          }, {
              iconClass: 'diagram-node-task-icon',
              label: 'Task',
              type: 'task'
          }, {
              iconClass: 'diagram-node-custom-icon',
              label: 'Custom',
              type: 'custom'
          }, {
              iconClass: 'diagram-node-end-icon',
              label: 'End',
              type: 'end'
          }];
      
          diagram = new Y.DiagramBuilder({
              availableFields: availableFields,
              boundingBox: '#myDiagramContainer',
              srcNode: '#myDiagramBuilder'
          }).render();
      });
      .diagram-node-custom .diagram-node-content {
          background: url(http://a.deviantart.net/avatars/m/e/mercedes77.gif?5) no-repeat scroll center transparent;
      }
      .diagram-node-custom-icon {
          background: url(http://dribbble.s3.amazonaws.com/users/1266/screenshots/213334/emoticon-0188-nyancat.gif) no-repeat scroll center transparent;
      }
      <div id="myDiagramContainer">
          <div id="myDiagramBuilder" width=100></div>
      </div>
      <button id="myButton"></button>

      另见https://github.com/mstahv/diagram-builder

      【讨论】:

      • 强烈建议不要仅链接答案。
      猜你喜欢
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 2015-02-04
      相关资源
      最近更新 更多