问题描述
|
情况:我正在处理Wicket的
IndicatingAjaxButton
。我在具有黑色背景的页面上设置了按钮。当用户按下按钮时,按钮的活动指示灯熄灭并旋转,直到系统准备好继续运行为止。
问题:由于背景为黑色,因此指示器看起来很糟。由于指示器的一部分是黑色动画,因此在黑色背景上使用指示器会丢失一些细节。
问题:在Wicket中是否可以更改IndicatingX
[Button,Link等]的颜色,还是必须以新的方式设计页面?
解决方法
这是不可能的。好吧,不是以编程方式。
Wicket的活动指示器/ th子/旋转器实际上不过是动画GIF。它位于
[your version of Wicket here]\\wicket-src\\wicket\\src\\main\\java\\org\\apache\\wicket\\ajax\\indicator.gif
并在AbstractDefaultAjaxBehavior
中引用。
要更改颜色,您可以创建自己的相同大小的GIF动画,并覆盖默认发行版中包含的动画。
编辑:
好的,写完之后我以为“必须有免费的可用图标”,并通过Google Image Search提出了这个建议:
http://blogs.msdn.com/blogfiles/gduthie/WindowsLiveWriter/Needananimatedloadingicon_B811/ajax-loader_2.gif
我认为它是免费的并且不受限制,但是我没有仔细检查。除了用于个人玩具/示例应用程序之外,还应检查自己是否将其用于其他用途。
,因此,背负Torgamus勋爵提供的内容,您可以添加一个这样的类:
abstract class OnBlackIndicatingAjaxButton extends AjaxButton implements
IAjaxIndicatorAware {
private final AjaxIndicatorAppender indicatorAppender = new
AjaxIndicatorAppender() {
@Override
protected CharSequence getIndicatorUrl() {
return \"http://blogs.msdn.com/blogfiles/gduthie/WindowsLiveWriter/Needananimatedloadingicon_B811/ajax-loader_2.gif\";
}
};
public OnBlackIndicatingAjaxButton(String id) {
super(id);
add (indicatorAppender);
}
public OnBlackIndicatingAjaxButton(String id,Form<?> form)
{
super(id,form);
add (indicatorAppender);
}
/**
* @see IAjaxIndicatorAware#getAjaxIndicatorMarkupId()
* @return the markup id of the ajax indicator
*
*/
public String getAjaxIndicatorMarkupId()
{
return indicatorAppender.getMarkupId();
}
}
并将其用于您的任何页面。