如何将图像与 table 单元格的中心对齐 (SWT Table) RAP 平台
How to align image to center of table cell (SWT Table) RAP Platform
我找到了这个问题的一些解决方案,但它们仅适用于 RCP 平台。我正在使用 RAP 平台,但找不到解决方案。
要自定义对齐图像,您在 RAP 中有两种选择:
标记
相应地准备 table 后,您可以将 HTML 的子集与 table 项的文本一起使用。
Table table = new Table( parent, SWT.NONE );
table.setData( RWT.MARKUP_ENABLED, Boolean.TRUE );
table.setData( RWT.CUSTOM_ITEM_HEIGHT, Integer.valueOf( 80 ) );
TableItem item = new TableItem( table, SWT.NONE );
String imageUrl = RWT.getRequest().getContextPath() + "/" + registerImage( "foo.png" );
item.setText( "<img src='" + imageUrl + "' width='10' height='10' style='padding-right:5px'/>" );
注册图片的代码(假设图片位于 class 路径)应该如下所示:
String registerImage( String resourceName ) throws IOException {
IResourceManager resourceManager = RWT.getResourceManager();
if( !resourceManager.isRegistered( resourceName ) ) {
InputStream inputStream = CLASSLOADER.getResourceAsStream( resourceName );
try {
resourceManager.register( resourceName, inputStream );
} finally {
inputStream.close();
}
}
return resourceManager.getLocation( resourceName );
}
可以在此处找到更多详细信息:http://eclipsesource.com/blogs/2012/09/12/making-your-images-available-using-markup/
行模板
使用行模板,可以替换 table 的默认列布局,并且可以更改项目的单元格布局方式。
要更改图像的位置,请像往常一样使用 item.setImage( ... )
进行设置,然后创建一个模板来根据需要定位图像。
最后 table 被告知使用带有 table.setData( ... )
的模板。
Template template = new Template();
ImageCell imageCell = new ImageCell( template );
imageCell.setBindingIndex( 0 ); // bind to image from column 0
imageCell.setTop( 4 ).setLeft( 4 ).setWidth( 48 ).setHeight( 48 );
table.setData( RWT.ROW_TEMPLATE, template );
更多相关信息:http://eclipsesource.com/blogs/2013/11/14/rap-2-2m3-introducing-row-templates/
我找到了这个问题的一些解决方案,但它们仅适用于 RCP 平台。我正在使用 RAP 平台,但找不到解决方案。
要自定义对齐图像,您在 RAP 中有两种选择:
标记
相应地准备 table 后,您可以将 HTML 的子集与 table 项的文本一起使用。
Table table = new Table( parent, SWT.NONE );
table.setData( RWT.MARKUP_ENABLED, Boolean.TRUE );
table.setData( RWT.CUSTOM_ITEM_HEIGHT, Integer.valueOf( 80 ) );
TableItem item = new TableItem( table, SWT.NONE );
String imageUrl = RWT.getRequest().getContextPath() + "/" + registerImage( "foo.png" );
item.setText( "<img src='" + imageUrl + "' width='10' height='10' style='padding-right:5px'/>" );
注册图片的代码(假设图片位于 class 路径)应该如下所示:
String registerImage( String resourceName ) throws IOException {
IResourceManager resourceManager = RWT.getResourceManager();
if( !resourceManager.isRegistered( resourceName ) ) {
InputStream inputStream = CLASSLOADER.getResourceAsStream( resourceName );
try {
resourceManager.register( resourceName, inputStream );
} finally {
inputStream.close();
}
}
return resourceManager.getLocation( resourceName );
}
可以在此处找到更多详细信息:http://eclipsesource.com/blogs/2012/09/12/making-your-images-available-using-markup/
行模板
使用行模板,可以替换 table 的默认列布局,并且可以更改项目的单元格布局方式。
要更改图像的位置,请像往常一样使用 item.setImage( ... )
进行设置,然后创建一个模板来根据需要定位图像。
最后 table 被告知使用带有 table.setData( ... )
的模板。
Template template = new Template();
ImageCell imageCell = new ImageCell( template );
imageCell.setBindingIndex( 0 ); // bind to image from column 0
imageCell.setTop( 4 ).setLeft( 4 ).setWidth( 48 ).setHeight( 48 );
table.setData( RWT.ROW_TEMPLATE, template );
更多相关信息:http://eclipsesource.com/blogs/2013/11/14/rap-2-2m3-introducing-row-templates/