Topic: 如何在RCP的View or Editor 中使用JGraph?

  Print this page

1.如何在RCP的View or Editor 中使用JGraph? Copy to clipboard
Posted by: dahen
Posted on: 2005-06-01 17:12

如题。急等!!

2.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: kite
Posted on: 2005-06-02 14:06

使用SWT中的SWT_AWT类

3.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: dahen
Posted on: 2005-06-02 16:33

非常感谢这位朋友的回复。

你说的没错。的确,在一个基于stand-alone SWT-Application的应用里面,用SWT_AWT 引入 JGraph是成功的。

但是,我现在是想将JGraph引入到基于RCP的应用中去。我上是这样做的,在ATestEditor extends EditorPart 的方法 createPartControl中,我的代码如下:

public void createPartControl(Composite parent)
{

Composite container = new Composite(parent, SWT.EMBEDDED);
container.setLayout(new FillLayout(SWT.VERTICAL));

final Frame frame = SWT_AWT.new_Frame(container);
frame.add(getScrollPane());
    
graph = new JGraph();//new DefaultGraphModel()
    scrollPane.add(graph);

// Control-drag should clone selection
graph.setCloneable(true);

// Enable edit without final RETURN keystroke
graph.setInvokesStopCellEditing(true);

// When over a cell, jump to its default port (we only have one, anyway)
graph.setJumpToDefaultPort(true);
}

但是,启动程序后,系统在打开一个editor实例时,提示如下错误信息:

Unhandled event loop exception
Reason:
org/jgraph/JGraph

这是为什么呢?

烦请楼上的朋友指教!
不胜感激。

4.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: kite
Posted on: 2005-06-03 12:03

看一下你的runtime-workbench\.metadata\.log文件,最好是先把这个文件删除,然后运行你的插件的测试,看一下这个文件的内容,你也可以把内容贴上来。

5.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: dahen
Posted on: 2005-06-03 13:25

.log文件的内容如下。请帮忙看看问题在哪里,谢谢。

////////////////////////////////////////////////////////////////////////////////////////////
!SESSION 六月 03, 2005 13:24:55.375 ----------------------------------------------
eclipse.buildId=unknown
java.version=1.5.0_02
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN
Command-line arguments: -application com.ANetPlanner.ANetApplication -pdelaunch

!ENTRY org.eclipse.core.runtime 六月 03, 2005 13:24:55.390
!MESSAGE Product org.eclipse.platform.ide could not be found.

!ENTRY org.eclipse.ui 4 4 六月 03, 2005 13:25:03.453
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 六月 03, 2005 13:25:03.453
!MESSAGE org/jgraph/graph/GraphModel
!STACK 0
java.lang.NoClassDefFoundError: org/jgraph/graph/GraphModel
  at com.ANetPlanner.actions.OpenNetAction.openFile(OpenNetAction.java:82)
  at com.ANetPlanner.actions.OpenNetAction.run(OpenNetAction.java:70)
  at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:276)
  at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:206)
  at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
  at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
  at org.eclipse.jface.action.ActionContributionItem$8.handleEvent(ActionContributionItem.java:824)
  at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
  at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
  at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2773)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2432)
  at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
  at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
  at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
  at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
  at com.ANetPlanner.ANetApplication.run(ANetApplication.java:36)
  at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
  at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:585)
  at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
  at org.eclipse.core.launcher.Main.run(Main.java:704)
  at org.eclipse.core.launcher.Main.main(Main.java:688)
////////////////////////////////////////////////////////////////////////////////////////////

6.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: kite
Posted on: 2005-06-03 14:47

从log看,应该是classpath有问题,一个可能是你没有把JGraph的相关的类文件放入你的环境中,对于这个问题可以参照plugin开发的文档将这些jar文件都作为require library(在你的plugin.xml文件中),或者是把jgraph也制作成plugin,然后将其作为你的plugin的required plugin。还有一种可能是JGraph有自己的classloader,对于这种情况,可能需要修改JGraph的classloader。
我的第一感觉是你把JGraph的所有相关的jar文件都加进来,并在plugin.xml文件中作为required应该就可以了。

7.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: dahen
Posted on: 2005-06-03 16:58

非常感谢你!你对问题分析是正确的,我的确是没有将jgarph.jar作为外部库引入到系统中。这需要在plugin.xml的<runtime>中加入如下内容:

<library name="jgraph.jar">
<export name="*"/>
</library>

重新运行后,Ok。

再次感谢 kite。 如何给你加分?SmileSmileSmile

8.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: cnfree
Posted on: 2005-06-03 22:28

不是吧,老大你不是真的是连类库路径都没加吧,我想想不怎么会出这么弱的问题呀,自己也没用过,没有把握,私下以为可能是JGraph的ClassLoader有问题,所以没说出来。:(

不过我倒是碰到过JDK的xml解析器和apache的解析器版本冲突的问题,不只是哪一个类库引用apache的xml解析器,因为jdk里也含有一个,类路径也一样,直接导致程序出问题,始终找不到其中的一个类。

9.Re:如何在RCP的View or Editor 中使用JGraph? [Re: dahen] Copy to clipboard
Posted by: yipsilon
Posted on: 2005-06-04 13:56

rt.jar:com.sun.org.apache.*

里面肯定有跟你的apache解析器冲突的东西. ^_^

10.Re:如何在RCP的View or Editor 中使用JGraph? [Re: cnfree] Copy to clipboard
Posted by: dahen
Posted on: 2005-06-06 08:40

cnfree wrote:
不是吧,老大你不是真的是连类库路径都没加吧,我想想不怎么会出这么弱的问题呀,自己也没用过,没有把握,私下以为可能是JGraph的ClassLoader有问题,所以没说出来。:(

不过我倒是碰到过JDK的xml解析器和apache的解析器版本冲突的问题,不只是哪一个类库引用apache的xml解析器,因为jdk里也含有一个,类路径也一样,直接导致程序出问题,始终找不到其中的一个类。


不是类库路径没加的问题,否则eclipse自动建构时就会报错(我的程序自动建构是Ok的)。因为是基于RCP的应用,被引用的外部库还需要在plugin.xml中特别说明(runtime中标示)。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923