Logo Search packages:      
Sourcecode: wims version File versions  Download package

void fr::ove::openmath::jome::ctrlview::bidim::BetweenOperatorLayout::rebuildDisplay (  )  [inline, virtual, inherited]

The display needs to be rebuilt. We do this.

Implements fr::ove::openmath::jome::ctrlview::bidim::DisplayLayout.

Definition at line 205 of file BetweenOperatorLayout.java.

References fr::ove::openmath::jome::ctrlview::bidim::Display::add(), fr::ove::openmath::jome::ctrlview::bidim::Display::computeAncestorsAttributes(), fr::ove::openmath::jome::ctrlview::bidim::DisplayLayout::displayToLay, fr::ove::openmath::jome::ctrlview::bidim::Display::getListener(), fr::ove::openmath::jome::ctrlview::bidim::Display::removeAllDisplays(), fr::ove::openmath::jome::ctrlview::bidim::Display::setIsSymbolOperatorDisplay(), and fr::ove::openmath::jome::ctrlview::bidim::Localisable::setLocation().

                                 {
        Display tmp;
        Display listDisplay[] = new Display[2];
        
        for (int i = 1; i <= 2; i++) {
            tmp = (Display) displayToLay.getComponent(i);
            tmp.setLocation(0,0);
            listDisplay[((FormulaTreeStructure) tmp.getListener()).getRank()] = tmp;
        }
        
        // On garde un référence sur le display du symbole l'opérateur
        tmp = (Display) displayToLay.getComponent(0);
        // On fait en sorte que temporairement ce display ne soit pas considéré comme un
        // display d'opérateur, sinon il serait supprimé de la liste des listeners de la fts,
        // chose qu'on ne veut pas puisque qu'on va le remettre à sa place.
        tmp.setIsSymbolOperatorDisplay(false);
        
        // ATTENTION : ici, on enlève les displays fils de display, mais on ne les enlève pas de la liste
        // des listeners de la fts qu'il sont en train d'écouter.
        displayToLay.removeAllDisplays();
        
        // On remet tmp comme étant un display d'opérateur
        tmp.setIsSymbolOperatorDisplay(true);
        // On le rajoute dans displayToLay à sa position (la première)
        displayToLay.add(tmp);
                
        for (int i = 0; i < 2; i++)
            displayToLay.add(listDisplay[i]);
        
        // La taille des displays est probablement différente de ceux qui étaient
        // précédemment. On demande alors le recalcul des display ancêtres.
        displayToLay.computeAncestorsAttributes();
    }


Generated by  Doxygen 1.6.0   Back to index