When mapping a numeric property to the infobar a categorical value lie e.g. Activity Direction in the Pyruvate Kinase example set can be selected, leading to an exception.
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang
.Object; cannot be cast to [Ljava.lang.String;
at edu.udo.scaffoldhunter.view.scaffoldtree.config.IntervalPanel$SingleS
tringIntervalPanel.buildStringChooser(IntervalPanel.java:486)
at edu.udo.scaffoldhunter.view.scaffoldtree.config.IntervalPanel$SingleS
tringIntervalPanel.<init>(IntervalPanel.java:442)
at edu.udo.scaffoldhunter.view.scaffoldtree.config.IntervalPanel.initial
ize(IntervalPanel.java:188)
at edu.udo.scaffoldhunter.view.scaffoldtree.config.IntervalPanel.<init>(
IntervalPanel.java:156)
at edu.udo.scaffoldhunter.view.scaffoldtree.config.SinglePropertyPanel.<
init>(SinglePropertyPanel.java:182)
at edu.udo.scaffoldhunter.view.scaffoldtree.config.MappingDialog.<init>(
MappingDialog.java:119)
at edu.udo.scaffoldhunter.view.scaffoldtree.ScaffoldTreeView$SetMappings
Action.actionPerformed(ScaffoldTreeView.java:651)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$300(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)</init></init></init>
Afterwards, the mapping dialog cannot be opened anymore, as each attempt is stopped by this exception.
The molecule string properties are removed from the Infobar Mapping in revision [c711fc]. I think the intention of string properties was, that if the set of possible values for the string property is low, one might consider a mapping, where every distinct value has its own color. However, such a mapping type is not supported by our implementation. We might consider to close this and open a feature request for that. What do you think?
Related
Commit: [c711fc]
Thank you for fixing this bug. I have created a feature request to discuss better solutions: https://sourceforge.net/p/scaffoldhunter/feature-requests/73/