typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
199 lines (150 loc) • 4.63 kB
text/typescript
/// <reference path="../jquery/jquery.d.ts" />
/// <reference path="SlickGrid.d.ts" />
interface MyData extends Slick.SlickData {
title: string;
duration: string;
percentComplete: number;
start: string;
finish: string;
effortDriven: boolean;
}
var grid: Slick.Grid<MyData>;
var columns: Slick.Column<MyData>[] = [
{ id: "title", name: "Title", field: "title" },
{ id: "duration", name: "Duration", field: "duration" },
{ id: "%", name: "% Complete", field: "percentComplete" },
{ id: "start", name: "Start", field: "start" },
{ id: "finish", name: "Finish", field: "finish" },
{ id: "effort-driven", name: "Effort Driven", field: "effortDriven" }
];
var options: Slick.GridOptions<MyData> = {
enableCellNavigation: true,
enableColumnReorder: false
};
var data: MyData[] = [];
for (var i = 0; i < 500; i++) {
data[i] = {
title: "Task " + i,
duration: "5 days",
percentComplete: Math.round(Math.random() * 100),
start: "01/01/2009",
finish: "01/05/2009",
effortDriven: (i % 5 == 0)
};
}
grid = new Slick.Grid<MyData>("#myGrid", data, columns, options);
grid.init();
grid.getData();
grid.getDataItem(14).title;
grid.setData([{ title: "task", duration: "5 days", percentComplete: 5, start: "01/01/2013", finish: "12/12/2013", effortDriven: false }], true);
var ids = [];
for (i = 0; i < grid.getDataLength(); i++) {
ids.push(grid.getDataItem(i).title);
}
var $selectedCells = $('.' + grid.getOptions().selectedCellCssClass);
grid.getSelectedRows();
grid.getSelectionModel();
grid.setOptions({ selectedCellCssClass: "newSelection" });
grid.setSelectedRows([0]);
$('.newSelection');
grid.setSelectedRows([0, 1, 2]);
class SingleCellSelectionModel extends Slick.SelectionModel<MyData, Slick.Range[]> {
private self: SingleCellSelectionModel = null;
private _grid: Slick.Grid<MyData>;
constructor() {
super();
this.self = this;
}
public init(grid: Slick.Grid<MyData>) {
this.self._grid = grid;
this.self._grid.onClick.subscribe(this.self.handleGridClick);
}
public destroy() {
this.self._grid.onClick.unsubscribe(this.self.handleGridClick);
}
public handleGridClick(e, args) {
var cell = this.self._grid.getCellFromEvent(e);
if (!cell || !this.self._grid.canCellBeSelected(cell.row, cell.cell)) {
return;
}
this.onSelectedRangesChanged.notify([new Slick.Range(cell.row, cell.cell, cell.row, cell.cell)], new Slick.EventData(), this);
}
}
var selectionModel = new SingleCellSelectionModel();
selectionModel.init(grid);
grid.setSelectionModel(selectionModel);
var column = grid.getColumns()[grid.getColumnIndex("title")];
var cols = grid.getColumns();
var sortable = cols[0].sortable;
sortable ? console.log("It's sortable!") : console.log("It's not sortable!");
var data2 = grid.getColumns();
data2[0].name = "First";
grid.setColumns(data);
grid.updateColumnHeader("FirstName", "A First Name");
grid.addCellCssStyles("test", {
0: {
"number_column": "cell-bold",
"title_column": "cell-title cell-highlighted"
},
4: {
"percent_column": "cell-highlighted"
}
});
grid.canCellBeActive(5, 10);
grid.canCellBeSelected(5, 10);
grid.editActiveCell(new Slick.Editors.Date<MyData>({
column: cols,
container: undefined,
grid: grid
}));
grid.setActiveCell(0, 0);
grid.editActiveCell(new Slick.Editors.Date<MyData>({
column: cols,
container: undefined,
grid: grid
}));
grid.flashCell(5, 10);
grid.flashCell(5, 10, 500);
grid.getActiveCell().row;
grid.getActiveCell().cell;
grid.getActiveCellNode().innerHTML;
grid.getActiveCellPosition().bottom;
grid.getActiveCellPosition().height;
grid.getActiveCellPosition().left;
grid.getActiveCellPosition().right;
grid.getActiveCellPosition().top;
grid.getActiveCellPosition().visible;
grid.getActiveCellPosition().width;
grid.getCellCssStyles("test")[0]["number_column"];
grid.getCellEditor();
grid.getCellFromEvent(new Slick.Event());
grid.getCellFromPoint(5, 10);
grid.getCellNode(5, 10);
grid.getCellNodeBox(5, 10);
grid.getCellNodeBox(5, 10).bottom;
grid.getCellNodeBox(5, 10).height;
grid.getCellNodeBox(5, 10).left;
grid.getCellNodeBox(5, 10).right;
grid.getCellNodeBox(5, 10).top;
grid.getCellNodeBox(5, 10).visible;
grid.getCellNodeBox(5, 10).width;
grid.gotoCell(5, 10);
grid.gotoCell(5, 10, true);
grid.navigateDown();
grid.navigateLeft();
grid.navigateNext();
grid.navigatePrev();
grid.navigateRight();
grid.navigateUp();
grid.removeCellCssStyles("test");
grid.resetActiveCell();
grid.setActiveCell(5, 10);
grid.setCellCssStyles("test", {
0: {
"number_column": "cell-bold",
"title_column": "cell-title cell-highlighted"
},
4: {
"percent_column": "cell-highlighted"
}
});