随笔分类 - eclipse
摘要:GMF默认生成的outline很成问题,只能显示top level的图形,比如在logic例子中,画板中图形元素和outline对应如下: 可见非top level的图形并没有与之对应的Tree Item显示在outline tree上。 其实用过gef的人都很容易知道原因,因为outline上每一个节点对应的也是一个tree editpart,每个tree editpart复用对应画板图...
阅读全文
摘要:在基于EMF模型的应用中经常会有这样的需求: 当一个模型对象被一个特定的对象引用后,就不可以再被其他的对象引用。如何获取一个模型被那些其他模型引用了这个信息呢? 当然一种解决方案是在建模的时候,把引用设成双向的。然而这样会造成一定的冗余,使你的模型稍显臃肿和复杂。其实如果你是用EMF来表示你的模型,通过EMF提供的API可以获得所有引用某个model的model列表: 代码如下: EObject...
阅读全文
摘要:在eclipse插件开发过程中有时会遇到插件循环依赖的问题,其实本可以避免的,但谁也不能保证当初的设计会有问题。俺就遇到了这个问题,不过有一种解决办法就是通过写扩展点。 比如插件A和插件B,A是项目中所有插件的核心,所有的插件必须依赖于插件A,所有插件都使用A提供的接口和服务。但有时为了降低插件的耦合性,或者保持插件的独立性,一些个性的操作接口,都应该尽量定义在每个插件中,尽量不要定义在A中。比如...
阅读全文
摘要:Object Management Group (OMG) standards Meta-Object Facility (MOF) Unified Modeling Language (UML) and UML Profiles not falling within the scope of other projects Model-Driven Architecture (MDA) ...
阅读全文
摘要:实际上就是对eclipse actionSets扩展点的应用 只需要实现My.SampleAction类就好了,这个类必须实现IWorkbenchWindowActionDelegate或者IWorkbenchWindowPulldownDelegate接口。具...
阅读全文
摘要:在GMF中当使用XYLayout时经常会遇到这样的问题: 1。在create一个新figure时,figure会跑到它的parent figure的外面。 2。在move或者resize时跑到parent figure的外面。 如下图logic example中的问题: 一般的情况下,用户会challenge这个现象,如果在resize的时候,即便把figure的边界拖出parent,figu...
阅读全文
摘要:EditorPart[] parts = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditors(); 或者 IEditorReference[] parts = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActiveP...
阅读全文
摘要:前几天问了一个同事EMF模型操作的问题,还没来的验证,先记下再说! 当在EditDomain下操作模型时,所有对模型的修改需要在Command中完成,并且涉及到了EMF事务处理。不在EditDomain下操作模型,不涉及事务,但需要自己写自己的模型监听器。在EditDomain下操作模型,在ResourceSet里面注册监听器就可以监听模型的变化!
阅读全文
摘要:Some methods are really tidy and powerfull in eclipse, but a big problem is when I want to use them I ofen forget how to use them.Here is the method to get the projects list of current workspace.IProj...
阅读全文
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 /** 2 * Method getCreateElementAndViewCommand. 3 * 4 * @param request 5 * @ret...
阅读全文
摘要:1。final 篇 final 做为一个独立的存在,也表现的与众不同。一般情况都可以理解为 can't be changed. 1)final data: 实现constant语义。说明这个值:在编译时不会变;在运行时也不能被改变。 在java中,提供了blank final:允许大家将初始化的动作延迟到constructor中。这是极限,有编译器保证。 2)final parameter: 同上...
阅读全文
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->a) First, in class DiagramDocumentEditor, the method public void doSave(IProgressMonitor progressMo...
阅读全文
摘要:1. 创建element type的一段代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->private Element createElement(Element container, IElementType type, ...
阅读全文
摘要:2006年5月9日讨论了关于gmf的一些feature2006年5月14日1.阅读文章“Learn how to implement the Command pattern in Java ”http://www.javaworld.com/javaworld/javatips/jw-javatip68.html该文章主要讲了设计基于java语言特性的Command框架设计。figure 1 关于...
阅读全文
摘要:Resource通过两种方式实现XML和XMI。1.XML实现Resource存储的重要方法是save, 只有在方法eIsSet()返回true时,相关的属性和引用才会被序列化到xml中。对于存储的xml文件的格式可以通过设置OPTION_XML_MAP属性来完成,如下面原文: There are several reasons why you might want to use OPTION_X...
阅读全文
摘要:关于EMF的序列化对于EMF的序列化有几个比较重要的接口:Resource,ResourceSet,Resource.Factory,URIConverter。这些接口的主要作用就是保存模型到持久化存储介质,或者从持久化存储介质加载模型。1.关于URI(Uniform Resource Identifier)在EMF 中是通过URI来标识package的,并且同过URI来唯一的确定resource...
阅读全文
摘要:Packages and Factoriespackage和factory类帮助你访问模型的metadata,或者创建模型的实例。通过package可以轻松的获得模型的EClass对象,如: EClass purchaseOrderClass = epo2Package.getPurchaseORder(); 例外还有一种方法也可以通过package类对象获得model的EClass对象,如: E...
阅读全文
摘要:在gmf中属性页的支持是由PropertyProvider完成的。自动生成的PropertyProvider只有三个方法: public boolean provides(IOperation operation) {……}public ICompositePropertySource ……}protected EObject getSemanticElement(Object object) {...
阅读全文

浙公网安备 33010602011771号