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 :

constraint binding textbox

3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlink

Another new ZK fiddle

2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlink

Another new ZK fiddle

1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlink

Another new ZK fiddle

1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlink

tooltip example

2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlink

Another new ZK fiddle

1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlink

Another new ZK fiddle

1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlink

onClose

1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlink

Another new ZK fiddle

1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlink

ZK-5912-Suggestion

2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlink

ZK Charts in ZK Tab tabpanel

1guest172.70.251.91ngvl0lMar 29, 2024 6:31:17 PMlink

resources

index.zulzul<?xml version="1.0" encoding="UTF-8"?> <window apply="demo.bar.BarNegativeStackComposer"> <charts id="chart" type="bar" title="Population pyramid for Germany, midyear 2010" subtitle="Source: www.census.gov"/> </window>TestComposer.javajava package demo.bar; import org.zkoss.chart.Charts; import org.zkoss.chart.XAxis; import org.zkoss.chart.YAxis; import org.zkoss.json.JavaScriptValue; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.Window; public class BarNegativeStackComposer extends SelectorComposer<Window> { @Wire Charts chart; public void doAfterCompose(Window comp) throws Exception { super.doAfterCompose(comp); chart.setModel(BarNegativeStackData.getCategoryModel()); chart.getXAxis().setReversed(false); chart.getXAxis().getLabels().setStep(1); // mirror axis on right side XAxis minorAxis = chart.getXAxis(1); minorAxis.setOpposite(true); minorAxis.setReversed(false); minorAxis.setLinkedTo(0); minorAxis.getLabels().setStep(1); minorAxis.setCategories(BarNegativeStackData.getCategories()); YAxis yAxis = chart.getYAxis(); yAxis.setTitle(""); yAxis.getLabels().setFormatter(new JavaScriptValue("function() {return Math.abs(this.value)/1000000 + 'M';}")); yAxis.setMin(-4000000); yAxis.setMax(4000000); chart.getPlotOptions().getSeries().setStacking("normal"); chart.getTooltip().setFormatter(new JavaScriptValue("function() {return '<b>' + this.series.name + ', age ' + this.point.category + '</b><br/>' + 'Population: ' + Highcharts.numberFormat(Math.abs(this.point.y), 0);}")); } }PieChartVM.javajavaimport org.zkoss.chart.model.CategoryModel; import org.zkoss.chart.model.DefaultCategoryModel; public class PieChartVM { private static CategoryModel model; static { model = new DefaultCategoryModel(); model.setValue("Year 1800", "Africa", 107); model.setValue("Year 1800", "America", 31); model.setValue("Year 1800", "Asia", 635); model.setValue("Year 1800", "Europe", 203); model.setValue("Year 1800", "Oceania", 2); model.setValue("Year 1900", "Africa", 133); model.setValue("Year 1900", "America", 156); model.setValue("Year 1900", "Asia", 947); model.setValue("Year 1900", "Europe", 408); model.setValue("Year 1900", "Oceania", 6); model.setValue("Year 2008", "Africa", 973); model.setValue("Year 2008", "America", 914); model.setValue("Year 2008", "Asia", 4054); model.setValue("Year 2008", "Europe", 732); model.setValue("Year 2008", "Oceania", 34); } public static CategoryModel getCategoryModel() { return model; } } PieChartEngine.javajavaimport java.awt.Color; import java.awt.Paint; import java.awt.Shape; import java.awt.Stroke; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.DefaultDrawingSupplier; import org.jfree.chart.plot.PiePlot; import org.zkoss.zkex.zul.impl.JFreeChartEngine; import org.zkoss.zul.Chart; /* * you are able to do many advanced chart customization by extending ChartEngine */ public class PieChartEngine extends JFreeChartEngine { private boolean explode = false; public boolean prepareJFreeChart(JFreeChart jfchart, Chart chart) { jfchart.setBackgroundPaint(Color.white); PiePlot piePlot = (PiePlot) jfchart.getPlot(); piePlot.setLabelBackgroundPaint(ChartColors.COLOR_4); //override some default colors Paint[] colors = new Paint[] {ChartColors.COLOR_1, ChartColors.COLOR_2, ChartColors.COLOR_3, ChartColors.COLOR_4}; DefaultDrawingSupplier defaults = new DefaultDrawingSupplier(); piePlot.setDrawingSupplier(new DefaultDrawingSupplier(colors, new Paint[]{defaults.getNextFillPaint()}, new Paint[]{defaults.getNextOutlinePaint()}, new Stroke[]{defaults.getNextStroke()}, new Stroke[] {defaults.getNextOutlineStroke()}, new Shape[] {defaults.getNextShape()})); piePlot.setShadowPaint(null); piePlot.setSectionOutlinesVisible(false); piePlot.setExplodePercent("Java", explode ? 0.2 : 0); return false; } public void setExplode(boolean explode) { this.explode = explode; } }ChartColors.javajavaimport java.awt.Color; public class ChartColors { private static final int PAD_LIMIT = 8192; //main colors public static Color COLOR_1 = new Color(0x3E454C); public static Color COLOR_2 = new Color(0x2185C5); public static Color COLOR_3 = new Color(0x7ECEFD); public static Color COLOR_4 = new Color(0xFFF6E5); public static Color COLOR_5 = new Color(0xFF7F66); //additional colors public static Color COLOR_6 = new Color(0x98D9FF); public static Color COLOR_7 = new Color(0x4689B1); public static Color COLOR_8 = new Color(0xB17C35); public static Color COLOR_9 = new Color(0xFDC77E); public static String toHtmlColor(Color color) { return "#" + toHexColor(color); } public static String toHexColor(Color color) { return leftPad(Integer.toHexString(color.getRGB() & 0xFFFFFF), 6, '0'); } public static String leftPad(String str, int size, char padChar) { if (str == null) { return null; } int pads = size - str.length(); if (pads <= 0) { return str; // returns original String when possible } if (pads > PAD_LIMIT) { return leftPad(str, size, String.valueOf(padChar)); } return padding(pads, padChar).concat(str); } private static String padding(int repeat, char padChar) throws IndexOutOfBoundsException { if (repeat < 0) { throw new IndexOutOfBoundsException("Cannot pad a negative amount: " + repeat); } final char[] buf = new char[repeat]; for (int i = 0; i < buf.length; i++) { buf[i] = padChar; } return new String(buf); } public static String leftPad(String str, int size, String padStr) { if (str == null) { return null; } if (isEmpty(padStr)) { padStr = " "; } int padLen = padStr.length(); int strLen = str.length(); int pads = size - strLen; if (pads <= 0) { return str; // returns original String when possible } if (padLen == 1 && pads <= PAD_LIMIT) { return leftPad(str, size, padStr.charAt(0)); } if (pads == padLen) { return padStr.concat(str); } else if (pads < padLen) { return padStr.substring(0, pads).concat(str); } else { char[] padding = new char[pads]; char[] padChars = padStr.toCharArray(); for (int i = 0; i < pads; i++) { padding[i] = padChars[i % padLen]; } return new String(padding).concat(str); } } public static boolean isEmpty(String str) { return str == null || str.length() == 0; } } PieChartData.javajavaimport org.zkoss.zul.PieModel; import org.zkoss.zul.SimplePieModel; public class PieChartData { public static PieModel getModel(){ PieModel model = new SimplePieModel(); model.setValue("C#", new Double(21.2)); model.setValue("VB", new Double(10.2)); model.setValue("Java", new Double(40.4)); model.setValue("PHP", new Double(28.2)); return model; } }PieChartConfigVM.javajavapublic class PieChartConfigVM { double value1 = 22.1D; double value2 = 10.2D; double value3 = 40.4D; double value4 = 28.2D; public double getValue1() { return value1; } public void setValue1(double value1) { this.value1 = value1; } public double getValue2() { return value2; } public void setValue2(double value2) { this.value2 = value2; } public double getValue3() { return value3; } public void setValue3(double value3) { this.value3 = value3; } public double getValue4() { return value4; } public void setValue4(double value4) { this.value4 = value4; } }