basesourceoutlinepage.java

来自「一个eclipse插件源代码。用于web开发」· Java 代码 · 共 144 行

JAVA
144
字号
/*
 * $Header: /home/cvs/WEBPUMP2.0/WebPumpIDE_Src/WebPumpIDE/src/com/webpump/ui/base/gui/BaseSourceOutlinePage.java,v 1.1.1.1 2004/07/01 09:07:40 wang_j Exp $
 * $Revision: 1.1.1.1 $
 * $Date: 2004/07/01 09:07:40 $
 *
 * ====================================================================
 *
 * The NanJing HopeRun(IT-FOREST) Software License, Version 2.0.0
 *
 * Copyright 2003-2004 by NanJing HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and
 *                        IT Forest Corporation
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
 * You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into with
 * HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
 */
package com.webpump.ui.base.gui;

import org.eclipse.jface.viewers.*;
import org.eclipse.ui.views.contentoutline.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import org.eclipse.pde.core.IModelChangedEvent;
import org.eclipse.pde.core.IModelChangedListener;
import org.eclipse.pde.internal.ui.editor.IPDEEditorPage;
import org.eclipse.pde.internal.ui.elements.*;
import org.eclipse.ui.texteditor.*;

import com.webpump.ui.base.data.*;


public class BaseSourceOutlinePage extends ContentOutlinePage 
implements IModelChangedListener {
	private IDocumentProvider documentProvider;
	private BaseDataObject input;
	private BaseEditor textEditor;
	protected TreeViewer treeViewer;

	class ContentProvider
		extends DefaultContentProvider
		implements ITreeContentProvider {
		public Object[] getElements(Object obj) {

			if (obj instanceof BaseDataObject)
			{
				return ((BaseDataObject)obj).getChild();
			}

			return new Object[0];
		}
		
		public Object[] getChildren(Object obj) {
			if (obj instanceof BaseDataObject)
			{
				return ((BaseDataObject)obj).getChild();
			}

			return new Object[0];
		}
		
		public boolean hasChildren(Object obj) {
			return getChildren(obj).length>0;
		}
		public Object getParent(Object obj) {
			return null;
		}
	}

public BaseSourceOutlinePage(BaseDataObject input, IDocumentProvider provider, BaseEditor editor) {
	this.input = input;
	this.documentProvider = provider;
	this.textEditor = editor;
	BaseModel model = (BaseModel)editor.getModel();  
	model.addModelChangedListener(this);	
}
public void createControl(Composite parent) {
	treeViewer = new TreeViewer(new Tree(parent, SWT.MULTI));

	treeViewer.addSelectionChangedListener(this);

	treeViewer.setContentProvider(new ContentProvider());
	treeViewer.setLabelProvider(new LabelProvider());
	treeViewer.setInput(input);
}
public Control getControl() {
	if (treeViewer!=null) return treeViewer.getControl();
	return null;
}

public void selectionChanged(Object item) {
	IPDEEditorPage page = textEditor.getCurrentPage();
	IPDEEditorPage newPage = getParentPage(item);
	if (newPage!=page) textEditor.showPage(newPage);
	if (newPage != item) newPage.openTo(item);
	
}

public void modelChanged(IModelChangedEvent event) {
	if (event.getChangeType() == IModelChangedEvent.WORLD_CHANGED) {
		treeViewer.refresh();
		return;
	}
	//treeViewer.refresh();
	//treeViewer.expandAll();
}

public void selectionChanged(SelectionChangedEvent event) {
	ISelection selection = event.getSelection();
	if (selection.isEmpty() == false
		&& selection instanceof IStructuredSelection) {
		IStructuredSelection ssel = (IStructuredSelection) selection;
		Object item = ssel.getFirstElement();
		selectionChanged(item);
	}
	fireSelectionChanged(selection);
	textEditor.setSelection(selection );
	
	
}

public IPDEEditorPage getParentPage(Object item) {
	if (item instanceof BaseModel)
		return textEditor.getSourcePage();
	if (item instanceof BaseObject)
		return textEditor.getSourcePage();
	if (item instanceof IPDEEditorPage)
		return (IPDEEditorPage) item;
	return null;
}

public void setFocus() {
	if (treeViewer != null)
		treeViewer.getTree().setFocus();
}
public ISelection getSelection() {
	if (treeViewer == null)
		return StructuredSelection.EMPTY;
	return treeViewer.getSelection();
}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?