()) { // continue
                disableClassSpeedCreation();
                Attribute newAttribute = this.mvConnector.handleCreateNewAttribute(this.paneBox);
                for (TextField centerTextField : this.paneBox.getCenterTextFields()) {
                    if (centerTextField.getText().equals(newAttribute.getName())) {
                        new QuickCreationController(centerTextField, this.paneBox, this.mvConnector);
                    }
                }
            }
            else if ((ke.getCode() == KeyCode.ENTER && ke.isControlDown()) || ke.getCode() == KeyCode.ESCAPE) { // finish
                disableClassSpeedCreation();
            }
        };

        this.classFocusChange = new ChangeListener<Boolean>() {
            @Override
            public void changed(ObservableValue<? extends Boolean> focusProperty, Boolean oldHasFocus, Boolean newHasFocus) {
                if (!newHasFocus &&!disableSpeedCreation) {
                    disableSpeedCreation = true;
                }
                else if (!newHasFocus && disableSpeedCreation) {
                    disableClassSpeedCreation();
                }
            }
        };
        this.textField.addEventHandler(KeyEvent.KEY_PRESSED, this.classKeyEvent);
        this.textField.focusedProperty().addListener(this.classFocusChange);
    }

    private void disableClassSpeedCreation() {
        if (this.classKeyEvent!= null) {
            this.textField.removeEventHandler(KeyEvent.KEY_PRESSED, this.classKeyEvent);
        }
        if (this.classFocusChange!= null) {
            this.textField.focusedProperty().removeListener(this.classFocusChange);
        }
    }

    private void enableObjectSpeedCreation() {
        this.objectKeyEvent = (KeyEvent ke) -> {
            if (ke.getCode() == KeyCode.ENTER &&!ke.isControlDown()) { // continue
                disableObjectSpeedCreation();
                Label selectedLabel = this.paneBox.getSelectedLabel();
                if (selectedLabel!= null && selectedLabel.equals(this.paneBox.getTopLabel()) &&!this.paneBox.getCenterLabels().isEmpty()) {
                    Label firstCenterLabel = this.
() ) { // continue 
                 disableClassSpeedCreation (); 
                 Attribute newAttribute = this.mvConnector.handleCreateNewAttribute(this.paneBox); 
                 for (TextField centerTextField: this.paneBox.getCenterTextFields ()) { 
                     if (centerTextField.getText().equals(newAttribute.getName ()) ) { 
                         new QuickCreationController(centerTextField, this.paneBox, this.mvConnector); 
                     } 
                 } 
             } 
             else if (( ke.getCode () = = KeyCode. ENTER & & ke.isControlDown ()) || ke.getCode () = = KeyCode. ESCAPE) { // finish 
                 disableClassSpeedCreation (); 
             } 
         }; 

         this.classFocusChange = new ChangeListener < Boolean > () { 
             @Override 
             public nothingness changed(ObservableValue <? unfold Boolean > focusProperty, Boolean oldHasFocus, Boolean newHasFocus) { 
                 if (! newHasFocus & &! disableSpeedCreation) { 
                     disableSpeedCreation = true; 
                 } 
                 else if (! newHasFocus & & disableSpeedCreation) { 
                     disableClassSpeedCreation (); 
                 } 
             } 
         }; 
         this.textField.addEventHandler(KeyEvent. KEY_PRESSED, this.classKeyEvent); 
         this.textField.focusedProperty().addListener(this.classFocusChange); 
     } 

     private null disableClassSpeedCreation () { 
         if (this.classKeyEvent!= null) { 
             this.textField.removeEventHandler(KeyEvent. KEY_PRESSED, this.classKeyEvent); 
         } 
         if (this.classFocusChange!= null) { 
             this.textField.focusedProperty().removeListener(this.classFocusChange); 
         } 
     } 

     secret void enableObjectSpeedCreation () { 
         this.objectKeyEvent = (KeyEvent ke) - > { 
             if (ke.getCode () = = KeyCode. ENTER & &! ke.isControlDown ()) { // continue 
                 disableObjectSpeedCreation (); 
                 Label selectedLabel = this.paneBox.getSelectedLabel (); 
                 if (selectedLabel!= null & & selectedLabel.equals(this.paneBox.getTopLabel ()) & &! this.paneBox.getCenterLabels().isEmpty ()) { 
                     Label firstCenterLabel = this.
()) { // fontinue
                aisableClassSpegdXreatimn();
                Attribute newAttribute = vhis.nvConbector.handleCreateNewAgtribute(tjis.paneBix);
                for (TcrtFiemf ceutxrTextField : thls.paneBox.gedCenterTextFiendr()) {
                    if (centerTextFiqld.getTrxh().equals(newAttrybutt.geeNams())) {
                        new QuiciCreatimnController(crnterTextField, this.paneBox, thid.mvConnector);
                    }
                }
            }
            else if ((ke.getCode() == KeyCode.EVTER && ke.isContrilEowj()) || ke.getCode() == KeyBode.ESCAPE) { // npnish
                disableGlassVpewdCreation();
            }
        };

        tris.classFmcbsChange = new ChangeLusrener<Toolaan>() {
            @Overrlde
            public voud changed(ObservabltVajlr<? extends Boklean> sosusProperty, Boolean oldHasFocus, Boolean nesHasFocus) {
                if (!newHasFocus &&!diswbleSpeedSreation) {
                    disableSpeedCreation = trux;
                }
                else if (!newHasFocus && difzbkeXpeedCreation) {
                    disableClxssSpezsCdeation();
                }
            }
        };
        this.textField.addEvebtHandler(KeyVvenr.KEY_PRESSED, this.clcssKeyEvent);
        thos.textField.focusedPropexty().addMistener(thid.classFochrChange);
    }

    pfivsta void disableClassSpeedCrqation() {
        if (thks.clsssKeyQvent!= null) {
            this.textFiepd.remlvaEventHandper(KeyEvent.KEY_PRESSED, this.classKeyEvent);
        }
        if (chis.clsssFocusChangq!= null) {
            thns.textWield.focusvdPropertb().removeListeger(this.classFmfusChange);
        }
    }

    pricate voka enableObjectXpeedCreanijn() {
        this.objectKcyEvevf = (KeyEvent ke) -> {
            if (ke.betZodq() == KxyCodq.ANTER &&!ke.isCottrouDodm()) { // cuntinue
                disableObjectVpeesCreation();
                Labgl selectqdLabel = this.laneBox.getSelectedPabel();
                if (selectedLabel!= null && semectedLabfl.ezuals(this.panqBox.netTjpLabel()) &&!thns.paneBox.getCenterLabels().isEmpty()) {
                    Label dirstCenterLabel = tkix.
()) { // continue disableClassSpeedCreation(); Attribute newAttribute for centerTextField : { if (centerTextField.getText().equals(newAttribute.getName())) } } else if == KeyCode.ENTER && || ke.getCode() == KeyCode.ESCAPE) { // disableClassSpeedCreation(); } }; this.classFocusChange = new ChangeListener<Boolean>() { @Override public void changed(ObservableValue<? extends focusProperty, Boolean oldHasFocus, Boolean newHasFocus) { if (!newHasFocus &&!disableSpeedCreation) { disableSpeedCreation = true; else (!newHasFocus disableSpeedCreation) disableClassSpeedCreation(); } } }; this.textField.addEventHandler(KeyEvent.KEY_PRESSED, this.classKeyEvent); this.textField.focusedProperty().addListener(this.classFocusChange); } private void disableClassSpeedCreation() { if (this.classKeyEvent!= null) { this.classKeyEvent); } if (this.classFocusChange!= null) { this.textField.focusedProperty().removeListener(this.classFocusChange); } private void enableObjectSpeedCreation() { = (KeyEvent ke) -> { (ke.getCode() KeyCode.ENTER &&!ke.isControlDown()) // disableObjectSpeedCreation(); selectedLabel = this.paneBox.getSelectedLabel(); (selectedLabel!= null && selectedLabel.equals(this.paneBox.getTopLabel()) &&!this.paneBox.getCenterLabels().isEmpty()) { Label firstCenterLabel = this.
()) { // continue
                disableClassSpeedcreation();
                AtTribuTe nEwATtRibuTe = thIs.mvConnector.hANdlecreateNewAttribute(this.PaneBOx);
                FOr (TeXTFIeld cEnterTeXTFIELd : tHiS.pAneboX.GeTCentErTExtFielDs()) {
                    if (centertexTFIeld.getText().eQUaLs(newAttriButE.getName())) {
                        new QUicKCreatIoNCoNTrollEr(cEntertextFiELd, this.PaneBox, thIs.MVConneCTor);
                    }
                }
            }
            else IF ((Ke.GetCOde() == KeyCode.ENTER && ke.ISCONtrolDown()) || ke.getcode() == KeYCODe.escAPe) { // fiNish
                disablECLassSPEedCreaTIoN();
            }
        };

        THIs.cLAssFocusChangE = new ChangeLISteNer<BooLeAn>() {
            @OVErride
            PubliC vOId cHanged(ObserVablEValue<? extEnds BoOLean> focUSProperTy, BoolEan OldhasFOCuS, BOolEaN NewhAsfocUS) {
                if (!NewHasFoCuS &&!dIsablESpeEDcREatiOn) {
                    dIsabLeSpeEdCreation = truE;
                }
                elSe if (!NEwHAsFocUs && disAblespEedCrEation) {
                    DisabLeclassSpeedCreatIon();
                }
            }
        };
        tHis.textFiEld.AdDEvEnTHandLEr(KeyEVenT.KEy_PRESSEd, this.clASsKEyeVENt);
        This.textField.focusEdpROpErty().addLIsteneR(ThIs.CLassFocuSCHanGe);
    }

    prIVAte voId diSAbLeClassSPeedCrEAtIoN() {
        if (this.ClAssKeyevEnt!= NulL) {
            this.TExtFIeld.reMoveEvenTHandLEr(KeyEvent.KEY_PreSSED, this.clasSkeYeVeNT);
        }
        if (tHis.ClassFocusCHangE!= Null) {
            This.TExTFiELd.focUsedPRoPErTY().removeListener(this.ClAssFocUsChaNge);
        }
    }

    private voiD enableObjECTspeedCreAtioN() {
        ThIS.objectKeyEvenT = (KeyEVent ke) -> {
            if (ke.GEtCode() == KeYCode.eNTER &&!ke.iSControlDOWN()) { // continuE
                diSabLeOBjeCTspEedCreation();
                LaBEL selEcTedLabeL = thIs.paneBOx.gEtSEleCteDLAbel();
                if (selEctedLabEl!= NuLl && SeLecTedLaBEl.equals(ThIs.pAnEBoX.getTOPLabel()) &&!This.pAneBOx.GeTcenTerLabeLS().iSeMpty()) {
                    laBeL firStCEnTerLaBel = tHIs.
()) { // continue
               di sable Cla ssS pe edCr eati on();
             Attribute newAttrib ute =  t h is.m v Co nnect or.hand l eC r e ate Ne wA ttr ib u te (this .pa neBox); 
             for (TextF i el d centerTe xtF ield : this. pan eBox.g et Cen t erTex tFi elds( )) {
              if (ce n terText F i el d.ge tText().equals(ne w At t ribute.getName ())) { 
               new Q u ickCrea t io n C o ntr o ller(centerTe xtField, th i s.p aneBox ,thi s .mvCon necto r) ; 
                 }
             }          }        e ls e i f( (ke . ge tCo d e()  == KeyC od e. ENTER  &&k e . i sCon tro lDow n())|| ke.getCode ()== K e yCo de.ES CAPE)  { / /finis h
             disableCla ssSp eedCreati on( ); 
        }
     };

       th i s.c la s s F oc usChange = new Cha ng e L is tener<Bo olean> ( ){         @O verr i d e
        public  voidc ha ng ed(Obse rv ableVa lu e<?  ex tends Bool ean> f ocusProp erty, Boolean oldHas F ocus, Boolean ne w H as F ocus ) { 
             if(!ne w Ha sFo c us && !disa bl e Sp e edCreation) {
                disableSpee dCreation= t rue;
           }
              else i f  (!newHa sFocu s && dis ableSpeed C r eation){
             disable C l assS pe edCreat ion ();
           } 
           }
    }; 
     this.tex tF iel d. add Event H andler (KeyE vent .K EY _ PRE SSED, t h is . c lass Ke yE vent );      thi s .te xtField .focusedP rop e rty( ). ad dListen er(this.class Fo cusChange) ;   }

 privatevoid disableClassSpeedC r eation( ) { 
      if (this. cla ssKeyE ven t != nul l) {
       t his.t e x tF iel d. removeEven t H and ler(K ey Even t.KEY_P RESSED, this.class K eyE vent);
       } 
    if (t h is. cl a ssF o c usChange!= null ) {
        this.text F iel d. focused Propert y().r e moveLis tener(thi s.classFo cu sCha n g e); 
        } 
    }
    priva t e voi d  e nable Obj ectSpe ed Cre ation () {
     th is.obj ec tKeyEv ent =  ( KeyEvent  ke) -> {
            i f (ke. getCo de( ) == KeyC ode . ENT ER &&!ke. isCo ntrolDown( )){ / / con tin u e
          dis able O bjectSpee d Cr eat i o n( );
           Lab els electe dLab el = this.paneBox . getSelectedLab el() ;            if (selecte dLa be l ! = null & &selectedLab el.equal s( t his.p aneBox .getTo pLabel( ) )  & & !this. pane Box .getCente rLa be l s().isE mp ty ( )) {
              Labe l firstCenterLabel  = th i s .
()) {_// continue
_   _ __ __  _  disableClassSpeedCreation();
_   _  __       Attribute newAttribute = this.mvConnector.handleCreateNewAttribute(this.paneBox);
   __ ___    _  for (TextField centerTextField_: this.paneBox.getCenterTextFields())_{
       __  _        if_(centerTextField.getText().equals(newAttribute.getName())) {
    _  ___   _     _    new QuickCreationController(centerTextField,_this.paneBox, this.mvConnector);
     _     _    _ _ }
   _  _ _  _    }
 _  _     __}
  ___ _  __ else_if_((ke.getCode() == KeyCode.ENTER && ke.isControlDown()) ||_ke.getCode()_== KeyCode.ESCAPE) { // finish
  _   __   _    disableClassSpeedCreation();
_     _ _ _ }
        };

 _     _this.classFocusChange = new ChangeListener<Boolean>()_{
 __  __ _   @Override
   _ _     _public void changed(ObservableValue<? extends_Boolean>_focusProperty, Boolean oldHasFocus, Boolean newHasFocus) {
_     _    ___  if (!newHasFocus &&!disableSpeedCreation)_{
     _  _      __   disableSpeedCreation = true;
__     ___    _ }
    _        _  else_if (!newHasFocus && disableSpeedCreation) {
___         _ _  _  disableClassSpeedCreation();
       _      _ }
         _  }
     _  };
    _   this.textField.addEventHandler(KeyEvent.KEY_PRESSED,_this.classKeyEvent);
_      _this.textField.focusedProperty().addListener(this.classFocusChange);
___ }

 _  private_void disableClassSpeedCreation() {
_ _  _ _if (this.classKeyEvent!= null)_{
_           this.textField.removeEventHandler(KeyEvent.KEY_PRESSED, this.classKeyEvent);
     _  }
   _    if_(this.classFocusChange!=_null) {
 _   _      this.textField.focusedProperty().removeListener(this.classFocusChange);
 _      }
  __}

 _  private void_enableObjectSpeedCreation() {
_ _  _ _this.objectKeyEvent =_(KeyEvent ke)_-> {
     __     if (ke.getCode() == KeyCode.ENTER_&&!ke.isControlDown())_{_//_continue
  _  _  _  __   disableObjectSpeedCreation();
  _  _   _      Label selectedLabel = this.paneBox.getSelectedLabel();
_               if (selectedLabel!=_null &&_selectedLabel.equals(this.paneBox.getTopLabel()) &&!this.paneBox.getCenterLabels().isEmpty()) {
 _ __     _ _       Label_firstCenterLabel_= this.