glycoinfo / GlycanBuilder2

7 stars 5 forks source link

Export to SVG format #12

Closed yamadaissaku closed 3 years ago

yamadaissaku commented 3 years ago

Export to SVG format

$ java -XstartOnFirstThread -jar /Users/yamada/git/github/glycoinfo/GlycanBuilder2/GlycanBuilder2/target/wurcsextend-1.0.6-jar-with-dependencies.jar
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: 'void org.eurocarbdb.application.glycanbuilder.renderutil.GroupingSVGGraphics2D.stream(org.w3c.dom.Element, java.io.Writer, boolean, boolean)'
    at org.eurocarbdb.application.glycanbuilder.renderutil.SVGUtils.getVectorGraphics(SVGUtils.java:159)
    at org.eurocarbdb.application.glycanbuilder.renderutil.SVGUtils.export(SVGUtils.java:601)
    at org.eurocarbdb.application.glycanbuilder.renderutil.SVGUtils.export(SVGUtils.java:582)
    at org.eurocarbdb.application.glycanbuilder.renderutil.SVGUtils.export(SVGUtils.java:511)
    at org.eurocarbdb.application.glycanbuilder.renderutil.SVGUtils.export(SVGUtils.java:491)
    at org.eurocarbdb.application.glycanbuilder.GlycanBuilder.onExportTo(GlycanBuilder.java:754)
    at org.eurocarbdb.application.glycanbuilder.GlycanBuilder.actionPerformed(GlycanBuilder.java:874)
    at org.eurocarbdb.application.glycanbuilder.GlycanAction.actionPerformed(GlycanAction.java:230)
    at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
    at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
    at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
    at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
    at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
    at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020)
    at java.desktop/com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157)
    at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064)
    at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6636)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
    at java.desktop/java.awt.Component.processEvent(Component.java:6401)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4919)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4548)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4489)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2764)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
e15d5605 commented 3 years ago

類似の条件でコマンドを実行したところ, エラーメッセージが表示されずに固まってしまったことを確認.
GlycanBuilderの初期化の際に設定ファイル(config.xml)が必要であり, それを参照できずにエラーが発生している可能性がある. コマンドを実行する階層にconfig.xmlがあればインターフェイスが生成されることを確認.
あくまでこちらの環境での所見のため, 同様の条件で動作可能か検証が必要である.

もし, 上記の条件下で動作する場合はjarファイルの生成時に設定ファイルの同梱が可能かを検討する必要がある.

e15d5605 commented 3 years ago

jarファイルへのconfig.xmlの組み込み

pom.xmlでビルド時にxmlファイルなどの設定ファイルを組み込む方法があることを確認しpom.xmlに導入した.
プロジェクトの上層に保管されていたconfig.xmlをsrc/java/resourcesに移動し, ツール実行時の参照階層も変更した.
従来の方法では何かしらの方法でGlycanBuilderを実行した際にconfig.xmlが生成されていたが
読み書き時の参照階層を変更したことで, ユーザーの目に見えない位置で環境設定ファイルの管理が可能になると思われる.

バージョン 1.0.7にて利用可能

kiyoko commented 3 years ago

jarファイルへのconfig.xmlの組み込み

pom.xmlでビルド時にxmlファイルなどの設定ファイルを組み込む方法があることを確認しpom.xmlに導入した.

プロジェクトの上層に保管されていたconfig.xmlをsrc/java/resourcesに移動し, ツール実行時の参照階層も変更した.

従来の方法では何かしらの方法でGlycanBuilderを実行した際にconfig.xmlが生成されていたが

読み書き時の参照階層を変更したことで, ユーザーの目に見えない位置で環境設定ファイルの管理が可能になると思われる.

バージョン 1.0.7にて利用可能

結論はなんですか?Nathanさんに連絡して良い?

e15d5605 commented 3 years ago

GlycanBuilderの実行構成を修正し、動作することを確認しました。 ReadMeも更新しているため、連絡をお願いします。