- 
    Type:Improvement 
- 
    Resolution: Fixed
- 
    Priority:Normal 
- 
    Affects Version/s: None
- 
    Component/s: None
- 
    Security Level: Jimmy
- 
    None
- 
        None
Current Result
The current implementation of Spreadsheet.java contains too many code about 7K lines, which is hard to maintain and modify.
Expected Result
- Simplify and refactor Spreadsheet.java
- extract those code for rendering to client to a separate package e.g. Spreadsheet::getCellAttr
- https://github.com/zkoss/keikaicml/blob/master/keikai/src/io/keikai/api/Books.java#L13 BOOK_TYPE_KEY is declared in 3 different places: Books, AbstractImporter, AbstractExcelImporter. It's better to reduce to 1.
- suggest to collect all server-to-client commands constants into one class e.g. smartUpdate("activeRange", activeRange); renderer.render("toolbarButtons", _buttons), so that we can easily reviews/checks these commands.
- blocks
- 
                    KEIKAI-589 freeze columns shifts a merged cell -         
- Closed
 
-         
- relates to
- 
                    KEIKAI-189 missing data validation drop-down icon -         
- Closed
 
-         
- 
                    KEIKAI-183 selecting a sheet doesn't work for the first time -         
- Closed
 
-         
- 
                    KEIKAI-187 new book button causes toolbar disappeared -         
- Closed
 
-