2014-07-11 5 views
0

굿모닝 모든 (각각 또는 오후 또는 저녁), 내가 사용하는 다이어그램 편집기로 트리 뷰어에서 노드를 드래그시 SWTBot 테스트를 (구축을 위해 노력하고SWTBot 테스트 - 편집기 트리에서 드래그 앤 드롭

을 Graphiti, 그게 중요하다고 생각하지 마라.) 드래그 할 수있는 노드가없는 도구 모음에서, 그 자체가보기에, 그래서 그 일을의 표준 방법은 작동하지 않습니다 : 나는 또한 TreeItem이 dragAndDrop 기능이있는 것을보고

SWTBotGefEditor editor = gefBot.gefEditor(editorName); 
editor.activateTool(functionName); 
editor.drag(20, 20, 20, 20); 

,하지만 난하지 않는 한 잘못 (완전히 가능), 나는 다른 나무로 드래그 할 때만 작동한다고 생각합니다.

트리에서 다이어그램 편집기로 직접 끌 수있는 방법이 있습니까?

답변

0

는 동안 다시 이것을를 업데이트해야하지만, 스레드 그래서 난 내 연구 결과를 추가 할 것입니다 매달려 떠나고 싶지 않아 그런 다음 SWTBot이 SWTBotTreeItems에 대해 가지는 dragAndDrop() 메서드로 전달할 수있었습니다. 꼬집음으로 작업했지만 x/y 좌표를 지정할 수는 없지만 (팔레트에서 가져올 때와 마찬가지로), 여전히 이상적이지 않습니다.

SWTBotView view = gefBot.viewByTitle("My View"); 
SWTBotTree tree = view.bot().tree(); 
SWTBotTreeItem treeItem = tree.expandNode("Parent Node Name", targetNodeName); 

SWTBotGefViewer viewer = editor.getSWTBotGefViewer(); 
SWTBotGefFigureCanvas canvas = null; 

for (Field f : viewer.getClass().getDeclaredFields()) { 
    if ("canvas".equals(f.getName())) { 
     f.setAccessible(true); 
     try { 
      canvas = (SWTBotGefFigureCanvas) f.get(viewer); 
     } catch (IllegalArgumentException e) { 
      e.printStackTrace(); 
     } catch (IllegalAccessException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Assert.assertNotNull(canvas); 
treeItem.dragAndDrop(canvas); 
0

SWTBot에는 아직 구현되지 않은 여러 가지 끌기 구성표가 있습니다. 나는 당신의 사건이 그들 중 일부인지 여부를 모르겠습니다. 나는 테이블 행 드래그를위한 유틸리티를 만들어야한다는 것을 알고있다. 따라서 SWTBot 코드를 파헤쳐서 그런 빈 방법을 찾았는지 확인해야합니다. , 내 뷰어에서 캔버스 객체를 얻기 위해 반사를 사용할 필요 결국

:

+0

제안 해 주셔서 감사합니다. 나는 그들의 코드를 파고 들었지만 정확하게 나의 필요에 맞는 것을 찾을 수 없었다. 그것이 그곳에 있지 않다는 것을 의미하지 않는다. 나는 그것을 나 자신을 발견 할 수 없다는 것을 의미한다 ... 나는 반성을 사용하여 끝났다. – BiggPlanet