diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java index 5b6c7b461b33037718a38bec4bd6c872155b08b8..f9bacd392fc793012fd0aab82fc6f74ba4b76dbf 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java @@ -16,8 +16,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; - import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.widget.grid.ColumnData; import com.extjs.gxt.ui.client.widget.grid.Grid; @@ -29,6 +27,8 @@ import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Hyperlink; import com.google.gwt.user.client.ui.Widget; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; + /** * @author Franz-Josef Elmer * @author Piotr Buczek @@ -51,6 +51,23 @@ public class LinkRenderer }; } + public static GridCellRenderer<BaseEntityModel<?>> createLinkRenderer(final String text, + final boolean openInNewWindow) + { + return new GridCellRenderer<BaseEntityModel<?>>() + { + + public Object render(BaseEntityModel<?> model, String property, ColumnData config, + int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store, + Grid<BaseEntityModel<?>> grid) + { + String originalValue = String.valueOf(model.get(property)); + return LinkRenderer + .renderAsLinkWithAnchor(text, originalValue, openInNewWindow); + } + }; + } + public static GridCellRenderer<BaseEntityModel<?>> createExternalLinkRenderer() { return new GridCellRenderer<BaseEntityModel<?>>() @@ -97,8 +114,8 @@ public class LinkRenderer } /** - * @return {@link Anchor} GWT widget that is displayed as a link with given <var>text</var> - * and a <var>listener</var> registered on the click event. The link display style is + * @return {@link Anchor} GWT widget that is displayed as a link with given <var>text</var> and + * a <var>listener</var> registered on the click event. The link display style is * default (not invalidated). */ public static Widget getLinkWidget(final String text, final ClickHandler listener) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java deleted file mode 100644 index 8413e902e08ac3c5a04b80d03f99ad13c96f9f3a..0000000000000000000000000000000000000000 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/ShowDetailsLinkCellRenderer.java +++ /dev/null @@ -1,26 +0,0 @@ -package ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer; - -import com.extjs.gxt.ui.client.store.ListStore; -import com.extjs.gxt.ui.client.widget.grid.ColumnData; -import com.extjs.gxt.ui.client.widget.grid.Grid; -import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; - -import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; - -public class ShowDetailsLinkCellRenderer implements GridCellRenderer<BaseEntityModel<?>> -{ - private final String text; - - public ShowDetailsLinkCellRenderer(String text) - { - this.text = text; - } - - public Object render(BaseEntityModel<?> model, String property, ColumnData config, - int rowIndex, int colIndex, ListStore<BaseEntityModel<?>> store, - Grid<BaseEntityModel<?>> grid) - { - String originalValue = String.valueOf(model.get(property)); - return LinkRenderer.renderAsLinkWithAnchor(text, originalValue, true); - } -} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java index 5acdb0e6b9e84f140d6e5c1b04fd1c8d579dcc95..a80ea5300d205a0a6b91d3bc15664d9a86a15b3e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java @@ -32,7 +32,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.ShowDetailsLinkCellRenderer; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; @@ -242,8 +242,9 @@ public abstract class AbstractEntityBrowserGrid<T extends IEntityPropertiesHolde protected final GridCellRenderer<BaseEntityModel<?>> createShowDetailsLinkCellRenderer() { - return new ShowDetailsLinkCellRenderer(viewContext - .getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE)); + return LinkRenderer.createLinkRenderer(viewContext + .getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE), true); + } // ------ static helpers diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java index d5a56564d03c1ed8cedad43ac6bf21daef46f803..10e6e2caf260ebc9d3156aac22252c60f0e89267 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/report/ReportGrid.java @@ -53,6 +53,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow; +import ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.Dict; /** * Grid displaying reporting results. This grid is special comparing to other grids, because it @@ -221,7 +222,6 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod GridCellRenderer<BaseEntityModel<?>> realNumberRenderer = new RealNumberRenderer(viewContext.getDisplaySettingsManager() .getRealNumberFormatingParameters()); - GridCellRenderer<BaseEntityModel<?>> linkRenderer = LinkRenderer.createLinkRenderer(); for (final ReportColumnUI colDefinition : colDefinitions) { final int colIndex = colDefinition.getIndex(); @@ -234,7 +234,8 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod final EntityKind entityKind = colDefinition.tryGetEntityKind(); if (entityKind != EntityKind.MATERIAL) { - definitions.setGridCellRendererFor(colDefinition.getIdentifier(), linkRenderer); + definitions.setGridCellRendererFor(colDefinition.getIdentifier(), + createShowEntityDetailsLinkCellRenderer(entityKind)); registerLinkClickListenerFor(colDefinition.getIdentifier(), new ICellListener<TableModelRow>() { @@ -251,6 +252,13 @@ public class ReportGrid extends AbstractBrowserGrid<TableModelRow, BaseEntityMod return definitions; } + protected final GridCellRenderer<BaseEntityModel<?>> createShowEntityDetailsLinkCellRenderer( + EntityKind entityKind) + { + return LinkRenderer.createLinkRenderer(viewContext.getMessage( + Dict.SHOW_ENTITY_DETAILS_LINK_TEXT_TEMPLATE, entityKind.getDescription()), false); + } + private void showEntityViewer(EntityKind entityKind, String permId) { OpenEntityDetailsTabHelper.open(viewContext, entityKind, permId); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java index e1ff428747298047ca983f14e9918a25924192da..7016dacdce38d1a27b1dac6a1f065b6529d9d0d6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java @@ -48,6 +48,9 @@ public final class Dict extends ch.systemsx.cisd.openbis.generic.client.web.clie public static final String QUERY_PARAMETERS_BINDINGS_DIALOG_TITLE = "query_parameters_binding_dialog_title"; + public static final String SHOW_ENTITY_DETAILS_LINK_TEXT_TEMPLATE = + "show_entity_details_link_text_template"; + private Dict() { // Can not be instantiated. diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js index 5a64397fdf6cca48257d084a0bf497787d44d2a0..c7fb267f0d31597256875235b1d6e4cc6d4b8a8b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js @@ -33,6 +33,8 @@ var query = { query_edit_title: "Edit Query Definition", query_parameters_binding_dialog_title: "Enter Query Parameters", + show_entity_details_link_text_template: "Show {0} Details", + // LAST LINE: KEEP IT AT THE END lastline: "" // we need a line without a comma }; \ No newline at end of file