blob: a9ec00a0ffcd90f6bcd2b6468da16c6ef2f2e3be [file] [log] [blame]
/********************************************************************************
* Copyright (c) 2015-2020 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
********************************************************************************/
import {Injectable, Output, EventEmitter} from '@angular/core';
import {Http, Response, Headers, RequestOptions} from '@angular/http';
import {Observable} from 'rxjs';
import {MDMItem} from '../core/mdm-item';
import {Node} from './node';
import {PropertyService} from '../core/property.service';
import {NodeService} from './node.service';
import {MDMNotificationService} from '../core/mdm-notification.service';
import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class NavigatorService {
@Output() onOpenInTree = new EventEmitter<MDMItem[]>();
public selectedNodeChanged: EventEmitter<Node> = new EventEmitter<Node>();
private selectedNode: Node;
constructor(private nodeService: NodeService,
private notificationService: MDMNotificationService,
private translateService: TranslateService) {
}
setSelectedNode(node: Node) {
this.selectedNode = node;
this.fireSelectedNodeChanged(node);
}
fireSelectedNodeChanged(node: Node) {
this.selectedNodeChanged.emit(node);
}
setSelectedItem(item: MDMItem) {
this.nodeService.getNodeFromItem(item)
.subscribe(
node => this.setSelectedNode(node),
error => this.notificationService.notifyError(this.translateService.instant('navigator.navigator.err-cannot-set-item'), error)
);
}
getSelectedNode(): Node {
return this.selectedNode;
}
fireOnOpenInTree(items: MDMItem[]) {
this.onOpenInTree.emit(items);
}
}