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 MessageNew extends React.Component {
 
  31    * @param props element properties.
 
  32    * @param context react context.
 
  34   constructor(props, context) {
 
  35     super(props, context);
 
  36     this.onClickAdd = this.onClickAdd.bind(this);
 
  43     this.props.designer.addMessage();
 
  51     const { connectDragSource } = this.props;
 
  52     return connectDragSource(
 
  53       <div className="asdcs-designer-message asdcs-designer-message-new">
 
  54         <table className="asdcs-designer-layout asdcs-designer-message-new">
 
  58                 <div className="asdcs-designer-sort asdcs-designer-icon">
 
  59                   <Icon glyph={iconHandle} />
 
  63                 <div className="asdcs-designer-label" onClick={this.onClickAdd}>
 
  68                 <div className="asdcs-designer-icon" onClick={this.onClickAdd}>
 
  69                   <Icon glyph={iconPlus} />
 
  83 /** Element properties. */
 
  84 MessageNew.propTypes = {
 
  85   designer: React.PropTypes.object.isRequired,
 
  86   messages: React.PropTypes.object.isRequired,
 
  87   connectDragSource: React.PropTypes.func.isRequired,
 
  93     return { id: props.id };
 
  98 const collect = function collection(connect, monitor) {
 
 100     connectDragSource: connect.dragSource(),
 
 101     isDragging: monitor.isDragging(),
 
 105 export default DragSource('message-new', source, collect)(MessageNew);