jface treeViewer 사용 설명
이틀 을 보고 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() {
}
여기 서 가장 중요 한 것 은 세 가지 방법 이다.
소스 코드 를 본 후에 이 세 가지 방법의 뜻 이 다음 과 같다 는 것 을 알 게 되 었 다.
또 두 개의 사건 감청 인터페이스 가 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.