package redis.manager.controller.operation.panel;

import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import redis.manager.controller.HashAddController;
import java.io.IOException;

/**
 * Describe.
 * User: huang
 * Date: 17-6-30
 */
public class HashPanel {
    private HashAddController hashAddController;

    /**
     * 显示连接属性面板.
     * @param isHash 是否为hash
     * @param key 键
     * @return 是否点击确认
     */
    public boolean showPanel(boolean isHash, String key) {
        boolean ok = false;

        // 创建 FXMLLoader 对象
        FXMLLoader loader = new FXMLLoader();
        // 加载文件
        loader.setLocation(this.getClass().getResource("/views/HashAddLayout.fxml"));
        AnchorPane pane = null;
        try {
            pane = loader.load();
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 创建对话框
        Stage dialogStage = new Stage();
        dialogStage.setTitle("添加键值对");
        dialogStage.initModality(Modality.WINDOW_MODAL);
        Scene scene = new Scene(pane);
        dialogStage.setScene(scene);


        hashAddController = loader.getController();
        hashAddController.setDialogStage(dialogStage);
        isAddHash(isHash);
        setHashKey(key);

        // 显示对话框, 并等待, 直到用户关闭
        dialogStage.showAndWait();

        ok = hashAddController.isOkChecked();

        return ok;
    }

    /**
     * 设置是否为添加Hash键值对.
     * @param flag true为添加hash键值对, false为添加zset键值对
     */
    private void isAddHash(boolean flag) {
        HashAddController.setFlag(flag);
    }

    public HashAddController getHashAddController() {
        return hashAddController;
    }

    /**
     * 获取输入的键.
     * @return 输入的键
     */
    public String getKey() {
        return hashAddController.getKey();
    }

    /**
     * 获得输入的值.
     * @return 输入的值
     */
    public String getVlaue() {
        return hashAddController.getVlaue();
    }

    private void setHashKey(String key) {
        hashAddController.setAddKey(key);
    }
}