NOTICE! This is a static HTML version of a legacy LOCI Software ticket.

LOCI projects are now located on GitHub. The Bio-Formats project can be found here.

Ticket #32 (closed defect: wontfix)

Opened 2007-03-19T10:42:48-05:00

Last modified 2007-04-12T14:36:31-05:00

Java2D support is broken

Reported by: curtis Owned by: curtis
Priority: major Milestone:
Component: visbio Severity:
Keywords: Cc:
Blocked By: Blocking:

Description

VisBio is supposed to support Java2D displays, but currently makes several calls that cause VisAD's Java2D support to blow up:

visad.DisplayException: GraphicsModeControlJ2D.setTransparencyMode: bad mode
	at visad.java2d.GraphicsModeControlJ2D.setTransparencyMode(GraphicsModeControlJ2D.java:343)
	at loci.visbio.view.DisplayWindow.setTransparencyMode(DisplayWindow.java:212)
	at loci.visbio.view.DisplayWindow.initState(DisplayWindow.java:315)
	at loci.visbio.view.DisplayWindow.<init>(DisplayWindow.java:116)
	at loci.visbio.view.DisplayManager.createDisplay(DisplayManager.java:107)
	at loci.visbio.data.DataControls.doNewDisplay(DataControls.java:372)
	at loci.visbio.help.HelpManager.checkVisualization(HelpManager.java:116)
	at loci.visbio.help.HelpManager.doEvent(HelpManager.java:137)
	at loci.visbio.VisBioFrame.generateEvent(VisBioFrame.java:262)
	at loci.visbio.VisBioFrame.generateEvent(VisBioFrame.java:254)
	at loci.visbio.data.DataManager.addData(DataManager.java:88)
	at loci.visbio.data.DataManager.createDataset(DataManager.java:303)
	at loci.visbio.data.DatasetPane$2.run(DatasetPane.java:292)
visad.DisplayException: DisplayImpl.addReferences: illegal DataRenderer class
	at visad.DisplayImpl.addReferences(DisplayImpl.java:1253)
	at visad.DisplayImpl.addReferences(DisplayImpl.java:1212)
	at visad.DisplayImpl.addReferences(DisplayImpl.java:1065)
	at loci.visbio.view.TransformLink.link(TransformLink.java:159)
	at loci.visbio.view.TransformHandler.doLinks(TransformHandler.java:369)
	at loci.visbio.view.TransformHandler.rebuild(TransformHandler.java:463)
	at loci.visbio.view.TransformHandler.addTransform(TransformHandler.java:121)
	at loci.visbio.view.DisplayWindow.addTransform(DisplayWindow.java:177)
	at loci.visbio.data.DataControls.doNewDisplay(DataControls.java:374)
	at loci.visbio.help.HelpManager.checkVisualization(HelpManager.java:116)
	at loci.visbio.help.HelpManager.doEvent(HelpManager.java:137)
	at loci.visbio.VisBioFrame.generateEvent(VisBioFrame.java:262)
	at loci.visbio.VisBioFrame.generateEvent(VisBioFrame.java:254)
	at loci.visbio.data.DataManager.addData(DataManager.java:88)
	at loci.visbio.data.DataManager.createDataset(DataManager.java:303)
	at loci.visbio.data.DatasetPane$2.run(DatasetPane.java:292)
visad.DisplayException: DisplayImpl.addReferences: illegal DataRenderer class
	at visad.DisplayImpl.addReferences(DisplayImpl.java:1253)
	at visad.DisplayImpl.addReferences(DisplayImpl.java:1212)
	at visad.DisplayImpl.addReferences(DisplayImpl.java:1065)
	at loci.visbio.view.ColorPane.setPreviewData(ColorPane.java:237)
	at loci.visbio.view.ColorHandler.refreshPreviewData(ColorHandler.java:177)
	at loci.visbio.view.ColorHandler.initColors(ColorHandler.java:124)
	at loci.visbio.view.TransformHandler.rebuild(TransformHandler.java:495)
	at loci.visbio.view.TransformHandler.addTransform(TransformHandler.java:121)
	at loci.visbio.view.DisplayWindow.addTransform(DisplayWindow.java:177)
	at loci.visbio.data.DataControls.doNewDisplay(DataControls.java:374)
	at loci.visbio.help.HelpManager.checkVisualization(HelpManager.java:116)
	at loci.visbio.help.HelpManager.doEvent(HelpManager.java:137)
	at loci.visbio.VisBioFrame.generateEvent(VisBioFrame.java:262)
	at loci.visbio.VisBioFrame.generateEvent(VisBioFrame.java:254)
	at loci.visbio.data.DataManager.addData(DataManager.java:88)
	at loci.visbio.data.DataManager.createDataset(DataManager.java:303)
	at loci.visbio.data.DatasetPane$2.run(DatasetPane.java:292)

The easiest way to see this problem is to change the ALLOW_JAVA3D constant in source:trunk/loci/visbio/util/DisplayUtil.java to false.

Change History

comment:1 Changed 2007-03-19T10:43:12-05:00 by curtis

  • Priority changed from critical to major

comment:2 Changed 2007-04-12T14:36:31-05:00 by curtis

  • Status changed from new to closed
  • Resolution set to wontfix

Fixed a bug setting the transparency mode for Java2D in r2614. But there is a more major problem, in that VisBio now makes use of transparency for certain data transforms, most notably overlays. To fix this problem, checks would need to be added in multiple places to behave differently if the display can support transparency vs not. It is probably too much hassle, since no one uses VisBio with Java2D anyway.