전체 글 265

현재 Selection 얻기

특정 뷰에서 Selection 정보를 넘겨주기 위해선 SelectionProvider를 설정 getSite().setSelectionProvider(tbvRows); 받는 쪽에선 아래와 같이 가능 ISelection selection = HandlerUtil.getCurrentSelection(event); //ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection(); if (selection != null & selection instanceof IStructuredSelection) { IStructuredSelection strucSelection = (IStructuredSelec..

특정 뷰에 Context Menu 추가하기

[View] public static final String ID = "com.lawmin.view"; ... MenuManager menuManager = new MenuManager(); Menu menu = menuManager.createContextMenu(tbRows); // Set the MenuManager tbRows.setMenu(menu); menu.setData(tbvRows); // 이건... 이벤트 발생시 source 추적하기 위해... getSite().registerContextMenu(menuManager, tbvRows); // Make the selection available getSite().setSelectionProvider(tbvRows); ... [Handle..

Undo/Redo 기능 추가 StyledText

delta 값 기록 방식이 아닌 전체 이미지 저장하는 방식이라 커서 위치 복원 문제나 메모리 과다 사용 문제가 있을 수 있다. event listener를 이용해 caret pos, replaced text, replacing text 등을 얻어와 처리할 수는 있을 것 같다. import java.util.LinkedList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.ExtendedModifyEvent; import org.eclipse.swt.custom.ExtendedModifyListener; import org.eclipse.swt.custom.StyledText; import org.eclip..

Tree, TreeViewer 확장(expand)시 자식 동적 Contents 추가/수정 및 Refresh

내부적으로 사용하는 객체의 equals, hashcode 등이 잘 정의되었다고 가정 트리.addListener(SWT.Expand, new Listener() { public void handleEvent(Event e) { if (e.item.getData() instanceof 트리아이템데이터Class) { 트리아이템데이터Class 트리아이템데이터 = (트리아이템데이터Class)e.item.getData(); try { 트리아이템데이터 변경 또는 추가(자식값이면 내부 Map, Array등에 추가) 트리뷰.refresh(false); 트리뷰.expandToLevel(트리아이템데이터, TreeViewer.ALL_LEVELS); } catch(Exception ex) { ex.printStackTrace(..

카테고리 없음 2011.12.20