Search in sources :

Example 6 with ComponentTree

use of com.intellij.uiDesigner.componentTree.ComponentTree in project intellij-community by JetBrains.

the class GuiEditor method refreshProperties.

private void refreshProperties() {
    final Ref<Boolean> anythingModified = new Ref<>();
    FormEditingUtil.iterate(myRootContainer, new FormEditingUtil.ComponentVisitor() {

        public boolean visit(final IComponent component) {
            final RadComponent radComponent = (RadComponent) component;
            boolean componentModified = false;
            for (IProperty prop : component.getModifiedProperties()) {
                if (prop instanceof IntroStringProperty) {
                    IntroStringProperty strProp = (IntroStringProperty) prop;
                    componentModified = strProp.refreshValue(radComponent) || componentModified;
                }
            }
            if (component instanceof RadContainer) {
                componentModified = ((RadContainer) component).updateBorder() || componentModified;
            }
            if (component.getParentContainer() instanceof RadTabbedPane) {
                componentModified = ((RadTabbedPane) component.getParentContainer()).refreshChildTitle(radComponent) || componentModified;
            }
            if (componentModified) {
                anythingModified.set(Boolean.TRUE);
            }
            return true;
        }
    });
    if (!anythingModified.isNull()) {
        refresh();
        DesignerToolWindow designerToolWindow = DesignerToolWindowManager.getInstance(this);
        ComponentTree tree = designerToolWindow.getComponentTree();
        if (tree != null)
            tree.repaint();
        PropertyInspector inspector = designerToolWindow.getPropertyInspector();
        if (inspector != null)
            inspector.synchWithTree(true);
    }
}
Also used : IComponent(com.intellij.uiDesigner.lw.IComponent) RadComponent(com.intellij.uiDesigner.radComponents.RadComponent) DesignerToolWindow(com.intellij.uiDesigner.propertyInspector.DesignerToolWindow) PropertyInspector(com.intellij.uiDesigner.propertyInspector.PropertyInspector) ComponentTree(com.intellij.uiDesigner.componentTree.ComponentTree) Ref(com.intellij.openapi.util.Ref) RadTabbedPane(com.intellij.uiDesigner.radComponents.RadTabbedPane) IProperty(com.intellij.uiDesigner.lw.IProperty) IntroStringProperty(com.intellij.uiDesigner.propertyInspector.properties.IntroStringProperty) RadContainer(com.intellij.uiDesigner.radComponents.RadContainer)

Aggregations

ComponentTree (com.intellij.uiDesigner.componentTree.ComponentTree)6 RadComponent (com.intellij.uiDesigner.radComponents.RadComponent)4 ListPopup (com.intellij.openapi.ui.popup.ListPopup)1 Ref (com.intellij.openapi.util.Ref)1 FormEditingUtil (com.intellij.uiDesigner.FormEditingUtil)1 IComponent (com.intellij.uiDesigner.lw.IComponent)1 IProperty (com.intellij.uiDesigner.lw.IProperty)1 ComponentItem (com.intellij.uiDesigner.palette.ComponentItem)1 DesignerToolWindow (com.intellij.uiDesigner.propertyInspector.DesignerToolWindow)1 PropertyInspector (com.intellij.uiDesigner.propertyInspector.PropertyInspector)1 IntroStringProperty (com.intellij.uiDesigner.propertyInspector.properties.IntroStringProperty)1 RadButtonGroup (com.intellij.uiDesigner.radComponents.RadButtonGroup)1 RadContainer (com.intellij.uiDesigner.radComponents.RadContainer)1 RadRootContainer (com.intellij.uiDesigner.radComponents.RadRootContainer)1 RadTabbedPane (com.intellij.uiDesigner.radComponents.RadTabbedPane)1 HashSet (com.intellij.util.containers.HashSet)1