我想在scout eclipse中实现一些想法切换按钮。 我需要的是改变状态按钮的图像。
我看到了功能
setIconId(String)
但我不知道如何找到此功能的参数。如何找到侦察用于不同按钮状态的图像?
马尔科
答案 0 :(得分:2)
在Scout应用程序中,最好从setIconId(..)
Icons
类中定义的常量作为参数传递。请参阅维基上的Icons page。
您的用例示例:
setIconId(Icons.WeatherSun)
在Demo Widget Application中有一个Icons class:
org.eclipsescout.demo.widgets.shared.Icons
这里定义了一些常量:
public static final String WeatherRain = "weather_rain";
public static final String WeatherSnow = "weather_snow";
public static final String WeatherSun = "weather_sun";
常量中定义的值表示图像的标识符。
图像查找由ImageLocator实现。 (根据UI技术,将使用相应的IconLocator。例如,在Swing SwingIconLocator
实现的情况下。)
如果weather_sun
,ImageLocator的默认实现将查找名为weather_sun.<ext>
的文件(其中<ext>
可以是gif
,png
等等on)在每个插件的\resources\icons\
文件夹中。在这种情况下,它将找到文件:\org.eclipsescout.demo.widgets.client\resources\icons\weather_sun.png
如果找不到图像,您将看到如下日志条目:
!MESSAGE org.eclipse.scout.rt.ui.swing.SwingIconLocator.warnImageNotFound(SwingIconLocator.java:141) could not find image 'weather_sun'
在Scout SDK中,有一个Icons Editor。此编辑器表示Icons
类中定义的所有常量以及相应的Icon。是否找到未找到红色方块的文件而不是图像。
切换按钮没有特定字段,请使用AbstractButton
将显示样式设置为DISPLAY_STYLE_TOGGLE
。
另见:
我认为此代码段可以满足您的需求:
@Order(10)
public class ToggleButton1 extends AbstractButton {
@Override
protected boolean getConfiguredProcessButton() {
return false;
}
@Override
protected void execClickAction() throws ProcessingException {
if (isSelected()) {
setIconId(Icons.WeatherSun);
}
else {
setIconId(Icons.WeatherRain);
}
}
}
使用execToggleAction
代替execClickAction
也是可能的(甚至更好)。
截图: