BUI logoBBjFileChooser::setDropZoneVisible

Description

In BBj 16.0 and higher, this method specifies whether a client-side BUI BBjFileChooser should include a drop zone where users can drag-and-drop files.

Syntax

Return Value

Method

void

setDropZoneVisible(boolean visible)

Parameters

Variable

Description

visible

Non-zero if visible, zero if not.

Return Value

None.

Remarks

Files dropped to the drop zone are immediately uploaded to the server, reporting a BBjFileChooserApproveEvent . The OK/Cancel control buttons are not used.

Example

rem ' BBjFileChooser::setDropZoneVisible

dropzone = 0
message$ = "Client File Chooser"
if (msgbox("FILEOPEN or FILESAVE?",7+32,message$,"FILEOPEN","FILESAVE") = 1) then
    flags$ = $0004$
    title$ = "Client FILEOPEN"
    if (info(3,6) = "5") then
        dropzone = 1, dropzone$ = $0000$
        if (msgbox("Show a drop zone?",4+32,"Drop Zone") = 6) then
            dropzone$ = $0004$; rem ' checkbox flags = initially checked
            flags$ = $0006$; rem ' $0002$ = BBjFileChooser::setDropZoneVisible(1)
            title$ = "Client FILEOPEN with drop zone"
        endif
    endif
else
    flags$ = $0104$
    title$ = "Client FILESAVE"
endif
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
tc! = bbjapi().getThinClient()
fs! = tc!.getClientFileSystem()
x = 100, y = 100, width = 400, height = 300
if info(3,6) = "5" then x = 20, y = 20, height = 200
window! = sysgui!.addWindow(x,y,width+50,height+50,title$,$00090003$)
window!.setCallback(window!.ON_CLOSE,"eoj")
directory$ = ""
chooser! = window!.addFileChooser(101,25,25,width,height,directory$,flags$)
chooser!.setMultiSelectionEnabled(1)
chooser!.addFileFilter("Text files","*.txt")
vector! = bbjapi().makeVector()
vector!.add("*.png")
vector!.add("*.gif")
vector!.add("*.bmp")
vector!.add("*.jpg")
chooser!.addFileFilter("Image files",vector!)
if (dropzone) then
    dropzone! = window!.addCheckBox(102,35,height-5,100,25,"Show Drop Zone",dropzone$)
    dropzone!.setCallback(dropzone!.ON_CHECK_ON,"showDropZone")
    dropzone!.setCallback(dropzone!.ON_CHECK_OFF,"hideDropZone")
endif
print "BBjFileChooser::getDropZoneVisible: ",chooser!.getDropZoneVisible()
chooser!.setCallback(chooser!.ON_FILECHOOSER_CHANGE,"change")
chooser!.setCallback(chooser!.ON_FILECHOOSER_APPROVE,"approve")
chooser!.setCallback(chooser!.ON_FILECHOOSER_CANCEL,"cancel")
chooser!.setCallback(chooser!.ON_GAINED_FOCUS,"event")
chooser!.setCallback(chooser!.ON_LOST_FOCUS,"event")
chooser!.setCallback(chooser!.ON_MOUSE_ENTER,"event")
chooser!.setCallback(chooser!.ON_MOUSE_EXIT,"event")
chooser!.setCallback(chooser!.ON_POPUP_REQUEST,"event")
chooser!.setCallback(chooser!.ON_RIGHT_MOUSE_DOWN,"event")
process_events

eoj:
release

change:
    event! = sysgui!.getLastEvent()
    event$ = event!.toString(), event$ = event$(1,pos("@"=event$)-1)
    print event$,": ",event!.getSelectedFiles()
    i = msgbox(event$ + ": " + str(event!.getSelectedFiles()))
return

approve:
    event! = sysgui!.getLastEvent()
    event$ = event!.toString(), event$ = event$(1,pos("@"=event$)-1)
    print event$,": ",event!.getSelectedFiles()
    i = msgbox(event$ + ": " + str(event!.getSelectedFiles()))
    if event!.getSelectedFiles().size() = 0 then return
    for i = 0 to event!.getSelectedFiles().size() - 1
        cf$ = event!.getSelectedFiles().get(i)
        cf! = fs!.getClientFile(cf$)
        print "getPath: ",cf!.getPath()
        path$ = cf!.copyFromClient()
        print "copyFromClient: ",path$
        print "exists: ",cf!.exists()
        print "size:",cf!.size()
    next i
return

cancel:
    event! = sysgui!.getLastEvent()
    event$ = event!.toString(), event$ = event$(1,pos("@"=event$)-1)
    print event$
    i = msgbox(event$)
return

event:
    event! = sysgui!.getLastEvent()
    event$ = event!.toString(), event$ = event$(1,pos("@"=event$)-1)
    control! = event!.getControl()
    control$ = control!.toString(), control$ = control$(1,pos("@"=control$)-1)
    print control$," ",event$
return

showDropzone:
    chooser!.setDropZoneVisible(1)
    print "BBjFileChooser::getDropZoneVisible: ",chooser!.getDropZoneVisible()
return

hideDropzone:
    chooser!.setDropZoneVisible(0)
    print "BBjFileChooser::getDropZoneVisible: ",chooser!.getDropZoneVisible()
return

See Also

BBjAPI

BBjSysGui

BBjWindow

BBjFileChooser

BBjWindow::addFileChooser

BBjFileChooser::getDropZoneVisible

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.