2015-03-03 4 views
1

Я удаление узлов из SapTree со следующим кодом:Проверьте узел в дереве удален

SapTree tree; // initialized somewhere 
String key; // initialized somewhere 
String itemname; // initialized somewhere 
tree.selectNode(key); 
tree.expandNode(key); 
tree.ensureVisibleHorizontalItem(key, itemname); 
tree.nodeContextMenu(key); 
tree.selectContextMenuItem("DELETE_OBJECT"); 

Однако, иногда я не могу удалить элемент, например, из-за разрешений или других зависимостей. Как проверить, удалось ли удалить элемент?

Все перечисленные выше методы возвращают void, поэтому нет обратной связи таким образом.

Что я пробовал?

Я искал документацию (SapTree [MicroFocus]) для метода, который бы взял ключ и что-то возвращал. Я ожидал найти boolean exists(String key) или аналогичный метод.

ответ

1

Практически любой метод, который принимает параметр key, выдает исключение RuntimeException, если узел не существует. Поэтому я закончил называть getNodeTop(), что не вызывает никаких побочных эффектов при работе на дереве (в отличие от selectNode() и других). Улавливая исключение, я решаю, существует ли узел:

/** 
* Checks whether a node with the given key exists in the tree 
* @param haystack Tree to find the key in 
* @param nodeKey  Node key to be found 
* @return True if the node was found (determined by getting the top location), false if the node was not found 
*/ 
private boolean nodeExists(SapTree haystack, String nodeKey) 
{ 
    try 
    { 
     haystack.getNodeTop(nodeKey); 
     return true; 
    } catch (RuntimeException rex) 
    { 
     return false; 
    } 
} 

Этот ответ является совместно лицензированным под CC0.

+0

Я действительно надеюсь, что ваша «струнная игла» уникальна. – Nessuno

+0

@Nessuno: У узла есть ключ, текст и всплывающая подсказка. Насколько я заметил, ключ уникален (хотя я не мог найти это в документации). Я обновил ответ, чтобы использовать nodeKey вместо иглы, чтобы было ясно, что не использовать его с любым произвольным текстом. –

 Смежные вопросы

  • Нет связанных вопросов^_^