Moxie

Dare you to move

 
 
 
 
 
 

  Moxie

四川省 成都市 白羊座

 发消息  写留言

 
自我介绍真诚
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 
 
 
圈子列表加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
日志评论
评论列表加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 

日历

 
 
模块内容加载中...
 
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 

新来的

2009-7-1 20:57:05 阅读(4) 评论(1)

    刚断奶的小家伙来我这里已经两天了,生活适应得还挺不错。每天早晨能准时叫我起床,也从没在自己窝里拉过东西。只是现在身体还很软,走起路来屁颠屁颠的,随时都会摔跟斗。

    本来打算叫它“蔡司”或者“Eric cartman”的,费姐说狗名要取得很贱才好养(其实“Eric”绝对够贱了吧),于是当场建议叫“包子”,“馒头”...

    结果还是听老杨的叫“黑皮”,小名“皮皮”。貌似和科大某个长得很白的在读博士同名了。

    今天下班的时候在好又多给它买了雀巢奶粉和花生酥,把它们和在一起捣碎了冲水大概正和它胃口,吃得那个香啊~幸运的是同住的老杨A看起来比我还喜欢它,这小东西真是有福气。

    再来说说自己吧,在新公司呆了一个周,和小黑崽一样适应得还算可以。

    话说这里的上班时间有点特别,上午十点半前都不算迟到,但是下班就得做相应的顺延了。理论上不能少于七小时。

    公司同事不错,再次遇到了个随和的Leader老杨B,还有个同为摄影爱好者的老杨C。(现在身边好多姓杨的,哈哈)

    楼下的伙食比学校稍贵一点,但相比之下绝对是物有所值的。

    至于交通,骑车15分钟,坐车40分钟,走路...  

    与之前的工作最大的不同是每天都需要直接与客户沟通。从没有如此频繁地和老外打过交道,这也算是一个突破了。

    亲切的是这里员工账户的命名方式,和工程中心相同,我还是songjc.

阅读(4) | 评论(1) | 阅读全文>>

笑容 距离 信任 改变 流言

2008-3-25 10:16:05 阅读(23) 评论(8)

笑容 
没有什么比笑容更具欺骗性 
而且没有人比笑容背后的人更清楚这点 
有人露齿一笑,礼貌地警告敌人 
有人笑容满面只为眼泪不要决堤 
还有人用傻笑掩饰自己的恐惧 
不过尽管稀有,真诚的微笑还是存在的 
这样的笑容属于那些知道自己的麻烦将要完结的人 

距离 
每个人都一样 
我们试着和邻居保持距离 
见个面 点个头 
比嘘寒问暖来的容易 
旁观者比当局者更安全 
没错 有时候我们能逐渐了解毗邻而居的人 
并成为一生的朋友 
但是大多数时候 我们和邻居保持距离 
因为我们宁愿邻居对我们知之甚少……而不是了如指掌 

信任 
信任真是一件脆弱的东西, 
一旦赢得了,会提供给我们巨大的空间。 
而一旦失去了,就不可能再恢复了。 
当然,事实上我们永远不知道我们能信任谁: 
那些我们最亲近的人可能会背叛我们,而陌生人却能帮助我们。 
最后,大多数人决定只能信任他们自己。 
这的确是简单的办法,来防止引火上身。 

改变 
没有什么事情是永恒的, 
总会有跟我们熟悉的世界说再见的一天, 
跟我们一直拥有的东西说再见, 
跟一直陪伴着我们的人说再见。 
当这一时刻真的来临的时候, 
身边的朋友相继离去,新的面孔陆续出现, 
我们就只能说一声“你好”,道一句“欢迎”。 

流言 
我们该怎样保护自己远离流言的困扰? 
最好的方式是说出真相,并等待人们开始谈论别人的事。

阅读(23) | 评论(8) | 阅读全文>>

我的神哪...

2007-12-14 13:35:58 阅读(19) 评论(13)



























阅读(19) | 评论(13) | 阅读全文>>

为RCP的XML编辑器创建OutlinePage

2007-12-12 23:29:39 阅读(297) 评论(8)

这两天所做的RCP项目需要实现XMLEditor的Outline同步显示。 
查了古今中外的资料也没发现一篇真正有用的教程。 
所以在解决问题后记录下来,以供有需要的朋友参考。 
 
效果如图所示

完成此项任务,我们需要编写以下几个Class: 
1、XMLEditorextends TextEditor 
2、XMLContentOutlinePageextends ContentOutlinePage 
3、OutlineContentProviderimplements ITreeContentProvider 
4、OutlineLabelProviderextends LabelProvider 
其中2、3、4为1的innerClass。 


Step1:创建Editor。 
如何创建没啥好说的,地球人都知道。 
这里就说两个和outlinePage有关的接口。 
1、 
public Object getAdapter(Class key) { 
    if (key.equals(IContentOutlinePage.class)) { 
        IEditorInput input = getEditorInput(); 
        if (input instanceof IFileEditorInput) { 
            if (outlinePage == null) 
                outlinePage = new XMLContentOutlinePage(input); 
            return outlinePage; 
        } 
    } 
    return super.getAdapter(key); 


2、在编辑了XMLEditor内容后需要更新一次我们的outlinePage,所以重写了editorSaved方法。 
public void editorSaved() { 
    if (outlinePage != null) 
        outlinePage.update(); 



Step2:创建XMLContentOutlinePage。 
class XMLContentOutlinePage extends ContentOutlinePage { 
    protected IEditorInput input; 

    public XMLContentOutlinePage(IEditorInput input) { 
        super(); 
        this.input = input; 
    } 

    public void update() { 
        TreeViewer viewer = (TreeViewer) getTreeViewer(); 
        if (viewer != null) { 
            Control control = viewer.getControl(); 
            if (control != null && !control.isDisposed()) { 
                control.setRedraw(false); 
                viewer.setInput(input); 
                viewer.expandAll(); 
                control.setRedraw(true); 
            } 
        } 
    } 

    public void createControl(Composite parent) { 
        super.createControl(parent); 
        TreeViewer viewer = (TreeViewer) getTreeViewer(); 
        viewer.setContentProvider(new OutlineContentProvider()); 
        viewer.setLabelProvider(new OutlineLabelProvider()); 
        viewer.setInput(input); 
        viewer.expandAll(); 
    } 




Step3:创建OutlineContentProvider。 
这里实现了inputChanged方法,用于将Editor中的现有XMLString转换为相应的DOM 
中间绿色的部分依据你使用的DOM类型不同会有不同的实现方式 
我这里使用DOM4J来处理XMLEditor的文本内容 


class OutlineContentProvider implements ITreeContentProvider { 
    IEditorInput input; 
    Document doc; 

    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 
        input = (IEditorInput) newInput; 
        if (newInput != null) { 
            IDocument document = getDocumentProvider().getDocument(newInput); 
            if (document != null) { 
try { 
doc = DocumentHelper.parseText(document.get()); 
} catch (DocumentException e) { 
e.printStackTrace(); 

}
 
        } 
    } 
   
    public Object[] getChildren(Object parentElement) { 
        Element el = (Element) parentElement; 
        return el.elements().toArray(); 
    } 

    public Object getParent(Object element) { 
        Element el = (Element) element; 
        return el.getParent(); 
    } 

    public boolean hasChildren(Object element) { 
        Element el = (Element) element; 
        return el.elements() != null; 
    } 

    public Object[] getElements(Object inputElement) { 
        //在inputChanged得到新的DOM树以后ECP框架会首先调用此函数,用于获取DOM树的根节点 
        //上面的三个函数用于实现子节点们的递归 
        return doc.getRootElement().elements().toArray(); 
    } 

    public void dispose() { 
    } 




Step4:创建OutlineLabelProvider。 
这个是最简单,但也是不可缺少的一部分。 
content节点们在树里面会显示成什么样全靠它咯。 
偷个懒,让它直接继承LabelProvider吧。 

class OutlineLabelProvider extends LabelProvider { 
    @Override 
    public String getText(Object element) { 
        //这里以Element的tagName为名显示在outline内 
        //如果你愿意,大可使用当前element的任何属性作为它在outline中的名字 
        Element el = (Element) element; 
        return el.getName(); 
    } 




这样就算大功告成了。 
目前还没有实现outline与XMLEditor的反向绑定。 
就是说在选择outline中的节点时,编辑器的内容还不会自动跳转到相应位置。 
觉得有帮助的话,麻烦顶一下

阅读(297) | 评论(8) | 阅读全文>>

CCTV,你让我怎么说你好?

2007-12-2 23:59:32 阅读(12) 评论(7)

CCTV4,海峡两岸:台湾物价增长4.5%,民众大叫“活不了了”。 
CCTV1,晚间新闻:大陆10月物价上涨6.6%,群众一致表示“对生活影响不大”

阅读(12) | 评论(7) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2010