解决方案是使用Locator。定位器响应于相对于其父形状布局端口。
在您的示例中,您没有在“createPort”方法中使用定位器......在这种情况下,端口将以默认行为进行布局。
-> 左侧的 InputPorts
-> 右侧的输出端口
这里是一个形状的 init 方法的示例,它添加了一些带有定位器的端口。
/**
* @constructor
* Create a new instance
*/
init:function(){
this._super();
this.inputLocator = new this.MyInputPortLocator();
this.outputLocator = new this.MyOutputPortLocator();
this.createPort("hybrid",this.inputLocator);
this.createPort("hybrid",this.inputLocator);
this.createPort("hybrid",this.outputLocator);
this.createPort("hybrid",this.outputLocator);
},
简单定位器的代码:
// custom locator for the special design of the ResistorBridge Input area
MyInputPortLocator : graphiti.layout.locator.Locator.extend({
init:function( ){
this._super();
},
relocate:function(index, figure){
var w = figure.getParent().getWidth();
var h = figure.getParent().getHeight();
figure.setPosition(w/2+1, h*index);
}
}),