選択されているシェイプを取得する
ダイアグラムで選択されているシェイプを取得するにはIDiagram
オブジェクトのGetSelectedShapes
メソッドを用います。
public void GetSelectedNodes(ICommandContext c, ICommandParams p)
{
IDiagram diagram = c.App.Workspace.CurrentEditor as IDiagram;
if (diagram == null) return;
// 選択されているノードを取得します
var nodes = diagram.GetSelectedShapes().OfType<INode>();
// ノードごとに処理をします
foreach (INode node in nodes)
{
c.App.Output.WriteLine("sample", $"ノードのモデル : {node.Model.Name}");
}
}
選択されているポートを取得する
選択されているポートはIDiagram
オブジェクトのGetSelectedShapes
メソッドでシェイプを取得した際、IPort
型にキャストすることで取得できます。
public void GetSelectedPorts(ICommandContext c, ICommandParams p)
{
var diagram = c.App.Workspace.CurrentEditor as IDiagram;
if (diagram == null) return;
// 選択されているポートを取得します
var ports = diagram.GetSelectedShapes().OfType<IPort>();
c.App.Output.WriteLine("sample",$"選択されているポート数 : {ports.Count()}");
}