From 971458ce469b6f4e0232d907ec19073b56aba6cd Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Thu, 16 Sep 2010 13:19:14 +0000
Subject: [PATCH] [LMS-1597] update title after every dispatch of navigation
 event (in both application and simple view mode)

SVN: 17875
---
 .../application/ClientPluginFactory.java      | 20 ++++++++---
 .../web/client/application/ProteinViewer.java | 15 +++++---
 .../application/ClientPluginFactory.java      | 36 ++++++++++++-------
 .../ExperimentPlateLocationsSection.java      |  9 +++--
 .../detailviewers/PlateLayouter.java          | 21 ++++++-----
 5 files changed, 69 insertions(+), 32 deletions(-)

diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java
index fe7f7743716..479057a171a 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java
@@ -115,8 +115,8 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext
                         final DatabaseModificationAwareComponent experimentViewer =
                                 ExperimentViewer.create(getViewContext(), experimentType,
                                         identifiable);
-                        return DefaultTabItem.create(getViewerTitle(Dict.EXPERIMENT, identifiable),
-                                experimentViewer, getViewContext(), false);
+                        return DefaultTabItem.create(getTabTitle(), experimentViewer,
+                                getViewContext(), false);
                     }
 
                     @Override
@@ -131,6 +131,12 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext
                         return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT,
                                 HelpPageAction.VIEW);
                     }
+
+                    @Override
+                    public String getTabTitle()
+                    {
+                        return getViewerTitle(Dict.EXPERIMENT, identifiable);
+                    }
                 };
         }
 
@@ -155,8 +161,8 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext
                         DatabaseModificationAwareComponent component =
                                 GenericExperimentEditForm.create(getGenericViewContext(),
                                         identifiable);
-                        String title = getEditorTitle(Dict.EXPERIMENT, identifiable);
-                        return DefaultTabItem.create(title, component, getViewContext(), true);
+                        return DefaultTabItem.create(getTabTitle(), component, getViewContext(),
+                                true);
                     }
 
                     @Override
@@ -172,6 +178,12 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext
                         return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT,
                                 HelpPageAction.EDIT);
                     }
+
+                    @Override
+                    public String getTabTitle()
+                    {
+                        return getEditorTitle(Dict.EXPERIMENT, identifiable);
+                    }
                 };
         }
 
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java
index f4199fcb74d..cd9c7e9c6a9 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java
@@ -99,11 +99,7 @@ public class ProteinViewer extends AbstractViewer<IEntityInformationHolder> impl
                             new ProteinViewer(viewContext, experiment, proteinInfo.getId());
                     DatabaseModificationAwareComponent c =
                             new DatabaseModificationAwareComponent(viewer, viewer);
-                    String description = getAbbreviatedDescription(proteinInfo);
-                    String identifier = experiment == null ? "?" : experiment.getCode();
-                    return DefaultTabItem.create(viewContext.getMessage(
-                            Dict.PROTEIN_IN_EXPERIMENT_TAB_LABEL, description, identifier), c,
-                            viewContext, false);
+                    return DefaultTabItem.create(getTabTitle(), c, viewContext, false);
                 }
 
                 @Override
@@ -111,6 +107,15 @@ public class ProteinViewer extends AbstractViewer<IEntityInformationHolder> impl
                 {
                     return HelpPageIdentifier.createSpecific("Protein Viewer");
                 }
+
+                @Override
+                public String getTabTitle()
+                {
+                    String description = getAbbreviatedDescription(proteinInfo);
+                    String identifier = experiment == null ? "?" : experiment.getCode();
+                    return viewContext.getMessage(Dict.PROTEIN_IN_EXPERIMENT_TAB_LABEL,
+                            description, identifier);
+                }
             };
     }
 
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
index 1f5dab35be8..c18087ceed5 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
@@ -176,7 +176,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                     final DatabaseModificationAwareComponent viewer =
                             PlateLocationsMaterialViewer.create(viewContext, TechId
                                     .create(materialId), experimentCriteriaOrNull);
-                    return createMaterialViewerTab(materialId, viewer, viewContext);
+                    return createViewerTab(viewer, getTabTitle(), viewContext);
                 }
 
                 @Override
@@ -190,13 +190,14 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                 {
                     return PlateLocationsMaterialViewer.getHelpPageIdentifier();
                 }
-            };
-    }
 
-    private static ITabItem createMaterialViewerTab(final IIdAndCodeHolder materialId,
-            final DatabaseModificationAwareComponent viewer, IViewContext<?> viewContext)
-    {
-        return createViewerTab(viewer, materialId, Dict.MATERIAL, viewContext);
+                @Override
+                public String getTabTitle()
+                {
+                    return getViewerTitle(Dict.MATERIAL, materialId, viewContext);
+                }
+
+            };
     }
 
     private final class DatasetClientPlugin extends DelegatedClientPlugin<DataSetType>
@@ -220,8 +221,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                     {
                         final DatabaseModificationAwareComponent viewer =
                                 PlateDatasetViewer.create(screeningViewContext, identifiable);
-                        return createViewerTab(viewer, identifiable, Dict.DATA_SET,
-                                screeningViewContext);
+                        return createViewerTab(viewer, getTabTitle(), screeningViewContext);
                     }
 
                     @Override
@@ -236,6 +236,12 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                     {
                         return HelpPageIdentifier.createSpecific("Plate Dataset Viewer");
                     }
+
+                    @Override
+                    public String getTabTitle()
+                    {
+                        return getViewerTitle(Dict.DATA_SET, identifiable, screeningViewContext);
+                    }
                 };
         }
     }
@@ -261,8 +267,7 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                     {
                         final DatabaseModificationAwareComponent viewer =
                                 PlateSampleViewer.create(screeningViewContext, identifiable);
-                        return createViewerTab(viewer, identifiable, Dict.SAMPLE,
-                                screeningViewContext);
+                        return createViewerTab(viewer, getTabTitle(), screeningViewContext);
                     }
 
                     @Override
@@ -277,6 +282,12 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
                     {
                         return HelpPageIdentifier.createSpecific("Plate Sample Viewer");
                     }
+
+                    @Override
+                    public String getTabTitle()
+                    {
+                        return getViewerTitle(Dict.SAMPLE, identifiable, screeningViewContext);
+                    }
                 };
         }
 
@@ -294,9 +305,8 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
     }
 
     private static ITabItem createViewerTab(DatabaseModificationAwareComponent viewer,
-            ICodeHolder codeProvider, String dictTitleKey, IViewContext<?> viewContext)
+            String title, IViewContext<?> viewContext)
     {
-        String title = getViewerTitle(dictTitleKey, codeProvider, viewContext);
         return DefaultTabItem.create(title, viewer, viewContext, false);
     }
 
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java
index 5d234deb064..aafba4a815e 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java
@@ -125,8 +125,7 @@ public class ExperimentPlateLocationsSection extends TabContent
                 @Override
                 public ITabItem create()
                 {
-                    String tabItemText = viewContext.getMessage(Dict.PLATE_MATERIAL_REVIEWER_TITLE);
-                    return DefaultTabItem.create(tabItemText, reviewer, viewContext);
+                    return DefaultTabItem.create(getTabTitle(), reviewer, viewContext);
                 }
 
                 @Override
@@ -142,6 +141,12 @@ public class ExperimentPlateLocationsSection extends TabContent
                             DateTimeFormat.getMediumTimeFormat().format(new Date());
                     return GenericConstants.ID_PREFIX + "-PlateMaterialReviewer-" + reportDate;
                 }
+
+                @Override
+                public String getTabTitle()
+                {
+                    return viewContext.getMessage(Dict.PLATE_MATERIAL_REVIEWER_TITLE);
+                }
             };
         DispatcherHelper.dispatchNaviEvent(tabFactory);
     }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayouter.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayouter.java
index 7434cf519e1..e9b97dead82 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayouter.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayouter.java
@@ -290,14 +290,14 @@ public class PlateLayouter
             tooltip += "<br>" + propertyType.getLabel() + ": " + property.tryGetAsString();
             Material material = property.getMaterial();
             if (material != null
-                    && material.getMaterialType().getCode()
-                            .equalsIgnoreCase(ScreeningConstants.GENE_PLUGIN_TYPE_CODE))
+                    && material.getMaterialType().getCode().equalsIgnoreCase(
+                            ScreeningConstants.GENE_PLUGIN_TYPE_CODE))
             {
                 List<IEntityProperty> geneProperties = material.getProperties();
                 for (IEntityProperty geneProperty : geneProperties)
                 {
-                    if (geneProperty.getPropertyType().getCode()
-                            .equalsIgnoreCase(ScreeningConstants.GENE_SYMBOLS))
+                    if (geneProperty.getPropertyType().getCode().equalsIgnoreCase(
+                            ScreeningConstants.GENE_SYMBOLS))
                     {
                         tooltip += " [" + geneProperty.tryGetAsString() + "]";
                     }
@@ -361,10 +361,9 @@ public class PlateLayouter
                             @Override
                             public ITabItem create()
                             {
-                                return DefaultTabItem.create(
-                                        "Plate Report: " + plate.getCode(),
-                                        PlateMetadataBrowser.create(viewContext,
-                                                new TechId(plate.getId())), viewContext);
+                                return DefaultTabItem.create(getTabTitle(), PlateMetadataBrowser
+                                        .create(viewContext, new TechId(plate.getId())),
+                                        viewContext);
                             }
 
                             @Override
@@ -380,6 +379,12 @@ public class PlateLayouter
                                 return new HelpPageIdentifier(HelpPageDomain.SAMPLE,
                                         HelpPageAction.VIEW);
                             }
+
+                            @Override
+                            public String getTabTitle()
+                            {
+                                return "Plate Report: " + plate.getCode();
+                            }
                         };
                 }
             });
-- 
GitLab