Object Hierarchy | 関連する C++クラス:GridWidget
v4.2
GridWidget オブジェクトは、プロパティページの GridData オブジェクトに表示するユーザインターフェイスコントロールを表します。基本の GridData よりもそれを制御するステートの変化とステートに直接関連する情報を表示します。たとえば、このオブジェクトは、ユーザがクリックしたセルについての情報を表示します。
実際の GridData の内容とは異なり、選択した状態はプロパティページ(PPG)が閉じられ再度開かれたときに失われます。
注:プロパティページの GridData のレイアウトは、そのプロパティページの PPGItem を表す PPGLayout オブジェクトによって定義されます。たとえば、siUIGridSelectionMode 属性は、セルを個別に選択するか、行または列、またはまったく選択しないなどの制御を行います(siPPGItemAttribute を参照)。
/* 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() ; } |