BBjPopupMenu::getClientProperty

Description

In BBj 19.10 and higher, this method returns a client property previously set with BBjPopupMenu::putClientProperty.

Syntax

Return Value

Method

string

getClientProperty(Object key)

Parameters

Variable

Description

key

Specifies a client property to be retrieved from the control.

Return Value

Returns the value of this property.

Remarks

This functionality is primarily intended for setting low-level control properties in GUI (Java Swing controls). When running in BUI, the properties don't affect the BBjPopupMenu itself, but may be used by the developer.

Sample Program

rem ' CSS sampler

sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
window! = sysgui!.addWindow(50,50,325,500,"CSS Sampler",$00090003$)
window!.setCallback(window!.ON_CLOSE,"eoj")
text$ = "The quick brown fox jumps over the lazy dog."
edit! = window!.addEditBox(100,25,25,275,50,text$,$$)
edit!.setName("MyEditBox")
print edit!.getName()
popupMenu! = edit!.addPopupMenu()
popupMenu!.setName("MyPopupMenu")
print popupMenu!.getName()
popupMenu!.setAttribute("property","value")
print popupMenu!.getAttribute("property")
popupMenu!.putClientProperty("property","value")
print popupMenu!.getClientProperty("property")
item1! = popupMenu!.addMenuItem(-1,"Popup Item 1",1,0)
item1!.setCallback(item1!.ON_POPUP_ITEM_SELECT,"popup")
item2! = popupMenu!.addMenuItem(-1,"Popup Item 2",1,1)
item2!.setCallback(item2!.ON_POPUP_ITEM_SELECT,"popup")
item3! = popupMenu!.addMenuItem(-1,"Popup Item 3",1,0)
item3!.setCallback(item3!.ON_POPUP_ITEM_SELECT,"popup")
border! = window!.addCheckBox(101,25,100,275,25,"borderStyle",$$)
border!.setCallback(border!.ON_CHECK_ON,"addStyle")
border!.setCallback(border!.ON_CHECK_OFF,"removeStyle")
shadow! = window!.addCheckBox(102,25,125,275,25,"shadowStyle",$$)
shadow!.setCallback(shadow!.ON_CHECK_ON,"addStyle")
shadow!.setCallback(shadow!.ON_CHECK_OFF,"removeStyle")
background! = window!.addCheckBox(103,25,150,275,25,"backgroundStyle",$$)
background!.setCallback(background!.ON_CHECK_ON,"addStyle")
background!.setCallback(background!.ON_CHECK_OFF,"removeStyle")
popupStyle1! = window!.addCheckBox(104,25,175,275,25,"popupStyle1",$$)
popupStyle1!.setCallback(popupStyle1!.ON_CHECK_ON,"addPopupStyle")
popupStyle1!.setCallback(popupStyle1!.ON_CHECK_OFF,"removePopupStyle")
popupStyle2! = window!.addCheckBox(105,25,200,275,25,"popupStyle2",$$)
popupStyle2!.setCallback(popupStyle2!.ON_CHECK_ON,"addPopupStyle")
popupStyle2!.setCallback(popupStyle2!.ON_CHECK_OFF,"removePopupStyle")
windowStyle! = window!.addCheckBox(106,25,225,275,25,"windowStyle",$$)
windowStyle!.setCallback(windowStyle!.ON_CHECK_ON,"addWindowStyle")
windowStyle!.setCallback(windowStyle!.ON_CHECK_OFF,"removeWindowStyle")
titlebarStyle! = window!.addCheckBox(107,25,250,275,25,"titleStyle",$$)
titlebarStyle!.setCallback(titlebarStyle!.ON_CHECK_ON,"addTitleBarStyle")
titlebarStyle!.setCallback(titlebarStyle!.ON_CHECK_OFF,"removeTitleBarStyle")
getStyles! = window!.addButton(1,25,300,125,25,"getStyles",$$)
getStyles!.setCallback(getStyles!.ON_BUTTON_PUSH,"getStyles")
clearStyles! = window!.addButton(2,175,300,125,25,"clearStyles",$$)
clearStyles!.setCallback(clearStyles!.ON_BUTTON_PUSH,"clearStyles")
window!.addStaticText(108,5,355,50,25,"Style:",$8000$)
style! = window!.addEditBox(109,60,350,240,25,"",$$)
window!.addStaticText(110,5,405,50,25,"Value:",$8000$)
value! = window!.addEditBox(111,60,400,240,25,"",$$)
getStyle! = window!.addButton(3,5,450,80,25,"Get Style",$$)
getStyle!.setCallback(getStyle!.ON_BUTTON_PUSH,"getStyle")
getComputedStyle! = window!.addButton(4,90,450,145,25,"Get Computed Style",$$)
getComputedStyle!.setCallback(getComputedStyle!.ON_BUTTON_PUSH,"getComputedStyle")
setStyle! = window!.addButton(5,240,450,80,25,"Set Style",$$)
setStyle!.setCallback(setStyle!.ON_BUTTON_PUSH,"setStyle")
process_events

eoj:
release

getStyles:
    i = msgbox(edit!.getStyles().toString(),0,"getStyles")
return

clearStyles:
    border!.setSelected(0)
    shadow!.setSelected(0)
    background!.setSelected(0)
    popup!.setSelected(0)
    important!.setSelected(0)
    windowStyle!.setSelected(0)
    titlebarStyle!.setSelected(0)
    edit!.clearStyles()
    popupMenu!.clearStyles()
    item1!.clearStyles()
    item2!.clearStyles()
    item3!.clearStyles()
    window!.clearStyles()
    window!.clearTitleBarStyles()
return

addStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    edit!.addStyle(style$)
    print edit!.getStyles()
return

removeStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    edit!.removeStyle(style$)
    print edit!.getStyles()
return

addPopupStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    popupMenu!.addStyle(style$)
    item1!.addStyle(style$)
    item2!.addStyle(style$)
    item3!.addStyle(style$)
    print popupMenu!.getStyles()
return

removePopupStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    popupMenu!.removeStyle(style$)
    item1!.removeStyle(style$)
    item2!.removeStyle(style$)
    item3!.removeStyle(style$)
    print popupMenu!.getStyles()
return

addWindowStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    window!.addStyle(style$)
    print window!.getStyles()
return

removeWindowStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    window!.removeStyle(style$)
    print window!.getStyles()
return

addTitleBarStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    window!.addTitleBarStyle(style$)
    print window!.getTitleBarStyles()
return

removeTitleBarStyle:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    style$ = control!.getText()
    window!.removeTitleBarStyle(style$)
    print window!.getTitleBarStyles()
return

getStyle:
    value!.setText(popupMenu!.getStyle(style!.getText()))
return

getComputedStyle:
    rem ' getComputedStyle only works with visible components
    popupMenu!.show(edit!,0,0)
    value!.setText(popupMenu!.getComputedStyle(style!.getText()))
    popupMenu!.hide()
return

setStyle:
    edit!.setStyle(style!.getText(),value!.getText())
    popupMenu!.setStyle(style!.getText(),value!.getText())
return

popup:
    event! = sysgui!.getLastEvent()
    print event!.getEventName()," ",event!.getMenuItem().getText()
return

}

Sample CSS

.backgroundStyle
{
    background: rgb(242,245,246) !important;
    background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%) !important;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))) !important;
    background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
    background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
    background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
    background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ) !important;
}
.borderStyle
{
    border-radius: 15px !important;
    border-width: 2px !important;
}
.shadowStyle
{
    box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.5) !important;
}
.Caption.BBjTopLevelWindow-titleBar.titleStyle
{
    background: #8195a9;
    background: -moz-linear-gradient(top, #889db3, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #889db3), color-stop(49%, #8195a9), color-stop(50%, #7a8da0), color-stop(98%, #738596), color-stop(100%, #8195a9));
    background: -webkit-linear-gradient(top, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: -o-linear-gradient(top, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: -ms-linear-gradient(top, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: linear-gradient(to bottom, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@colorNew1', endColorstr='@colorNew5', GradientType=0);
    color: #f8fafc;
    text-shadow: 0 1px 4px #404040;
}
.BBjPopupMenu.popupStyle1
{
    background: blue !important;
    color: yellow !important;
}
.BBjMenuItem.popupStyle1,.BBjCheckableMenuItem.popupStyle1
{
    background: blue !important;
    color: yellow !important;
}
.BBjPopupMenu.popupStyle2
{ 
    background: yellow !important;
    color: blue !important;
}
.BBjMenuItem.popupStyle2,.BBjCheckableMenuItem.popupStyle2
{ 
    background: yellow !important;
    color: blue !important;
}

See Also

BBjAPI

BBjSysGui

BBjWindow

BBjPopupMenu

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