为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Eclipse RCP编辑器关闭按钮的障蔽方法

2018-04-29 9页 doc 29KB 35阅读

用户头像

is_601191

暂无简介

举报
Eclipse RCP编辑器关闭按钮的障蔽方法Eclipse RCP编辑器关闭按钮的障蔽方法 Eclipse RCP编辑器关闭按钮的屏蔽方法 首先,在ApplicationWorkbenchWindowAdvisor类的preWindowOpen()方法中注册我们自己 定制的PresentationFactory。 configurer.setPresentationFactory(new UnCloseableEditorPresentationFactory()); UnCloseableEditorPresentationFactory类继承Workbenc...
Eclipse RCP编辑器关闭按钮的障蔽方法
Eclipse RCP编辑器关闭按钮的障蔽方法 Eclipse RCP编辑器关闭按钮的屏蔽方法 首先,在ApplicationWorkbenchWindowAdvisor类的preWindowOpen()方法中注册我们自己 定制的PresentationFactory。 configurer.setPresentationFactory(new UnCloseableEditorPresentationFactory()); UnCloseableEditorPresentationFactory类继承WorkbenchPresentationFactory类,为了 不影响别的GUI功能,我们只需要重写public StackPresentation createEditorPresentation(Composite parent, IStackPresentationSite site)方法中的关 于设置TableFolder的部分,具体如下: package AdminLoader; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbenchPreferenceConstants; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.internal.Workbench; import org.eclipse.ui.internal.WorkbenchPlugin; import org.eclipse.ui.internal.presentations.defaultpresentation.DefaultMultiTabListener; import org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder; import org.eclipse.ui.internal.presentations.defaultpresentation.DefaultThemeListener; import org.eclipse.ui.internal.presentations.defaultpresentation.EmptyTabFolder; import org.eclipse.ui.internal.presentations.util.PresentablePartFolder; import org.eclipse.ui.internal.presentations.util.StandardEditorSystemMenu; import org.eclipse.ui.internal.presentations.util.StandardViewSystemMenu; import org.eclipse.ui.internal.presentations.util.TabbedStackPresentation; import org.eclipse.ui.presentations.IStackPresentationSite; import org.eclipse.ui.presentations.StackPresentation; import org.eclipse.ui.presentations.WorkbenchPresentationFactory; public class UnCloseableEditorPresentationFactory extends WorkbenchPresentationFactory { // don't reset these dynamically, so just keep the information static. // see bug: // 75422 [Presentations] Switching presentation to R21 switches immediately, // but only partially private static int editorTabPosition = WorkbenchPlugin.getDefault() .getPreferenceStore() .getInt(IWorkbenchPreferenceConstants.EDITOR_TAB_POSITION); private static int viewTabPosition = WorkbenchPlugin.getDefault() .getPreferenceStore() .getInt(IWorkbenchPreferenceConstants.VIEW_TAB_POSITION); /* * (non-Javadoc) * * @see org.eclipse.ui.presentations.AbstractPresentationFactory# * createEditorPresentation(org.eclipse.swt.widgets.Composite, * org.eclipse.ui.presentations.IStackPresentationSite) */ public StackPresentation createEditorPresentation(Composite parent, IStackPresentationSite site) { // DefaultTabFolder folder = new DefaultTabFolder(parent, // editorTabPosition | SWT.BORDER, // site.supportsState(IStackPresentationSite.STATE_MINIMIZED), // site.supportsState(IStackPresentationSite.STATE_MAXIMIZED)); DefaultTabFolder folder = new UnCloseableEditorFolder(parent,editorTabPosition | SWT.BORDER, site.supportsState(IStackPresentationSite.STATE_MINIMIZED), site.supportsState(IStackPresentationSite.STATE_MAXIMIZED)); /* * Set the minimum characters to display, if the preference is something * other than the default. This is mainly intended for RCP applications * or for expert users (i.e., via the plug-in customization file). * * Bug 32789. */ final IPreferenceStore store = PlatformUI.getPreferenceStore(); if (store .contains(IWorkbenchPreferenceConstants.EDITOR_MINIMUM_CHARACTERS)) { final int minimumCharacters = store .getInt(IWorkbenchPreferenceConstants.EDITOR_MINIMUM_CHARACTERS); if (minimumCharacters = 0) { folder.setMinimumCharacters(minimumCharacters); } } PresentablePartFolder partFolder = new PresentablePartFolder(folder); TabbedStackPresentation result = new TabbedStackPresentation(site, partFolder, new StandardEditorSystemMenu(site)); DefaultThemeListener themeListener = new DefaultThemeListener(folder, result.getTheme()); result.getTheme().addListener(themeListener); // RAP [bm]: if (!Workbench.getInstance().isClosing()) { final DefaultMultiTabListener defaultMultiTabListener = new DefaultMultiTabListener( result.getApiPreferences(), IWorkbenchPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS, folder); result.getControl().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent event) { defaultMultiTabListener .attach(null, IWorkbenchPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS, true); } }); } // RAPEND: [bm] // RAP [bm]: tab style cannot change // new DefaultSimpleTabListener(result.getApiPreferences(), // IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, // folder); // TODO: needs SessionStoreListener too when activated // RAPEND: [bm] return result; } /* * (non-Javadoc) * * @see org.eclipse.ui.presentations.AbstractPresentationFactory# * createViewPresentation(org.eclipse.swt.widgets.Composite, * org.eclipse.ui.presentations.IStackPresentationSite) */ public StackPresentation createViewPresentation(Composite parent, IStackPresentationSite site) { DefaultTabFolder folder = new DefaultTabFolder(parent, viewTabPosition | SWT.BORDER, site.supportsState(IStackPresentationSite.STATE_MINIMIZED), site.supportsState(IStackPresentationSite.STATE_MAXIMIZED)); final IPreferenceStore store = PlatformUI.getPreferenceStore(); final int minimumCharacters = store .getInt(IWorkbenchPreferenceConstants.VIEW_MINIMUM_CHARACTERS); if (minimumCharacters = 0) { folder.setMinimumCharacters(minimumCharacters); } PresentablePartFolder partFolder = new PresentablePartFolder(folder); folder.setUnselectedCloseVisible(false); folder.setUnselectedImageVisible(true); TabbedStackPresentation result = new TabbedStackPresentation(site, partFolder, new StandardViewSystemMenu(site)); DefaultThemeListener themeListener = new DefaultThemeListener(folder, result.getTheme()); result.getTheme().addListener(themeListener); // RAP [bm]: not needed as tab style does not change // new DefaultSimpleTabListener(result.getApiPreferences(), // IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, // folder); // RAPEND: [bm] return result; } /* * (non-Javadoc) * * @see org.eclipse.ui.presentations.AbstractPresentationFactory# * createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, * org.eclipse.ui.presentations.IStackPresentationSite, boolean) */ public StackPresentation createStandaloneViewPresentation(Composite parent, IStackPresentationSite site, boolean showTitle) { if (showTitle) { return createViewPresentation(parent, site); } EmptyTabFolder folder = new EmptyTabFolder(parent, true); TabbedStackPresentation presentation = new TabbedStackPresentation( site, folder, new StandardViewSystemMenu(site)); return presentation; } } 最后就是定义我们自己的UnCloseableEditorFolder了 import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder; import org.eclipse.ui.internal.presentations.util.AbstractTabItem; public class UnCloseableEditorFolder extends DefaultTabFolder { public UnCloseableEditorFolder(Composite parent, int flags,boolean allowMin, boolean allowMax) { super(parent, flags, allowMin, allowMax); } @SuppressWarnings( restriction ) public AbstractTabItem add(int index, int flags) { return super.add(index, flags ^ SWT.CLOSE); } }
/
本文档为【Eclipse RCP编辑器关闭按钮的障蔽方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索