浏览 1625 次
锁定老帖子 主题:[十分着急]树结构中多时间的实现?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-24
直接来代码: 下面是我一个GWT中的树结构实现,大家不用关系是GWT什么的,我的问题是关于树的?请大家帮助,谢谢 其中子菜单中的数据本来应该借助数据库,直接查到然后比较的。但是现在我需要算出来,比如 Category category = new Category("年计划"); category.add(new YearEntry ("Y2006", "2006年")); category.add(new YearEntry ("Y2007", "2007年")); category.add(new YearEntry ("Y2008", "2008年")); //今年 category.add(new YearEntry ("Y2009", "2009年")); category.add(new YearEntry ("Y2010", "2010年")); return category;
上面代码中 今年是2008年,往上算两年即2007和2006,往后算两年即2009和2010,然后排列出来。如何实现? 还有一点显示出来的时候,今年这里后面有个红色"[√ ]"的标记。
VtsTaskModel.java package com.lingran.vts.client.model; import java.util.ArrayList; import java.util.List; import com.extjs.gxt.ui.client.data.BaseTreeModel; import com.extjs.gxt.ui.client.data.TreeModel; import com.lingran.vts.client.pages.OverviewPage; import com.lingran.vts.client.pages.Page; public class VtsTaskModel extends BaseTreeModel { private List<Entry> entries = new ArrayList<Entry>(); private Category createYearPlanEntries() { Category category = new Category("年计划"); category.add(new YearEntry ("Y2006", "2006年")); category.add(new YearEntry ("Y2007", "2007年")); category.add(new YearEntry ("Y2008", "2008年")); //今年 category.add(new YearEntry ("Y2009", "2009年")); category.add(new YearEntry ("Y2010", "2010年")); return category; } private Category createMonthPlanEntries() { Category category = new Category("月计划"); category.add(new MonthEntry ("M200806", "2008年06月")); category.add(new MonthEntry ("M200807", "2008年07月"));//本月 category.add(new MonthEntry ("M200808", "2008年08月")); return category; } private Category createWeekPlanEntries() { Category category = new Category("周计划"); category.add(new MonthEntry ("W20080701", "2008年07月,第一周")); category.add(new MonthEntry ("W20080702", "2008年07月,第二周"));//本周 category.add(new MonthEntry ("W20080703", "2008年07月,第三周")); return category; } private Category createDayPlanEntries() { Category category = new Category("日常计划"); Category week; week = new Category ("上一周"); category.add(week); week.add(new DayEntry ("D20080713", "2008年07月13日,星期一")); week.add(new DayEntry ("D20080714", "2008年07月14日,星期二")); week.add(new DayEntry ("D20080715", "2008年07月15日,星期三")); week.add(new DayEntry ("D20080716", "2008年07月16日,星期四")); week.add(new DayEntry ("D20080717", "2008年07月17日,星期五")); week.add(new DayEntry ("D20080718", "2008年07月18日,星期六")); week.add(new DayEntry ("D20080719", "2008年07月19日,星期天")); week = new Category ("本周"); category.add(week); week.add(new DayEntry ("D20080713", "2008年07月13日,星期一")); week.add(new DayEntry ("D20080714", "2008年07月14日,星期二")); week.add(new DayEntry ("D20080715", "2008年07月15日,星期三")); week.add(new DayEntry ("D20080716", "2008年07月16日,星期四")); week.add(new DayEntry ("D20080717", "2008年07月17日,星期五"));//今日 week.add(new DayEntry ("D20080718", "2008年07月18日,星期六")); week.add(new DayEntry ("D20080719", "2008年07月19日,星期天")); week = new Category ("下一周"); category.add(week); week.add(new DayEntry ("D20080713", "2008年07月13日,星期一")); week.add(new DayEntry ("D20080714", "2008年07月14日,星期二")); week.add(new DayEntry ("D20080715", "2008年07月15日,星期三")); week.add(new DayEntry ("D20080716", "2008年07月16日,星期四")); week.add(new DayEntry ("D20080717", "2008年07月17日,星期五")); week.add(new DayEntry ("D20080718", "2008年07月18日,星期六")); week.add(new DayEntry ("D20080719", "2008年07月19日,星期天")); return category; } private Category createProjectEntries () { Category category = new Category("项目计划"); return category; } private Category createTodayPersonTaskEntries () { Category category = new Category("今日派发任务"); return category; } public VtsTaskModel() { set("overview", new Entry("Overview")); // Period plan tree content Category periodPlans = new Category("周期计划"); periodPlans.add(createYearPlanEntries()); periodPlans.add(createMonthPlanEntries()); periodPlans.add(createWeekPlanEntries()); periodPlans.add(createDayPlanEntries()); add(periodPlans); // Project tree content add(createProjectEntries ()); // Tody person tasks add(createTodayPersonTaskEntries ()); loadEntries(this); } public Entry findEntry(String name) { if (get(name) != null) { return (Entry) get(name); } for (Entry entry : getEntries()) { if (name.equals(entry.getId())) { return entry; } } return null; } public List<Entry> getEntries() { return entries; } private void loadEntries(TreeModel<TreeModel> model) { for (TreeModel child : model.getChildren()) { if (child instanceof Entry) { entries.add((Entry) child); } else if (child instanceof Category) { loadEntries(child); } } } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-07-24
有朋友不明白需求,下面详细:
代码中我是写死了的,但是要自动生成今年的年份,和上下2年的年份 |
|
返回顶楼 | |