1/29/2007

网页中添加三层菜单

gf 的项目中需要用到三层菜单,总结如下:

Renders a Javascript Menu based on the excellent JSCookMenu by Heng Yuan(http://www.cs.ucla.edu/~heng/JSCookMenu), the nested NavigationMenuItem(s) are rendered as Javascript Menu.

If you want to use jscookMenu in your application, you will have to:
* Add jscookmenu directory containing css and scripting code to your web directory (you can find it in the examples application).
* Add scripts and stylesheets for the theme you would like to use to html-header (see also inc/header.inc in the examples application)
* Put the tomahawk.jar in your WEB-INF/lib directory (or in the classpath of your application server.)
* Add the following to your JSP page in order to use one of the MyFaces custom components:
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

Well,the syntax of jscookMenu is as follows:

<t:jscookMenu [ user-role-support-attributes ]
[layout="values {hbr, hbl, hur, hul, vbr, vbl, vur, vul}"]
[theme="values {ThemeIE, ThemeMiniBlack, ThemeOffice, ThemePanel}"]
Nested <t:navigationMenuItem> or <t:navigationMenuItems> tags (menu items)
</t:jscookMenu>



不同的 theme (效果)可以到这里查看 http://jscook.yuanheng.org/JSCookMenu/ThemeMiniBlack.html

例子:
The code in my menu.jsp is as follows:

<%@ taglib uri="http://myfaces.apache.org/extensions" prefix="x"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<x:jscookMenu layout="vbr" theme="ThemeECCGroup" rendered="#{MenuBean.hasMenu}">
<x:navigationMenuItems value="#{MenuBean.menu}" />
</x:jscookMenu>


The code in my backing bean is as follows: (this will eventually be generated from the database)

/**
* Package that this class belongs to.
*/
package uk.co.eccgroup.controller.action;

import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;

import org.apache.myfaces.custom.navmenu.NavigationMenuItem;
import org.apache.log4j.Logger;

/**
* MenuBean backing bean for application menus
*/
public class MenuBean
{
private static final Logger logger = Logger.getLogger(MenuBean.class);

public List<NavigationMenuItem> getContextMenu()
{
//Get view id
String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
logger.debug("view id: " + viewId);

//Menu
List<NavigationMenuItem> contextMenu = null;

if(viewId.equals("/home.jsp"))
{
//Context Menu
contextMenu = new ArrayList<NavigationMenuItem>();
contextMenu.add(new NavigationMenuItem("Application Development", "nav_services_applicationdevelopment", null, false));
contextMenu.add(new NavigationMenuItem("Consultancy Services", "nav_services_consultancy", null, false));
contextMenu.add(new NavigationMenuItem("Recruitment Services", "nav_services_recruitment", null, false));
contextMenu.add(new NavigationMenuItem("Contact Us", "nav_contact", null, false));
}

if(
viewId.equals("/applicationdevelopment.jsp")
|| viewId.equals("/recruitment.jsp")
)
{
contextMenu = new ArrayList<NavigationMenuItem>();
contextMenu.add(new NavigationMenuItem("Price Guide", "nav_price", null, false));
contextMenu.add(new NavigationMenuItem("Contact Us", "nav_contact", null, false));
}

if(viewId.equals("/consultancy.jsp"))
{
contextMenu = new ArrayList<NavigationMenuItem>();
contextMenu.add(new NavigationMenuItem("Our Consultants", "nav_consultants", null, false));
contextMenu.add(new NavigationMenuItem("Price Guide", "nav_price", null, false));
contextMenu.add(new NavigationMenuItem("Contact Us", "nav_contact", null, false));
}

//Return menu
return contextMenu;
}

public boolean getHasContextMenu()
{
boolean hasMenu = false;

List<NavigationMenuItem> contextMenu = getContextMenu();

if(contextMenu != null)
hasMenu = true;

return hasMenu;
}

public boolean getHasMenu()
{
return true;
}

public List<NavigationMenuItem> getMenu()
{
//Main Menu
List<NavigationMenuItem> menu = new ArrayList<NavigationMenuItem>();
menu.add(new NavigationMenuItem("Home", "nav_home", null, false));
menu.add(new NavigationMenuItem("Our Consultants", "nav_consultants", null, false));
menu.add(new NavigationMenuItem("Services", "nav_services", null, false));
//menu.add(new NavigationMenuItem("Documents", "nav_documents", null, false));
menu.add(new NavigationMenuItem("Price Guide", "nav_price", null, false));
//menu.add(new NavigationMenuItem("Web Log", "nav_weblog", null, false));
menu.add(new NavigationMenuItem("Contact Us", "nav_contact", null, false));

//Services Sub Menu
List<NavigationMenuItem> services = new ArrayList<NavigationMenuItem>();
services.add(new NavigationMenuItem("Application Development", "nav_services_applicationdevelopment", null, false));
services.add(new NavigationMenuItem("Consultancy", "nav_services_consultancy", null, false));
services.add(new NavigationMenuItem("Recruitment Services", "nav_services_recruitment", null, false));

//Documents Sub Menu
List<NavigationMenuItem> documents = new ArrayList<NavigationMenuItem>();
documents.add(new NavigationMenuItem("AJAX", "nav_documents_ajax", null, false));
documents.add(new NavigationMenuItem("EJB", "nav_documents_ejb", null, false));
documents.add(new NavigationMenuItem("Hibernate", "nav_documents_hibernate", null, false));
documents.add(new NavigationMenuItem("JBoss", "nav_documents_jboss", null, false));
documents.add(new NavigationMenuItem("JSF", "nav_documents_jsf", null, false));

//Add services to main menu
NavigationMenuItem[] servicesArray = services.toArray(new NavigationMenuItem[0]);
menu.get(2).setNavigationMenuItems(servicesArray);

//Add documents to main menu
NavigationMenuItem[] documentsArray = documents.toArray(new NavigationMenuItem[0]);
//menu.get(3).setNavigationMenuItems(documentsArray);

//Return menu
return menu;
}

public void setContextMenu(List<NavigationMenuItem> contextMenu)
{
//Do nothing
}

public void setHasContextMenu(boolean hasContextMenu)
{
//Do nothing
}

public void setHasMenu(boolean hasMenu)
{
//Do nothing
}

public void setMenu(List<NavigationMenuItem> menu)
{
//Do nothing
}
}

1/24/2007

debian 下安装中文字体及 startx 问题

1) debian 下安装中文字体
apt-get install ttf-arphic-bkai00mp ttf-arphic-bsmi00lp ttf-arphic-gbsn00lp ttf-arphic-gbsn00lp
在/etc/apt/sources.list中加上:
deb ftp://debian.linux.org.tw/pub/apt unstable main
deb http://apt.debian.org.tw/ unstable main
然后运行apt-get updateapt-get install ttf-arphic-newsung xfonts-wqy
这样就安装好了Firefly和文泉驿字体了
dpkg-reconfigure fontconfig 进行配置

2) startx 启动报错
我執行dpkg-reconfigure xserver-xfree86 (或dpkg-reconfigure xserver-xorg,根据你安装的xserver)后驱动, 再把Bus ID改成PCI:0:12:0後, 就可以了。 (dpkp-reconfigure xserver-xfree86BUSID输入PCI:01:0:00)

唐僧的家书(转载)

唐僧的家书
亲爱的悟空,我这封信写的很慢,因为知道你看字不快。我们已经搬家了,不过地址没改,因为搬家的时候把门牌带来了。这礼拜下两次雨,第一次下3天,第二次下4天。昨天我们去买比撒,店员问我要切成8片还是12片,我说8片就成了,12片吃不完。我给你寄去件外套,怕邮寄时超重,把扣子剪下来放口袋里了。嫦娥生了,因为不知道是男是女,所以不知道你是该当舅舅还是阿姨。最后告诉你本来想给你寄钱。可是信封已经封上了…… 元旦快到了,别忘了给孩子们讲讲很久很久很久以前的事:那时候天还是蓝的,水也是绿的,庄稼是长在地里的,猪肉是可以放心吃的,耗子还是怕猫的,法庭是讲理的,结婚是先谈恋爱的,理发店是只管理发的,药是可以治病的,医生是救死扶伤的,拍电影是不需要陪导演睡觉的,照相是要穿衣服的,欠钱是要还的,孩子的爸爸是明确的,学校是不图挣钱的,白痴是不能当教授的,卖狗肉是不能挂羊头的,结婚了是不能泡MM的,买东西是要付钱的

1/19/2007

今天晚上要看的

java help
http://www.ibm.com/developerworks/cn/java/j-javahelp2/

1/11/2007

以后要多做算法题

http://acm.zju.edu.cn/

加油~

电脑族的健康菜单

电脑族的健康菜单

  每天至少8小时与电脑为伍吗?你经常熬夜,并用“垃圾食物”果腹吗?你有眼睛疲劳、腰酸背痛等等症状吗?如果答案肯定,那么你就应该特别关注了。及时补充营养,调整饮食菜单。其中健脑、护眼、补钙这三大方面是最关键的。

  健脑元素
 
  脂肪类:代表性食物有坚果、芝麻、自然状态下饲养的动物等。
  蛋白质:代表性食物有瘦肉、鸡蛋、鱼类等。
  碳水化合物:代表性食物有杂粮、糙米、红糖、糕点等。
  维生素C:代表性食物有鲜果类、黄绿色蔬菜等。

  B族维生素
包括维生素B1、维生素B2、叶酸等,代表性食物有香菇、野菜等。坚果含有大量的蛋白质、不饱和脂肪酸、卵磷脂、无机盐和维生素,经常食用,对改善脑营养供给很有益处。

  香菇、鸡蛋、鱼类、黄花菜、洋葱、小米、龙眼、柚子

  护眼元素

  维生素A和β-胡萝卜素有助于补肝明目,缓解眼睛疲劳。维生素A主要存在于各种动物的肝脏、鱼肝油、蛋黄中。植物性食物只能提供维生素A原。β-胡萝卜素主要存在于胡萝卜、西红柿、波菜、韭菜、杏、红薯等绿黄色蔬果中。

  维生素C、胡萝卜、菠菜、西红柿、韭菜、枸杞子、青椒、杏、枣

  钙的重要性

  钙是人体生命活动的调节剂,是人体生命之源。在维持人体循环、呼吸、神经、内分泌、消化、血液、肌肉、骨骼、泌尿、免疫等各系统正常生理功能中起重要调节作用。人体没有任何系统的功能于钙无关,钙代谢平衡对于维持生命和健康起到至关重要的作用。

  牛奶、海米、油菜、黑芝麻、黄豆、西兰花、芹菜、紫菜。

1/08/2007

自己的服务器

最近想把闲置的机器利用起来,做成 ftp、web 等功能的服务器,首先需要解决不少问题呢,先记下来:
1. 分区
2. ssh,ftp 权限控制
3. ADSL
4. 防火墙
...


解决方案:

1. 分区
硬盘80G,内存512M
/boot 128M
/var 50G 尽量分配大一
/ 20G
swap 1G 内存的两倍

2. ssh,ftp 权限控制


3. ADSL 拨号

4. 防火墙

5. 代理 Squid

6. 网络结构