Hi Bernard Marcelly,

some time ago i played with the new grid control:
source code should run with oo 3.3 ...

OPTION EXPLICIT

Sub GridControlTest()

        Dim oColumnModel as Object
        Dim oColumn1 as Object
        Dim oColumn2 as Object
        Dim oDataModel as Object
        Dim oGridModel as Object
        Dim oGridControl as Object

        Dim oDialogModel as Object
        Dim oDialogControl as Object
        Dim i as Integer

        Dim rBounds as new com.sun.star.awt.Rectangle
        Dim oContWin as Object
        Dim oFrame as Object
        Dim oToolkit as Object
        Dim wd as new com.sun.star.awt.WindowDescriptor
        
        Dim oListener

        oColumnModel = 
createUnoService("com.sun.star.awt.grid.DefaultGridColumnModel")

        oColumn1 = createUnoService("com.sun.star.awt.grid.GridColumn")

        oColumn1.Title = "City"
        oColumn1.ColumnWidth = 30
        oColumn2 = createUnoService("com.sun.star.awt.grid.GridColumn")
        oColumn2.Title = "Country"
        oColumn2.ColumnWidth = 50

        oColumnModel.addColumn(oColumn1)
        oColumnModel.addColumn(oColumn2)

        oDataModel = 
createUnoService("com.sun.star.awt.grid.DefaultGridDataModel")
        For i = 0 To 10
                oDataModel.addRow (""&i, Array(Chr(97+i), Chr(65+i)))
        Next i

        oDialogModel = 
createUnoService("com.sun.star.awt.UnoControlDialogModel")
        oDialogModel.Title = "GridControl Test"
        oDialogControl = createUnoService("com.sun.star.awt.UnoControlDialog")
        oDialogControl.setModel( oDialogModel )
        oDialogControl.setPosSize( 100, 100, 300, 200, 
com.sun.star.awt.PosSize.POSSIZE)

        oGridModel = 
oDialogModel.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
        oGridModel.Name = "MyGrid"
        oGridModel.GridDataModel = oDataModel
        oGridModel.ColumnModel = oColumnModel
        oGridModel.ShowColumnHeader = True
        oGridModel.ShowRowHeader = True
        oGridModel.HScroll = True
        oGridModel.VScroll = True
        oGridModel.Sizeable = True

        oGridControl = createUnoService("com.sun.star.awt.grid.UnoControlGrid")
        oGridControl.setModel(oGridModel)

        oDialogControl.addControl("MyGrid", oGridControl)
        oGridControl.setPosSize(10, 10, 280, 180, 
com.sun.star.awt.PosSize.POSSIZE)

        oToolkit = createUnoService("com.sun.star.awt.Toolkit")

        rBounds.X = oDialogControl.PosSize.X
        rBounds.Y = oDialogControl.PosSize.Y
        rBounds.Width  = oDialogControl.PosSize.Width
        rBounds.Height = oDialogControl.PosSize.Height

        wd.Type = com.sun.star.awt.WindowClass.TOP
        wd.Bounds = rBounds
        With com.sun.star.awt.WindowAttribute
                wd.WindowAttributes = .BORDER + .MOVEABLE + .SIZEABLE + 
.CLOSEABLE
        End With
        wd.WindowServiceName = "window"
        
        oContWin = oToolkit.createWindow(wd)

        oFrame = createUnoService("com.sun.star.frame.Frame")
        oFrame.initialize(oContWin)
        StarDesktop.getFrames().append(oFrame)
        oFrame.Name = "TestGridFrame"
        oFrame.Title = "TestGridTitle"

        oGridControl.createPeer(oToolkit, oContWin)
        oContWin.setVisible(True)

        oListener = CreateUnoListener("XGridSelection_", 
"com.sun.star.awt.grid.XGridSelectionListener")
        oGridControl.addSelectionListener(oListener)

End Sub

Sub XGridSelection_selectionChanged(oEvt)
        MsgBox "selected row: " & oEvt.Row
End Sub

Sub XGridSelection_disposing(oEvt)
End Sub


Regards

Oliver


-- 

GnuPG key 0xCFD04A45: 8822 057F 4956 46D3 352C 1A06 4E2C AB40 CFD0 4A45

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to