basetreesection.java
来自「一个eclipse插件源代码。用于web开发」· Java 代码 · 共 212 行
JAVA
212 行
/*
* $Header: /home/cvs/WEBPUMP2.0/WebPumpIDE_Src/WebPumpIDE/src/com/webpump/ui/base/gui/BaseTreeSection.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.*;
import org.eclipse.pde.internal.ui.editor.*;
import org.eclipse.pde.internal.ui.elements.DefaultContentProvider;
import org.eclipse.pde.internal.ui.parts.TreePart;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.DrillDownAdapter;
import org.eclipse.update.ui.forms.internal.FormWidgetFactory;
import com.webpump.ui.base.data.*;
public class BaseTreeSection
extends TreeSection
implements IModelChangedListener {
/**
* @param formPage
* @param buttonLabels
*/
protected class TreeContentProvider
extends DefaultContentProvider
implements ITreeContentProvider {
public Object[] getChildren(Object parent) {
Object[] children = null;
if (parent instanceof BaseDataObject)
{
return ((BaseDataObject)parent).getChild();
}
if (children == null)
children = new Object[0];
return children;
}
public boolean hasChildren(Object parent) {
return getChildren(parent).length > 0;
}
public Object getParent(Object child) {
if (child instanceof BaseObject)
return ((BaseObject) child).getParent();
return null;
}
public Object[] getElements(Object parent) {
return getChildren(parent);
}
}
public BaseTreeSection(BasePage page) {
super(
page,
new String[0]);
handleDefaultButton = false;
}
public BaseTreeSection(BasePage page,String[] strArray) {
super(page, strArray);
}
protected TreeViewer exceptionTree;
private FormWidgetFactory factory;
private Image extensionImage;
private DrillDownAdapter drillDownAdapter;
/* (非 Javadoc)
* @see org.eclipse.update.ui.forms.internal.FormSection#createClient(org.eclipse.swt.widgets.Composite, org.eclipse.update.ui.forms.internal.FormWidgetFactory)
*/
public Composite createClient(Composite parent, FormWidgetFactory factory) {
this.factory = factory;
initializeImages();
Composite container = createClientContainer(parent, 2, factory);
TreePart treePart = getTreePart();
createViewerPartControl(container, SWT.MULTI, 2, factory);
exceptionTree = treePart.getTreeViewer();
exceptionTree.setAutoExpandLevel(TreeViewer.ALL_LEVELS);
exceptionTree.setContentProvider(new TreeContentProvider());
drillDownAdapter = new DrillDownAdapter(exceptionTree);
factory.paintBordersFor(container);
return container;
}
public void initialize(Object input) {
BaseModel model = (BaseModel) input;
exceptionTree.setInput(getDataFromModel(model));
boolean editable = model.isEditable();
setReadOnly(!editable);
TreePart treePart = getTreePart();
treePart.setButtonEnabled(0, false);
treePart.setButtonEnabled(2, false);
treePart.setButtonEnabled(3, false);
model.addModelChangedListener(this);
}
public void dispose() {
BaseModel model = (BaseModel) getFormPage().getModel();
model.removeModelChangedListener(this);
super.dispose();
}
public void modelChanged(IModelChangedEvent event) {
if (event.getChangeType() == IModelChangedEvent.WORLD_CHANGED) {
BaseModel model = (BaseModel) getFormPage().getModel();
exceptionTree.setInput(getDataFromModel(model));
exceptionTree.refresh();
return;
}
Object changeObject = event.getChangedObjects()[0];
if (changeObject instanceof BaseObject
&& event.getChangeType() == IModelChangedEvent.CHANGE
&& !(changeObject instanceof BaseDataObject)
) {
IStructuredSelection sel =
(IStructuredSelection) exceptionTree.getSelection();
BaseObject objBaseObject = (BaseObject)sel.getFirstElement();
exceptionTree.refresh();
exceptionTree.setSelection(new StructuredSelection(objBaseObject));
return;
}
}
protected void buttonSelected(int index) {
}
protected void selectionChanged(IStructuredSelection selection) {
Object item = selection.getFirstElement();
fireSelectionNotification(item);
getFormPage().setSelection(selection);
setButtonStyle(item);
}
/**
* @param item
*/
public void setButtonStyle(Object item) {
}
/**
*
*/
private void initializeImages() {
}
protected void doPaste() {
ISelection selection = viewerPart.getViewer().getSelection();
IStructuredSelection ssel = (IStructuredSelection)selection;
if (ssel.size()>1) return;
Object target = ssel.getFirstElement();
Clipboard clipboard = getFormPage().getEditor().getClipboard();
Object [] objects = (Object[])clipboard.getContents(BaseDataTransfer.getInstance());
if (objects!=null) {
doPaste(target, objects);
}
}
public boolean canPaste(Clipboard clipboard) {
ISelection selection = viewerPart.getViewer().getSelection();
IStructuredSelection ssel = (IStructuredSelection)selection;
if (ssel.size()>1) return false;
Object target = ssel.getFirstElement();
Object [] objects = (Object[])clipboard.getContents(BaseDataTransfer.getInstance());
if (objects!=null && objects.length>0) {
return canPaste(target, objects);
}
else return false;
}
public BaseDataObject getDataFromModel(BaseModel objModel)
{
return objModel.getDataObject() ;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?