Suggested case list:
Using timer to refresh a grid
383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlinkuser model to move item to another listbox
120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlinkDisabled list item row passed to VM-1981
296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlinkDisabled list item row passed to VM-1981
295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlinkDisabled list item row passed to VM-1981
294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlinkgrid sample with ListModel/RowRenderer
816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlinkgrid sample with ListModel/RowRenderer
809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlinkgrid sample with ListModel/RowRenderer
196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlinkgrid sample with ListModel/RowRenderer
195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlinkgrid sample with ListModel/RowRenderer
194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlinkgrid sample with ListModel/RowRenderer
193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlinkgrid sample with ListModel/RowRenderer
192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlinkgrid sample with ListModel/RowRenderer
191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlinkHierarchy table without using ZK PE/EE
1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlinkgrid sample with ListModel/RowRenderer
128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlinkuser model to move item to another listbox
1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlinkUsing timer to refresh a grid
1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlinkFire a event from child iframe
1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlinkTextbox input restriction sample
1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlinkTest web core taglib in ZUL
1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlinkLatest 10 Fiddles :
constraint binding textbox
3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlinkAnother new ZK fiddle
2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlinkAnother new ZK fiddle
1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlinkAnother new ZK fiddle
1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlinktooltip example
2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlinkAnother new ZK fiddle
1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlinkAnother new ZK fiddle
1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlinkonClose
1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlinkAnother new ZK fiddle
1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlinkZK-5912-Suggestion
2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlinkCDSCardsChannel
24DavidTRegenstrief149.163.158.1791qo533cJan 7, 2017 4:35:58 AMlinkresources
index.zulzul<zk>
<div apply="pkg$.TestComposer">
<vlayout>
<hlayout>
<label>Summary:</label><textbox id="summary"/>
</hlayout>
<hlayout>
<label>Detail:</label><textbox id="detail" width="400px" rows="10"/>
</hlayout>
<hlayout>
<label>Indicator:</label>
<combobox id="indicator">
<comboitem>INFO</comboitem>
<comboitem>SUCCESS</comboitem>
<comboitem>WARNING</comboitem>
<comboitem>HARD_STOP</comboitem>
</combobox>
</hlayout>
<a id="sourceLink">source</a>
<div id="sourceDiv">
<hlayout>
<label>source label</label><textbox id="source_label"/>
</hlayout>
<hlayout>
<label>source url</label><textbox id="source_url"/>
</hlayout>
</div>
<vlayout id="suggestions" style="background-color:#cce5ff;">
<label value="Add your suggested orders..." style="color:grey; font-weight:bold; font-size:15px;"/>
<vlayout id="suggestedOrdersDiv" style="padding-top:0px;">
</vlayout>
<a label="Add New Group" id="addGroupLink" sclass="raveStandardLink"/>
</vlayout>
<hlayout>
<a class="btn btn-success" id="saveBtn">Save Channel</a>
<a label="Cancel" id="cancelBtn" class="btn btn-default" />
</hlayout>
</vlayout>
</div>
</zk>
TestComposer.javajavaimport org.zkoss.zk.ui.*;
import org.zkoss.zk.ui.event.*;
import org.zkoss.zk.ui.util.*;
import org.zkoss.zk.ui.ext.*;
import org.zkoss.zk.au.*;
import org.zkoss.zk.au.out.*;
import org.zkoss.zul.*;
public class TestComposer extends GenericForwardComposer{
Div sourceDiv;
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
sourceDiv.setVisible(false);
}
public void onClick$sourceLink(Event evt) {
sourceDiv.setVisible(!sourceDiv.isVisible());
}
public void onClick$btn(Event e) throws InterruptedException{
Messagebox.show("Hi btn");
}
private void addGroupSection(final boolean defaultGroup, final SuggestOrderGroup reloadGroup) {
final Vlayout suggestedGroupVlayout = new Vlayout();
final Label groupTitleLabel = new Label("Group Title");
groupTitleLabel.setSclass("raveInputLabel");
groupTitleLabel.setParent(suggestedGroupVlayout);
final Textbox groupTitleTextbox = new Textbox();
groupTitleTextbox.setSclass("raveWonderbarLookingTextboxWithoutCombo");
groupTitleTextbox.setRows(1);
groupTitleTextbox.setWidth("300px");
groupTitleTextbox.setHeight("30px");
groupTitleTextbox.setParent(suggestedGroupVlayout);
final String titleBoxId = Util.generateUniqueIDString();
groupTitleTextbox.setId(titleBoxId);
final Label orderTitleLabel = new Label("Orders");
orderTitleLabel.setSclass("raveInputLabel");
orderTitleLabel.setParent(suggestedGroupVlayout);
final Hlayout wonderbarHlayout = new Hlayout();
// CDS-87
final Combobox orderTypeCombobox = new Combobox();
final Comboitem orderComboItem = new Comboitem();
orderComboItem.setLabel("Order");
FhirResourceFactory fhirResourceFactory = FrameworkUtil.getAppFramework().getApplicationContext().getBean(FhirResourceFactory.class);
final OrdersSearchProvider orderSearchProvider = new OrdersSearchProvider(fhirResourceFactory);
orderSearchProvider.addOrderableListItems();
orderComboItem.setValue(orderSearchProvider);
orderComboItem.setHeight("30px");
orderComboItem.setParent(orderTypeCombobox);
final Comboitem observationComboItem = new Comboitem();
String observationLabel = TermClassName.OBSERVATION.name();
observationLabel = Character.toUpperCase(observationLabel.charAt(0))
+ observationLabel.substring(1).toLowerCase();
observationComboItem.setLabel(observationLabel);
final ObservationSearchProvider obsSearcher = FrameworkUtil.getAppFramework().getApplicationContext()
.getBean("observationSearchProvider", ObservationSearchProvider.class);
obsSearcher.addOrderableListItems();
observationComboItem.setValue(obsSearcher);
observationComboItem.setHeight("30px");
observationComboItem.setParent(orderTypeCombobox);
orderTypeCombobox.setParent(wonderbarHlayout);
final Wonderbar wonderbarSuggested = new Wonderbar();
if (defaultGroup) {
this.defaultGroupWonderBar = wonderbarSuggested;
this.defaultGroupTextbox = groupTitleTextbox;
}
final String wonderbarId = Util.generateUniqueIDString();
wonderbarSuggested.setItemRenderer(new RaveWonderBarRenderer());
wonderbarSuggested.setId(wonderbarId);
wonderbarSuggested.setSclass("raveWonderbarLookingTextboxWithoutCombo");
// CDS-87
wonderbarSuggested.setParent(wonderbarHlayout);
orderTypeCombobox.setSelectedIndex(0);
wonderbarSuggested.setSearchProvider(new RaveWonderBarServerSearchProvider(orderSearchProvider));
wonderbarSuggested.setValue("");
// wonderbarSuggested.init();
// CDS-87
orderTypeCombobox.addEventListener(Events.ON_CHANGE, new EventListener() {
@SuppressWarnings("rawtypes")
@Override
public void onEvent(final Event event) throws Exception {
final Comboitem selectedItem = orderTypeCombobox.getSelectedItem();
if (selectedItem != null) {
Object itemValue = selectedItem.getValue();
if (itemValue != null) {
if (itemValue instanceof SearchProvider) {
wonderbarSuggested.setItemRenderer(new RaveWonderBarRenderer());
wonderbarSuggested.setSearchProvider(
new RaveWonderBarServerSearchProvider((SearchProvider) itemValue));
}
wonderbarSuggested.setValue("");
wonderbarSuggested.invalidate();
}
}
}
});
// We don't think this is needed since you select what you want from the
// wonderbar.
// final Button addOrderBtn = new Button("Add");
// addOrderBtn.setParent(wonderbarHlayout);
wonderbarHlayout.setParent(suggestedGroupVlayout);
final Div suggestedOrderShowDiv = new Div();
suggestedOrderShowDiv.setStyle("float:left;");
suggestedOrderShowDiv.setParent(suggestedGroupVlayout);
final SuggestOrderGroup orderGroup = new SuggestOrderGroup();
orderGroup.setSuggestedActionList(new ArrayList<SuggestedAction>());
this.orderGroupList.add(orderGroup);
groupTitleTextbox.addEventListener(Events.ON_CHANGE, new EventListener() {
@Override
public void onEvent(final Event event) throws Exception {
orderGroup.setGroupHeader(groupTitleTextbox.getValue());
}
});
wonderbarSuggested.addEventListener(WonderbarSelectEvent.ON_WONDERBAR_SELECT, new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
Object value = RaveUtil.getSelectedWonderbarData(event);
if (value != null) {
CodeableConceptDt orderConcept = null;
final SuggestedAction suggestedAction = new SuggestedAction();
suggestedAction.setHeader(false);
suggestedAction.setSuggestedActionType(orderTypeCombobox.getSelectedItem().getLabel());
if (value instanceof OrderableListItem) {
orderConcept = RaveUtil.unwrapOrderableListItem(fhirResourceFactory, (OrderableListItem) value);
} else if (value instanceof CodeableConceptDt) {// CDS-87
orderConcept = (CodeableConceptDt) value;
} else if (value instanceof SearchResultWrapper) {
orderConcept = RaveUtil.unwrapSearchResult(fhirResourceFactory, (SearchResultWrapper) value);
}
suggestedAction.setConcept(orderConcept);
addSuggetedItem(suggestedAction, orderGroup, suggestedOrderShowDiv);
wonderbarSuggested.setValue("");
wonderbarSuggested.setSelectedItem("", null, false);
}
}
});
// wonderbarSuggested.getSelectedSearchValue();
if (reloadGroup != null) {
orderGroup.setGroupHeader(reloadGroup.getGroupHeader());
groupTitleTextbox.setValue(reloadGroup.getGroupHeader());
if (reloadGroup.getSuggestedActionList() != null) {
for (final SuggestedAction action : reloadGroup.getSuggestedActionList()) {
addSuggetedItem(action, orderGroup, suggestedOrderShowDiv);
}
}
}
suggestedGroupVlayout.setParent(this.suggestedOrdersDiv);
Clients.evalJavaScript("jq('$" + titleBoxId + "').watermark('Write your group title','gray', null, true)");
Clients.evalJavaScript("jq('$" + wonderbarId + "').watermark('Keep typing your order...','gray', null, true)");
}
private void addSuggetedItem(final SuggestedAction suggestedAction, final SuggestOrderGroup orderGroup,
final Div suggestedOrderShowDiv) {
if (suggestedAction != null) {
String suggestedName = null;
if (!suggestedAction.isHeader()) {
suggestedName = suggestedAction.getConcept().getCodingFirstRep().getDisplay();
} else {
suggestedName = suggestedAction.getMessage();
}
final Div suggestionChoicesDiv = new Div();
suggestionChoicesDiv.setStyle("float:left;");
final Label orderItemLabel = new Label(suggestedName);
orderItemLabel.setStyle("width:80px; height:30px; padding-left:5px; color:black; text-decoration:none;");
final Image image = new Image(
"https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcTKQCgCkhI472e9kJZYfu9IqAZtJ3xAgeq-gRHeITb2xSp81bzi");
image.addEventListener(Events.ON_CLICK, new EventListener() {
@Override
public void onEvent(final Event event) throws Exception {
clearSuggestedOrder(suggestionChoicesDiv, suggestedAction, orderGroup);
}
});
orderItemLabel.setParent(suggestionChoicesDiv);
image.setParent(suggestionChoicesDiv);
suggestionChoicesDiv.setParent(suggestedOrderShowDiv);
orderGroup.getSuggestedActionList().add(suggestedAction);
}
}
}