Re: Grid control on OOo 3.3.0

Oliver Brinzing <[email protected]> Thu, 03 Feb 2011 18:40:06 +0100
Newsgroups gmane.comp.openoffice.devel.api
Message-ID <[email protected]>
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
signature.asc (application/pgp-signature, 260 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk1K6HoACgkQTiyrQM/QSkXKtwCfZldITrn1zNMLM3NppDUJ/ld+
V0kAnjjYmGBUvfIUGZ76grLthH7AX5sQ
=TpGN
-----END PGP SIGNATURE-----