001package polaris.sdk.ui.controls; 002import polaris.sdk.ui.*; 003import java.util.function.Consumer; 004public class MessageBox extends Modal { 005 private final Label body;private final Button cancel=new Button("取消"),ok=new Button("确定").primary(true); 006 public MessageBox(){this("消息","操作已完成",null);} 007 public MessageBox(String title,String message,Consumer<Boolean> answer){ 008 super(title);w=440;h=212;body=new Label(message);add(body);add(cancel);add(ok); 009 cancel.onClick(b->{close();if(answer!=null)answer.accept(false);}); 010 ok.onClick(b->{close();if(answer!=null)answer.accept(true);}); 011 } 012 @Override protected void layoutChildren(){ 013 float footer=h-padding-Spacing.CONTROL_HEIGHT,bw=Math.min(104,Math.max(0,(w-2*padding-gap)/2)); 014 body.bounds(padding,contentTop(),Math.max(0,w-2*padding),Math.max(0,footer-gap-contentTop())); 015 cancel.bounds(w-padding-2*bw-gap,footer,bw,Spacing.CONTROL_HEIGHT); 016 ok.bounds(w-padding-bw,footer,bw,Spacing.CONTROL_HEIGHT); 017 } 018}