baseoutlinepage.java

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

JAVA
107
字号
/*
 * $Header: /home/cvs/WEBPUMP2.0/WebPumpIDE_Src/WebPumpIDE/src/com/webpump/ui/base/gui/BaseOutlinePage.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.pde.core.IModelChangedEvent;
import org.eclipse.pde.internal.ui.PDEPlugin;
import org.eclipse.pde.internal.ui.editor.*;
import org.eclipse.swt.widgets.Composite;

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

public class BaseOutlinePage extends FormOutlinePage {

	private class ContentProvider extends BasicContentProvider {
		public Object[] getChildren(Object parent) {

			if (parent instanceof BasePage) {
				return getModelInfo();
			}
			if (parent instanceof BaseDataObject) {
				return ((BaseDataObject) parent).getChild();
			}

			return super.getChildren(parent);
		}
		public Object getParent(Object child) {
			Object parent = getParentPage(child);
			if (parent != null)
				return parent;
			return super.getParent(child);
		}
	}

	public BaseOutlinePage(PDEFormPage formPage) {
		super(formPage);

	}
	protected ITreeContentProvider createContentProvider() {
		return new ContentProvider();
	}
	public void createControl(Composite parent) {
		super.createControl(parent);
		BaseModel model = (BaseModel) formPage.getModel();
		model.addModelChangedListener(this);
	}
	protected ILabelProvider createLabelProvider() {
		return PDEPlugin.getDefault().getLabelProvider();
	}
	public void dispose() {
		super.dispose();
		BaseModel model = (BaseModel) formPage.getModel();
		model.removeModelChangedListener(this);
	}

	public IPDEEditorPage getParentPage(Object item) {
		if (item instanceof BasePage)
			return formPage.getEditor().getHomePage();
		if (item instanceof BaseModel)
			return formPage.getEditor().getHomePage();
		if (item instanceof BaseObject)
			return formPage.getEditor().getHomePage();
		return super.getParentPage(item);
	}
	private Object[] getModelInfo() {
		BaseModel model = (BaseModel) formPage.getModel();
		return model.getBaseObjectArray();
	}

	private Object[] getArchives() {
		return null;
	}

	public Object getParent(Object object) {
		return getParentPage(object);
	}
	public void modelChanged(IModelChangedEvent event) {
		if (event.getChangeType() == IModelChangedEvent.CHANGE) {
			if (event.getChangedProperty() == "position") {
				return;
			}
		}
		if (event.getChangeType() == IModelChangedEvent.WORLD_CHANGED) {
			treeViewer.refresh();
			return;
		}
		treeViewer.refresh();
		treeViewer.expandAll();
	}
}

⌨️ 快捷键说明

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