Bar
Source :
1. File Zul :
1.1. bar_chart.zul
<vlayout apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('demo.chart.bar.BarChartVM')"> <chart id="mybarchart" width="520" height="400" fgAlpha="255" paneColor="#ffffff" bgColor="#ffffff" type="bar" threeD="@bind(vm.threeD)" orient="@bind(vm.orient)" model="@bind(vm.model)" engine="@bind(vm.engine)"/></vlayout>
1.2. bar_chart_Ctrl.zul
<vlayout apply="org.zkoss.bind.BindComposer"> <groupbox closable="false" sclass="z-demo-config"> <caption label="Type Control" /> <vlayout> <checkbox label="Toggle 3D Bar Chart" checked="false" onCheck="@global-command('configChanged', threeD=self.checked)"/> <checkbox label="Horizontal" checked="true" onCheck="@global-command('configChanged', orient=self.checked?'horizontal':'vertical')"/> </vlayout> </groupbox></vlayout>
2. View Model :
package demo.chart.bar;import org.zkoss.bind.annotation.BindingParam;import org.zkoss.bind.annotation.GlobalCommand;import org.zkoss.bind.annotation.Init;import org.zkoss.bind.annotation.NotifyChange;import org.zkoss.zul.CategoryModel;public class BarChartVM { BarChartEngine engine; CategoryModel model; boolean threeD = false; String orient = "horizontal"; @Init public void init() { // prepare chart data engine = new BarChartEngine(); model = ChartData.getModel(); } public BarChartEngine getEngine() { return engine; } public CategoryModel getModel() { return model; } public String getOrient() { return orient; } public boolean isThreeD() { return threeD; } @GlobalCommand("configChanged") @NotifyChange({"threeD","orient"}) public void onConfigChanged( @BindingParam("threeD") Boolean threeD, @BindingParam("orient") String orient){ if(threeD != null){ this.threeD = threeD; } if(orient != null){ this.orient = orient; } }}3. Model :
3.1. ChartData.java
package demo.chart.bar;import java.util.Calendar;import org.zkoss.zul.CategoryModel;import org.zkoss.zul.SimpleCategoryModel;public class ChartData { public static CategoryModel getModel(){ int year = Calendar.getInstance().get(Calendar.YEAR) + 1900; CategoryModel model = new SimpleCategoryModel(); model.setValue(Integer.toString(year - 2), "Q1", new Integer(17)); model.setValue(Integer.toString(year - 2), "Q2", new Integer(36)); model.setValue(Integer.toString(year - 2), "Q3", new Integer(39)); model.setValue(Integer.toString(year - 2), "Q4", new Integer(49)); model.setValue(Integer.toString(year - 1), "Q1", new Integer(20)); model.setValue(Integer.toString(year - 1), "Q2", new Integer(35)); model.setValue(Integer.toString(year - 1), "Q3", new Integer(40)); model.setValue(Integer.toString(year - 1), "Q4", new Integer(55)); model.setValue(Integer.toString(year), "Q1", new Integer(40)); model.setValue(Integer.toString(year), "Q2", new Integer(60)); model.setValue(Integer.toString(year), "Q3", new Integer(70)); model.setValue(Integer.toString(year), "Q4", new Integer(90)); return model; }}3.2. ChartColor.java
package demo.chart;import java.awt.Color;import org.apache.commons.lang.StringUtils;public class ChartColors { //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 StringUtils.leftPad(Integer.toHexString(color.getRGB() & 0xFFFFFF), 6, '0'); } }Hasil :
Reference : https://www.zkoss.org/zkdemo/chart