List of usage examples for com.google.gwt.user.cellview.client ColumnSortList.ColumnSortInfo ColumnSortList.ColumnSortInfo
public ColumnSortInfo(Column<?, ?> column, boolean ascending)
From source file:org.jbpm.datamodeler.editor.client.editors.DataModelBrowser.java
License:Apache License
public void setDataModel(DataModelTO dataModel) { this.dataModel = dataModel; this.dataObjects = dataModel.getDataObjects(); modelName.setText(dataModel.getName()); // We create a new selection model due to a bug found in GWT when we change e.g. from one data object with 9 rows // to one with 3 rows and the table was sorted. // Several tests has been done and the final workaround (not too bad) we found is to // 1) sort the table again // 2) create a new selection model // 3) populate the table with new items // 3) select the first row SingleSelectionModel selectionModel2 = new SingleSelectionModel<DataObjectTO>(); dataObjectsTable.setSelectionModel(selectionModel2); selectionModel2.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override// w w w . j a va 2 s .c o m public void onSelectionChange(SelectionChangeEvent event) { if (!skipNextOnChange) { DataObjectTO selectedObjectTO = ((SingleSelectionModel<DataObjectTO>) dataObjectsTable .getSelectionModel()).getSelectedObject(); notifyObjectSelected(selectedObjectTO); } skipNextOnChange = false; } }); ArrayList<DataObjectTO> sortBuffer = new ArrayList<DataObjectTO>(); sortBuffer.addAll(dataObjects); Collections.sort(sortBuffer, new DataObjectComparator()); dataObjectsProvider.getList().clear(); dataObjectsProvider.getList().addAll(sortBuffer); dataObjectsProvider.flush(); dataObjectsProvider.refresh(); dataObjectsTable.getColumnSortList() .push(new ColumnSortList.ColumnSortInfo(dataObjectsTable.getColumn(1), true)); if (dataObjects.size() > 0) { dataObjectsTable.setKeyboardSelectedRow(0); selectionModel2.setSelected(sortBuffer.get(0), true); } // Set the first row selected again. Sounds crazy, but it's part of the workaround, don't remove this line. if (dataObjects.size() > 0) { dataObjectsTable.setKeyboardSelectedRow(0); } }
From source file:org.jbpm.datamodeler.editor.client.editors.DataObjectBrowser.java
License:Apache License
private void setDataObject(DataObjectTO dataObject) { this.dataObject = dataObject; objectName.setText(dataObject.getName() + "::" + dataObject.getPackageName()); //We create a new selection model due to a bug found in GWT when we change e.g. from one data object with 9 rows // to one with 3 rows and the table was sorted. //Several tests has been done and the final workaround (not too bad) we found is to // 1) sort the table again // 2) create a new selection model // 3) populate the table with new items // 3) select the first row SingleSelectionModel selectionModel2 = new SingleSelectionModel<ObjectPropertyTO>(); dataObjectPropertiesTable.setSelectionModel(selectionModel2); selectionModel2.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override// www . ja va 2s . c o m public void onSelectionChange(SelectionChangeEvent event) { ObjectPropertyTO selectedPropertyTO = ((SingleSelectionModel<ObjectPropertyTO>) dataObjectPropertiesTable .getSelectionModel()).getSelectedObject(); notifyFieldSelected(selectedPropertyTO); } }); ArrayList<ObjectPropertyTO> sortBuffer = new ArrayList<ObjectPropertyTO>(); sortBuffer.addAll(dataObject.getProperties()); Collections.sort(sortBuffer, new ObjectPropertyComparator("name")); dataObjectProperties = dataObject.getProperties(); dataObjectPropertiesProvider.getList().clear(); dataObjectPropertiesProvider.getList().addAll(sortBuffer); dataObjectPropertiesProvider.flush(); dataObjectPropertiesProvider.refresh(); dataObjectPropertiesTable.getColumnSortList() .push(new ColumnSortList.ColumnSortInfo(dataObjectPropertiesTable.getColumn(1), true)); if (dataObjectProperties.size() > 0) { dataObjectPropertiesTable.setKeyboardSelectedRow(0); selectionModel2.setSelected(sortBuffer.get(0), true); } //set the first row selected again. Sounds crazy, but's part of the workaround, don't remove this line. if (dataObjectProperties.size() > 0) { dataObjectPropertiesTable.setKeyboardSelectedRow(0); } if (dataObjectProperties.size() == 0) { //there are no properties. //fire an empty property seleccion event in order to notify the notifyFieldSelected(null); } }
From source file:org.kie.workbench.common.screens.datamodeller.client.widgets.DataModelBrowser.java
License:Apache License
private void loadDataModel(DataModelTO dataModel) { this.dataObjects = dataModel.getDataObjects(); modelName.setText(dataModel.getName()); // We create a new selection model due to a bug found in GWT when we change e.g. from one data object with 9 rows // to one with 3 rows and the table was sorted. // Several tests has been done and the final workaround (not too bad) we found is to // 1) sort the table again // 2) create a new selection model // 3) populate the table with new items // 3) select the first row SingleSelectionModel selectionModel2 = new SingleSelectionModel<DataObjectTO>(); dataObjectsTable.setSelectionModel(selectionModel2); selectionModel2.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override//from w w w . j av a2s . co m public void onSelectionChange(SelectionChangeEvent event) { if (!skipNextOnChange) { DataObjectTO selectedObjectTO = ((SingleSelectionModel<DataObjectTO>) dataObjectsTable .getSelectionModel()).getSelectedObject(); notifyObjectSelected(selectedObjectTO); } skipNextOnChange = false; } }); ArrayList<DataObjectTO> sortBuffer = new ArrayList<DataObjectTO>(); sortBuffer.addAll(dataObjects); Collections.sort(sortBuffer, new DataObjectComparator()); dataObjectsProvider.getList().clear(); dataObjectsProvider.getList().addAll(sortBuffer); dataObjectsProvider.flush(); dataObjectsProvider.refresh(); dataObjectsTable.getColumnSortList() .push(new ColumnSortList.ColumnSortInfo(dataObjectsTable.getColumn(1), true)); if (dataObjects.size() > 0) { dataObjectsTable.setKeyboardSelectedRow(0); selectionModel2.setSelected(sortBuffer.get(0), true); } // Set the first row selected again. Sounds crazy, but it's part of the workaround, don't remove this line. if (dataObjects.size() > 0) { dataObjectsTable.setKeyboardSelectedRow(0); } }