Я пытаюсь создать таблицу с Vaadin, где у вас есть разные опции в контекстном меню, в зависимости от того, выбрали ли вы одну или несколько строк.
Мне потребовалось некоторое время, чтобы сделать это, но теперь у меня есть рабочее решение. Проблема в том, что я чувствую, что это не очень хорошая практика кодирования, и я с удовольствием воспользуюсь любым советом о том, как разделить мою «функцию» на более мелкие классы или функции. Могу ли я создать отдельный класс Action? Не стесняйтесь комментировать и советовать и, пожалуйста, обратите внимание, что я только начал с Vaadin =)!
Table contactList = new Table("Test table");
3 contactList.addListener(new Property.ValueChangeListener(){
4 public void valueChange(ValueChangeEvent event){
5 Set<?> value = (Set<?>) event.getProperty().getValue();
6 if(value == null || value.size() == 0){
7 getMainWindow().showNotification("NULL or 0");
8 }else if(value.size() == 1){
9 contactList.removeAllActionHandlers();
10 contactList.addActionHandler(new Action.Handler(){
11 public Action[] getActions(Object target, Object sender){
12 return ACTIONS_EDIT;
13 }
14 public void handleAction(Action action, Object sender, Object target){
15 getMainWindow().showNotification("ACTION_EDIT");
16 }
17 });
18 }else{
19 contactList.removeAllActionHandlers();
20 contactList.addActionHandler(new Action.Handler(){
21 public Action[] getActions(Object target, Object sender){
22 return ACTIONS_EDIT_ALL;
23 }
24 public void handleAction(Action action, Object sender, Object target){
25 getMainWindow().showNotification("ACTION_EDIT_ALL");
26 }
27 });
28 }
29 }
30 });
Спасибо за любую помощь!
/ Marthin