kit/src/main/java/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexColumnContentJob.java [74:120]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            final EditorController editorController,
            final int offset,
            final FXOMObject targetGridPane,
            final int targetIndex) {
        super(editorController);
        this.offset = offset;
        this.targetGridPane = targetGridPane;
        this.targetIndexes = new ArrayList<>();
        this.targetIndexes.add(targetIndex);
        buildSubJobs();
    }

    @Override
    public boolean isExecutable() {
        // When the columns are empty, there is no content to move and the 
        // sub job list may be empty. 
        // => we do not invoke subJob.isExecutable() here. 
        return subJob != null;
    }

    @Override
    public void execute() {
        final FXOMDocument fxomDocument = getEditorController().getFxomDocument();
        assert isExecutable();
        fxomDocument.beginUpdate();
        subJob.execute();
        fxomDocument.endUpdate();
    }

    @Override
    public void undo() {
        final FXOMDocument fxomDocument = getEditorController().getFxomDocument();
        fxomDocument.beginUpdate();
        subJob.undo();
        fxomDocument.endUpdate();
    }

    @Override
    public void redo() {
        final FXOMDocument fxomDocument = getEditorController().getFxomDocument();
        fxomDocument.beginUpdate();
        subJob.redo();
        fxomDocument.endUpdate();
    }

    @Override
    public String getDescription() {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



kit/src/main/java/com/oracle/javafx/scenebuilder/kit/editor/job/gridpane/ReIndexRowContentJob.java [74:120]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            final EditorController editorController,
            final int offset,
            final FXOMObject targetGridPane,
            final int targetIndex) {
        super(editorController);
        this.offset = offset;
        this.targetGridPane = targetGridPane;
        this.targetIndexes = new ArrayList<>();
        this.targetIndexes.add(targetIndex);
        buildSubJobs();
    }

    @Override
    public boolean isExecutable() {
        // When the rows are empty, there is no content to move and the 
        // sub job list may be empty. 
        // => we do not invoke subJob.isExecutable() here. 
        return subJob != null;
    }

    @Override
    public void execute() {
        final FXOMDocument fxomDocument = getEditorController().getFxomDocument();
        assert isExecutable();
        fxomDocument.beginUpdate();
        subJob.execute();
        fxomDocument.endUpdate();
    }

    @Override
    public void undo() {
        final FXOMDocument fxomDocument = getEditorController().getFxomDocument();
        fxomDocument.beginUpdate();
        subJob.undo();
        fxomDocument.endUpdate();
    }

    @Override
    public void redo() {
        final FXOMDocument fxomDocument = getEditorController().getFxomDocument();
        fxomDocument.beginUpdate();
        subJob.redo();
        fxomDocument.endUpdate();
    }

    @Override
    public String getDescription() {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



