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.
|