pm-controls
Version:
ProModel Controls
73 lines (61 loc) • 2.15 kB
text/typescript
import {
ChangeDetectorRef,
Component,
Input,
SimpleChanges
} from '@angular/core';
import { ClipboardService } from '../../../services/clipboard/clipboard-service';
import { GridComponent } from '../grid-component';
import { ModalDialog } from '../../modal/modal-dialog';
import { Dictionary } from '../../../../objects/dictionary';
import { Column } from '../../../../objects/request/column';
import { ColumnType } from '../../../../objects/request/column-type';
import { GridLength } from '../../../../objects/request/grid-length';
export class GridSettingsRowPanelComponent {
constructor(
private changeDetectorRef: ChangeDetectorRef,
private clipboard: ClipboardService) {
changeDetectorRef.detach();
}
Grid: GridComponent;
Dialog: ModalDialog;
Data: any;
ngOnChanges(changes: SimpleChanges) {
if (changes['Grid']) {
this.Data = JSON.stringify(this.Grid.ItemsSource, null, 4);
this.changeDetectorRef.detectChanges();
}
}
OnAutoGenerate() {
var items = JSON.parse(this.Data);
if (items && items.length > 0)
{
var columns = new Dictionary<Column>();
var item = items[0];
for (var key in item) {
if (key.startsWith('_')) {
continue;
}
var type;
var column = new Column(key, key, key, ColumnType.String, new GridLength(100));
columns.add(column.Key, column);
}
this.Grid.Columns = columns;
this.Grid.RefreshGrid();
}
}
OnCopy() {
this.clipboard.Copy(this.Data);
}
OnSave() {
this.Grid.ItemsSource = JSON.parse(this.Data);
}
OnClose() {
this.Dialog.Close(false);
}
}