论坛首页 入门技术论坛

[十分着急]树结构中多时间的实现?

浏览 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);
			}
		}
	}

}

 

   发表时间:2008-07-24  
有朋友不明白需求,下面详细:
代码中我是写死了的,但是要自动生成今年的年份,和上下2年的年份
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics