/** * Դ�������ƣ�MetadataOverviewPage.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui * ����˵����Ԫ�����û��༭��UIչ����ع��� * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.metadata.ui.editors; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.viewers.ColumnViewer; import org.eclipse.jface.viewers.ColumnViewerEditor; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewerEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.dialogs.FilteredTree; import org.eclipse.ui.forms.widgets.FormToolkit; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.metadata.ui.actions.IMetadataActionIDConstant; import com.hundsun.ares.studio.jres.metadata.ui.actions.JumpAction; import com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataOverviewContentProvider; import com.hundsun.ares.studio.ui.editor.EMFFormEditor; import com.hundsun.ares.studio.ui.editor.actions.ButtonGroupManager; import com.hundsun.ares.studio.ui.editor.blocks.ColumnViewerListPage; import com.hundsun.ares.studio.ui.editor.viewers.ColumnViewerPatternFilter; import com.hundsun.ares.studio.ui.viewers.link.CellLinkColumnViewerEditorActivationStrategy; import com.hundsun.ares.studio.ui.viewers.link.CellLinkMouseListener; import com.hundsun.ares.studio.ui.viewers.link.ICellLinkProvider; /** * @author wangxh *Ԫ��������ҳ���� */ public abstract class MetadataOverviewPage extends ColumnViewerListPage implements ICellLinkProvider{ private static final String ID_REFRESH = "MetadataOverviewPage_Refresh"; public MetadataOverviewPage(EMFFormEditor editor, String id, String title) { super(editor, id, title); } protected Control createColumnViewer(Composite parent, FormToolkit toolkit) { FilteredTree tree = new FilteredTree(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, new ColumnViewerPatternFilter(), true); toolkit.adapt(tree); tree.getViewer().getTree().setHeaderVisible(true); tree.getViewer().getTree().setLinesVisible(true); setColumnViewer(tree.getViewer()); configureColumnViewer(getColumnViewer()); return tree; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.form.EMFFormPage#validate() */ @Override public void validate() { // ����Ҫ������ } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerListPage#configureColumnViewer(org.eclipse.jface.viewers.ColumnViewer) */ @Override protected void configureColumnViewer(ColumnViewer viewer) { super.configureColumnViewer(viewer); TreeViewer treeViewer = (TreeViewer) viewer; // ��ֹ��Ctrl���ֱ༭�� TreeViewerEditor.create(treeViewer, new CellLinkColumnViewerEditorActivationStrategy(treeViewer), ColumnViewerEditor.DEFAULT); treeViewer.getTree().addMouseListener(new CellLinkMouseListener(viewer, this)); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerListPage#createMenus(org.eclipse.jface.action.IMenuManager) */ @Override protected void createMenus(IMenuManager menuManager) { IAction action = getActionRegistry().getAction(ID_REFRESH); menuManager.add(action); action = getActionRegistry().getAction(IMetadataActionIDConstant.CV_JUMP); menuManager.add(action); } @Override protected void createActions() { super.createActions(); IAction refreshAction = new Action("ˢ��"){ @Override public void run() { getColumnViewer().refresh(); } }; refreshAction.setId(ID_REFRESH); getActionRegistry().registerAction(refreshAction); getSelectionActions().add(refreshAction.getId()); IAction jumpAction = new JumpAction(getColumnViewer()); getActionRegistry().registerAction(jumpAction); getSelectionActions().add(jumpAction.getId()); } @Override protected void createButtons(ButtonGroupManager manager) { super.createButtons(manager); IAction action = getActionRegistry().getAction(ID_REFRESH); manager.add(action); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.pages.ColumnViewerListPage#getColumnViewerContentProvider() */ @Override protected IContentProvider getColumnViewerContentProvider() { return new MetadataOverviewContentProvider(getARESResource(), getReferenceType()); } protected abstract String getReferenceType(); protected IARESResource getARESResource() { return getEditor().getARESResource(); } }