   }
 }
 
+// TODO: handle drag event to move element
+// TODO: handle delete key onSelectedElement onSelectedElementS
+
 // MARK: - CanvasViewDataSource
 
 extension CanvasViewController: CanvasViewDataSource {


// MARK: - NSTextFieldDelegate

extension CanvasViewController: NSTextFieldDelegate {
  // Invoked when users press keys with predefined bindings in a cell of the specified control.
  func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {

    showTextField(atPoint: concept.point, text: concept.attributedStringValue)
  }
  
  func transitionedToSelectingElements(fromState: CanvasState) {
    commonTransitionBehavior(fromState)
    
    // TODO: render the selection rectangle
  }
  
  private func commonTransitionBehavior(_ fromState: CanvasState) {
    switch fromState {
