diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsChooser.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsChooser.java index 06be1ec35f2a5ebe645b0c12512e55dc0b046237..3c4df1483069869a7ed6be9ceadec78afc51561b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsChooser.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ColumnSettingsChooser.java @@ -3,9 +3,13 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid; import java.util.ArrayList; import java.util.List; +import com.extjs.gxt.ui.client.Events; import com.extjs.gxt.ui.client.Style.Scroll; import com.extjs.gxt.ui.client.Style.SelectionMode; +import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.event.ComponentEvent; +import com.extjs.gxt.ui.client.event.Listener; +import com.extjs.gxt.ui.client.event.SelectionEvent; import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.store.Record; @@ -77,6 +81,30 @@ class ColumnSettingsChooser // target.setFeedback(Feedback.INSERT); } + private void enableButtonOnGridSelectedItem(final Button button, final String enabledTitle) + { + final String disabledTitle = "Select a table row first."; + button.disable(); + button.setTitle(disabledTitle); + + grid.getSelectionModel().addListener(Events.SelectionChange, + new Listener<SelectionEvent<ModelData>>() + { + public void handleEvent(SelectionEvent<ModelData> se) + { + if (se.selection.size() == 1) + { + button.enable(); + button.setTitle(enabledTitle); + } else + { + button.disable(); + button.setTitle(disabledTitle); + } + } + }); + } + private static ListStore<ColumnDataModel> createStore(List<ColumnDataModel> list) { ListStore<ColumnDataModel> store = new ListStore<ColumnDataModel>(); @@ -111,12 +139,14 @@ class ColumnSettingsChooser add(new AdapterToolItem(createLink(Selectable.FILTER, false))); add(new FillToolItem()); Button up = new Button("Move Up"); - up.setTitle("Move selected column to the left"); up.addSelectionListener(moveSelectedItem(-1)); + enableButtonOnGridSelectedItem(up, + "Move selected column to the left in modified table."); add(new AdapterToolItem(up)); Button down = new Button("Move Down"); - down.setTitle("Move selected column to the right"); down.addSelectionListener(moveSelectedItem(+1)); + enableButtonOnGridSelectedItem(down, + "Move selected column to the right in modified table."); add(new AdapterToolItem(down)); }