diff --git a/gui/src/main/java/org/jboss/as/console/client/shared/runtime/tx/TXLogView.java b/gui/src/main/java/org/jboss/as/console/client/shared/runtime/tx/TXLogView.java index 76eae5bb0..70b9b1dac 100644 --- a/gui/src/main/java/org/jboss/as/console/client/shared/runtime/tx/TXLogView.java +++ b/gui/src/main/java/org/jboss/as/console/client/shared/runtime/tx/TXLogView.java @@ -6,7 +6,6 @@ import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.ProvidesKey; -import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SingleSelectionModel; import org.jboss.as.console.client.Console; import org.jboss.as.console.client.core.SuspendableViewImpl; @@ -28,27 +27,23 @@ * @author Heiko Braun * @date 2/27/13 */ -public class TXLogView extends SuspendableViewImpl implements TXLogPresenter.MyView{ +public class TXLogView extends SuspendableViewImpl implements TXLogPresenter.MyView { private TXLogPresenter presenter; private DefaultCellTable table; private ListDataProvider dataProvider; + private final SingleSelectionModel selectionModel; private ParticipantsPanel participantsPanel; public TXLogView() { - table = new DefaultCellTable( - 8, - new ProvidesKey() { - @Override - public Object getKey(TXRecord item) { - return item.getId(); - } - }); - - dataProvider = new ListDataProvider(); + ProvidesKey providesKey = TXRecord::getId; + this.selectionModel = new SingleSelectionModel<>(providesKey); + table = new DefaultCellTable<>(8, providesKey); + this.table.setSelectionModel(selectionModel); + dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table); TextColumn id = new TextColumn() { @@ -88,8 +83,8 @@ public Widget createWidget() { @Override public ModelNode getAddress() { ModelNode address = RuntimeBaseAddress.get(); - address.add("subsystem","transactions"); - address.add("log-store","log-store"); + address.add("subsystem", "transactions"); + address.add("log-store", "log-store"); return address; } @@ -108,7 +103,7 @@ public ModelNode getAddress() { final ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { - final TXRecord record = getSelectedRecord(); + final TXRecord record = selectionModel.getSelectedObject(); if (record != null) { Feedback.confirm( @@ -117,8 +112,7 @@ public void onClick(ClickEvent clickEvent) { new Feedback.ConfirmationHandler() { @Override public void onConfirmation(boolean confirmed) { - if (confirmed) - presenter.onDeleteRecord(record); + if (confirmed) { presenter.onDeleteRecord(record); } } } ); @@ -128,34 +122,17 @@ public void onConfirmation(boolean confirmed) { tools.addToolButtonRight(removeButton); // lazy load the participant details - table.getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() { - @Override - public void onSelectionChange(SelectionChangeEvent selectionChangeEvent) { - TXRecord selection = getSelectedRecord(); - if(selection!=null) - { - presenter.onLoadParticipants(selection); - } - } - }) ; - - - // handle deselection - table.getSelectionModel().addSelectionChangeHandler(new SelectionChangeEvent.Handler() { - @Override - public void onSelectionChange(SelectionChangeEvent selectionChangeEvent) { - TXRecord selection = getSelectedRecord(); - if(null==selection) - { - participantsPanel.clear(); - recordForm.clearValues(); - } + selectionModel.addSelectionChangeHandler(selectionChangeEvent -> { + TXRecord selection = selectionModel.getSelectedObject(); + if (selection != null) { + presenter.onLoadParticipants(selection); + } else { + participantsPanel.clear(); + recordForm.clearValues(); } }); - - - tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_probe(), new ClickHandler() { + tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_refresh(), new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { presenter.onProbe(true); @@ -174,11 +151,6 @@ public void onClick(ClickEvent clickEvent) { return layout.build(); } - private TXRecord getSelectedRecord() { - SingleSelectionModel selectionModel = (SingleSelectionModel)table.getSelectionModel(); - return selectionModel.getSelectedObject(); - } - @Override public void setPresenter(TXLogPresenter presenter) { this.presenter = presenter; @@ -195,8 +167,11 @@ public void clear() { @Override public void updateFrom(List records) { dataProvider.setList(records); - table.selectDefaultEntity(); + if (records.isEmpty()) { + selectionModel.clear(); + participantsPanel.clear(); + } } @Override