Skip to content

Commit

Permalink
Re-work ContainerGridDataProvider jmix-framework#853
Browse files Browse the repository at this point in the history
  • Loading branch information
glebfox committed Oct 5, 2022
1 parent 4281047 commit a36e14d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import io.jmix.datatoolsflowui.view.entityinspector.EntityFormLayoutUtils;
import io.jmix.flowui.UiComponents;
import io.jmix.flowui.component.grid.DataGrid;
import io.jmix.flowui.component.grid.JmixGridDataProvider;
import io.jmix.flowui.data.grid.ContainerDataGridItems;
import io.jmix.flowui.model.CollectionContainer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
Expand All @@ -37,7 +37,6 @@
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings({"rawtypes", "unchecked"})
@Component("datatlf_EntityInspectorDataGridBuilder")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class InspectorDataGridBuilder {
Expand All @@ -52,12 +51,17 @@ public class InspectorDataGridBuilder {
protected DatatoolsFlowuiProperties datatoolsflowuiProperties;

private final MetaClass metaClass;
private final CollectionContainer collectionContainer;
private final CollectionContainer<?> collectionContainer;

private Boolean withSystem = false;

protected InspectorDataGridBuilder(CollectionContainer<?> collectionContainer) {
this.collectionContainer = collectionContainer;
this.metaClass = collectionContainer.getEntityMetaClass();
}

public static InspectorDataGridBuilder from(ApplicationContext applicationContext,
CollectionContainer collectionContainer) {
CollectionContainer<?> collectionContainer) {
return applicationContext.getBean(InspectorDataGridBuilder.class, collectionContainer);
}

Expand All @@ -66,8 +70,9 @@ public InspectorDataGridBuilder withSystem(boolean withSystem) {
return this;
}

@SuppressWarnings({"rawtypes", "unchecked"})
public DataGrid build() {
DataGrid dataGrid = uiComponents.create(DataGrid.class);
DataGrid<?> dataGrid = uiComponents.create(DataGrid.class);

//collect properties in order to add non-system columns first
List<MetaProperty> nonSystemProperties = new ArrayList<>(10);
Expand Down Expand Up @@ -104,24 +109,19 @@ public DataGrid build() {
dataGrid.setAllRowsVisible(true);
dataGrid.setMinHeight("20em");

dataGrid.setItems(new JmixGridDataProvider(collectionContainer));
dataGrid.setItems(new ContainerDataGridItems(collectionContainer));

dataGrid.enableMultiSelect();
return dataGrid;
}

protected InspectorDataGridBuilder(CollectionContainer collectionContainer) {
this.collectionContainer = collectionContainer;
this.metaClass = collectionContainer.getEntityMetaClass();
}

protected void addMetaPropertyToDataGrid(DataGrid dataGrid, MetaProperty metaProperty) {
protected void addMetaPropertyToDataGrid(DataGrid<?> dataGrid, MetaProperty metaProperty) {
MetaPropertyPath metaPropertyPath = metaClass.getPropertyPath(metaProperty.getName());
if (metaPropertyPath == null) {
return;
}

DataGrid.Column column = dataGrid.addColumn(metaPropertyPath);
DataGrid.Column<?> column = dataGrid.addColumn(metaPropertyPath);

column.setHeader(getProperHeader(metaClass, metaProperty));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -328,11 +328,6 @@ protected void notifyDataProviderSelectionChanged(SelectionEvent<Grid<E>, E> ign
if (selected.isEmpty()) {
items.setSelectedItem(null);
} else {
// reset selection and select new item
/*if (isMultiSelect()) {
dataGridItems.setSelectedItem(null);
}*/

E newItem = selected.iterator().next();
// In some cases, the container may not contain
// an item that we want to set as the selected
Expand Down

0 comments on commit a36e14d

Please sign in to comment.