GridWidget

Object Hierarchy | 関連する C++クラス:GridWidget

導入

v4.2

詳細

GridWidget オブジェクトは、プロパティページのGridDataオブジェクトに表示するユーザインターフェイスコントロールを表します。基本のGridDataよりもそれを制御するステートの変化とステートに直接関連する情報を表示します。たとえば、このオブジェクトは、ユーザがクリックしたセルについての情報を表示します。

実際の GridData の内容とは異なり、選択した状態はプロパティページ(PPG)が閉じられ再度開かれたときに失われます。

注:プロパティページの GridData のレイアウトは、そのプロパティページのPPGItemを表すPPGLayoutオブジェクトによって定義されます。たとえば、siUIGridSelectionMode 属性は、セルを個別に選択するか、行または列、またはまったく選択しないなどの制御を行います(siPPGItemAttributeを参照)。

メソッド

AddToSelection ClearSelection IsCellSelected IsColumnSelected
IsRowSelected SortColumn    
       

JScript の例

/*
        This example demontrates a typical use of the 
        GridWidget object - as a way of allowing users to 
        delete rows or columns from a GridData object
*/
var oProp = ActiveSceneRoot.AddProperty( "CustomProperty", 
                                false, "GridWidgetDemo" );                      
var oParameter = oProp.AddGridParameter( "DemoGrid" ) ;
var oGridData = oParameter.Value ;
oGridData.ColumnCount = 3
oGridData.RowCount = 20
// Fill in some initial values
for ( i = 0 ; i < oGridData.RowCount ; i++ )
        for ( j = 0 ; j < oGridData.ColumnCount ; j++ )
                oGridData.SetCell( j, i, i + "." + j ) ;
var oPPGLayout = oProp.PPGLayout
var oGridPPGItem = oPPGLayout.AddItem( "DemoGrid" )
oGridPPGItem.SetAttribute( siUINoLabel, true );
oGridPPGItem.SetAttribute( siUIGridSelectionMode, siSelectionHeader );
oGridPPGItem.SetAttribute( siUIGridColumnWidths, "25:100:75:100" );
oGridPPGItem.SetAttribute( siUIGridReadOnlyColumns, "1" );
oPPGLayout.AddRow() ;
oPPGLayout.AddButton( "DeleteRow", "Delete Selected Row(s)" ) ;
oPPGLayout.AddButton( "DeleteColumn", "Delete Selected Column(s)" ) ;
oPPGLayout.EndRow() ;
oPPGLayout.Language = "JScript" ;
oPPGLayout.Logic = DeleteRow_OnClicked.toString() + 
        DeleteColumn_OnClicked.toString() ; 
InspectObj( oProp ) ;
function DeleteRow_OnClicked()
{
        var oGridData = PPG.DemoGrid.Value ;
        oGridData.BeginEdit() ;
        var oGridWidget = oGridData.GridWidget
        // shift the rows upwards to overwrite the selected rows
        var writePos = 0 ;
        for ( var readPos = 0  ; readPos < oGridData.RowCount ; readPos++ )
        {
                if ( !oGridWidget.IsRowSelected(readPos) )
                {
                        if ( readPos != writePos )
                        {
                                oGridData.SetRowValues( 
                                                        writePos, 
                                                        oGridData.GetRowValues( readPos ) ) ;
                        }
                        writePos++ ;
                }
        }
        // Shrink the GridData
        oGridData.RowCount = writePos ;
        oGridData.EndEdit() ;   
}
function DeleteColumn_OnClicked()
{
        var oGridData = PPG.DemoGrid.Value ;
        oGridData.BeginEdit() ;
        var oGridWidget = oGridData.GridWidget
        // shift the rows upwards to overwrite the selected rows
        var writePos = 0 ;
        for ( var readPos = 0  ; readPos < oGridData.ColumnCount ; readPos++ )
        {
                if ( !oGridWidget.IsColumnSelected(readPos) )
                {
                        if ( readPos != writePos )
                        {
                                oGridData.SetColumnValues( 
                                                        writePos, 
                                                        oGridData.GetColumnValues( readPos ) ) ;
                        }
                        writePos++ ;
                }
        }
        // Shrink the GridData
        oGridData.ColumnCount = writePos ;
        oGridData.EndEdit() ;   
}

関連項目

GridData GridData.GridWidget PPG siPPGItemAttribute