2016-05-18 17 views
0

次の質問に部分的に従うdigramに凡例を追加しようとしています:Enterprise Architect scripting with java - add CustomProperty私のダイアグラムには凡例が表示されます。ここに私のコードは次のとおりです。 - すべてのヘルプは感謝javascriptを使用したEnterprise Architectスクリプティング - 図に凡例を追加する

function addLegend() 
{ 
    Repository.EnsureOutputVisible("Script"); 
    Repository.ClearOutput("Script"); 
    var pkg as EA.Package; 

    pkg = Repository.GetTreeSelectedPackage(); 
    elements = pkg.Elements; 
    var legend = elements.AddNew('Diagram Legend', 'Text'); 

    legend.Subtype = 76; 
    legend.Update(); 
    elements.Refresh(); 
    var diagram as EA.Diagram; 

    diagram = Repository.GetDiagramByID(10); 
    Session.Output(diagram.Name); 
    diagramObjects = diagram.DiagramObjects; 


    diagramObject = diagramObjects.AddNew("l=100; r=100; t=100; b=500;", ""); 
    diagramObject.ElementID = legend.ElementID; 
    diagramObjects.Refresh(); 
    diagram.Update(); 
} 

` として何の伝説が表示されないと述べました。私のEAバージョンは12.0です。

+0

L = 100でそれを試してみてください。 r = 200を試してください。 – Uffe

+0

はいはい、同意しますが、与えられたサイズは結果に影響を与えません。実際にGeertが提供するコードは動作します。 r =を例えばに変更する。 1000は凡例を右に移動するだけです - 明らかに、サイズは 'AddNew.'に与えられたパラメータではなく、タイトルのサイズによって制御されます –

答えて

1

あなたはUpdate()を呼び出して、新しく作成したDiagramObjectを保存しないと、あなたは図はまた、あなたが変更しようとしているものは何でも取り消すことがあります更新するRefresh()

への呼び出しをこれらの呼び出しは必要ありません。図。 R = 100を使用して、ゼロ幅を指定している手段と (未テスト)以下のわずかに変更されたコード

function addLegend() 
{ 
    Repository.EnsureOutputVisible("Script"); 
    Repository.ClearOutput("Script"); 
    var pkg as EA.Package; 

    pkg = Repository.GetTreeSelectedPackage(); 
    elements = pkg.Elements; 
    var legend = elements.AddNew('Diagram Legend', 'Text'); 

    legend.Subtype = 76; 
    legend.Update(); 
    var diagram as EA.Diagram; 

    diagram = Repository.GetDiagramByID(10); 
    Session.Output(diagram.Name); 
    diagramObjects = diagram.DiagramObjects; 


    diagramObject = diagramObjects.AddNew("l=100; r=100; t=100; b=500;", ""); 
    diagramObject.ElementID = legend.ElementID; 
    diagramObject.Update(); 
} 
+0

Thanks Geert、あなたの解決策は動作し、' Elements.AddNew() ' 'DiagramObjects.AddNew()'には何らかの意味があります。もしそうなら、どこかに文書化されていますか? –

+0

いくつかのドキュメントがありますが、それほど多くはありません。 http://sparxsystems.com/enterprise_architect_user_guide/12.1/automation_and_scripting/collection.htmlを参照してください。 –

関連する問題