2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
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 { DragSource } from 'react-dnd';
20 import Icon from '../../../../../icons/Icon';
21 import iconPlus from '../../../../../../../../../../res/ecomp/asdc/sequencer/sprites/icons/plus.svg';
22 import iconHandle from '../../../../../../../../../../res/ecomp/asdc/sequencer/sprites/icons/handle.svg';
25 * LHS lifeline row view.
27 class LifelineNew extends React.Component {
29 // ///////////////////////////////////////////////////////////////////////////////////////////////
33 * @param props element properties.
34 * @param context react context.
36 constructor(props, context) {
37 super(props, context);
41 this.onClickAdd = this.onClickAdd.bind(this);
44 // ///////////////////////////////////////////////////////////////////////////////////////////////
50 this.props.designer.addLifeline();
53 // ///////////////////////////////////////////////////////////////////////////////////////////////
60 const { connectDragSource } = this.props;
61 return connectDragSource(
62 <div className="asdcs-designer-lifeline asdcs-designer-lifeline-new">
63 <table className="asdcs-designer-layout asdcs-designer-lifeline-new">
67 <div className="asdcs-designer-sort asdcs-designer-icon">
68 <Icon glyph={iconHandle} />
72 <div className="asdcs-designer-label" onClick={this.onClickAdd}>
77 <div className="asdcs-designer-icon" onClick={this.onClickAdd}>
78 <Icon glyph={iconPlus} />
90 /** Element properties. */
91 LifelineNew.propTypes = {
92 designer: React.PropTypes.object.isRequired,
93 lifelines: React.PropTypes.object.isRequired,
94 connectDragSource: React.PropTypes.func.isRequired,
100 return { id: props.id };
105 const collect = function collection(connect, monitor) {
107 connectDragSource: connect.dragSource(),
108 isDragging: monitor.isDragging(),
112 export default DragSource('lifeline-new', source, collect)(LifelineNew);