From: <bh...@us...> - 2006-09-14 19:27:51
|
Revision: 194 http://svn.sourceforge.net/cishell/?rev=194&view=rev Author: bh2 Date: 2006-09-14 12:27:48 -0700 (Thu, 14 Sep 2006) Log Message: ----------- fixed a bug in gui builder where an algorithm w/ no OCD in its metadata.xml uses NULLObject design pattern for flexibility Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.guibuilder.temp/src/org/cishell/reference/gui/guibuilder/temp/GUIImpl.java Modified: trunk/clients/gui/org.cishell.reference.gui.guibuilder.temp/src/org/cishell/reference/gui/guibuilder/temp/GUIImpl.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.guibuilder.temp/src/org/cishell/reference/gui/guibuilder/temp/GUIImpl.java 2006-09-14 15:03:31 UTC (rev 193) +++ trunk/clients/gui/org.cishell.reference.gui.guibuilder.temp/src/org/cishell/reference/gui/guibuilder/temp/GUIImpl.java 2006-09-14 19:27:48 UTC (rev 194) @@ -14,6 +14,7 @@ package org.cishell.reference.gui.guibuilder.temp; import java.util.Dictionary; +import java.util.Hashtable; import org.cishell.service.guibuilder.GUI; import org.cishell.service.guibuilder.SelectionListener; @@ -27,24 +28,28 @@ * * @author Bruce Herr (bh...@bh...) */ -public class GUIImpl implements GUI { +public class GUIImpl implements GUI { boolean closed; GUIBuilder builder; ParameterMapAdapter pmap; public GUIImpl(String id, MetaTypeProvider provider) { pmap = new ParameterMapAdapter(provider, id); - final String title = pmap.getObjectClassDefinition().getName(); - final String message = pmap.getObjectClassDefinition().getDescription(); - - GUIBuilder.setGUIBuilder(SwtGUIBuilder.getGUIBuilder()); - PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() { - public void run() { - builder = GUIBuilder.createGUI(title, message, pmap); - }}); - - closed = false; + if (provider != null && pmap.getObjectClassDefinition() != null) { + final String title = pmap.getObjectClassDefinition().getName(); + final String message = pmap.getObjectClassDefinition().getDescription(); + + GUIBuilder.setGUIBuilder(SwtGUIBuilder.getGUIBuilder()); + + PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() { + public void run() { + builder = GUIBuilder.createGUI(title, message, pmap); + }}); + closed = false; + } else { + builder = GUIBuilder.NULL_BUILDER; + } } /** @@ -66,31 +71,35 @@ * @see org.cishell.service.guibuilder.GUI#open() */ public void open() { - builder.open(); + builder.open(); } /** * @see org.cishell.service.guibuilder.GUI#openAndWait() */ public synchronized Dictionary openAndWait() { - final WaitingSelectionListener listener = new WaitingSelectionListener(); - - PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { - public void run() { - open(); - - setSelectionListener(listener); - }}); - - while (!listener.gotResult) { - try { - wait(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - return listener.result; + if (builder != GUIBuilder.NULL_BUILDER) { + final WaitingSelectionListener listener = new WaitingSelectionListener(); + + PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { + public void run() { + open(); + + setSelectionListener(listener); + }}); + + while (!listener.gotResult) { + try { + wait(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + return listener.result; + } else { + return new Hashtable(); + } } private class WaitingSelectionListener implements SelectionListener { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |