Logo Search packages:      
Sourcecode: wims version File versions

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

The display needs to be rebuilt. We do this.

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

Definition at line 129 of file InfixOperatorLayout.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::InfixOperatorLayout::insertOperatorDisplay(), fr::ove::openmath::jome::ctrlview::bidim::Display::isSymbolOperatorDisplay, fr::ove::openmath::jome::ctrlview::bidim::Display::removeAllDisplays(), and fr::ove::openmath::jome::ctrlview::bidim::Localisable::setLocation().

                                 {
        Display tmp;
        int nbDisplay = ((FormulaTreeStructure) displayToLay.getListener()).getNbChildren();
        Display listDisplay[] = new Display[nbDisplay];
        
        int count = displayToLay.getComponentCount();
        for (int i = 0; i < count; i++) {
            tmp = (Display) displayToLay.getComponent(i);
            if (!tmp.isSymbolOperatorDisplay()) {
                // A voir !!!!!
                // Mais il semblerai que bon, sinon à la (re)construction du display il se base
                // sur des anciennes valeurs, et donc pas terrible niveau affichage.
                tmp.setLocation(0, 0);
                listDisplay[((FormulaTreeStructure) tmp.getListener()).getRank()] = tmp;
            }
        }
        
        // 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. Exception faite pour les displays d'opérateur.
        displayToLay.removeAllDisplays();
                
        for (int i = 0; i < nbDisplay; i++)
            displayToLay.add(listDisplay[i]);
            
        // On a reconstruit le display, il faut maintenant insérer les displays d'opérateur.
        insertOperatorDisplay = true;
        
        // 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