关于Eclipse Plugin开发 (1)

来源:互联网 发布:linux显示命令运行 编辑:程序博客网 时间:2024/05/16 07:41

      最近一直在开发一个Eclipse平台的插件,关于java类库很多东西很生,而且Design Parttion学得也很糊涂,总想用,可是每次用的都很丑陋。总是一股脑写了一大堆代码,一大堆类,在这期间多数是不能测试的。当自以为框架已经搭建好了之后,却发现bug和代码一样多。然后觉得模式用的不对,再花大量的时间refactor,可惜refactor后的代码还是那么难看,我是应该好好尝试敏捷软件开发,还是继续用这种自以为可以短期应付的开发方式?

      常常想要是有人一起带可能就会好多了,可是自己就不能有点独立学习的能力么?还是应该加强系统思维能力的训练,做事要有层次。可是目前为止仿佛自己只是认识到了不足,遇到事情的时候还没有去运用。以后遇事冷静点,好好分析形势在去做。

 

      最近的开发也使自己学习了一些Eclipse平台的知识:

      (1)这可是一个很难的问题,今天遇到时都傻了,觉得肯定是我力所不能及的。在linux下调试Eclipse plugin的时候,Eclipse突然罢工了,弹出警告“Cannot connect to VM. Socket Close”。网上很多人遇见,很多人没解决,但肯定有人解决了,要么我也不会解决。

          方法很简单,linux下,在etc下的hosts文件中添加”127.0.0.1    localhost“;如果在windows下就去检查防火墙的设置,使javaw可以访问网络。因为Eclipse的调试要使用socket。

       (2)TableView(继承自StructuredViewer)的三个方法:

           setInput(Object input)

               设置TableView要显示的数据对象

           setContentProvider(IContentProvider contentProvider)

               设置如何将TableView将要显示的内容解析成Object[]的类型

           setLabelProvider(IBaseLabelProvider labelProvider)      

               设置如何将TableView要显示的Item(表示一行数据的对象)根据指定的列,解析成String,在Cell中显示
          这三个函数是息息相关的。首先input是要显示的数据,也是contentProvider对象中方法

          public Object[] getElements(Object parent)

的传入参数。这样我们就在getElements中将input分解Array,Array的每个元素就是Table中每一行的值的来源,同时也是labelProvider对象的成员函数

          public String getColumnText(Object element, int columnIndex)

的传入参数。于是我们可以根据columnIndex 和element确定Table中一个Cell显示的String。

 

说来惭愧,开发这里Eclipse plugin这么久了,现在才敢确定这三个函数的关系...

 

原创粉丝点击