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 + -
显示快捷键?