<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[[203] 一直都有新高度]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lggegegmail</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lggegegmail]]></copyright><item><title><![CDATA[Groovy 与 DSL]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83499255</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83499255</guid><author>lggegegmail</author><pubDate>Mon, 07 Dec 2009 23:14:39 +0800</pubDate><description><![CDATA[ 
一：DSL
概念


    
指的是用于一个特定领域的语言（功能领域、业务领域）。在这个给出的概念中有
3个重点：

 

	只用于一个特定领域，而非所有通用领域，比如
Java
/ C++就是用于通用领域，而不可被称为
DSL，同样也不可把
Groovy称为
DSL。

	语言，必须经过编写后才可发挥它的功能。比如：五线谱编写后成乐谱；
ANT编写用于编...]]></description><category></category></item><item><title><![CDATA[借用Eclipse 实现文本内容对比功能]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83483439</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83483439</guid><author>lggegegmail</author><pubDate>Wed, 28 Oct 2009 17:57:47 +0800</pubDate><description><![CDATA[一 相关知识


org.eclipse.compare

 插件项目，用于进行文本、源码比对的一个插件，提供了一个Editor或Dialog可方便调用。
 
org.eclipse.compare.CompareEditorInput.CompareEditorInput
 是用于给Compare Editor 的EditorInput， 需要自己实现。
org.eclipse...]]></description><category></category></item><item><title><![CDATA[SWT的图片叠加效果]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83463210</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83463210</guid><author>lggegegmail</author><pubDate>Wed, 23 Sep 2009 10:58:22 +0800</pubDate><description><![CDATA[一.	核心类说明



 


ImageDescriptor
用于表示一个可用于创建org.eclipse.swt.graphics.Image的类


CompositeImageDescriptor
可用于创建出自定义图像效果的Image的抽象类


DecoratorOverlayIcon
这是org.eclipse.ui.internal.decorators下的类,...]]></description><category></category></item><item><title><![CDATA[GEF实践总结（六）Connection连线]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83463116</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83463116</guid><author>lggegegmail</author><pubDate>Wed, 23 Sep 2009 00:05:18 +0800</pubDate><description><![CDATA[一．	目标


在2个不同Table的2个Column间能建立Connection二．	书写Connection模型

public class ColumnConnectionModel extends BaseModel {
private TableColumnModel target;
private TableColumnModel source;、
    public...]]></description><category></category></item><item><title><![CDATA[GEF实践总结（五）大小调整、按键监听、撤销重做]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83459075</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83459075</guid><author>lggegegmail</author><pubDate>Fri, 11 Sep 2009 09:18:26 +0800</pubDate><description><![CDATA[一．	目标




能够选中Table，移动Table的位置，调整Table的大小。

可以支持撤销Undo和重做Redo。


二．	给DataBase书写XYLayoutEditPolicy


书写一个DataBaseXYLayoutEditPolicy

类继承与XYLayoutEditPolicy


public class DataBaseXYLayo...]]></description><category></category></item><item><title><![CDATA[GEF实践总结（四）SelectionTool与SelectionEditPolicy]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83458183</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83458183</guid><author>lggegegmail</author><pubDate>Tue, 08 Sep 2009 22:34:47 +0800</pubDate><description><![CDATA[一．	目标




能够选中Column。

对Column选择时，能够在首要选中、次要选中、取消选中显示不一样的颜色。


二．	修改GraphicalViewer，设置EditDomain，并指定ActiveTool


会发现目前的效果中，无法点选、圈选图像（Table或Column），没错，因为缺少了SelectionTool或MarqueeTool。
//
Ed...]]></description><category></category></item><item><title><![CDATA[GEF实践总结（三）简易数据库编辑器]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83457707</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83457707</guid><author>lggegegmail</author><pubDate>Mon, 07 Sep 2009 20:20:46 +0800</pubDate><description><![CDATA[一． 目标 

不基于GraphicalEditorWithPalette或GraphicalEditorWithFlyoutPalette，而是完全在ViewPart上，因为实际开发中用户很难接受GraphicalEditor呆板的界面风格。
实现了一个简易的DataBase-&amp;gt;Table-&amp;gt;TableColumn的图像编辑器。
在不停的增强功能的过程中，探索GEF。

二．...]]></description><category></category></item><item><title><![CDATA[GEF实践总结（二）常见基础性问题]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83457378</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83457378</guid><author>lggegegmail</author><pubDate>Sun, 06 Sep 2009 22:10:14 +0800</pubDate><description><![CDATA[一．	怎么通过model创建对应的EditPart？

EditPartFactory

：通过model创建对应EditPart的工厂类。
就和jface.TableView一样，能知道通过model得到TableItem。和jface.TreeViewer一样，能通过model知道要生成对应的TreeItem一样的功效。
@Override
public EditPart cre...]]></description><category></category></item><item><title><![CDATA[GEF实践总结（一）简洁的基础框架]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83457154</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83457154</guid><author>lggegegmail</author><pubDate>Sat, 05 Sep 2009 20:13:59 +0800</pubDate><description><![CDATA[一．	创建一个插件项目


通过从RCP application with a view 模板创建一个含ViewPart的Eclipse RCP项目。
二．	在MANIFEST.MF 添加对org.eclipse.gef插件的依赖。

三．	创建model


为了方便使用，我们了创建BaseModel和BaseContainerModel这两种基类。BaseModel
：所有...]]></description><category></category></item><item><title><![CDATA[TreeViewer的ContentProvider详解，以及Lazy载入]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83438924</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83438924</guid><author>lggegegmail</author><pubDate>Sat, 08 Aug 2009 17:30:08 +0800</pubDate><description><![CDATA[为了实现这样的效果：
    载入的过程中，显示Pending。 
[img]http://www.iteye.com/upload/attachment/133633/fae0bf44-1b8a-3bef-9edc-b51fdaff4132.jpg[/img]

    载入完毕，Pending消失。
[img]http://www.iteye.com/upload/attachmen...]]></description><category></category></item><item><title><![CDATA[SWT多线程]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83430290</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83430290</guid><author>lggegegmail</author><pubDate>Wed, 15 Jul 2009 23:42:41 +0800</pubDate><description><![CDATA[[color=cyan][b]一：基本概念[/b][/color]
在SWT内，有一个UI主线程的概念，自定义的线程不可操作UI控件，如果要操作则必须使用
[code=&quot;java&quot;]
display.asyncExec(new Runnable() {
	public void run() {
             // UI操作
	}
});[/code]
需要注意的是：在D...]]></description><category></category></item><item><title><![CDATA[StyledText 的Traverse，VerifyKey，MouseListener分析]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83393821</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83393821</guid><author>lggegegmail</author><pubDate>Wed, 06 May 2009 10:36:07 +0800</pubDate><description><![CDATA[[b][color=cyan]目标功能：[/color][/b]
    随便焦点的跳转（键盘的上下左右操作；键盘的PgUp、PgDown操作；鼠标的点击操作），得到焦点所在位置的Style信息。


StyledText可以添加TraverseListener, 表示对界面上的焦点移动的监听.
[code=&quot;java&quot;]getStyledText().addTraverseListen...]]></description><category></category></item><item><title><![CDATA[Draw2d的GridLayout 和BorderLayout]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83392205</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83392205</guid><author>lggegegmail</author><pubDate>Wed, 29 Apr 2009 23:42:42 +0800</pubDate><description><![CDATA[Draw2d里面的GridLayout、BorderLayout和SWT的GridLayout、BorderLayout用法非常像，很容易上手。效果见图，源码见附件。

[color=cyan][b]GridLayout[/b][/color]
[img]http://www.iteye.com/upload/attachment/99189/cbb793aa-56ba-3327-be81-...]]></description><category></category></item><item><title><![CDATA[Java在Eclipse环境下调用Subclipse接口完成SVN操作（附源码）]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83373255</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83373255</guid><author>lggegegmail</author><pubDate>Sun, 19 Apr 2009 19:16:08 +0800</pubDate><description><![CDATA[[color=blue][b]Java在Eclipse环境下调用Subclipse接口完成SVN操作（附源码）[/b][/color]

在Eclipse环境中使用SVN还是比较简单的， 因为已经Subclipse已经对SVN的操作进行了封装，只需要给你的Eclipse应用添加Subclipse，然后你自己的插件项目再对Subclipse进行依赖即可。具体实现如下：

[color=cya...]]></description><category></category></item><item><title><![CDATA[Groovy 单元测试]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83370854</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83370854</guid><author>lggegegmail</author><pubDate>Fri, 10 Apr 2009 18:26:05 +0800</pubDate><description><![CDATA[[size=large][color=blue][b]单元测试[/b][/color][/size]
[color=cyan]
[b]1.	基本测试[/b][/color]
[code=&quot;java&quot;]class OneTest extends GroovyTestCase {
  void setUp() {
    println 'setUp'
  }

  void tear...]]></description><category></category></item><item><title><![CDATA[Groovy的文件操作]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83370853</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83370853</guid><author>lggegegmail</author><pubDate>Fri, 10 Apr 2009 18:24:35 +0800</pubDate><description><![CDATA[[color=blue][size=large][b]文件[/b][/size][/color]

Groovy对普通的java.io.File进行了增强，有很多简便方法，提供了众多使用闭包的方法方便文件的读写操作。
[color=cyan]
[b]1.	文件读取（安装行读取内容）[/b][/color]
[code=&quot;java&quot;]import java.io.File
def rea...]]></description><category></category></item><item><title><![CDATA[Groovy闭包深入学习]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83370852</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83370852</guid><author>lggegegmail</author><pubDate>Fri, 10 Apr 2009 18:22:26 +0800</pubDate><description><![CDATA[[color=blue][b]闭包[/b][/color]

[color=cyan][b]1.	定义和执行闭包[/b][/color]
[code=&quot;java&quot;]def one = { num1, num2 -&gt;
	println &quot;param is: $num1 &amp; $num2&quot;
}
one(2, 3)       // 简便写法。输出 param is: 2 &amp; 3
one 2...]]></description><category></category></item><item><title><![CDATA[Groovy 数字后缀]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83370850</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83370850</guid><author>lggegegmail</author><pubDate>Fri, 10 Apr 2009 18:17:59 +0800</pubDate><description><![CDATA[[color=darkblue][b]==[/b][/color]
assert new BigDecimal(&quot;123.45&quot;) == new Double(&quot;123.45&quot;)
assert new BigInteger(&quot;456&quot;) == new BigDecimal(&quot;456&quot;)

等同于java中的equals方法, 而不是对引用的判断.

[color=darkblue][b...]]></description><category></category></item><item><title><![CDATA[JFace的FieldDecoration / DecoratedField 使用详解]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83369699</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83369699</guid><author>lggegegmail</author><pubDate>Tue, 07 Apr 2009 13:01:20 +0800</pubDate><description><![CDATA[[b]关键代码:[/b]

[code=&quot;java&quot;]
		IControlCreator controlCreator = new IControlCreator() {
			public Control createControl(final Composite parent, final int style) {
				Text text = new Text(parent, ...]]></description><category></category></item><item><title><![CDATA[XSL判断XML节点是否存在]]></title><link>https://blog.youkuaiyun.com/lggegegmail/article/details/83366678</link><guid>https://blog.youkuaiyun.com/lggegegmail/article/details/83366678</guid><author>lggegegmail</author><pubDate>Fri, 27 Mar 2009 18:26:56 +0800</pubDate><description><![CDATA[内容很简单, 但都是血汗哪~`` 网上资料少, 又没完整的时间去看xsl. 唉~``

下面的a,b,c可以是表示节点的表达式, 比如: ./Book[@name='1']


[b]1. 判断一个节点是否存在[/b]
[code=&quot;xml&quot;][/code]



[b]2. 判断多个节点是否同时存在[/b]
[code=&quot;xml&quot;][/code]



[b]3. ...]]></description><category></category></item></channel></rss>