Visio Services ECMAScript API のオブジェクト

最終更新日: 2013年12月3日

適用対象: SharePoint Server 2010

この記事の内容
VwaControl オブジェクト
Page オブジェクト
ShapeCollection オブジェクト
Shape オブジェクト

Visio ServicesJavaScript API には、4 つのオブジェクトとそれぞれのメンバーのみが含まれます。

さらに、Visio ServicesJavaScript API には 4 つの列挙体が含まれます。

VwaControl オブジェクト

VwaControl オブジェクトは、Visio Web Access Web パーツのインスタンスを表します。VwaControl オブジェクトのメソッドを使用すると、Web パーツに関する情報、および Web パーツに表示された Visio 図面に関する情報にアクセスできます。また、このメソッドを使用すると、Web パーツ内での Visio ドキュメントの開始、表示するアクティブなページの取得と設定、イベント ハンドラーの追加や削除、カスタム メッセージの表示や非表示など、さまざまなアクションを実行できます。

JavaScript コードでは、ASP.NET AJAX の Sys.Application クラスの load イベントにハンドラーを接続することで、VwaControl オブジェクトへの参照を取得できます。そのハンドラーを実装する関数では、オブジェクトをホストする Visio Web Access Web パーツの HTML 識別子 (ID) をそのオブジェクトに渡すことで、そのオブジェクトを初期化できます。この ID を取得するには、Web パーツをホストする HTML ページのソースコードを調べて、文字列 class="VisioWebAccess" を探します。ID の形式は "WebPartWPQ#"であり、この # が Web パーツの識別番号を表します。次のコード例は、この処理方法を示しています。この例は、Web パーツ ID が WebPartWPQ3 であることが確認されており、Web パーツで .vdw ファイルとして発行する Visio 図面が開かれていることを前提とします。これは、次のコードで示されます。

Sys.Application.add_load(onApplicationLoad)

var webPartElementID = "WebPartWPQ3";
var vwaControl;

function onApplicationLoad() {
        try{
                vwaControl= new Vwa.VwaControl(webPartElementID)
                vwaControl.addHandler("diagramcomplete", onDiagramComplete);
        }
        catch(err){
        }
}

VwaControl オブジェクトのインスタンスへの参照を取得すると、その openDiagram メソッドを使用して、発行された Visio .vdw ファイルに基づいて、新しい図を Visio Web Access Web パーツに開くことができます。ただし、openDiagram メソッドを呼び出した後に、VwaControl の同じインスタンスまたは Vwa 名前空間内の他のオブジェクトに対処することはできません。これは、openDiagram メソッドが、サーバーで図を開いた後に直ちに戻る非同期操作になっているためです。また、非同期操作では、現在の VwaControl オブジェクトが無効になります。詳細については、「Vwa.VwaControl.openDiagram Method」を参照してください。

openDiagram の呼び出しを扱う最良の方法は、Visio Web Access Web パーツが Visio 図面の読み込みを完了したときに発生する Vwa.diagramcomplete Event のためのハンドラーを作成して、そのイベント ハンドラーにユーザーのコードを含めることです。diagramcomplete イベントのためのイベント ハンドラーを追加するために Vwa.VwaControl.addHandler Method を使用することができます。ベスト プラクティスは、このコントロールへのユーザー アクションによって発生したイベントに対応するこれらのイベント ハンドラーを作成することにより、VwaControl オブジェクトをプログラムすることです。VwaControl オブジェクトによって公開されるその他のイベントには、ユーザーのマウス操作に対応する Vwa.shapemouseenter EventVwa.shapemouseleave Event、および Vwa.shapeselectionchanged Event、そして SharePoint Server 2010 が返すエラーに対応できるようにする Vwa.diagramerror Event が含まれます。

diagramcomplete イベントのためのハンドラーで、Page オブジェクト、Shape オブジェクト、および ShapeCollection コレクションを含め、API によって公開されたその他のオブジェクトへの参照を取得することができます。同じハンドラーで、以下のコード例に示すように、その他のイベントのためのハンドラーを作成することができます。

function onDiagramComplete() {
        try {
                vwaPage = vwaControl.getActivePage();
                vwaShapes = vwaPage.getShapes();
                vwaShape = vwaShapes.getItemAtIndex(0);
                vwaControl.addHandler("shapeselectionchanged", onShapeSelectionChanged);
        }
        catch(err) {
        }
}

このコード例は、以下のプログラミング タスクを完了する方法を示しています。

  • Vwa.VwaControl.getActivePage Method を使用して、アクティブなページを表す Page オブジェクトのインスタンスへの参照を取得する方法

  • Page オブジェクトの Vwa.Page.getShapes Method を使用して、アクティブなページ上の図形のコレクションを表す ShapeCollection コレクションのインスタンスを取得する方法

  • そのコレクションの Vwa.ShapeCollection.getItemAtIndex Method を使用して、アクティブなページ上の図形のコレクション内の 1 番目の図形のインスタンスを取得する方法

  • shapeselectionchanged イベントのハンドラーを追加する方法

Web パーツに表示される図面についての詳細を取得するために、VwaControl オブジェクトのいくつかのメソッドを使用することができます。たとえば、図が含まれるすべてのページの名前を取得するために Vwa.VwaControl.getAllPageIds Method を使用することができます。また Vwa.VwaControl.getDiagramUrl Method を使用して Web パーツに現在表示されている図の URL を取得することができます。そして Vwa.VwaControl.getDisplayMode Method を使用して、現在の Web 図面ページがラスター テクノロジと Microsoft Silverlight テクノロジのどちらで表示されているか判断できます。また Vwa.VwaControl.getVersion Method を使用して Web パーツのバージョンを取得することができます。

Vwa.VwaControl.removeHandler Method を使用すると、追加したイベント ハンドラーを削除できます。また、Vwa.VwaControl.clearHandlers Method では、すべてのハンドラーを削除できます。独自の HTML エラー メッセージのページを表示したり、非表示にしたりするには、Vwa.VwaControl.displayCustomMessage Method および Vwa.VwaControl.hideCustomMessage Method を使用します。また、Vwa.VwaControl.setActivePage Method を使用して、Web パーツに現在表示されているページを変更したり、Vwa.VwaControl.refreshDiagram Method を使用して、現在の Web 図面ページを、サーバーからのデータを使用して更新したりできます。

Page オブジェクト

Page オブジェクトは Visio Web Access Web パーツのレンダリング領域で現在表示されているアクティブな Web 図面ページを示しています。Page オブジェクトのメソッドを使用して、図形の ID、図形の位置、および図形の周りの境界ボックスのサイズなどの、図形についての情報にアクセスし、ページ上で図形を選択することができます。また、表示されているページのズーム レベルと位置の取得および設定をすることができます。

Page オブジェクトのメソッドには、以下が含まれます。

ShapeCollection オブジェクト

ShapeCollection オブジェクトは Visio Web Access Web パーツのレンダリング領域に現在表示されている Web 図面の、アクティブなページ上での図形オブジェクトのコレクションを示しています。

ShapeCollection オブジェクトのメソッドには、以下が含まれます。

Shape オブジェクト

Shape オブジェクトは、アクティブな Web 図面ページ上での単一の図形を示しています。Shape オブジェクトのメソッドは、アクティブなページ上で特定の図形の情報を取得し、その図形の情報を処理できるようにします。