/********************************************************************************
 * Copyright (c) 2015-2018 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 { Component, Input } from '@angular/core';

import { Attribute } from '@navigator/node';
import { ContextAttributeIdentifier } from '@details/model/details.model';

import { ContextFilesService } from '../../services/context-files.service';

@Component({
  selector: 'file-attribute-viewer',
  templateUrl: './file-attribute-viewer.component.html'
})
export class FileAttributeViewerComponent {

  @Input() ident: ContextAttributeIdentifier;
  @Input() attribute: Attribute;

  constructor(private contextFilesService: ContextFilesService) {

  }

  getUrl(remotePath: string) {
    if (remotePath != undefined) {
      return this.contextFilesService.getUrl(this.ident, remotePath);
    }
  }
}
