diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceSelectionWidget.java index 9ddf2a80b16cc06e48485d295f511031b8ce38fa..417d580c62e771a5fb37c5eb547946bdac36a7ba 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceSelectionWidget.java @@ -175,6 +175,7 @@ public class SpaceSelectionWidget extends DropDownList<SpaceModel, Space> viewContext.getMessage(Dict.GROUPS))); setReadOnly(true); } + removeResultSetFromCache(); } int getSpaceGroupIndex(ListStore<SpaceModel> spaceStore) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java index 487b46f41f119af738c89a63adb8a1d8f82e0be1..75b06d1ef780d4d25ec3db24ec47488ecdf17e14 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/TypedTableGrid.java @@ -1858,19 +1858,19 @@ public abstract class TypedTableGrid<T extends Serializable> extends LayoutConta debug("saving new cache key"); } - private void disposeCache() + protected void disposeCache() { - if (resultSetKeyOrNull != null) - { - removeResultSet(resultSetKeyOrNull); - resultSetKeyOrNull = null; - } + removeResultSet(resultSetKeyOrNull); + resultSetKeyOrNull = null; } - private void removeResultSet(String resultSetKey) + protected void removeResultSet(String resultSetKey) { - viewContext.getService().removeResultSet(resultSetKey, - new VoidAsyncCallback<Void>(viewContext)); + if (resultSetKey != null) + { + viewContext.getService().removeResultSet(resultSetKey, + new VoidAsyncCallback<Void>(viewContext)); + } } /** @@ -2334,7 +2334,8 @@ public abstract class TypedTableGrid<T extends Serializable> extends LayoutConta * implementation does nothing. */ protected void applyModifications(BaseEntityModel<TableModelRowWithObject<T>> model, - String resultSetKey, List<IModification> modifications, AsyncCallback<IUpdateResult> callBack) + String resultSetKey, List<IModification> modifications, + AsyncCallback<IUpdateResult> callBack) { } @@ -2359,7 +2360,8 @@ public abstract class TypedTableGrid<T extends Serializable> extends LayoutConta { @Override public void applyModifications( - BaseEntityModel<TableModelRowWithObject<T>> model, List<IModification> modifications) + BaseEntityModel<TableModelRowWithObject<T>> model, + List<IModification> modifications) { AsyncCallback<IUpdateResult> callBack = createApplyModificationsCallback(model, modifications); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionWidget.java index c157e2656ccac9a0654bca5e7e7218923a1e5579..f5e90c86e2b13010d389c0ddb400bd609df4bb1b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionWidget.java @@ -118,7 +118,8 @@ public final class ProjectSelectionWidget extends return selected instanceof Project ? (Project) selected : null; } - private final class ListProjectsCallback extends AbstractAsyncCallback<TypedTableResultSet<Project>> + private final class ListProjectsCallback extends + AbstractAsyncCallback<TypedTableResultSet<Project>> { ListProjectsCallback(final IViewContext<?> viewContext) { @@ -128,9 +129,11 @@ public final class ProjectSelectionWidget extends @Override protected void process(final TypedTableResultSet<Project> result) { + resultSetKey = result.getResultSet().getResultSetKey(); final ListStore<ProjectComboModel> projectStore = getStore(); projectStore.removeAll(); - projectStore.add(convertItems(result.getResultSet().getList().extractOriginalObjects())); + projectStore + .add(convertItems(result.getResultSet().getList().extractOriginalObjects())); if (projectStore.getCount() > 0) { setEmptyText(viewContext.getMessage(Dict.COMBO_BOX_CHOOSE, CHOOSE_SUFFIX)); @@ -143,6 +146,7 @@ public final class ProjectSelectionWidget extends applyEmptyText(); dataLoaded = true; selectProjectAndUpdateOriginal(initialProjectIdentifierOrNull); + removeResultSetFromCache(); } } @@ -184,15 +188,15 @@ public final class ProjectSelectionWidget extends @Override protected void loadData(AbstractAsyncCallback<List<TableModelRowWithObject<Project>>> callback) { - DefaultResultSetConfig<String, TableModelRowWithObject<Project>> config = DefaultResultSetConfig.createFetchAll(); + DefaultResultSetConfig<String, TableModelRowWithObject<Project>> config = + DefaultResultSetConfig.createFetchAll(); viewContext.getCommonService().listProjects(config, new ListProjectsCallback(viewContext)); callback.ignore(); } public void trySelectByIdentifier(String projectIdentifier) { - GWTUtils - .setSelectedItem(this, ModelDataPropertyNames.PROJECT_IDENTIFIER, projectIdentifier); + GWTUtils.setSelectedItem(this, ModelDataPropertyNames.PROJECT_IDENTIFIER, projectIdentifier); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeSelectionWidget.java index 27542047d9cb04406ef73ac5539b5a64f977207d..49c0a18f15a9eafb6124b23c547bcf41f0952ac1 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeSelectionWidget.java @@ -32,6 +32,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.P import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.DropDownList; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils; 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.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -103,10 +104,12 @@ public final class PropertyTypeSelectionWidget extends @Override protected void process(final TypedTableResultSet<PropertyType> result) { + ResultSet<TableModelRowWithObject<PropertyType>> resultSet = result.getResultSet(); + resultSetKey = resultSet.getResultSetKey(); final ListStore<PropertyTypeComboModel> propertyTypeStore = getStore(); propertyTypeStore.removeAll(); List<TableModelRowWithObject<PropertyType>> rows = - result.getResultSet().getList().extractOriginalObjects(); + resultSet.getList().extractOriginalObjects(); ArrayList<PropertyType> types = new ArrayList<PropertyType>(); for (TableModelRowWithObject<PropertyType> row : rows) { @@ -123,6 +126,7 @@ public final class PropertyTypeSelectionWidget extends setReadOnly(true); } applyEmptyText(); + removeResultSetFromCache(); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java index 3da7e0d2cb60eb1bcd1851a93177e0e0485bcf61..45cddb8c021282f82b108860230737197c5e5689 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/search/DetailedSearchFieldsSelectionWidget.java @@ -35,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.en import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.DropDownList; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils; 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.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.AttributeSearchFieldKindProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; @@ -157,6 +158,8 @@ public final class DetailedSearchFieldsSelectionWidget extends @Override protected void process(final TypedTableResultSet<PropertyType> result) { + ResultSet<TableModelRowWithObject<PropertyType>> resultSet = result.getResultSet(); + resultSetKey = resultSet.getResultSetKey(); List<TableModelRowWithObject<PropertyType>> rows = result.getResultSet().getList().extractOriginalObjects(); propertyTypes = new ArrayList<PropertyType>(); @@ -181,6 +184,7 @@ public final class DetailedSearchFieldsSelectionWidget extends setValue(findAnyFieldItem(items)); dataLoaded = true; + removeResultSetFromCache(); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularySelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularySelectionWidget.java index dd67cb9a5bb9cc26096a7c3f14441afadf901857..1d6ed7464005e139b86ed7cf7467830ee3accfe8 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularySelectionWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularySelectionWidget.java @@ -30,6 +30,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.DropDownList; 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.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; @@ -105,14 +106,18 @@ public class VocabularySelectionWidget extends DropDownList<BaseModelData, Vocab @Override public void onSuccess(TypedTableResultSet<Vocabulary> result) { + ResultSet<TableModelRowWithObject<Vocabulary>> resultSet = + result.getResultSet(); + resultSetKey = resultSet.getResultSetKey(); List<TableModelRowWithObject<Vocabulary>> rows = - result.getResultSet().getList().extractOriginalObjects(); + resultSet.getList().extractOriginalObjects(); List<Vocabulary> vocabularies = new ArrayList<Vocabulary>(); for (TableModelRowWithObject<Vocabulary> row : rows) { vocabularies.add(row.getObjectOrNull()); } callback.onSuccess(vocabularies); + removeResultSetFromCache(); } }); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java index 663bf53ea1affc0c26703ae30dda1bec93ab8a74..07d171f300a3476d9b47335a1b1aa9919f110a2e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/DropDownList.java @@ -226,6 +226,11 @@ abstract public class DropDownList<M extends ModelData, E> extends ComboBox<M> i @Override public void dispose() + { + removeResultSetFromCache(); + } + + protected void removeResultSetFromCache() { if (resultSetKey != null && viewContextOrNull != null) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java index 43821c22b4de6877a9fc768e27146b0c82dd3ce0..46e815f264f31a825377bea567f785d2a5b5988a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CachedResultSetManager.java @@ -1033,10 +1033,6 @@ public final class CachedResultSetManager<K> implements IResultSetManager<K>, Se if (cache.remove(resultSetKey) != null) { debug(String.format("Result set for key '%s' has been removed.", resultSetKey)); - } else - { - operationLog.warn(String.format("No result set for key '%s' could be found.", - resultSetKey)); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QuerySectionPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QuerySectionPanel.java index de129d4e26eab2023cd146cd2ebfe6462bdb7537..c30e48d37202d761c232f6e9a8ef3937c4469bdc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QuerySectionPanel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QuerySectionPanel.java @@ -24,6 +24,7 @@ import com.extjs.gxt.ui.client.widget.Component; import ch.systemsx.cisd.openbis.generic.client.web.client.application.DisposableTabContent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; @@ -77,6 +78,11 @@ final class QuerySectionPanel extends DisposableTabContent @Override public void dispose() { + IDatabaseModificationObserver mobserver = viewer.getModificationObserver(); + if (mobserver instanceof IDisposableComponent) + { + ((IDisposableComponent) mobserver).dispose(); + } } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryBrowserGrid.java index 65ef16ec674084d6db207da4a22437c766b647ae..4e6ed101a76b5ca673f28d3fdbc321e934073a03 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryBrowserGrid.java @@ -109,12 +109,14 @@ public class QueryBrowserGrid extends TypedTableGrid<QueryExpression> IViewContext<IQueryClientServiceAsync> viewContext) { QueryBrowserGrid browser = new QueryBrowserGrid(viewContext); - return new DatabaseModificationAwareComponent(browser, browser); + return new DatabaseModificationAwareComponent(browser, browser.asDisposableWithoutToolbar()); } @SuppressWarnings("hiding") private final IViewContext<IQueryClientServiceAsync> viewContext; + private QueryEditor queryEditor; + QueryBrowserGrid(IViewContext<IQueryClientServiceAsync> viewContext) { super(viewContext.getCommonViewContext(), BROWSER_ID, true, @@ -123,6 +125,16 @@ public class QueryBrowserGrid extends TypedTableGrid<QueryExpression> extendBottomToolbar(); } + @Override + protected void disposeCache() + { + if (queryEditor != null) + { + queryEditor.dispose(); + } + super.disposeCache(); + } + private void extendBottomToolbar() { addEntityOperationsLabel(); @@ -133,8 +145,11 @@ public class QueryBrowserGrid extends TypedTableGrid<QueryExpression> @Override public void componentSelected(ButtonEvent ce) { - new QueryEditor(viewContext, null, createRefreshGridAction(), - getWidth(), getHeight()).show(); + queryEditor = + new QueryEditor(viewContext, null, + createRefreshGridAction(), getWidth(), + getHeight()); + queryEditor.show(); } }); @@ -152,15 +167,19 @@ public class QueryBrowserGrid extends TypedTableGrid<QueryExpression> { QueryExpression query = selectedItem.getBaseObject().getObjectOrNull(); - new QueryEditor(viewContext, query, createRefreshGridAction(), - getWidth(), getHeight()).show(); + queryEditor = + new QueryEditor(viewContext, query, + createRefreshGridAction(), getWidth(), + getHeight()); + queryEditor.show(); } }); addButton(editButton); Button deleteButton = createSelectedItemsButton( - viewContext.getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.BUTTON_DELETE), + viewContext + .getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.BUTTON_DELETE), new AbstractCreateDialogListener() { @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java index f15ff750bb922ae40d73c76ea16f651e62058782..c48fc2c81d7431dec5865b082bf4210c73990950 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryEditor.java @@ -28,6 +28,7 @@ import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.event.SelectionChangedEvent; import com.extjs.gxt.ui.client.event.SelectionListener; +import com.extjs.gxt.ui.client.widget.Component; import com.extjs.gxt.ui.client.widget.Dialog; import com.extjs.gxt.ui.client.widget.Window; import com.extjs.gxt.ui.client.widget.button.Button; @@ -78,7 +79,7 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryParameterBind /** * @author Franz-Josef Elmer */ -public class QueryEditor extends Dialog +public class QueryEditor extends Dialog implements IDisposableComponent { public static final String ID = Constants.QUERY_ID_PREFIX + "_query_editor"; @@ -196,6 +197,8 @@ public class QueryEditor extends Dialog private final QueryDatabaseSelectionWidget queryDatabaseSelectionWidget; + private IDisposableComponent reportAsDisposable; + // entity type selection widgets (not more than one will be shown at the same time) private MaterialTypeSelectionWidget materialTypeField; @@ -279,6 +282,21 @@ public class QueryEditor extends Dialog setWidth(parentWidth); } + @Override + public Component getComponent() + { + return this; + } + + @Override + public void dispose() + { + if (reportAsDisposable != null) + { + reportAsDisposable.dispose(); + } + } + private void createEntityTypeFields() { final IViewContext<ICommonClientServiceAsync> commonViewContext = @@ -484,11 +502,13 @@ public class QueryEditor extends Dialog return testButton; } + @Override public DatabaseModificationKind[] getRelevantModifications() { return new DatabaseModificationKind[0]; } + @Override public void update(Set<DatabaseModificationKind> observedModifications) { } @@ -571,7 +591,9 @@ public class QueryEditor extends Dialog public void execute(final IDisposableComponent reportComponent) { removeAll(); + dispose(); add(reportComponent.getComponent()); + reportAsDisposable = reportComponent; if (getHeight() < parentHeight) { setHeight(parentHeight); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryViewer.java index b89b98e0b9d07bab25df8b135b5e60b4cfe00d57..d13001d451bdb71c5573dcc99517ac5705e6e906 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/module/QueryViewer.java @@ -43,7 +43,8 @@ import ch.systemsx.cisd.openbis.plugin.query.shared.basic.dto.QueryParameterBind /** * @author Piotr Buczek */ -public class QueryViewer extends ContentPanel implements IDatabaseModificationObserver +public class QueryViewer extends ContentPanel implements IDatabaseModificationObserver, + IDisposableComponent { public static DatabaseModificationAwareComponent create( @@ -57,6 +58,8 @@ public class QueryViewer extends ContentPanel implements IDatabaseModificationOb private final IViewContext<IQueryClientServiceAsync> viewContext; + private IDisposableComponent currentGridAsDisposable; + private Component currentGridOrNull; private final IQueryProvider queryProvider; @@ -130,6 +133,21 @@ public class QueryViewer extends ContentPanel implements IDatabaseModificationOb queryProvider.update(observedModifications); } + @Override + public Component getComponent() + { + return this; + } + + @Override + public void dispose() + { + if (currentGridAsDisposable != null) + { + currentGridAsDisposable.dispose(); + } + } + private IReportInformationProvider createReportInformationProvider(final String sqlQuery, final Long queryIdOrNull) { @@ -169,7 +187,9 @@ public class QueryViewer extends ContentPanel implements IDatabaseModificationOb if (currentGridOrNull != null) { remove(currentGridOrNull); + dispose(); } + currentGridAsDisposable = reportComponent; currentGridOrNull = reportComponent.getComponent(); add(currentGridOrNull); layout(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java index 6d978a9d45200af81cd3b42c74c72b9b900b4f7f..6c68e0977c755c6317fae9ac98af242a47901116 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ExperimentViewer.java @@ -35,6 +35,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.DisposableTabContent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.VoidAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.ProcessingDisplayCallback; @@ -42,6 +43,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ID import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang.StringEscapeUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; 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.IIdAndCodeHolder; @@ -131,8 +133,12 @@ public class ExperimentViewer extends GenericExperimentViewer private AsyncCallback<List<DatastoreServiceDescription>> createCallback( final ContentPanel contentPanel, TypedTableResultSet<AbstractExternalData> result) { + ResultSet<TableModelRowWithObject<AbstractExternalData>> resultSet = result.getResultSet(); + String resultSetKey = resultSet.getResultSetKey(); + viewContext.getCommonService().removeResultSet(resultSetKey, + new VoidAsyncCallback<Void>(viewContext)); final List<String> dataSetCodes = new ArrayList<String>(); - for (GridRowModel<TableModelRowWithObject<AbstractExternalData>> gridRowModel : result.getResultSet().getList()) + for (GridRowModel<TableModelRowWithObject<AbstractExternalData>> gridRowModel : resultSet.getList()) { dataSetCodes.add(gridRowModel.getOriginalObject().getObjectOrNull().getCode()); }