jface treeViewer 사용 설명

4440 단어 DAOeclipseUIxml
이틀 동안 eclipse 의 RCP plugin 개발 의 사용 기 교 를 배 웠 습 니 다. eclipe 플러그 인 으로 제 가 이전에 ibator 를 이용 하여 개조 한 dao 생 성 도 구 를 실현 하고 싶 습 니 다.
이틀 을 보고 extension view 를 약간 느낌 있 게 보 았 습 니 다. 여기 서 jface 의 treeViewer 라 는 컨트롤 을 eclipse view 에 트 리 구조의 디 렉 터 리 트 리 를 어떻게 표시 하 는 지 설명 하 겠 습 니 다.
 
<extension
         point="org.eclipse.ui.views">
      <category
            name="Sample Category"
            id="test3plugin">
      </category>
           <view
            category="test3plugin"
            class="test3plugin.ViewPartTest"
            icon="icons/alias.gif"
            id="test3plugin.view1"
            name="test3plugin.ViewPartTest"
            restorable="true">
      </view>
      
   </extension>

 
 먼저 plugin. xml 파일 에 org. eclipse. ui. views 의 확장 을 설명 합 니 다. 이것 은 간단 합 니 다. 더 이상 할 말 이 없습니다.
그리고 만 들 기. test3plugin. ViewPartTest 클래스:
 
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.ITreeViewerListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeExpansionEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;

public class ViewPartTest extends ViewPart {

	public ViewPartTest() {
	}

	@Override
	public void createPartControl(Composite parent) {

		TreeViewer viewer = new TreeViewer(parent);
		// Provide members of a compilation unit or class file
		ITreeContentProvider contentProvider = new StandardJavaElementContentProvider(
				true);
		viewer.setContentProvider(contentProvider);
		// There are more flags defined in class JavaElementLabelProvider
		ILabelProvider labelProvider = new JavaElementLabelProvider(
				JavaElementLabelProvider.SHOW_DEFAULT
						| JavaElementLabelProvider.SHOW_QUALIFIED
						| JavaElementLabelProvider.SHOW_ROOT);
		viewer.setLabelProvider(labelProvider);
		// Using the Java model as the viewers input present Java projects on
		// the first level.
		viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace()
				.getRoot()));

		viewer.addSelectionChangedListener(new ISelectionChangedListener() {

			@Override
			public void selectionChanged(SelectionChangedEvent event) {

				System.out.println(event.getSource().toString());

			}

		});

		viewer.addTreeListener(new ITreeViewerListener() {

			@Override
			public void treeCollapsed(TreeExpansionEvent event) {
				System.out.println("treeCollapsed:"
						+ event.getElement().toString());
			}

			@Override
			public void treeExpanded(TreeExpansionEvent event) {
				System.out.println("treeExpanded:"
						+ event.getElement().toString());
			}
		});

	}

	@Override
	public void setFocus() {
	}
 
 
여기 서 가장 중요 한 것 은 세 가지 방법 이다.
 
  • setContentProvider
  • setLabelProvider
  • setInput

  • 소스 코드 를 본 후에 이 세 가지 방법의 뜻 이 다음 과 같다 는 것 을 알 게 되 었 다.
  • setContentProvider 는 페이지 의 트 리 노드 내용 의 제공 내용 을 제공 하고 IContentProvider 형식의 대상 을 설정 합 니 다
  • setLabelProvider 는 트 리 노드 마다 그림 과 현실 문자 가 표시 되 어야 하기 때문에 IBaseLabelProvider 형식의 대상 을 설정 합 니 다
  • setInput 은 디 렉 터 리 트 리 의 루트 노드 를 설정 합 니 다. 이 방법 으로 설정 한 루트 대상 은 응용 디 렉 터 리 디 스 플레이 트 리 에서 비 현실 적 입 니 다.

  • 또 두 개의 사건 감청 인터페이스 가 있다.
  • addSelection Changed Listener 마우스 가 트 리 노드 에서 초점 을 맞 춘 후 이 방법 을 터치 합 니 다
  • addTreeListener 이 인 터 페 이 스 를 되 돌 리 는 방법 은 마우스 로 나무의 가지 나 잎 을 두 번 클릭 한 후에 노드 를 열 거나 닫 는 것 입 니 다
  • 특히 상기 몇 가지 방법 은 모두 전략 모델 로 변 화 를 격 리 한 것 이다.이렇게 하면 이 코드 를 통 해 각종 복잡 한 업무 수 요 를 실현 할 수 있다.

    좋은 웹페이지 즐겨찾기