解決策は、ロケーターを使用することです。ロケーターは、親の形状を基準にしてポートをレイアウトすることに応答します。
この例では、「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);
}
}),