diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java new file mode 100644 index 0000000000000000000000000000000000000000..80be0ffe392ef378ca7a58b4e98d84e0a9862ad8 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java @@ -0,0 +1,100 @@ +/* + * Copyright 2008 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment; + +import static ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames.REGISTRATION_DATE; +import static ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames.REGISTRATOR; + +import java.util.LinkedHashMap; +import java.util.Map; + +import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.PropertyValueRenderers; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Experiment; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentProperty; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentType; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Invalidation; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Person; + +/** + * {@link SectionPanel} containing experiment properties. + * + * @author Izabela Adamczyk + */ +public class ExperimentPropertiesSection extends SectionPanel +{ + public static final String PROPERTIES_ID_PREFIX = + GenericConstants.ID_PREFIX + "experiment-properties-section_"; + + private final Experiment experiment; + + private final IViewContext<?> viewContext; + + public ExperimentPropertiesSection(final Experiment experiment, + final IViewContext<?> viewContext) + { + super("Experiment properties"); + this.experiment = experiment; + this.viewContext = viewContext; + add(createPropertyGrid()); + } + + private final PropertyGrid createPropertyGrid() + { + final IMessageProvider messageProvider = viewContext.getMessageProvider(); + final Map<String, Object> properties = createProperties(messageProvider); + final PropertyGrid propertyGrid = new PropertyGrid(messageProvider, properties.size()); + propertyGrid.getElement() + .setId(PROPERTIES_ID_PREFIX + experiment.getExperimentIdentifier()); + propertyGrid.registerPropertyValueRenderer(Person.class, PropertyValueRenderers + .createPersonPropertyValueRenderer(messageProvider)); + propertyGrid.registerPropertyValueRenderer(ExperimentType.class, PropertyValueRenderers + .createExperimentTypePropertyValueRenderer(messageProvider)); + propertyGrid.registerPropertyValueRenderer(Invalidation.class, PropertyValueRenderers + .createInvalidationPropertyValueRenderer(messageProvider)); + propertyGrid.registerPropertyValueRenderer(ExperimentProperty.class, PropertyValueRenderers + .createExperimentPropertyPropertyValueRenderer(messageProvider)); + propertyGrid.setProperties(properties); + return propertyGrid; + } + + private final Map<String, Object> createProperties(final IMessageProvider messageProvider) + { + final Map<String, Object> properties = new LinkedHashMap<String, Object>(); + final ExperimentType experimentType = experiment.getExperimentType(); + final Invalidation invalidation = experiment.getInvalidation(); + properties.put(messageProvider.getMessage("experiment"), experiment.getCode()); + properties.put(messageProvider.getMessage("experiment_type"), experimentType); + properties.put(messageProvider.getMessage(REGISTRATOR), experiment.getRegistrator()); + properties.put(messageProvider.getMessage(REGISTRATION_DATE), experiment + .getRegistrationDate()); + if (invalidation != null) + { + properties.put(messageProvider.getMessage("invalidation"), invalidation); + } + for (final ExperimentProperty property : experiment.getProperties()) + { + final String simpleCode = + property.getEntityTypePropertyType().getPropertyType().getLabel(); + properties.put(simpleCode, property); + } + return properties; + } +} \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java index a5c5641354a6e75d5057e3b4906ded9c157fb9cf..d3a0b6799b3e7b48428eb77e933c1b8d673e316f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java @@ -16,15 +16,8 @@ package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment; -import static ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames.REGISTRATION_DATE; -import static ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames.REGISTRATOR; - -import java.util.LinkedHashMap; -import java.util.Map; - import com.extjs.gxt.ui.client.Style.Scroll; import com.extjs.gxt.ui.client.util.Margins; -import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.layout.RowData; import com.google.gwt.user.client.ui.Widget; @@ -32,14 +25,7 @@ import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.PropertyValueRenderers; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Experiment; -import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentProperty; -import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentType; -import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Invalidation; -import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Person; import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync; /** @@ -53,9 +39,6 @@ public final class GenericExperimentViewer extends LayoutContainer public static final String ID_PREFIX = GenericConstants.ID_PREFIX + PREFIX; - public static final String PROPERTIES_ID_PREFIX = - GenericConstants.ID_PREFIX + "generic-experiment-properties-viewer_"; - private final IViewContext<IGenericClientServiceAsync> viewContext; private final String experimentIdentifier; @@ -68,73 +51,9 @@ public final class GenericExperimentViewer extends LayoutContainer this.viewContext = viewContext; } - private final static ContentPanel createSection(final String heading, final Widget container) - { - final ContentPanel panel = new ContentPanel(); - panel.setHeaderVisible(true); - panel.setBorders(true); - panel.setHeading(heading); - panel.setCollapsible(true); - panel.setAnimCollapse(false); - panel.add(container, new RowData(-1, -1, new Margins(5))); - panel.setBodyBorder(false); - return panel; - } - - private static ContentPanel createGeneralInfo(final Experiment experiment, - final IViewContext<?> viewContext) - { - final ContentPanel panel = new ContentPanel(); - panel.setBorders(false); - panel.setBodyBorder(false); - panel.setHeaderVisible(false); - panel.setScrollMode(Scroll.AUTOY); - panel.add(createPropertyGrid(experiment, viewContext)); - return createSection("Experiment properties", panel); - } - - private final static Map<String, Object> createProperties( - final IMessageProvider messageProvider, final Experiment experiment) - { - final Map<String, Object> properties = new LinkedHashMap<String, Object>(); - final ExperimentType experimentType = experiment.getExperimentType(); - final Invalidation invalidation = experiment.getInvalidation(); - properties.put(messageProvider.getMessage("experiment"), experiment.getCode()); - properties.put(messageProvider.getMessage("experiment_type"), experimentType); - properties.put(messageProvider.getMessage(REGISTRATOR), experiment.getRegistrator()); - properties.put(messageProvider.getMessage(REGISTRATION_DATE), experiment - .getRegistrationDate()); - if (invalidation != null) - { - properties.put(messageProvider.getMessage("invalidation"), invalidation); - } - for (final ExperimentProperty property : experiment.getProperties()) - { - final String simpleCode = - property.getEntityTypePropertyType().getPropertyType().getLabel(); - properties.put(simpleCode, property); - } - return properties; - } - - static private final PropertyGrid createPropertyGrid(final Experiment experiment, - final IViewContext<?> viewContext) + private static void addSection(final LayoutContainer lc, final Widget w) { - final IMessageProvider messageProvider = viewContext.getMessageProvider(); - final Map<String, Object> properties = createProperties(messageProvider, experiment); - final PropertyGrid propertyGrid = new PropertyGrid(messageProvider, properties.size()); - propertyGrid.getElement() - .setId(PROPERTIES_ID_PREFIX + experiment.getExperimentIdentifier()); - propertyGrid.registerPropertyValueRenderer(Person.class, PropertyValueRenderers - .createPersonPropertyValueRenderer(messageProvider)); - propertyGrid.registerPropertyValueRenderer(ExperimentType.class, PropertyValueRenderers - .createExperimentTypePropertyValueRenderer(messageProvider)); - propertyGrid.registerPropertyValueRenderer(Invalidation.class, PropertyValueRenderers - .createInvalidationPropertyValueRenderer(messageProvider)); - propertyGrid.registerPropertyValueRenderer(ExperimentProperty.class, PropertyValueRenderers - .createExperimentPropertyPropertyValueRenderer(messageProvider)); - propertyGrid.setProperties(properties); - return propertyGrid; + lc.add(w, new RowData(-1, -1, new Margins(5))); } /** @@ -173,8 +92,8 @@ public final class GenericExperimentViewer extends LayoutContainer { genericExperimentViewer.removeAll(); genericExperimentViewer.setScrollMode(Scroll.AUTO); - genericExperimentViewer.add(createGeneralInfo(result, viewContext), new RowData(-1, -1, - new Margins(5))); + addSection(genericExperimentViewer, + new ExperimentPropertiesSection(result, viewContext)); genericExperimentViewer.layout(); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/SectionPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/SectionPanel.java new file mode 100644 index 0000000000000000000000000000000000000000..0bcaf49d1186e705af722bffc75da7bedb2748e7 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/SectionPanel.java @@ -0,0 +1,39 @@ +/* + * Copyright 2008 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment; + +import com.extjs.gxt.ui.client.Style.Scroll; +import com.extjs.gxt.ui.client.widget.ContentPanel; + +/** + * {@link ContentPanel} configured for Experiment Viewer. + * + * @author Izabela Adamczyk + */ +public class SectionPanel extends ContentPanel +{ + public SectionPanel(final String header) + { + setHeaderVisible(true); + setBorders(true); + setHeading(header); + setCollapsible(true); + setAnimCollapse(false); + setBodyBorder(false); + setScrollMode(Scroll.AUTOY); + } +} \ No newline at end of file