From 37ca30e448610d908aa28085eaed2e52757a4f3a Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 11 Jan 2011 11:01:39 +0000 Subject: [PATCH] [LMS-1982] fix & refactoring SVN: 19350 --- .../application/model/BaseEntityModel.java | 37 +++++------------- .../ui/attachment/AttachmentBrowser.java | 7 +++- .../PropertyTypeAssignmentGrid.java | 13 ++++--- .../ui/property_type/PropertyTypeGrid.java | 22 ++++++----- .../ui/vocabulary/VocabularyTermGrid.java | 39 +++++++------------ 5 files changed, 50 insertions(+), 68 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java index 945fe76f9d7..b040030c6c2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/BaseEntityModel.java @@ -30,7 +30,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionUI; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.GridCustomColumnDefinition; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.MultilineHTML; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel; import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition; @@ -49,8 +48,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person; public class BaseEntityModel<T> extends SimplifiedBaseModelData { private static final long serialVersionUID = 1L; - - public static <T> BaseEntityModel<T> create(GridRowModel<T> entity, List<IColumnDefinitionUI<T>> columnDefinitions) + + public static <T> BaseEntityModel<T> create(GridRowModel<T> entity, + List<IColumnDefinitionUI<T>> columnDefinitions) { return null; } @@ -67,7 +67,7 @@ public class BaseEntityModel<T> extends SimplifiedBaseModelData { this(entity, columnDefinitions, false); } - + public BaseEntityModel(final GridRowModel<T> entity, List<? extends IColumnDefinition<T>> columnDefinitions, boolean ignoreCustomColumns) { @@ -108,18 +108,12 @@ public class BaseEntityModel<T> extends SimplifiedBaseModelData return get(ModelDataPropertyNames.link(columnId)); } - /** render specified column as a link (using div) */ - public void renderAsLink(String columnId) - { - String value = this.get(columnId); - if (value.length() > 0) - {// only for not null value - value = LinkRenderer.renderAsLink(value); - } - this.set(columnId, value); - } - - /** render specified column as a link with anchor */ + /** + * render specified column as a link with anchor + * + * @deprecated use cell renderer configured in AbstractBrowser.createColumnDefinitions() instead + */ + @Deprecated public void renderAsLinkWithAnchor(String columnId) { String value = this.get(columnId); @@ -130,17 +124,6 @@ public class BaseEntityModel<T> extends SimplifiedBaseModelData this.set(columnId, value); } - /** render specified column as a multiline string with a tooltip (no word wrapping available) */ - public void renderAsMultilineStringWithTooltip(String columnId) - { - String value = this.get(columnId); - if (value.length() > 0) - {// only for not null value - value = new MultilineHTML(value).toString(); - } - this.set(columnId, value); - } - // TODO 2010-05-18, IA: unify renderers and remove code below // ugly, ugly, ugly! protected String renderColumnValue(final GridRowModel<T> entity, IColumnDefinition<T> column) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java index ca1c41cedc7..b9f509ecbd1 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java @@ -65,6 +65,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Abstrac import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.ColumnConfigFactory; 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.columns.specific.AttachmentColDefKind; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.EntityTypeColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.DescriptionField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.file.AttachmentFileUploadField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid; @@ -123,7 +124,8 @@ public class AttachmentBrowser extends AbstractSimpleBrowserGrid<AttachmentVersi attachmentFileUploadField = new AttachmentFileUploadField(viewContext); attachmentFileUploadField.addFieldsTo(form, sessionKey, viewContext); AbstractRegistrationForm.addFileUploadFeature(form, Arrays.asList(sessionKey)); - form.addListener(Events.Submit, new FormPanelListener(PopupDialogBasedInfoHandler.INSTANCE) + form.addListener(Events.Submit, new FormPanelListener( + PopupDialogBasedInfoHandler.INSTANCE) { @Override protected void setUploadEnabled() @@ -222,6 +224,8 @@ public class AttachmentBrowser extends AbstractSimpleBrowserGrid<AttachmentVersi ColumnDefsAndConfigs<AttachmentVersions> schema = super.createColumnsDefinition(); schema.setGridCellRendererFor(AttachmentColDefKind.PERMLINK.id(), LinkRenderer.createExternalLinkRenderer(viewContext.getMessage(Dict.PERMLINK))); + schema.setGridCellRendererFor(EntityTypeColDefKind.DESCRIPTION.id(), + createMultilineStringCellRenderer()); return schema; } @@ -428,7 +432,6 @@ public class AttachmentBrowser extends AbstractSimpleBrowserGrid<AttachmentVersi { BaseEntityModel<AttachmentVersions> model = super.createModel(entity); model.renderAsLinkWithAnchor(AttachmentColDefKind.FILE_NAME.id()); - model.renderAsMultilineStringWithTooltip(AttachmentColDefKind.DESCRIPTION.id()); renderVersionAsLink(model); return model; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java index c07c9b67f49..62d2de85038 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java @@ -43,11 +43,13 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; 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.columns.specific.EntityTypeColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.PropertyTypeAssignmentColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.PropertyFieldFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ScriptChooserField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IBrowserGridActionInvoker; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog; @@ -57,7 +59,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDele import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; -import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel; import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -451,12 +452,12 @@ public class PropertyTypeAssignmentGrid extends } @Override - protected BaseEntityModel<EntityTypePropertyType<?>> createModel( - GridRowModel<EntityTypePropertyType<?>> entity) + protected ColumnDefsAndConfigs<EntityTypePropertyType<?>> createColumnsDefinition() { - BaseEntityModel<EntityTypePropertyType<?>> model = super.createModel(entity); - model.renderAsMultilineStringWithTooltip(PropertyTypeAssignmentColDefKind.DESCRIPTION.id()); - return model; + ColumnDefsAndConfigs<EntityTypePropertyType<?>> schema = super.createColumnsDefinition(); + schema.setGridCellRendererFor(EntityTypeColDefKind.DESCRIPTION.id(), + createMultilineStringCellRenderer()); + return schema; } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeGrid.java index 47450a03a8f..5e6ed8f8cef 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeGrid.java @@ -28,6 +28,7 @@ import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.Window; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.TextField; +import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; @@ -39,12 +40,12 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.PropertyTypeModel; 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.columns.specific.PropertyTypeColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.DescriptionField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.XmlField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IBrowserGridActionInvoker; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog; @@ -53,12 +54,11 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang. import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; -import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel; import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; /** * Grid displaying property types. @@ -243,13 +243,17 @@ public class PropertyTypeGrid extends AbstractSimpleBrowserGrid<PropertyType> } @Override - protected PropertyTypeModel createModel(GridRowModel<PropertyType> entity) + protected ColumnDefsAndConfigs<PropertyType> createColumnsDefinition() { - PropertyTypeModel model = new PropertyTypeModel(entity, getStaticColumnsDefinition()); - model.renderAsMultilineStringWithTooltip(PropertyTypeColDefKind.DESCRIPTION.id()); - model.renderAsMultilineStringWithTooltip(PropertyTypeColDefKind.SCHEMA.id()); - model.renderAsMultilineStringWithTooltip(PropertyTypeColDefKind.TRANSFORMATION.id()); - return model; + ColumnDefsAndConfigs<PropertyType> schema = super.createColumnsDefinition(); + GridCellRenderer<BaseEntityModel<?>> multilineCellRenderer = + createMultilineStringCellRenderer(); + schema.setGridCellRendererFor(PropertyTypeColDefKind.DESCRIPTION.id(), + multilineCellRenderer); + schema.setGridCellRendererFor(PropertyTypeColDefKind.SCHEMA.id(), multilineCellRenderer); + schema.setGridCellRendererFor(PropertyTypeColDefKind.TRANSFORMATION.id(), + multilineCellRenderer); + return schema; } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java index 3a6cd5812a8..f882e8241a3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyTermGrid.java @@ -72,7 +72,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang. import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; -import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -129,33 +128,26 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> private VocabularyTermGrid(IViewContext<ICommonClientServiceAsync> viewContext, Vocabulary vocabulary) { - super(viewContext, createBrowserId(vocabulary), true, + super(viewContext, createBrowserId(vocabulary), true, DisplayTypeIDGenerator.VOCABULARY_TERMS_GRID); this.vocabulary = vocabulary; this.postRegistrationCallback = createRefreshGridAction(); extendBottomToolbar(); } - + @Override protected ColumnDefsAndConfigs<TableModelRowWithObject<VocabularyTermWithStats>> createColumnsDefinition() { ColumnDefsAndConfigs<TableModelRowWithObject<VocabularyTermWithStats>> definitions = super.createColumnsDefinition(); - definitions.setGridCellRendererFor(VocabularyTermGridIDs.URL, LinkRenderer - .createExternalLinkRenderer()); + definitions.setGridCellRendererFor(VocabularyTermGridIDs.URL, + LinkRenderer.createExternalLinkRenderer()); + definitions.setGridCellRendererFor(VocabularyTermGridIDs.DESCRIPTION, + createMultilineStringCellRenderer()); return definitions; } - @Override - protected BaseEntityModel<TableModelRowWithObject<VocabularyTermWithStats>> createModel( - GridRowModel<TableModelRowWithObject<VocabularyTermWithStats>> entity) - { - BaseEntityModel<TableModelRowWithObject<VocabularyTermWithStats>> model = super.createModel(entity); - model.renderAsMultilineStringWithTooltip(VocabularyTermGridIDs.DESCRIPTION); - return model; - } - private void extendBottomToolbar() { addEntityOperationsLabel(); @@ -184,7 +176,8 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> addButton(batchUpdateButton); Button editButton = - createSelectedItemButton(viewContext.getMessage(Dict.EDIT_VOCABULARY_TERM_BUTTON), + createSelectedItemButton( + viewContext.getMessage(Dict.EDIT_VOCABULARY_TERM_BUTTON), new ISelectedEntityInvoker<BaseEntityModel<TableModelRowWithObject<VocabularyTermWithStats>>>() { @@ -200,8 +193,8 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> addButton(editButton); Button deleteButton = - createSelectedItemsButton(viewContext - .getMessage(Dict.DELETE_VOCABULARY_TERMS_BUTTON), + createSelectedItemsButton( + viewContext.getMessage(Dict.DELETE_VOCABULARY_TERMS_BUTTON), new SelectionListener<ButtonEvent>() { @Override @@ -332,7 +325,6 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> return BROWSER_ID + "-" + vocabularyId; } - @Override protected void listTableRows( DefaultResultSetConfig<String, TableModelRowWithObject<VocabularyTermWithStats>> resultSetConfig, @@ -354,7 +346,7 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> { return columnID.startsWith("TERM") ? columnID : columnID.toLowerCase(); } - + private Window createUpdateTermsDialog() { final String title = @@ -363,8 +355,8 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> return new AbstractRegistrationDialog(viewContext, title, postRegistrationCallback) { - public static final String ID = - GenericConstants.ID_PREFIX + "vocabulary-content-edit_" + "form"; + public static final String ID = GenericConstants.ID_PREFIX + + "vocabulary-content-edit_" + "form"; protected final String termsSessionKey; @@ -563,8 +555,6 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> }; } - - @Override protected List<String> getColumnIdsOfFilters() { @@ -590,7 +580,8 @@ public class VocabularyTermGrid extends TypedTableGrid<VocabularyTermWithStats> private void deleteTerms() { - List<BaseEntityModel<TableModelRowWithObject<VocabularyTermWithStats>>> terms = getSelectedItems(); + List<BaseEntityModel<TableModelRowWithObject<VocabularyTermWithStats>>> terms = + getSelectedItems(); if (terms.isEmpty()) { return; -- GitLab