Search in sources :

Example 1 with LinkedPositionGroup

use of org.eclipse.che.ide.ext.java.shared.dto.LinkedPositionGroup in project che by eclipse.

the class JavaRefactoringRename method activateLinkedModeIntoEditor.

private void activateLinkedModeIntoEditor(final RenameRefactoringSession session, final Document document) {
    mode = linkedEditor.getLinkedMode();
    LinkedModel model = linkedEditor.createLinkedModel();
    LinkedModeModel linkedModeModel = session.getLinkedModeModel();
    List<LinkedModelGroup> groups = new ArrayList<>();
    for (LinkedPositionGroup positionGroup : linkedModeModel.getGroups()) {
        LinkedModelGroup group = linkedEditor.createLinkedGroup();
        LinkedData data = positionGroup.getData();
        if (data != null) {
            LinkedModelData modelData = linkedEditor.createLinkedModelData();
            modelData.setType("link");
            modelData.setValues(data.getValues());
            group.setData(modelData);
        }
        List<Position> positions = new ArrayList<>();
        for (Region region : positionGroup.getPositions()) {
            positions.add(new Position(region.getOffset(), region.getLength()));
        }
        group.setPositions(positions);
        groups.add(group);
    }
    model.setGroups(groups);
    disableAutoSave();
    mode.enterLinkedMode(model);
    mode.addListener(new LinkedMode.LinkedModeListener() {

        @Override
        public void onLinkedModeExited(boolean successful, int start, int end) {
            boolean isSuccessful = false;
            try {
                if (successful) {
                    isSuccessful = true;
                    newName = document.getContentRange(start, end - start);
                    performRename(session);
                }
            } finally {
                mode.removeListener(this);
                isActiveLinkedEditor = false;
                if (!isSuccessful && linkedEditor instanceof EditorWithAutoSave) {
                    ((EditorWithAutoSave) linkedEditor).enableAutoSave();
                }
            }
        }
    });
}
Also used : LinkedModel(org.eclipse.che.ide.api.editor.link.LinkedModel) Position(org.eclipse.che.ide.api.editor.text.Position) HasLinkedMode(org.eclipse.che.ide.api.editor.link.HasLinkedMode) LinkedMode(org.eclipse.che.ide.api.editor.link.LinkedMode) ArrayList(java.util.ArrayList) LinkedModeModel(org.eclipse.che.ide.ext.java.shared.dto.LinkedModeModel) LinkedModelGroup(org.eclipse.che.ide.api.editor.link.LinkedModelGroup) LinkedPositionGroup(org.eclipse.che.ide.ext.java.shared.dto.LinkedPositionGroup) EditorWithAutoSave(org.eclipse.che.ide.api.editor.EditorWithAutoSave) LinkedData(org.eclipse.che.ide.ext.java.shared.dto.LinkedData) Region(org.eclipse.che.ide.ext.java.shared.dto.Region) LinkedModelData(org.eclipse.che.ide.api.editor.link.LinkedModelData)

Aggregations

ArrayList (java.util.ArrayList)1 EditorWithAutoSave (org.eclipse.che.ide.api.editor.EditorWithAutoSave)1 HasLinkedMode (org.eclipse.che.ide.api.editor.link.HasLinkedMode)1 LinkedMode (org.eclipse.che.ide.api.editor.link.LinkedMode)1 LinkedModel (org.eclipse.che.ide.api.editor.link.LinkedModel)1 LinkedModelData (org.eclipse.che.ide.api.editor.link.LinkedModelData)1 LinkedModelGroup (org.eclipse.che.ide.api.editor.link.LinkedModelGroup)1 Position (org.eclipse.che.ide.api.editor.text.Position)1 LinkedData (org.eclipse.che.ide.ext.java.shared.dto.LinkedData)1 LinkedModeModel (org.eclipse.che.ide.ext.java.shared.dto.LinkedModeModel)1 LinkedPositionGroup (org.eclipse.che.ide.ext.java.shared.dto.LinkedPositionGroup)1 Region (org.eclipse.che.ide.ext.java.shared.dto.Region)1