|
|
|
|
|
|
|
|
Re: Add xtext nature programmatically [message #1742300 is a reply to message #1742298] |
Thu, 01 September 2016 13:37 |
|
if you have a look at NatureAddingEditorCallback you will find these strange code :
public class NatureAddingEditorCallback extends IXtextEditorCallback.NullImpl {
private static final String ADD_XTEXT_NATURE = "add_xtext_nature";
@Inject
private ToggleXtextNatureAction toggleNature;
private @Inject DontAskAgainDialogs dialogs;
@Override
public void afterCreatePartControl(XtextEditor editor) {
IResource resource = editor.getResource();
if (resource != null && !toggleNature.hasNature(resource.getProject()) && resource.getProject().isAccessible()
&& !resource.getProject().isHidden()) {
String title = Messages.NatureAddingEditorCallback_MessageDialog_Title;
String message = Messages.NatureAddingEditorCallback_MessageDialog_Msg0 + resource.getProject().getName()
+ Messages.NatureAddingEditorCallback_MessageDialog_Msg1;
boolean addNature = false;
if (MessageDialogWithToggle.PROMPT.equals(dialogs.getUserDecision(ADD_XTEXT_NATURE))) {
int userAnswer = dialogs.askUser(message, title, ADD_XTEXT_NATURE, editor.getEditorSite().getShell());
if (userAnswer == IDialogConstants.YES_ID) {
addNature = true;
} else if (userAnswer == IDialogConstants.CANCEL_ID) {
return;
}
} else if (MessageDialogWithToggle.ALWAYS.equals(dialogs.getUserDecision(ADD_XTEXT_NATURE))) {
addNature = true;
}
if (addNature) {
toggleNature.toggleNature(resource.getProject());
}
}
}
}
this basically does 2 things
(1) ask the user
(2) add the nature
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03938 seconds