1 line
3.1 KiB
JavaScript
1 line
3.1 KiB
JavaScript
"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),o=e(require("./tree-view-level")),s=e(require("./tree-view-header")),i=e(require("../common/listen")),n=require("atom").CompositeDisposable;module.exports=t.createClass({displayName:"TreeView",getInitialState:function(){for(var e=this.props.model.getColumnCount(),t=[20,20],o=0;e-1>o;o++)t.push(300);return{columnWidths:t}},onSeparatorDown:function(e,t){var o=this,s=t.nativeEvent.clientX,n=this.state.columnWidths[e],r=[i(document.body,"mouseup",function(){r.forEach(function(e){e.dispose()})}),i(document.body,"mousemove",function(t){var i=t.clientX-s;o.state.columnWidths[e]=n+i,o.setState(o.state)})]},onDragStart:function(e){this.state.dragElement=e},isValidDrop:function(e,t){for(var o=this.props.model;t;){if(e===t)return!1;t=o.getParent(t)}return!0},onDropParent:function(e){this.isValidDrop(this.state.dragElement,e)&&this.props.model.moveRow(this.state.dragElement,e,0)},onDropBelowSibling:function(e,t){var o=this.props.model.getParent(e);this.isValidDrop(this.state.dragElement,e)&&this.props.model.moveRow(this.state.dragElement,o,t+1)},onRowDoubleClicked:function(e){this.props.onRowDoubleClicked(e)},rowSelected:function(e){this.selectedRow&&this.selectedRow.setState(this.selectedRow.state),this.selectedRow=e,this.selectedRow.setState(this.selectedRow.state),this.props.onRowSelected(e.props.element)},rowHover:function(e){this.props.onRowHover(e)},rowHoverLeave:function(e){this.props.onRowHoverLeave(e)},up:function(){this.props.model.up()},down:function(){this.props.model.down()},cut:function(){this.props.model.cut()},copy:function(){this.props.model.copy()},paste:function(){this.props.model.paste()},skip:function(){this.props.model.model?this.props.model.skip(this.props.model.model.selectedDecorator):this.props.model.skip(this.props.model.selectedElement)},"delete":function(){var e=this.selectedRow.props.row;if(this.props.model.model){var t=this.props.model.model.selectedDecorator;this.props.model.deleteRow(t,e)}else{var t=this.props.model.selectedElement;this.props.model.deleteRow(t,e)}},render:function(){for(var e=this.props.width,i=0;i<this.state.columnWidths.length-1;i++)e-=this.state.columnWidths[i];return this.state.columnWidths[this.state.columnWidths.length-1]=e,this.state.element=this.props.model.getRoot(),t.createElement("div",{className:"tree-grid-view",tabIndex:0},t.createElement(s,{parentReact:this,model:this.props.model,columnWidths:this.state.columnWidths}),t.createElement("div",{className:"arguments-scroll-container"},t.createElement(o,{row:0,showRoot:this.props.showRoot,columnWidths:this.state.columnWidths,model:this.props.model,element:this.state.element,depth:0,treeView:this,isRoot:!0,rowClassName:this.props.rowClassName,isBehavior:this.props.isBehavior})))},componentDidMount:function(){this.disposable=new n,this.disposable.add(atom.commands.add(this.getDOMNode(),{"jibo-sdk:up":this.up,"jibo-sdk:down":this.down,"core:cut":this.cut,"core:copy":this.copy,"core:paste":this.paste,"jibo-sdk:skip-selected":this.skip,"jibo-sdk:delete-bt-elem":this["delete"]}))},componentWillUnmount:function(){this.disposable.dispose()}}); |