Note.FO,第六天,Beta版本上线

第六天 2014年10月7号

版本:1.0.4.DEV
这次主要是解决一些比较麻烦的问题,并没有最新的功能添加

关于编辑器与页面同步的问题

  1. 重新实现了编辑器与页面同步代码,虽然 JavaFX 没有释放接口,但通过一些办法还是可以拿到想要的数据
  2. 对于 WebView 而言,需要通过调用 Javascript 接口执行获得页面实际高度
  3. 对于 TextArea 而言,其结构比较复杂,通过遍历子节点的同时还要判断子节点的类型,确定后才能拿出 ScrollPane,而 ScrollPane ,也需要拿出 Content 之后才能精确拿到高度,以便计算同步高度
  4. 这次解决了这个问题, 相信会带来比较好的同步视图体验

WebView的实际页面高度

private WebView web;

/**
 * 对于Web类型的高度而言,主要考虑加载成功时的计算
 */
public void updateScrollHeight() {
    Object result = null;
    try {
        result = engine.executeScript("(function(){return Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight);})();");
    }catch(JSException e){
    }
    
    if (result == null) {
        scrollHeight = web.getHeight();
        return ;
    }
    scrollHeight = Double.parseDouble(result.toString());
}

TextArea的实际内容高度

private TextArea input;

/**
 * 更新可视高度
 */
public void updateScrollHeight() {
    double height = -1;
    ObservableList list = input.getChildrenUnmodifiable();
    if(list.isEmpty()) height = input.getHeight();
    for(Node node : list){
        if(node instanceof ScrollPane) {
            ScrollPane pane = (ScrollPane) node;
            Region content = (Region) pane.getContent();
            height = content.getHeight();
            break;
        }
    }
    this.scrollHeight = height < 0 ? input.getHeight() : height;
}

关于CTRL+D删除行的光标问题

  1. 之前使用 CTRL+D 时,光标向上移了一位,导致体验变差
  2. 这次效果与 EclipseCTRL+D 的功能相同体验

添加了CTRL+P预览命令

  1. 添加预览,并不执行保存

你可能感兴趣的:(Note.FO,第六天,Beta版本上线)