MyLoginDialog.java 2.4 KB
package cn.csbr.app.gui.page;

import cn.csbr.app.auth.LoginService;
import cn.csbr.app.gui.GUIContext;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.util.Pair;
import org.controlsfx.dialog.LoginDialog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import java.util.function.Consumer;

@Component
public class MyLoginDialog {
    @Autowired
    private MainPage mainPage;
    @Autowired
    private GUIContext context;
    @Autowired
    private LoginService loginService;

    public MyLoginDialog() {


//        configureSampleDialog(dlg, "");
//        showDialog(dlg);
    }

    public void show(String message) {
        Pair<String, String> userInfo = new Pair("nologin", "");
        final LoginDialog dlg = new LoginDialog(null, null);
        dlg.getDialogPane().setHeaderText("请录入用户名密码登录耗智能材柜管理系统!");
        VBox box = (VBox) dlg.getDialogPane().getContent();
        Label lbMessage = (Label) box.getChildren().get(0);
        if (!StringUtils.isEmpty(message)) {
            lbMessage.setVisible(true);
            lbMessage.setManaged(true);
            lbMessage.setText(message);
            lbMessage.setStyle("-fx-text-fill:red");
        }

        dlg.initOwner(context.getPrimaryStage());
        dlg.showAndWait().ifPresent(new Consumer<Pair<String, String>>() {
                                        @Override
                                        public void accept(Pair<String, String> stringStringPair) {
                                            try {
                                                loginService.call(stringStringPair);
                                                dlg.close();
                                                mainPage.refresh();
                                                context.updateMainContent(mainPage.getContent());
                                            } catch (Exception e) {
                                                e.printStackTrace();
                                                dlg.close();
                                                show(e.getMessage());
                                            }

                                        }

                                    }
        );

//        configureSampleDialog( String header);
    }


}