basetablesection.java
来自「一个eclipse插件源代码。用于web开发」· Java 代码 · 共 212 行
JAVA
212 行
/*
* $Header: /home/cvs/WEBPUMP2.0/WebPumpIDE_Src/WebPumpIDE/src/com/webpump/ui/base/gui/BaseTableSection.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 java.util.Vector;
import org.eclipse.jface.viewers.*;
import org.eclipse.pde.core.IModelChangedEvent;
import org.eclipse.pde.internal.core.*;
import org.eclipse.pde.internal.ui.PDEPlugin;
import org.eclipse.pde.internal.ui.editor.TableSection;
import org.eclipse.pde.internal.ui.elements.DefaultTableProvider;
import org.eclipse.pde.internal.ui.parts.EditableTablePart;
import org.eclipse.pde.internal.ui.wizards.ListUtil;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.widgets.*;
import org.eclipse.update.ui.forms.internal.*;
import com.webpump.ui.base.data.*;
public class BaseTableSection extends TableSection {
/**
* @param formPage
* @param buttonLabels
*/
protected Vector imports;
protected String m_strSelectName;
protected class TableContentProvider extends DefaultTableProvider {
public Object[] getElements(Object parent) {
if (parent instanceof BaseDataObject)
{
return ((BaseDataObject)parent).getChild();
}
return new Object[0];
}
}
public BaseTableSection(BasePage page) {
super(page, null);
setHeaderText("");
getTablePart().setEditable(false);
}
public BaseTableSection(BasePage page,String[] strArray) {
super(page, strArray);
}
private FormWidgetFactory factory;
protected TableViewer tableViewer;
private boolean needsUpdate = false;
protected BaseDataObject m_objDataObject;
/* (非 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;
Composite container = createClientContainer(parent, 2, factory);
EditableTablePart part = getTablePart();
part.setEditable(false);
createViewerPartControl(container, SWT.SINGLE|SWT.FULL_SELECTION , 2, factory);
tableViewer = part.getTableViewer();
tableViewer.setContentProvider(new TableContentProvider());
tableViewer.setLabelProvider(PDEPlugin.getDefault().getLabelProvider());
tableViewer.setSorter(ListUtil.NAME_SORTER);
factory.paintBordersFor(container);
return container;
}
public void initialize(Object input) {
BaseModel model = (BaseModel) input;
tableViewer.setInput(getDataFromModel(model));
model.addModelChangedListener(this);
}
protected void selectionChanged(IStructuredSelection selection) {
Object item = selection.getFirstElement();
fireSelectionNotification(item);
getFormPage().setSelection(selection);
}
public void modelChanged(IModelChangedEvent event) {
if (event.getChangeType() == IModelChangedEvent.WORLD_CHANGED) {
BaseModel model = (BaseModel) getFormPage().getModel();
tableViewer.setInput(getDataFromModel(model));
tableViewer.refresh();
}
Object changeObject = event.getChangedObjects()[0];
if (isRefresh(changeObject))
{
if (event.getChangeType() == IModelChangedEvent.CHANGE)
{
tableViewer.refresh();
return;
}
if (event.getChangeType() == IModelChangedEvent.INSERT)
{
tableViewer.refresh();
return;
}
if (event.getChangeType() == IModelChangedEvent.REMOVE)
{
tableViewer.refresh();
return;
}
}
}
public void modelsChanged(IModelProviderEvent e) {
imports = null;
tableViewer.getControl().getDisplay().asyncExec(new Runnable() {
public void run() {
if (!tableViewer.getControl().isDisposed())
tableViewer.refresh();
}
});
}
public void dispose() {
BaseModel model = (BaseModel) getFormPage().getModel();
model.removeModelChangedListener(this);
super.dispose();
}
public void update() {
tableViewer.refresh();
needsUpdate = false;
}
public String getSelectName()
{
return m_strSelectName;
}
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() ;
}
public boolean isRefresh(Object object)
{
if (object instanceof BaseObject)
return true;
else
return false;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?