public void performControlAction()

in app/src/main/java/com/oracle/javafx/scenebuilder/app/DocumentWindowController.java [649:855]


    public void performControlAction(DocumentControlAction controlAction) {
        assert canPerformControlAction(controlAction);
        
        final PreferencesController pc = PreferencesController.getSingleton();
        final PreferencesRecordDocument recordDocument = pc.getRecordDocument(this);
        
        switch(controlAction) {
            case COPY:
                performCopy();
                break;
                
            case SELECT_ALL:
                performSelectAll();
                break;
                
            case SELECT_NONE:
                performSelectNone();
                break;
                
            case SHOW_PREVIEW_WINDOW:
                if (previewWindowController == null) {
                    previewWindowController = new PreviewWindowController(editorController, getStage());
                    previewWindowController.setToolStylesheet(getToolStylesheet());
                }
                previewWindowController.getStage().centerOnScreen();
                previewWindowController.openWindow();
                break;
                
            case SHOW_PREVIEW_DIALOG:
                if (previewWindowController == null) {
                    previewWindowController = new PreviewWindowController(editorController, getStage());
                    previewWindowController.setToolStylesheet(getToolStylesheet());
                }
                previewWindowController.openDialog();
                break;
                
            case SAVE_FILE:
                performSaveOrSaveAsAction();
                break;
                
            case SAVE_AS_FILE:
                performSaveAsAction();
                break;
                
            case REVERT_FILE:
                performRevertAction();
                break;
                
            case CLOSE_FILE:
                performCloseAction();
                break;
                
            case REVEAL_FILE:
                performRevealAction();
                break;
                
            case GOTO_CONTENT:
                contentPanelController.getGlassLayer().requestFocus();
                break;

            case GOTO_PROPERTIES:
                performGoToSection(SectionId.PROPERTIES);
                break;
                
            case GOTO_LAYOUT:
                performGoToSection(SectionId.LAYOUT);
                break;
                
            case GOTO_CODE:
                performGoToSection(SectionId.CODE);
                break;
                
            case TOGGLE_LEFT_PANEL:
                if (leftSplitController.isTargetVisible()) {
                    assert librarySplitController.isTargetVisible()
                            || documentSplitController.isTargetVisible();
                    // Hide Left => hide both Library + Document
                    librarySplitController.hideTarget();
                    documentSplitController.hideTarget();
                    leftSplitController.hideTarget();
                } else {
                    assert !librarySplitController.isTargetVisible()
                            && !documentSplitController.isTargetVisible();
                    // Show Left => show both Library + Document
                    librarySplitController.showTarget();
                    documentSplitController.showTarget();
                    leftSplitController.showTarget();

                    // This workarounds layout issues when showing Left
                    libraryDocumentSplitPane.layout();
                    libraryDocumentSplitPane.setDividerPositions(0.5);
                }
                // Update preferences
                recordDocument.setLibraryVisible(librarySplitController.isTargetVisible());
                recordDocument.setDocumentVisible(documentSplitController.isTargetVisible());
                recordDocument.setLeftVisible(leftSplitController.isTargetVisible());
                break;

            case TOGGLE_RIGHT_PANEL:
                rightSplitController.toggleTarget();
                // Update preferences
                recordDocument.setRightVisible(rightSplitController.isTargetVisible());
                break;
                
            case TOGGLE_CSS_PANEL:
                // CSS panel is built lazely : initialize the CSS panel first
                initializeCssPanel();
                bottomSplitController.toggleTarget();
                if (bottomSplitController.isTargetVisible()) {
                    // CSS panel is built lazely
                    // Need to update its table column ordering with preference value
                    final PreferencesRecordGlobal recordGlobal = pc.getRecordGlobal();
                    refreshCssTableColumnsOrderingReversed(recordGlobal.isCssTableColumnsOrderingReversed());
                    // Enable pick mode
                    editorController.setPickModeEnabled(true);
                } else {
                    // Disable pick mode
                    editorController.setPickModeEnabled(false);
                }
                // Update preferences
                recordDocument.setBottomVisible(bottomSplitController.isTargetVisible());
                break;
                
            case TOGGLE_LIBRARY_PANEL:
                if (librarySplitController.isTargetVisible()) {
                    assert leftSplitController.isTargetVisible();
                    librarySplitController.hideTarget();
                    if (!documentSplitController.isTargetVisible()) {
                        leftSplitController.hideTarget();
                    }
                } else {
                    if (!leftSplitController.isTargetVisible()) {
                        leftSplitController.showTarget();
                    }
                    librarySplitController.showTarget();
                }
                // Update preferences
                recordDocument.setLibraryVisible(librarySplitController.isTargetVisible());
                recordDocument.setLeftVisible(leftSplitController.isTargetVisible());
                break;
                
            case TOGGLE_DOCUMENT_PANEL:
                if (documentSplitController.isTargetVisible()) {
                    assert leftSplitController.isTargetVisible();
                    documentSplitController.hideTarget();
                    if (!librarySplitController.isTargetVisible()) {
                        leftSplitController.hideTarget();
                    }
                } else {
                    if (!leftSplitController.isTargetVisible()) {
                        leftSplitController.showTarget();
                    }
                    documentSplitController.showTarget();
                }
                // Update preferences
                recordDocument.setDocumentVisible(documentSplitController.isTargetVisible());
                recordDocument.setLeftVisible(leftSplitController.isTargetVisible());
                break;
                
            case TOGGLE_OUTLINES_VISIBILITY:
                contentPanelController.setOutlinesVisible(
                        ! contentPanelController.isOutlinesVisible());
                break;
                
            case TOGGLE_GUIDES_VISIBILITY:
                contentPanelController.setGuidesVisible(
                        ! contentPanelController.isGuidesVisible());
                break;
                
            case ADD_SCENE_STYLE_SHEET:
                sceneStyleSheetMenuController.performAddSceneStyleSheet();
                break;
                
            case SET_RESOURCE:
                resourceController.performSetResource();
                // Update preferences
                recordDocument.setI18NResourceFile(getResourceFile());
                break;
                
            case REMOVE_RESOURCE:
                resourceController.performRemoveResource();
                // Update preferences
                recordDocument.setI18NResourceFile(getResourceFile());
                break;
                
            case REVEAL_RESOURCE:
                resourceController.performRevealResource();
                break;
                
            case HELP:
                performHelp();
                break;
                
            case SHOW_SAMPLE_CONTROLLER:
                if (skeletonWindowController == null) {
                    skeletonWindowController = new SkeletonWindowController(editorController,
                            Utils.makeTitle(editorController.getFxomDocument()), getStage());
                    skeletonWindowController.setToolStylesheet(getToolStylesheet());
                }
                skeletonWindowController.openWindow();
                break;
                
            default:
                assert false;
                break;
        }
    }