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 AMlinkAnother new ZK fiddle
5guest113.160.40.221170psuMar 25, 2013 9:21:50 AMlinkresources
index.zulzul<zk>
<vbox apply="pkg$.demo.GanttZoomComposer">
<label value="Repartition of operations" zclass="h2"/>
<chart id="gantt"
width="1000"
height="700"
type="gantt"
threeD="false"
fgAlpha="128"
dateFormat="yyyy/MM/dd" />
</vbox>
</zk>GanttZoomComposer.javajavapublic class GanttZoomComposer extends GenericForwardComposer {
private SessionVo currentSession = new SessionVo();
private Chart gantt;
private GanttModel ganttModel;
private GanttChartEngine gCE = new GanttChartEngine();
/**
*
*/
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
//choose color set
gCE.setColorSet(3);
//attach default model to gantt
gantt.setModel(gCE.getModel());
ganttModel = new GanttModel();
//update Gantt mondel
updateGanttModel();
currentSession.setAttribute(MappingAddresses.GANTT_ZOOM_COMPOSER, this);
}
/**
* Display selected data on the gantt model
*/
public void updateGanttModel(){
System.out.println("GanttZoomComposer");
//get data from the session
List<OperationVo> listOperationVo = (List<OperationVo>) currentSession.getAttribute(MappingAddresses.ALL_OPERATIONS_VO);
ganttModel = new GanttModel();
//Display all operations on the gantt
for(OperationVo operationVo: listOperationVo){
GanttTask gTask = new GanttTask(operationVo.getResourceNumber()+". " +operationVo.getResourceName()
, gCE.date(operationVo.getFrom()), gCE.date(operationVo.getTo())
, 0.0);
System.out.println("GTask " + gTask.getDescription() + " - " + gTask.getStart() + " - " + gTask.getEnd());
ganttModel.addValue(operationVo.getProductNumber()+". " + operationVo.getProductName(), gTask);
}
gantt.setModel(ganttModel);
}
}GanttChartEngine.javajavapublic class GanttChartEngine extends JFreeChartEngine {
/**
*
*/
private static final long serialVersionUID = 3043595160218812633L;
public static String task1Color;
public static String task2Color;
public static String shadowColor;
public static String completeColor;
public static String incompleteColor;
public static boolean graidentBar = false;
private final Calendar calendar = Calendar.getInstance();
/**
*
* @param graidentBar
*/
public static void setGraidentBar(boolean graidentBar) {
GanttChartEngine.graidentBar = graidentBar;
}
/**
*
*/
public GanttChartEngine() {
}
/**
* @param jfchart
* @param chart
*/
public boolean prepareJFreeChart(JFreeChart jfchart, Chart chart) {
if (task1Color == null)
return false;
CategoryPlot plot = (CategoryPlot) jfchart.getPlot();
GanttRenderer renderer = (GanttRenderer) plot.getRenderer();
renderer.setBarPainter(graidentBar ? new GradientBarPainter() : new StandardBarPainter());
renderer.setIncompletePaint(Color.decode(incompleteColor));
renderer.setCompletePaint(Color.decode(completeColor));
renderer.setShadowPaint(Color.decode(shadowColor));
renderer.setSeriesPaint(0, Color.decode(task1Color));
renderer.setSeriesPaint(1, Color.decode(task2Color));
return false;
}
/**
*
* @param value
*/
public void setColorSet(int value) {
switch (value) {
case 1:
graidentBar = false;
task1Color = "#99BD51";
task2Color = "#006633";
shadowColor = "#EBF6CA";
completeColor = "#006633";
incompleteColor = "#99BD51";
break;
case 2:
graidentBar = true;
task1Color = "#0090FF";
task2Color = "#00CC00";
shadowColor = "#EBF6CA";
completeColor = "#00CC00";
incompleteColor = "#00CC00";
break;
case 3:
graidentBar = true;
task1Color = "#ABABAB";
task2Color = "#6A6A6A";
shadowColor = "#EBF6CA";
completeColor = "#A0A0A0";
incompleteColor = "#434E54";
break;
case 0:
default: // Default Color
task1Color = null;
}
}
/**
*
* @param timestampDate
* @return
*/
public Date date(String timestampDate) {
String strYear = timestampDate.substring(0, timestampDate.indexOf("-"));
timestampDate = timestampDate.substring(strYear.length()+1);
String strMonth = timestampDate.substring(0, timestampDate.indexOf("-"));
timestampDate = timestampDate.substring(strMonth.length()+1);
String strDay = timestampDate.substring(0, timestampDate.indexOf(" "));
calendar.set(Integer.parseInt(strYear), Integer.parseInt(strMonth)-1, Integer.parseInt(strDay));
Date result = calendar.getTime();
return result;
}
/**
*
* @param year
* @param month
* @param day
* @return
*/
public Date date(int year, int month, int day) {
final java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.set(year, month-1, day);
final Date result = calendar.getTime();
return result;
}
public GanttModel getModel() {
GanttModel ganttmodel = new GanttModel();
int theYear = calendar.get(Calendar.YEAR);
boolean complete = true;
ganttmodel.addValue("Actual", new GanttTask("Write Proposal", date(theYear,4,1), date(theYear,4,3), complete ? 1.0 : 0.0));
return ganttmodel;
}
}