From ca276f55d26d5256716added88e99cdcdd55d750 Mon Sep 17 00:00:00 2001
From: izabel <izabel>
Date: Tue, 25 Nov 2008 12:38:07 +0000
Subject: [PATCH] [LMS-660] integrate sample registration with plugin
 architecture

SVN: 9096
---
 .../web/client/application/ISampleViewClientPlugin.java  | 8 ++++++++
 .../client/application/ui/SampleRegistrationPanel.java   | 6 ++++--
 .../web/client/application/ClientPluginFactory.java      | 9 +++++++++
 .../web/client/application/ClientPluginFactory.java      | 9 +++++++++
 4 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ISampleViewClientPlugin.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ISampleViewClientPlugin.java
index 2c0bb47b744..625d329247a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ISampleViewClientPlugin.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ISampleViewClientPlugin.java
@@ -16,7 +16,10 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.client.application;
 
+import com.google.gwt.user.client.ui.Widget;
+
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleType;
 
 /**
  * The sample view plugin.
@@ -30,4 +33,9 @@ public interface ISampleViewClientPlugin
      * Shows a detailed view of the sample identifier by given <var>sampleIdentifier</var>.
      */
     public ITabItem createSampleViewer(final String sampleIdentifier);
+
+    /**
+     * Shows a registration form for samples of type <var>sampleTypeCode</var>.
+     */
+    public Widget createRegistrationClientForSampleType(SampleType sampleTypeCode);
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SampleRegistrationPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SampleRegistrationPanel.java
index 739ee11fa49..4256cb34a43 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SampleRegistrationPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SampleRegistrationPanel.java
@@ -29,7 +29,6 @@ import com.google.gwt.user.client.Element;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample_browser.SampleTypeSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleType;
-import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.GenericSampleRegistrationForm;
 
 /**
  * @author Izabela Adamczyk
@@ -55,7 +54,10 @@ public class SampleRegistrationPanel extends ContentPanel
                     if (selectedType != null)
                     {
                         removeAll();
-                        add(new GenericSampleRegistrationForm(viewContext, selectedType));
+                        add(viewContext.getClientPluginFactoryProvider().getClientPluginFactory(
+                                selectedType.getCode()).createViewClientForSampleType(
+                                selectedType.getCode()).createRegistrationClientForSampleType(
+                                selectedType));
                         layout();
                     }
                 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
index 239b8c3ccc9..69c900b33d3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
@@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application;
 
 import java.util.Set;
 
+import com.google.gwt.user.client.ui.Widget;
+
 import ch.systemsx.cisd.openbis.generic.client.web.client.IGenericClientServiceAsync;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractClientPluginFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IClientPluginFactory;
@@ -25,6 +27,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ISampleVie
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleType;
+import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.GenericSampleRegistrationForm;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.GenericSampleViewer;
 
 /**
@@ -101,5 +105,10 @@ public final class ClientPluginFactory extends
                     }
                 };
         }
+
+        public Widget createRegistrationClientForSampleType(SampleType sampleType)
+        {
+            return new GenericSampleRegistrationForm(getViewContext(), sampleType);
+        }
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
index 54e8616feff..5d53d86496f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
@@ -19,13 +19,17 @@ package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application;
 import java.util.Collections;
 import java.util.Set;
 
+import com.google.gwt.user.client.ui.Widget;
+
 import ch.systemsx.cisd.openbis.generic.client.web.client.IGenericClientServiceAsync;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractClientPluginFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IClientPluginFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ISampleViewClientPlugin;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DummyComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleType;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.SampleTypeCode;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync;
 
@@ -105,5 +109,10 @@ public final class ClientPluginFactory extends
                     }
                 };
         }
+
+        public Widget createRegistrationClientForSampleType(SampleType sampleTypeCode)
+        {
+            return new DummyComponent();
+        }
     }
 }
-- 
GitLab