• 网志分类
  • » 查看所有日志 (12)
    » 程序员 (5)
    » 情感 (3)
    » 人生百态 (1)
    » 好朋好友 (1)
    » 体育杂谈 (2)
  • 最新评论
  • 站内搜索
  • 友情链接
  • » 我的歪酷
    » ArMing
    » VIVICat
    » 徐静蕾的blog
    » 李小璐的blog

    订阅 RSS

    歪酷博客

    0007881

    Jjzhk @ 2005-11-12 10:32

    最近写了一个Eclipse插件,可以找到当前eclipse安装目录中的所有插件的可扩展点。现将代码贴上来,与大家共享。

    Plugin.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.0"?>
    <plugin
       id="org.eclipse.contribution.FindAllExtensionPoint"
       name="FindAllExtensionPoint Plug-in"
       version="1.0.0"
       provider-name="">

       <runtime>
          <library name="FindAllExtensionPoint.jar" />
       </runtime>
       <requires>
          <import plugin="org.eclipse.ui.views"/>
          <import plugin="org.eclipse.ui"/>
          <import plugin="org.eclipse.core.runtime"/>
       </requires>
     <extension point="org.eclipse.ui.views">
      <view
       name="Find All Extension-point Info"
       icon="icons\pt.gif"
       class="org.eclipse.contribution.FindAllExtensionPoint.FAViews"
       id="org.eclipse.contribution.FindAllExtensionPoint.FAViews">
      </view>
     </extension>
    </plugin>
    在src目录下面新加一个包,名字叫做org.eclipse.contribution.FindAllExtensionPoint

    里面加入两个.java文件:

    FAViews.java

    /*
     * Created on 2005-11-5
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package org.eclipse.contribution.FindAllExtensionPoint;

    /**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */

    import java.io.*;
    import java.util.List;
    import java.util.ArrayList;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.*;

    import org.eclipse.ui.part.ViewPart;
    import org.eclipse.jface.viewers.TableViewer;

    public class FAViews extends ViewPart{
     private List PointList;
     private TableViewer viewer;
     /* (non-Javadoc)
      * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
      */
     public void createPartControl(Composite parent) {
      // TODO Auto-generated method stub
      Table table = new Table(parent,SWT.SINGLE |
        SWT.V_SCROLL | SWT.FULL_SELECTION);
      table.setHeaderVisible(true);
      table.setLinesVisible(true);
      
      
      TableColumn column = new TableColumn(table,SWT.NONE,0);
      column.setText("Eclipse所有扩展点");
      column.setWidth(1000);
      column.setAlignment(SWT.LEFT);
      PlugMain();
      
      viewer = new TableViewer(table);
      for(int i=0;i<PointList.size();i++)
      {
       viewer.add(PointList.get(i));
      }
       
     
     }
     /* (non-Javadoc)s
      * @see org.eclipse.ui.IWorkbenchPart#setFocus()
      */
     public void setFocus() {
      // TODO Auto-generated method stub
      viewer.getControl().setFocus();
     }
     
     public TableViewer getViewer(){
      return viewer;
     }
     
     private void PlugMain(){
      File PlugInDir = new File(GetPlugInPath());
      File DirList[] = PlugInDir.listFiles();
      PointList = new ArrayList();
      int i;
      for(i=0;i<DirList.length;i++){
       if(DirList[i].isDirectory()){
        File PlugInFile = new File(DirList[i].getPath(),"Plugin.xml");
        if(PlugInFile.exists()){
         GetExtensionPoint(DirList[i].getName(),PlugInFile.getPath());
        }
       }
      }
     }
     
     private static String GetPlugInPath(){
      String path = new File("").getAbsolutePath();
      path = path + "\Plugins\";
      return path;
     }
     
     private void GetExtensionPoint(String DirName,String XmlFilePath){
      ParseXMLInfo PXML = new ParseXMLInfo();
      List TempList = PXML.GetPluginID(DirName,XmlFilePath);
      for(int i=0;i<TempList.size();i++)
      {
       PointList.add(TempList.get(i));
      }
     }
    }

    ParseXMLInfo.java:

    /*
     * Created on 2005-11-5
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package org.eclipse.contribution.FindAllExtensionPoint;

    /**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */

    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import java.util.List;
    import java.util.ArrayList;

    public class ParseXMLInfo {
     private DocumentBuilderFactory factory=null;
     private DocumentBuilder builder=null;
     private Document doc=null;
     
     public ParseXMLInfo(){
     }
     private boolean connXml(String xmlFIleName){
      try{
       factory = DocumentBuilderFactory.newInstance();
       builder = factory.newDocumentBuilder();
       doc = builder.parse(xmlFIleName);
       doc.normalize();
       return true;
      }
      catch(Exception e)
      {
       return false;
      }
     }
     
     public List GetPluginID(String DirName,String xmlFileName){
      List list = new ArrayList();
      NodeList EPNodeList;
      Element EPNode;
      Attr p;
      String s = "";
      if (connXml(xmlFileName)){
       list.add(DirName);
       EPNodeList = doc.getElementsByTagName("extension-point");
       
       for(int i=0;i<EPNodeList.getLength();i++)
       {
        EPNode = (Element)EPNodeList.item(i);
        
        p = EPNode.getAttributeNode("id");
        if(EPNode.hasAttribute("id")){
         s= "     " + p.getNodeValue();
         list.add(s);
        }
       }
      }
      return list;
     }
    }

    build.properties:

    bin.includes = FindAllExtensionPoint.jar,\
                   FindAllExtensionPointsrc.zip,\
                   plugin.xml,\
                   icons/
    source.FindAllExtensionPoint.jar = src-FindAllExtensionPoint/
    然后导出成.zip文件,随后解压到plugins目录下面,如果你用的是eclipse3,则需要删除configure目录,如果用的是eclipse2,则可以直接启动eclpse,选择windows->show views->other->Find all Extension-all info就可以了。



     
    Jjzhk @ 2005-04-24 17:53

         昨天超级郁闷,去一家合资单位去面试,考到jsp的动作。当时就晕了,我搞了一段时间的jsp,怎么没听说过什么jsp动作。当时觉得自己真是弱阿。回来后上网一查,原来jsp的动作就是什么jsp:include,jsp:usebean之类的东西,这个东西自己早就轻车熟路了,可是就是不知道这个叫什么jsp的动作。晕。
         所以,为了加深印象,特罗列出来jsp的动作如下:
    jsp:include:在页面被请求的时候引入一个页面;
    jsp:useBean:寻找或者实例化一个javabean;
    jsp:setproperty:设置javabean的属性;
    jsp:getpropery;输出某个javabean的属性;
    jsp:forward:把请求转到一个新的页面;
    jsp:plugin:根据浏览器类型为java插件生成object或EMBED标记。
    剩下的就是后话了,当然,对于每个公司的面试题目我不好说很多,但是在我看来这些东西又考得比要么?也许是我吃不到葡萄说葡萄酸吧,但是我觉得公司考察一个新人不应该单单从他会不会这些东西来看,因为这些东西随便给一个懂些程序的人2,3天就可以搞定,况且现在网络如此发达,这些东西网上多的是。我觉得每个公司更应该看看这个新人的创新能力,学习的能力,利用网络资源的能力,等等这些基本的能力,这样才会找到一个适合的人。
        也许是我有些偏激了吧,毕竟现在的公司很多都是靠这种方式去找人的。无奈了。更有甚者,居然出了一道非常复杂的SQL叫别人去写,试想,真正用到这种SQL的时候会很多么?写这些东西有什么用呢?不懂!!


     
    Jjzhk @ 2005-04-04 20:40

           前些天刚刚回了一趟老家---山西襄汾。感慨颇多阿!
           那里边的跟以前真的是大不一样了,我记得我离开那座城市的时候,道路狭小,空气混浊,路面上尘土飞扬,只要一有风吹过,沙尘便漫天飞舞;路上行人也是少得可怜,超市,网吧也跟本见不到,就连饭店都是少得可怜,里面的菜也就是那几样,叫人吃来无味!
          现在可是今非昔比了,道路宽了,街上的行人也多了,在城里还修建了一个大广场,超市,网吧也一个一个出现了,唯独没变得就是那混作的空气。
         其实,每个人在心里都对故乡有着一种特殊的感觉,依依难舍,尽管那里空气混浊,但那里是生养我们的地方。


     
    Jjzhk @ 2005-03-20 12:05

    声明:以下观点仅代表我的个人观点,如有冒犯,请多多原谅。
          C++,对于计算机人来说,是一个时代的名词,曾几何时,它是那么的风光,它的语法以及对于面向对象的支持和实现的手法,几乎是每一个计算机人都津津乐道的..........
         但是,这些年他的地位可是大不如前了,java的崛起,C#的出现,大有把C++赶下台的趋势,更有人说这年头,学习C++没用了,还不如学习java,C#来得实惠,又能多赚钱。。。。。。。
         我是一个C++的支持者。我初次接触C++,还要感谢我的好友ArMing,是他推荐我看了当时,乃至现在都非常有名的两本书,一本是<Effective ++>,另一本是<Inside the C++ Object Modal>。这两本书相信熟悉C++得人都知道,大师们写的书确实是好啊。
        其实我C++的学习,不应该仅仅把它当成一种语言来学,更应该当成基础的课程来学,要学好,学扎实,学透,也许有时候觉得学习C++真的没有什么用处,因为它不能给你带来立刻的"效益",但是把C++学好了,java,C#不久好学的多了么。就像以前我们学习1+1=2的时候,学这个有什么用呢?一般的考试谁会考你这个东西?但是不知道1+1=2,何来的1+2 = 3,2+2=4之类的东西呢?
       我觉得,不管到什么什么时候,C++都是基础语言,我们都要学好,学透。如果我们只学习可以立刻带来效益的语言,那我们岂不成了实用主义了么?
       学什么东西,基础学好了,比什么都强!


     
    Jjzhk @ 2005-03-20 11:48

         年轻人,年轻人是什么?记得有个广告说:“年轻,没有什么不可以”。是啊,年轻,真的是没有什么不可以,这句话反过来说,就是,年轻,什么都可以!
         呵呵,现在年轻人真的是幸福多了,我们可以一个人在大街上无忧无虑的逛街,男生可以给自己扎个耳朵眼儿,说这叫个性;女生可以刁一支烟,大口说这"TMD,TNND,WK.....",而不用管别人怎么想,这叫做个性。。。。。
         我也是个年轻人,和很多年轻人一样,我也很有个性,我不会去做我不喜欢的事情,只愿意做自己喜欢的事情,不管别人怎么想,我就是我,为什么别人不可以干的事情,我就不能干呢,呵呵。但是,现在,我上班了,工作了,我才明白什么叫做个性?我不再是那个如果想干什么,就算伤害到别人我也要去干的小孩了。个性,不是说你扮成新新人类就有个性了,什么是个性呢?我觉得个性就是在不伤害别人的利益的情况下,做自己喜欢做的事。我的同龄人,大家都二十三,四了,有的甚至都结婚生子了,我们不是小孩子了,我们要承担这个社会赋予我们的责任,我们要承担家庭给我们的责任。有时候,是要做一些自己不喜欢的事情的,为了那些我们深深爱着的,也深深爱着我们的人们,当然,这种爱不仅仅是爱情,也有亲情,朋友之情等等。。。。。。。。
          其实,有时候觉得长大了真累。。。。。。。。
          但是,我们能永远都长不大么。。。。。。。。