RCP视图标题显示为圆角(弧形Tab)的方法

先看效果,Eclipse新建的RCP项目默认的视图标题是直角的,远没有Eclipse自身视图标题部分光滑的圆角好看。

传统的(TRADITIONAL_STYLE):

圆角的:

在org.eclipse.ui.IWorkbenchPreferenceConstants类中定义了许多可以配置的参数,其中就包括上面的圆角显示效果的参数SHOW_TRADITIONAL_STYLE_TABS,该值默认为true,为true是表示为传统显示效果。

实现这个配置有两种方法:

1. 通过自定义一个ini的配置文件实现,方法如下:

给RCP项目配置一个Product Configuration项目,配置完以后plugin.xml中会新增一个product扩展点。

在product扩展点上添加下面的属性:

1
2
3
4
< property
       name = "preferenceCustomization"
       value = "plugin_customization.ini" >
</ property >

添加完成后plugin中product扩展点配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< extension
       id = "product"
       point = "org.eclipse.core.runtime.products" >
    < product
          application = "Transfer.application"
          name = "Transfer" >
       < property
             name = "appName"
             value = "Transfer" >
       </ property >
       < property
             name = "preferenceCustomization"
             value = "plugin_customization.ini" >
       </ property >
    </ product >
</ extension >

接下来在RCP项目根目录下新建一个plugin_customization.ini配置文件,编辑该配置文件添加配置参数:

org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS = false

重新运行RCP项目,可以看到视图标题部分已经变成圆角了。

2. 在代码中设置RCP项目配置参数

重写RCP项目的ApplicationWordbechAdvisor类中的initialize()方法,添加设置配置参数代码:

1
2
PlatformUI.getPreferenceStore().setValue(  
IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, false );

或者:

1
2
PlatformUI.getPreferenceStore().setDefault(  
IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, false );

常用变量说明
SHOW_PROGRESS_ON_STARTUP 在splash的画面中, 是否显示进度条
DISABLE_NEW_FAST_VIEW 是否禁止左下角的Show View As a Fast View按钮
SHOW_MEMORY_MONITOR 是否显示内存情况, 并可进行GC操作, 这个比较好玩
SHOW_OPEN_ON_PERSPECTIVE_BAR 在PerspectiveBar上,是否显示New Perspective按钮
SHOW_TEXT_ON_PERSPECTIVE_BAR 在PerspectiveBar上,是否显示Perspective的名称
SHOW_TRADITIONAL_STYLE_TABS Editor或ViewPart是否使用传统的Tab的样式. 这个肯定用false
DOCK_PERSPECTIVE_BAR PerspectiveBar的显示位置, 左上 还是 右上.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Eclipse RCP 中,可以通过以下步骤让 ToolTip 显示后快速消失: 1. 创建一个 `org.eclipse.jface.window.ToolTip` 实例,并覆盖 `createToolTipContentArea(Event, Composite)` 方法来定义 ToolTip 内容。 2. 调用 `setHideDelay(int)` 方法设置 ToolTip 显示的延迟时间。 3. 调用 `activateDelay()` 方法来激活 ToolTip 的显示。 4. 在 `createToolTipContentArea(Event, Composite)` 方法中,将需要快速关闭 ToolTip 的控件注册为 ToolTip 的监听器。 5. 在监听器中,调用 `deactivate() `方法来关闭 ToolTip。 以下是一个示例代码: ```java import org.eclipse.jface.window.ToolTip; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.*; public class ToolTipExample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); Button button = new Button(shell, SWT.PUSH); button.setText("Button with tooltip"); button.addMouseListener(new ToolTipMouseListener(button)); shell.setSize(200, 200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } static class ToolTipMouseListener extends MouseAdapter { private ToolTip toolTip; ToolTipMouseListener(Control control) { toolTip = new ToolTip(control) { @Override protected Composite createToolTipContentArea(Event event, Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new FillLayout()); Text text = new Text(composite, SWT.BORDER); text.setText("ToolTip content"); text.addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { toolTip.deactivate(); } }); return composite; } }; toolTip.setHideDelay(1000); toolTip.activateDelay(); } @Override public void mouseUp(MouseEvent e) { Point location = new Point(e.x, e.y); location = toolTip.getDisplay().map((Control) e.widget, null, location); toolTip.show(new Point(location.x + 10, location.y + 10)); } } } ``` 在这个示例代码中,我们创建了一个 `Button` 控件,并在其上添加了 ToolTip。我们在 `ToolTip#createToolTipContentArea(Event, Composite)` 方法中创建了 ToolTip 的内容,并将 `Text` 控件注册为 ToolTip 的监听器。当用户在 `Text` 控件上单击鼠标时,我们调用 `ToolTip#deactivate()` 方法来关闭 ToolTip。同时,我们设置了 `ToolTip#setHideDelay(int)` 方法来控制 ToolTip 的显示延迟时间,并调用 `ToolTip#activateDelay()` 方法来激活 ToolTip 的显示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值