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 MessageNew extends React.Component {
32 * @param props element properties.
33 * @param context react context.
35 constructor(props, context) {
36 super(props, context);
37 this.onClickAdd = this.onClickAdd.bind(this);
44 this.props.designer.addMessage();
52 const { connectDragSource } = this.props;
53 return connectDragSource(
54 <div className="asdcs-designer-message asdcs-designer-message-new">
55 <table className="asdcs-designer-layout asdcs-designer-message-new">
59 <div className="asdcs-designer-sort asdcs-designer-icon">
60 <Icon glyph={iconHandle} />
64 <div className="asdcs-designer-label" onClick={this.onClickAdd}>
69 <div className="asdcs-designer-icon" onClick={this.onClickAdd}>
70 <Icon glyph={iconPlus} />
84 /** Element properties. */
85 MessageNew.propTypes = {
86 designer: PropTypes.object.isRequired,
87 messages: PropTypes.object.isRequired,
88 connectDragSource: PropTypes.func.isRequired,
94 return { id: props.id };
99 const collect = function collection(connect, monitor) {
101 connectDragSource: connect.dragSource(),
102 isDragging: monitor.isDragging(),
106 export default DragSource('message-new', source, collect)(MessageNew);