use of org.eclipse.ltk.core.refactoring.DocumentChange in project flux by eclipse.
the class CUCorrectionProposal method createTextChange.
protected TextChange createTextChange() throws CoreException {
ICompilationUnit cu = getCompilationUnit();
String name = getName();
TextChange change;
if (!cu.getResource().exists()) {
String source;
try {
source = cu.getSource();
} catch (JavaModelException e) {
JavaPlugin.log(e);
// empty
source = new String();
}
Document document = new Document(source);
document.setInitialLineDelimiter(StubUtility.getLineDelimiterUsed(cu));
change = new DocumentChange(name, document);
} else {
CompilationUnitChange cuChange = new CompilationUnitChange(name, cu);
cuChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
change = cuChange;
}
TextEdit rootEdit = new MultiTextEdit();
change.setEdit(rootEdit);
// initialize text change
IDocument document = change.getCurrentDocument(new NullProgressMonitor());
addEdits(document, rootEdit);
return change;
}
use of org.eclipse.ltk.core.refactoring.DocumentChange in project che by eclipse.
the class CUCorrectionProposal method createTextChange.
/**
* Creates the text change for this proposal.
* This method is only called once and only when no text change has been passed in
* {@link #CUCorrectionProposal(String, ICompilationUnit, TextChange, int, Image)}.
*
* @return the created text change
* @throws CoreException if the creation of the text change failed
*/
protected TextChange createTextChange() throws CoreException {
ICompilationUnit cu = getCompilationUnit();
String name = getName();
TextChange change;
if (!cu.getResource().exists()) {
String source;
try {
source = cu.getSource();
} catch (JavaModelException e) {
JavaPlugin.log(e);
// empty
source = new String();
}
Document document = new Document(source);
document.setInitialLineDelimiter(StubUtility.getLineDelimiterUsed(cu));
change = new DocumentChange(name, document);
} else {
CompilationUnitChange cuChange = new CompilationUnitChange(name, cu);
cuChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
change = cuChange;
}
TextEdit rootEdit = new MultiTextEdit();
change.setEdit(rootEdit);
// initialize text change
IDocument document = change.getCurrentDocument(new NullProgressMonitor());
addEdits(document, rootEdit);
return change;
}
use of org.eclipse.ltk.core.refactoring.DocumentChange in project xtext-eclipse by eclipse.
the class DisplayChangeWrapperTest method testDocumentChange.
@Test
public void testDocumentChange() throws CoreException {
Change change = new DocumentChange("my change", new Document());
Change wrapped = DisplayChangeWrapper.wrap(change);
assertTrue(wrapped instanceof TextEditBasedChange);
assertTrue(wrapped instanceof DisplayChangeWrapper.Wrapper);
assertEquals(change, ((DisplayChangeWrapper.Wrapper) wrapped).getDelegate());
Change undo = wrapped.perform(new NullProgressMonitor());
assertTrue(undo instanceof DisplayChangeWrapper.Wrapper);
}
use of org.eclipse.ltk.core.refactoring.DocumentChange in project eclipse.jdt.ls by eclipse.
the class CUCorrectionProposal method createTextChange.
/**
* Creates the text change for this proposal.
* This method is only called once and only when no text change has been passed in
* {@link #CUCorrectionProposal(String, ICompilationUnit, TextChange, int, Image)}.
*
* @return the created text change
* @throws CoreException if the creation of the text change failed
*/
protected TextChange createTextChange() throws CoreException {
ICompilationUnit cu = getCompilationUnit();
String name = getName();
TextChange change;
if (!cu.getResource().exists()) {
String source;
try {
source = cu.getSource();
} catch (JavaModelException e) {
JavaLanguageServerPlugin.log(e.getStatus());
// empty
source = new String();
}
Document document = new Document(source);
change = new DocumentChange(name, document);
} else {
CompilationUnitChange cuChange = new CompilationUnitChange(name, cu);
cuChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
change = cuChange;
}
TextEdit rootEdit = new MultiTextEdit();
change.setEdit(rootEdit);
// initialize text change
IDocument document = change.getCurrentDocument(new NullProgressMonitor());
addEdits(document, rootEdit);
return change;
}
use of org.eclipse.ltk.core.refactoring.DocumentChange in project jbosstools-hibernate by jbosstools.
the class SaveQueryEditorListener method propertyChanged.
/* (non-Javadoc)
* @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
*/
public void propertyChanged(Object source, int propId) {
if (IEditorPart.PROP_DIRTY == propId && !editor.isDirty()) {
IDocumentProvider docProvider = fromEditorPart.getDocumentProvider();
final IFile file = ((IFileEditorInput) fromEditorPart.getEditorInput()).getFile();
final IDocument doc = docProvider.getDocument(fromEditorPart.getEditorInput());
boolean isDocChanged = true;
try {
if (query.equals(doc.get(position.x, position.y))) {
isDocChanged = false;
}
} catch (BadLocationException e1) {
// document changed and we can get the exception
}
final String editorTitle = fromEditorPart.getTitle();
final String editor_name = editor instanceof HQLEditor ? JdtUiMessages.SaveQueryEditorListener_hql_editor : JdtUiMessages.SaveQueryEditorListener_cri_editor;
if (isDocChanged) {
String information_message = NLS.bind(JdtUiMessages.SaveQueryEditorListener_replacequestion_confirm, editorTitle);
MessageDialog.openInformation(null, JdtUiMessages.SaveQueryEditorListener_replacetitle_info, information_message);
return;
}
final String newQuery = editor.getEditorText();
final String wizard_title = NLS.bind(JdtUiMessages.SaveQueryEditorListener_refactoringtitle, editor_name);
Refactoring ref = new Refactoring() {
@Override
public RefactoringStatus checkFinalConditions(IProgressMonitor pm) {
return RefactoringStatus.create(Status.OK_STATUS);
}
@Override
public RefactoringStatus checkInitialConditions(IProgressMonitor pm) {
return RefactoringStatus.create(Status.OK_STATUS);
}
@Override
public Change createChange(IProgressMonitor pm) {
String change_name = NLS.bind(JdtUiMessages.SaveQueryEditorListener_change_name, editor_name, editorTitle);
DocumentChange change = new DocumentChange(change_name, doc);
TextEdit replaceEdit = new ReplaceEdit(position.x, position.y, newQuery);
change.setEdit(replaceEdit);
String cc_name = NLS.bind(JdtUiMessages.SaveQueryEditorListener_composite_change_name, editor_name);
MultiStateTextFileChange mChange = new MultiStateTextFileChange(cc_name, file);
mChange.addChange(change);
return mChange;
}
@Override
public String getName() {
return JdtUiMessages.SaveQueryEditorListener_composite_change_name;
}
};
RefactoringWizard wizard = new RefactoringWizard(ref, RefactoringWizard.DIALOG_BASED_USER_INTERFACE) {
@Override
protected void addUserInputPages() {
UserInputWizardPage page = new UserInputWizardPage(wizard_title) {
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 1;
layout.verticalSpacing = 9;
Label label = new Label(container, SWT.NULL);
label.setText(NLS.bind(JdtUiMessages.SaveQueryEditorListener_replacequestion, editor_name, editorTitle));
setControl(container);
}
};
addPage(page);
}
};
wizard.setWindowTitle(wizard_title);
wizard.setDefaultPageTitle(wizard_title);
IWorkbenchWindow win = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (new RefactoringStarter().activate(wizard, win.getShell(), wizard_title, RefactoringSaveHelper.SAVE_ALL)) {
query = newQuery;
position.y = query.length();
fromEditorPart.doSave(null);
} else {
if (editor.getDocumentProvider() instanceof TextFileDocumentProvider) {
((TextFileDocumentProvider) editor.getDocumentProvider()).setCanSaveDocument(editor.getEditorInput());
}
}
}
}
Aggregations