2 * Copyright © 2016-2017 European Support Limited
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 import React from 'react';
18 import PropTypes from 'prop-types';
19 import { DragSource } from 'react-dnd';
21 import Icon from '../../../../../icons/Icon';
22 import iconPlus from '../../../../../../../../../../res/ecomp/asdc/sequencer/sprites/icons/plus.svg';
23 import iconHandle from '../../../../../../../../../../res/ecomp/asdc/sequencer/sprites/icons/handle.svg';
26 * LHS lifeline row view.
28 class LifelineNew extends React.Component {
30 // ///////////////////////////////////////////////////////////////////////////////////////////////
34 * @param props element properties.
35 * @param context react context.
37 constructor(props, context) {
38 super(props, context);
42 this.onClickAdd = this.onClickAdd.bind(this);
45 // ///////////////////////////////////////////////////////////////////////////////////////////////
51 this.props.designer.addLifeline();
54 // ///////////////////////////////////////////////////////////////////////////////////////////////
61 const { connectDragSource } = this.props;
62 return connectDragSource(
63 <div className="asdcs-designer-lifeline asdcs-designer-lifeline-new">
64 <table className="asdcs-designer-layout asdcs-designer-lifeline-new">
68 <div className="asdcs-designer-sort asdcs-designer-icon">
69 <Icon glyph={iconHandle} />
73 <div className="asdcs-designer-label" onClick={this.onClickAdd}>
78 <div className="asdcs-designer-icon" onClick={this.onClickAdd}>
79 <Icon glyph={iconPlus} />
91 /** Element properties. */
92 LifelineNew.propTypes = {
93 designer: PropTypes.object.isRequired,
94 lifelines: PropTypes.object.isRequired,
95 connectDragSource: PropTypes.func.isRequired,
101 return { id: props.id };
106 const collect = function collection(connect, monitor) {
108 connectDragSource: connect.dragSource(),
109 isDragging: monitor.isDragging(),
113 export default DragSource('lifeline-new', source, collect)(LifelineNew);