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<Node> 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. 添加预览,并不执行保存

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 124,771评论 16 535
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 48,009评论 12 409
  • 昏灯下细雨缠绵 薄雾连成一片殊不知残灯顾不到的地方是黑暗黑暗的归宿方为天边 霓虹中媚影蛇般 幢幢内欢呼不断殊不知娇...
    墨成阅读 57评论 0 3
  • 我的学习生活是丰富多彩的,不同的阶段有不同的感觉。 来到大学之前,我的学习生活是被动的;来到大学以后,...
    邓子梨阅读 283评论 0 10
  • 接下来的几篇文章会讲解到以下内容: 1.消息机制2.获取类的属性和方法列表3.方法交换(方法欺骗)4.动态方法决议...
    伦伦子_f7b3阅读 124评论 0 1