Processing...

Suggested case list:

Using timer to refresh a grid

383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlink

user model to move item to another listbox

120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlink

Disabled list item row passed to VM-1981

296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlink

Disabled list item row passed to VM-1981

295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlink

Disabled list item row passed to VM-1981

294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlink

grid sample with ListModel/RowRenderer

816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlink

grid sample with ListModel/RowRenderer

809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlink

grid sample with ListModel/RowRenderer

196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlink

grid sample with ListModel/RowRenderer

195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlink

grid sample with ListModel/RowRenderer

194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlink

grid sample with ListModel/RowRenderer

193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlink

grid sample with ListModel/RowRenderer

192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlink

grid sample with ListModel/RowRenderer

191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlink

Hierarchy table without using ZK PE/EE

1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlink

grid sample with ListModel/RowRenderer

128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlink

user model to move item to another listbox

1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlink

Using timer to refresh a grid

1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlink

Fire a event from child iframe

1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlink

Textbox input restriction sample

1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlink

Test web core taglib in ZUL

1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlink

Latest 10 Fiddles :

custom-constraint-display

3Balder172.69.34.174ne44s1Dec 1, 2020 9:45:56 AMlink

custom-constraint-display

2Balder172.69.34.174ne44s1Dec 1, 2020 9:45:43 AMlink

custom-constraint-display

1Balder172.69.34.174ne44s1Dec 1, 2020 9:45:06 AMlink

clear input button

1cor3000108.162.215.118150nmnbDec 1, 2020 9:12:36 AMlink

DoModal wth Exception

7guest162.158.107.197108h613Dec 1, 2020 8:29:55 AMlink

DoModal wth Exception

6guest162.158.107.197108h613Dec 1, 2020 8:29:33 AMlink

toolbar

1hawk172.69.34.195s7c9e8Dec 1, 2020 7:35:02 AMlink

Change Iframe URL ADS

11guest162.158.227.11228fc61gDec 1, 2020 4:31:29 AMlink

Change Iframe URL

10guest162.158.227.11228fc61gDec 1, 2020 4:31:13 AMlink

Change Iframe URL

9guest162.158.227.11228fc61gDec 1, 2020 4:28:52 AMlink

Chart custom export with toggle

3guest172.69.2.1621t3d0qmOct 21, 2020 12:50:26 AMlink

resources

index.zulzul<zk> <div apply="pkg$.ExportComposer"> <charts id="mychart"></charts> </div> </zk>ExportComposer.javajavaimport java.util.ArrayList; import java.util.List; import java.util.Map; import org.zkoss.chart.Charts; import org.zkoss.chart.Exporting; import org.zkoss.chart.ExportingButton; import org.zkoss.chart.MenuItem; import org.zkoss.chart.model.DefaultSingleValueCategoryModel; import org.zkoss.chart.model.SingleValueCategoryModel; import org.zkoss.chart.util.AnyVal; import org.zkoss.json.JavaScriptValue; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zk.ui.util.Clients; public class ExportComposer extends SelectorComposer<Component> { @Wire private Charts mychart; private static final String ON_MY_CUSTOM_ITEM = "onMyCustomItem"; private static final String ON_MY_CUSTOM_TOGGLE = "onMyCustomToggle"; private boolean item1State; private SingleValueCategoryModel model = new DefaultSingleValueCategoryModel(); @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); //omitted code to build the content of the chart... createCustomExportItems(); } private void createCustomExportItems() { Exporting exporting = mychart.getExporting(); ExportingButton buttons = exporting.getButtons(); List<MenuItem> menuItems = new ArrayList<>(); //add "toggle" pattern menuitem menuItems.add(customToggleMenuItem(item1State, "Toggle this", fireServerEventScript(ON_MY_CUSTOM_TOGGLE, "item1"))); menuItems.add(separator()); //optional rebuild the default menu items, otherwise they are replaced menuItems.add(defaultMenuItem("printChart", "this.print();")); menuItems.add(separator()); menuItems.add(defaultMenuItem("downloadPNG", "this.exportChart();")); //removing default items (not replacing them back to the popup) //menuItems.add(defaultMenuItem("downloadJPEG", "this.exportChart({type: \"image/jpeg\"});")); //menuItems.add(defaultMenuItem("downloadPDF", "this.exportChart({type: \"application/pdf\"});")); //menuItems.add(defaultMenuItem("downloadSVG", "this.exportChart({type: \"image/svg+xml\"});")); menuItems.add(separator()); //add custom menu items (possible at any position in the list) menuItems.add(customMenuItem("My Custom Item (at Client)", "alert('custom menu item clicked, handled in browser')")); menuItems.add(customMenuItem("My Custom Item (to Server)", fireServerEventScript(ON_MY_CUSTOM_ITEM, ""))); buttons.setMenuItems(menuItems); } private String fireServerEventScript(String eventName, String payload) { return "var chartsWidget = zk(evt.target).$(); " + "chartsWidget.fire('" + eventName + "', {payload: '"+ payload +"'}, {toServer: true});"; } @Listen(ON_MY_CUSTOM_ITEM + " = #mychart") public void handleMyCustomItem() { Clients.showNotification("custem menu item clicked, handled on server"); } @Listen(ON_MY_CUSTOM_TOGGLE + " = #mychart") public void handleMyCustomToggle(Event event) { String payload = ((Map<String, String>) event.getData()).get("payload"); switch (payload) { case "item1": item1State = !item1State; createCustomExportItems(); mychart.invalidate(); break; default: break; } Clients.showNotification("custem menu item clicked, handled on server"); } private MenuItem customToggleMenuItem(Boolean state, String text, String onclickJS) { MenuItem menuItem = new MenuItem(); String iconString = state?"<i class=\"z-icon z-icon-check-square\"></i> ":"<i class=\"z-icon z-icon-square\"></i> "; menuItem.setText(iconString+text); menuItem.setOnclick(new JavaScriptValue("function(evt) {" + onclickJS + "}")); return menuItem; } private MenuItem customMenuItem(String text, String onclickJS) { MenuItem menuItem = new MenuItem(); menuItem.setText(text); menuItem.setOnclick(new JavaScriptValue("function(evt) {" + onclickJS + "}")); return menuItem; } private MenuItem defaultMenuItem(String textKey, String onclickJS) { MenuItem menuItem = new MenuItem(); menuItem.addExtraAttr("textKey", new AnyVal<String>(textKey)); menuItem.setOnclick(new JavaScriptValue("function(evt) {" + onclickJS + "}")); return menuItem; } private MenuItem separator() { MenuItem menuItem = new MenuItem(); menuItem.addExtraAttr("separator", new AnyVal<Boolean>(true)); return menuItem; } }