置顶随笔

FCKEditor2.4.2版本中并不支持列的合并,下面是原代码:
 1FCKTableHandler.MergeCells = function()
 2{
 3    // Get all selected cells.
 4    var aCells = FCKTableHandler.GetSelectedCells() ;
 5
 6    // At least 2 cells must be selected.
 7    if ( aCells.length < 2 )
 8        return ;
 9
10    // The merge can occour only if the selected cells are from the same row.
11    if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode )
12        return ;
13
14    // Calculate the new colSpan for the first cell.
15    var iColSpan = isNaN( aCells[0].colSpan ) ? 1 : aCells[0].colSpan ;
16
17    var sHtml = '' ;
18    var oCellsContents = FCK.EditorDocument.createDocumentFragment() ;
19
20    for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
21    {
22        var eCell = aCells[i] ;
23
24        // Move its contents to the document fragment.
25        for ( var c = eCell.childNodes.length - 1 ; c >= 0 ; c-- )
26        {
27            var eChild = eCell.removeChild( eCell.childNodes[c] ) ;
28
29            if ( ( eChild.hasAttribute && eChild.hasAttribute('_moz_editor_bogus_node') ) || ( eChild.getAttribute && eChild.getAttribute( 'type', 2 ) == '_moz' ) )
30                continue ;
31
32                oCellsContents.insertBefore( eChild, oCellsContents.firstChild ) ;
33        }

34
35        if ( i > 0 )
36        {
37            // Accumulate the colspan of the cell.
38            iColSpan += isNaN( eCell.colSpan ) ? 1 : eCell.colSpan ;
39
40            // Delete the cell.
41            FCKTableHandler.DeleteCell( eCell ) ;
42        }

43    }

44
45    // Set the innerHTML of the remaining cell (the first one).
46    aCells[0].colSpan = iColSpan ;
47
48    if ( FCKBrowserInfo.IsGecko && oCellsContents.childNodes.length == 0 )
49        aCells[0].innerHTML = GECKO_BOGUS ;
50    else
51        aCells[0].appendChild( oCellsContents ) ;
52}
第10行代码对列合并做了限制,下面是修改的代码:
 1FCKTableHandler.MergeCells = function()
 2{
 3    // Get all selected cells.
 4    var aCells = FCKTableHandler.GetSelectedCells() ;
 5
 6    // At least 2 cells must be selected.
 7    if ( aCells.length < 2 )
 8        return ;
 9
10    // The merge can occour only if the selected cells are from the same row.
11    //if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode ){
12    //    alert("xx");
13    //    return ;
14    //}
15    
16    //*********************************************************************
17    //在IE下合并单元格修改,主要针对上下单元格不能合并的问题。
18    //姜海龙
19    var iLen = aCells.length;
20    var iStartCol = aCells[0].cellIndex ;
21    var iStartRow = aCells[0].parentElement.rowIndex ;
22    
23    var iEndCol = aCells[iLen-1].cellIndex ;
24    var iEndRow = aCells[iLen-1].parentElement.rowIndex ;
25    
26    var eCells = new Array();
27    var j = 0;
28    
29    for(var i = 0; i < iLen; i++){
30        if(aCells[i].cellIndex >= iStartCol && aCells[i].cellIndex <= iEndCol){
31            eCells[j] = aCells[i];
32            j++;
33        }

34    }

35
36    aCells[0].colSpan = iEndCol - iStartCol + 1;
37    aCells[0].rowSpan = iEndRow - iStartRow + 1;
38
39    for (var i = 1; i < j; i++){
40            eCells[i].parentElement.removeChild(eCells[i]);
41    }

42    
43    //alert(aCells[0].rowSpan);
44    //alert(aCells[0].parentElement.parentElement.innerHTML);
45    //*********************************************************************
46
47
48}
该代码未经全面测试

posted @ 2007-08-09 18:47 姜海龙 阅读(868) | 评论 (0)编辑 收藏


2008年1月23日

欢迎光临本人小站http://www.spartasoft.cn

posted @ 2008-01-23 18:19 姜海龙 阅读(189) | 评论 (0)编辑 收藏


2008年1月22日

我的系统结构是ssh,开发过程中一直使用sqlserver数据库,后面换了oracle数据库,本来对于word文档我是用MSSQL的image字段类型,映射成binary,在程序中利用byte[]存取。但是到了oracle换成blob字段类型之后,可以正常存,但是取的时候一直是86字节长度,我换了oracle的好几个驱动,都是不行,不知道是为什么。
不是说oracle10.2的驱动已经可以将blob映射成binary了吗?

posted @ 2008-01-22 16:56 姜海龙 阅读(946) | 评论 (3)编辑 收藏


2007年8月9日

FCKEditor2.4.2版本中并不支持列的合并,下面是原代码:
 1FCKTableHandler.MergeCells = function()
 2{
 3    // Get all selected cells.
 4    var aCells = FCKTableHandler.GetSelectedCells() ;
 5
 6    // At least 2 cells must be selected.
 7    if ( aCells.length < 2 )
 8        return ;
 9
10    // The merge can occour only if the selected cells are from the same row.
11    if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode )
12        return ;
13
14    // Calculate the new colSpan for the first cell.
15    var iColSpan = isNaN( aCells[0].colSpan ) ? 1 : aCells[0].colSpan ;
16
17    var sHtml = '' ;
18    var oCellsContents = FCK.EditorDocument.createDocumentFragment() ;
19
20    for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
21    {
22        var eCell = aCells[i] ;
23
24        // Move its contents to the document fragment.
25        for ( var c = eCell.childNodes.length - 1 ; c >= 0 ; c-- )
26        {
27            var eChild = eCell.removeChild( eCell.childNodes[c] ) ;
28
29            if ( ( eChild.hasAttribute && eChild.hasAttribute('_moz_editor_bogus_node') ) || ( eChild.getAttribute && eChild.getAttribute( 'type', 2 ) == '_moz' ) )
30                continue ;
31
32                oCellsContents.insertBefore( eChild, oCellsContents.firstChild ) ;
33        }

34
35        if ( i > 0 )
36        {
37            // Accumulate the colspan of the cell.
38            iColSpan += isNaN( eCell.colSpan ) ? 1 : eCell.colSpan ;
39
40            // Delete the cell.
41            FCKTableHandler.DeleteCell( eCell ) ;
42        }

43    }

44
45    // Set the innerHTML of the remaining cell (the first one).
46    aCells[0].colSpan = iColSpan ;
47
48    if ( FCKBrowserInfo.IsGecko && oCellsContents.childNodes.length == 0 )
49        aCells[0].innerHTML = GECKO_BOGUS ;
50    else
51        aCells[0].appendChild( oCellsContents ) ;
52}
第10行代码对列合并做了限制,下面是修改的代码:
 1FCKTableHandler.MergeCells = function()
 2{
 3    // Get all selected cells.
 4    var aCells = FCKTableHandler.GetSelectedCells() ;
 5
 6    // At least 2 cells must be selected.
 7    if ( aCells.length < 2 )
 8        return ;
 9
10    // The merge can occour only if the selected cells are from the same row.
11    //if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode ){
12    //    alert("xx");
13    //    return ;
14    //}
15    
16    //*********************************************************************
17    //在IE下合并单元格修改,主要针对上下单元格不能合并的问题。
18    //姜海龙
19    var iLen = aCells.length;
20    var iStartCol = aCells[0].cellIndex ;
21    var iStartRow = aCells[0].parentElement.rowIndex ;
22    
23    var iEndCol = aCells[iLen-1].cellIndex ;
24    var iEndRow = aCells[iLen-1].parentElement.rowIndex ;
25    
26    var eCells = new Array();
27    var j = 0;
28    
29    for(var i = 0; i < iLen; i++){
30        if(aCells[i].cellIndex >= iStartCol && aCells[i].cellIndex <= iEndCol){
31            eCells[j] = aCells[i];
32            j++;
33        }

34    }

35
36    aCells[0].colSpan = iEndCol - iStartCol + 1;
37    aCells[0].rowSpan = iEndRow - iStartRow + 1;
38
39    for (var i = 1; i < j; i++){
40            eCells[i].parentElement.removeChild(eCells[i]);
41    }

42    
43    //alert(aCells[0].rowSpan);
44    //alert(aCells[0].parentElement.parentElement.innerHTML);
45    //*********************************************************************
46
47
48}
该代码未经全面测试

posted @ 2007-08-09 18:47 姜海龙 阅读(868) | 评论 (0)编辑 收藏


2007年7月3日

 

MyEclipse 快捷键
(1)Ctrl+M切换窗口的大小
(2)Ctrl+Q跳到最后一次的编辑处
(3)F2当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Tooltip Description。
          F3跳到声明或定义的地方。
          F5单步调试进入函数内部。
          F6单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的。
          F7由函数内部返回到调用处。
          F8一直执行到下一个断点。
(4)Ctrl+Pg~对于XML文件是切换代码和图示窗口
(5)Ctrl+Alt+I看Java文件中变量的相关信息
(6)Ctrl+PgUp对于代码窗口是打开“Show List”下拉框,在此下拉框里显示有最近曾打开的文件
(7)Ctrl+/ 在代码窗口中是这种//~注释。
          Ctrl+Shift+/ 在代码窗口中是这种/*~*/注释,在JSP文件窗口中是<!--~-->。
(8)Alt+Shift+O(或点击工具栏中的Toggle Mark Occurrences按钮) 当点击某个标记时可使本页面中其他地方的此标记黄色凸显,并且窗口的右边框会出现白色的方块,点击此方块会跳到此标记处。
(9)右击窗口的左边框即加断点的地方选Show Line Numbers可以加行号。
(10)Ctrl+I格式化激活的元素Format Active Elements。
            Ctrl+Shift+F格式化文件Format Document。
(11)Ctrl+S保存当前文件。
            Ctrl+Shift+S保存所有未保存的文件。
(12)Ctrl+Shift+M(先把光标放在需导入包的类名上) 作用是加Import语句。
            Ctrl+Shift+O作用是缺少的Import语句被加入,多余的Import语句被删除。
(13)Ctrl+Space提示键入内容即Content Assist,此时要将输入法中Chinese(Simplified)IME-Ime/Nonlme Toggle的快捷键(用于切换英文和其他文字)改成其他的。
            Ctrl+Shift+Space提示信息即Context Information。
(14)双击窗口的左边框可以加断点。
(15)Ctrl+D删除当前行。


---待续


[以下为转载]
Eclipse快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)

Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X 把当前选中的文本全部变味小写

Ctrl+Shift+Y 把当前选中的文本全部变为小写

Ctrl+Shift+F 格式化当前代码

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)

Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)

Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)

Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)

Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)

Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)

Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)

posted @ 2007-07-03 18:07 姜海龙 阅读(786) | 评论 (1)编辑 收藏


2007年6月1日

     摘要:   阅读全文

posted @ 2007-06-01 16:30 姜海龙 阅读(2341) | 评论 (0)编辑 收藏


2007年5月24日

我有7个表
1、user存储用户信息
2、role存储角色信息
3、menu存储菜单信息,其中每个菜单对应一个function信息
4、function存储功能模块信息
5、o_func_user存储用户和功能关联关系
6、o_func_role存储角色和功能关联关系
7、o_role_user存储角色和用户关联关系
我要根据用户ID取得所拥有的菜单权限,当然写SQL语句很简单,但是对HSQL不是很熟悉,请问如何用HSQL取得所拥有的菜单信息?

posted @ 2007-05-24 20:07 姜海龙 阅读(1115) | 评论 (2)编辑 收藏


2007年5月16日

http://www.javaref.cn/
有很多代码我们可以参考,两个字方便

posted @ 2007-05-16 15:06 姜海龙| 编辑 收藏


2007年5月10日

     摘要: Appfuse和Sql Server整合  阅读全文

posted @ 2007-05-10 09:58 姜海龙 阅读(882) | 评论 (0)编辑 收藏


2007年4月26日

     摘要: Struts Hibernate Spring  阅读全文

posted @ 2007-04-26 10:30 姜海龙 阅读(5307) | 评论 (13)编辑 收藏


仅列出标题  

posts - 9, comments - 19, trackbacks - 0, articles - 1

Copyright © 姜海龙