Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../index.htm#lansa/vlwebeng02_0055.htm]
現在地:

...

次のソース例は、Visual

...

LANSA

...

で提供される

...

Google

...

円グラフのサンプル・ウィジェットのコピーです。

...

function(

...

PROTOTYPE,

...

WIDGET

...

)

...

{

...

 

...

//--------------------------------------------------------------------------

...

 

...

//

...

Google

...

 円グラフが完成した場合のみ、このグラフをロードして

...

 Widget

...

 完了

...

 

...

//--------------------------------------------------------------------------

...

 

...

google.load(

...

'visualization',

...

'1',

...

{

...

packages:

...

["corechart"

...

],

...

callback:WIDGET.Finalize

...

}

...

);

...


 

...

//--------------------------------------------------------

...

 

...

//

...

WIDGET-インターフェース

...

 関数

...

 (VL-ランタイムからの呼び出し)

...

 

...

//--------------------------------------------------------

...


 

...

//

...

 

...

//

...

'onCreateInstance'

...

-

...

LANSA

...

 がこのクラスのインスタンスを作成時に呼び出し

...

 

...

//

...

 

...

PROTOTYPE.onCreateInstance

...

=

...

function()

...

 

...

{

...

   

...

//

...

Create

...

the

...

datatable

...

   

...

this.m_DataTable

...

=

...

new

...

google.visualization.DataTable();

...


   

...

this.m_DataTable.addColumn(

...

'string',

...

'Caption'

...

);

...

   

...

this.m_DataTable.addColumn(

...

'number',

...

'Value'

...

);

...

 

...

}

...

  

...

 

...

//

...

 

...

//

...

'onRealizeControl'

...

-

...

LANSA

...

 がこのクラスのインスタンスのビジュアル表現作成時に呼び出し

...

 

...

//

...

 

...

//

...

 パラメータ:

...

 

...

//

...

 

...

//

...

-

...

parentDiv

...

:

...

 このコントロールのコンテナとして作成された Divこのサイズとスタイルは RDMLX でコントロール。

  //              

...

 コンテンツは以下の

...

 JavaScript

...

 でコントロール

...

 

...

//

...

 

...

PROTOTYPE.onRealizeControl

...

=

...

function(

...

parentDiv

...

)

...

 

...

{

...

   

...

//

...

 円グラフ作成

...

   

...

this.m_Chart

...

=

...

new

...

google.visualization.PieChart(

...

parentDiv

...

);

...


   

...

//

...

 イベント・ハンドラーを連結

...

   

...

this.AttachEvents();

...


   

...

//

...

 描画の準備完了

...

   

...

this.DrawChart();

...

 

...

}

...


 

...

//

...

 

...

//

...

'onSizeChanged

...

-

...

 ウィジェトのサイズ変更時に呼び出し

...

 

...

//

...

 

...

PROTOTYPE.onSizeChanged

...

=

...

function()

...

 

...

{

...

   

...

this.DrawChart();

...

 

...

}

...


 

...

////////////////

...

 

...

//

...

 プロパティ

...

 //

...

 

...

////////////////

...


 

...

//

...

 

...

//

...

getTitle

...

 

...

//

...

 

...

PROTOTYPE.getTitle

...

=

...

function()

...

 

...

{

...

   

...

return

...

this.m_Title;

...

 

...

}

...


 

...

//

...

 

...

//

...

setTitle

...

 

...

//

...

 

...

PROTOTYPE.setTitle

...

=

...

function(

...

strTitle

...

)

...

 

...

{

...

   

...

this.m_Title

...

=

...

strTitle;

...


   

...

this.DrawChart();

...

 

...

}

...


 

...

/////////////

...

 

...

//

...

 メソッド

...

 //

...

 

...

/////////////

...


 

...

//

...

 

...

//

...

Insert

...

-

...

 データを円グラフに挿入

...

 

...

//

...

 

...

//

...

 パラメータ:

...

 

...

//

...

-

...

 :

...

 整数

...

 

...

//

...

-

...

 キャプション:

...

 文字列

...

 

...

//

...

 

...

//

...

 戻りタイプ

...

 :

...

 整数

...

 

...

//

...

 

...

PROTOTYPE.Insert

...

=

...

function(

...

iValue,

...

strCaption

...

)

...

 

...

{   

...

   

...

var

...

index

...

=

...

this.m_DataTable.addRow(

...

[

...

strCaption,

...

iValue

...

]

...

);

...


   

...

this.DrawChart();

...


   

...

return

...

index;

...

 

...

}

...


 

...

//

...

 

...

//

...

Clear

...

-

...

 すべてのデータをクリア

...

 

...

//

...

 

...

PROTOTYPE.Clear

...

=

...

function()

...

 

...

{

...

   

...

//メンバのデータ初期化

...

   

...

this.m_DataTable.removeRows(

...

0,

...

this.m_DataTable.getNumberOfRows()

...

);

...


   

...

this.DrawChart();

...

 

...

}

...


 

...

//

...

 

...

//

...

 削除

...

 -

...

 円グラフから指定のインデックスを削除

...

 

...

//

...

 

...

//

...

 パラメータ:

...

 

...

//

...

-

...

 インデックス:

...

 整数

...

 

...

//

...

 

...

PROTOTYPE.Remove

...

=

...

function(

...

index

...

)

...

 

...

{

...

   

...

index

...

-=

...

1;

...


   

...

if

...

(

...

(

...

index

...

>=

...

0

...

)

...

&&

...

(

...

index

...

<

...

this.m_DataTable.getNumberOfRows()

...

)

...

)

...

   

...

{

...

     

...

this.m_DataTable.removeRow(

...

index

...

);

...


     

...

this.DrawChart();

...

   

...

}

...

 

...

}

...


 

...

//////////////////////

...

 

...

//

...

 ヘルパー機能

...

 //

...

 

...

//////////////////////

...


 

...

//

...

 

...

//

...

DrawChart

...

 

...

//

...

 

...

PROTOTYPE.DrawChart

...

=

...

function()

...

 

...

{

...

   

...

if

...

(

...

this.m_Chart

...

)

...

   

...

{

...

     

...

//

...

Draw

...

it

...

using

...

our

...

data.

...

     

...

this.m_Chart.draw(

...

this.m_DataTable,

...

     

...

{

...

       

...

title         

...

:

...

this.m_Title,

...

       

...

legend        

...

:'none',

...

       

...

pieSliceText  

...

:'label',

...

       

...

backgroundColor:'transparent'

...

     

...

});

...

   

...

}

...

 

...

}

...


 

...

//

...

 

...

//

...

AttachEvents

...

 

...

//

...

 

...

PROTOTYPE.AttachEvents

...

=

...

function()

...

 

...

{

...

   

...

var

...

pThis

...

=

...

this;

...


   

...

//

...

 イベント:

...

select

...

   

...

google.visualization.events.addListener(

...

this.m_Chart,

...

'select',

...

function()

...

   

...

{

...

     

...

var

...

       

...

selectedItem

...

=

...

pThis.m_Chart.getSelection()

...

[0

...

];

...


     

...

if

...

(

...

selectedItem

...

)

...

     

...

{

...

       

...

pThis.fireItemSelected(

...

(

...

selectedItem.row

...

+

...

1

...

),

...

pThis.m_DataTable.getValue(

...

selectedItem.row,

...

1

...

),

...

pThis.m_DataTable.getValue(

...

selectedItem.row,

...

0

...

)

...

);

...

     

...

}

...

   

...

}); 

...

 

...

}

...


 

...

//

...

 ロード中

...

 (コールバック待ち)

...

 

...

return

...

WIDGET.Loading;

...

}

...