Skip to content
Snippets Groups Projects
Commit ee23f4e1 authored by buczekp's avatar buczekp
Browse files

[LMS-2096] added plugin widgets to data set search grid (reports are not yet invoking any action)

SVN: 20622
parent f6dbeedf
No related branches found
No related tags found
No related merge requests found
......@@ -29,6 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.
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.DisposableEntityChooser;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.DetailedDataSetSearchToolbar;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.DetailedSearchToolbar;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.DetailedSearchWindow;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.IDetailedSearchHitGrid;
......@@ -61,8 +62,8 @@ public class DataSetSearchHitGrid extends AbstractExternalDataGrid implements
final DetailedSearchWindow searchWindow =
new DetailedSearchWindow(viewContext, EntityKind.DATA_SET);
final DetailedSearchToolbar toolbar =
new DetailedSearchToolbar(grid, viewContext.getMessage(Dict.BUTTON_CHANGE_QUERY),
searchWindow);
new DetailedDataSetSearchToolbar(viewContext, grid,
viewContext.getMessage(Dict.BUTTON_CHANGE_QUERY), searchWindow);
searchWindow.setUpdateListener(toolbar);
return grid.asDisposableWithToolbar(toolbar);
}
......@@ -83,8 +84,8 @@ public class DataSetSearchHitGrid extends AbstractExternalDataGrid implements
searchWindow.setInitialSearchCriteria(searchCriteria);
final DetailedSearchToolbar toolbar =
new DetailedSearchToolbar(grid, viewContext.getMessage(Dict.BUTTON_CHANGE_QUERY),
searchWindow, true);
new DetailedDataSetSearchToolbar(viewContext, grid,
viewContext.getMessage(Dict.BUTTON_CHANGE_QUERY), searchWindow, true);
searchWindow.setUpdateListener(toolbar);
return grid.asDisposableWithToolbar(toolbar);
}
......
......@@ -31,10 +31,12 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericCon
import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ShowResultSetCutInfo;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.AbstractExternalDataGrid.SelectedAndDisplayedItems;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.DetailedSearchToolbar;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.DetailedSearchWindow;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search.IDetailedSearchHitGrid;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult;
import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListSampleDisplayCriteria;
import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet;
......@@ -117,7 +119,8 @@ public class SampleSearchHitGrid extends SampleBrowserGrid implements IDetailedS
{
// TODO, 2010-12-13, FJE, show related data sets isn't easy because
// TableModelRowWithObject doesn't implement IEntityInformationHolder.
// Changing the code is relatively easy but the method showRelatedDataSets()
// Changing the code is relatively easy but the method
// showRelatedDataSets()
// is also used by MatchingEntitiesPanel.
showRelatedDataSets(viewContext, SampleSearchHitGrid.this);
}
......@@ -162,10 +165,16 @@ public class SampleSearchHitGrid extends SampleBrowserGrid implements IDetailedS
{
if (callback instanceof AbstractAsyncCallback)
{
AbstractAsyncCallback<TypedTableResultSet<Sample>> asc = (AbstractAsyncCallback<TypedTableResultSet<Sample>>) callback;
asc.addOnSuccessAction(new ShowResultSetCutInfo<TypedTableResultSet<Sample>>(viewContext));
AbstractAsyncCallback<TypedTableResultSet<Sample>> asc =
(AbstractAsyncCallback<TypedTableResultSet<Sample>>) callback;
asc.addOnSuccessAction(new ShowResultSetCutInfo<TypedTableResultSet<Sample>>(
viewContext));
}
super.listTableRows(resultSetConfig, callback);
}
public IDelegatedActionWithResult<SelectedAndDisplayedItems> getSelectedAndDisplayedItemsAction()
{
throw new UnsupportedOperationException();
}
}
package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search;
import java.util.List;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.AbstractExternalDataGrid;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetProcessingMenu;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetSearchHitGrid;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.ReportingPluginSelectionWidget;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.report.ReportGeneratedCallback.IOnReportComponentGeneratedAction;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription;
/**
* Extension of {@link DetailedSearchWindow} adding widgets for reporting and processing plugins.
*
* @author Piotr Buczek
*/
public class DetailedDataSetSearchToolbar extends DetailedSearchToolbar
{
private final ReportingPluginSelectionWidget reportSelectionWidget;
private final IOnReportComponentGeneratedAction reportGeneratedAction;
public DetailedDataSetSearchToolbar(final IViewContext<?> viewContext,
final DataSetSearchHitGrid grid, String buttonName,
final DetailedSearchWindow searchWindow)
{
this(viewContext, grid, buttonName, searchWindow, false);
}
public DetailedDataSetSearchToolbar(final IViewContext<?> viewContext,
final DataSetSearchHitGrid grid, String buttonName,
final DetailedSearchWindow searchWindow, boolean initializeDescriptionFromSearchWindow)
{
super(grid, buttonName, searchWindow, initializeDescriptionFromSearchWindow);
this.reportSelectionWidget = new ReportingPluginSelectionWidget(viewContext, null);
this.reportGeneratedAction = new IOnReportComponentGeneratedAction()
{
public void execute(IDisposableComponent gridComponent)
{
// TODO
// replaceContent(gridComponent);
}
};
add(reportSelectionWidget);
if (viewContext.isSimpleOrEmbeddedMode() == false)
{
// processing plugins should be hidden in simple view mode
viewContext.getCommonService().listDataStoreServices(DataStoreServiceKind.PROCESSING,
new LoadProcessingPluginsCallback(viewContext, grid));
}
}
public final class LoadProcessingPluginsCallback extends
AbstractAsyncCallback<List<DatastoreServiceDescription>>
{
private final AbstractExternalDataGrid browser;
public LoadProcessingPluginsCallback(final IViewContext<?> viewContext,
AbstractExternalDataGrid browser)
{
super(viewContext);
this.browser = browser;
}
@Override
protected void process(List<DatastoreServiceDescription> result)
{
if (result.isEmpty() == false)
{
DataSetProcessingMenu menu =
new DataSetProcessingMenu(viewContext.getCommonViewContext(),
browser.getSelectedAndDisplayedItemsAction(), result);
add(new SeparatorToolItem());
add(menu);
}
}
}
}
......@@ -8,6 +8,7 @@ import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.LabelToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.user.client.Element;
......@@ -47,8 +48,6 @@ public class DetailedSearchToolbar extends ToolBar implements IDisposableCompone
this.shouldShowSearchWindowOnRender = !initializeDescriptionFromSearchWindow;
this.grid = grid;
this.searchWindow = searchWindow;
add(description = new LabelToolItem());
add(new FillToolItem());
add(new TextToolItem(buttonName, new SelectionListener<ButtonEvent>()
{
@Override
......@@ -57,6 +56,9 @@ public class DetailedSearchToolbar extends ToolBar implements IDisposableCompone
searchWindow.show();
}
}));
add(new SeparatorToolItem());
add(description = new LabelToolItem());
add(new FillToolItem());
if (initializeDescriptionFromSearchWindow)
{
updateDescription(searchWindow.getCriteriaDescription());
......
......@@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.search
import java.util.List;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.AbstractExternalDataGrid.SelectedAndDisplayedItems;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
......@@ -32,4 +34,6 @@ public interface IDetailedSearchHitGrid
/** refreshes grid with new criteria and properties */
void refresh(DetailedSearchCriteria newCriteria, List<PropertyType> propertyTypes);
IDelegatedActionWithResult<SelectedAndDisplayedItems> getSelectedAndDisplayedItemsAction();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment