blob: ca24964472bfdfe33f60e2ec722299c2804690cc [file] [log] [blame]
AviZi280f8012017-06-09 02:39:56 +03001/*!
2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020016import React, { Component } from 'react';
talig8e9c0652017-12-20 14:30:43 +020017import PropTypes from 'prop-types';
Avi Zivb8e2faf2017-07-18 19:45:38 +030018import Button from 'sdc-ui/lib/react/Button.js';
Michael Landoefa037d2017-02-19 12:57:33 +020019import Sequencer from 'dox-sequence-diagram-ui';
20
21import i18n from 'nfvo-utils/i18n/i18n.js';
22
23class SequenceDiagram extends Component {
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020024 static propTypes = {
25 onSave: PropTypes.func.isRequired,
26 onClose: PropTypes.func,
27 model: PropTypes.object.isRequired
28 };
Michael Landoefa037d2017-02-19 12:57:33 +020029
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020030 onSave() {
31 this.props.onSave(this.refs.sequencer.getModel());
32 }
Michael Landoefa037d2017-02-19 12:57:33 +020033
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020034 render() {
35 return (
36 <div className="sequence-diagram">
37 <div className="sequence-diagram-sequencer">
38 <Sequencer
39 ref="sequencer"
40 options={{ useHtmlSelect: true }}
41 model={this.props.model}
42 />
43 </div>
44 <div className="sequence-diagram-action-buttons">
45 <Button onClick={() => this.onSave()}>
46 {i18n('Save')}
47 </Button>
48 <Button onClick={this.props.onClose}>
49 {i18n('Close')}
50 </Button>
51 </div>
52 </div>
53 );
54 }
Michael Landoefa037d2017-02-19 12:57:33 +020055}
56
57export default SequenceDiagram;