use of org.eclipse.m2e.core.ui.internal.editing.PomEdits.VERSION in project m2e-core-tests by tesla.
the class ExcludeArtifactRefactoringTest method hasExclusionSet.
/*
* The editor has the given exclusion set
*/
protected static boolean hasExclusionSet(MavenPomEditor editor, final ArtifactKey dependencyKey, final ArtifactKey excluded) throws Exception {
final boolean[] found = new boolean[1];
found[0] = false;
performOnDOMDocument(new OperationTuple(editor.getDocument(), document -> {
Element dep = findChild(findChild(document.getDocumentElement(), DEPENDENCIES), DEPENDENCY, childEquals(GROUP_ID, dependencyKey.getGroupId()), childEquals(ARTIFACT_ID, dependencyKey.getArtifactId()), childEquals(VERSION, dependencyKey.getVersion()));
if (dep != null) {
Element exclusion = findChild(findChild(dep, EXCLUSIONS), EXCLUSION, childEquals(GROUP_ID, excluded.getGroupId()), childEquals(ARTIFACT_ID, excluded.getArtifactId()));
found[0] = exclusion != null;
}
}, true));
return found[0];
}
use of org.eclipse.m2e.core.ui.internal.editing.PomEdits.VERSION in project m2e-core by eclipse-m2e.
the class OverviewPage method addSelectedModules.
private void addSelectedModules(Object[] result, boolean updateParentSection) {
final String[] vals = new String[3];
try {
performOnDOMDocument(new OperationTuple(getPomEditor().getDocument(), document -> {
Element root = document.getDocumentElement();
String grid = getTextValue(findChild(root, GROUP_ID));
Element parent = findChild(root, PARENT);
if (grid == null) {
grid = getTextValue(findChild(parent, GROUP_ID));
}
String artifactId = getTextValue(findChild(root, ARTIFACT_ID));
String version = getTextValue(findChild(root, VERSION));
if (version == null) {
version = getTextValue(findChild(parent, VERSION));
}
vals[0] = grid;
vals[1] = artifactId;
vals[2] = version;
}, true));
} catch (Exception ex) {
LOG.error("Error getting values from document", ex);
}
final String parentGroupId = vals[0];
final String parentArtifactId = vals[1];
final String parentVersion = vals[2];
final IPath projectPath = getProject().getLocation();
for (Object selection : result) {
IContainer container = null;
IFile pomFile = null;
if (selection instanceof IFile) {
pomFile = (IFile) selection;
if (!IMavenConstants.POM_FILE_NAME.equals(pomFile.getName())) {
continue;
}
container = pomFile.getParent();
} else if (selection instanceof IContainer && !selection.equals(getProject())) {
container = (IContainer) selection;
pomFile = container.getFile(new Path(IMavenConstants.POM_FILE_NAME));
}
if (pomFile == null || !pomFile.exists() || container == null) {
continue;
}
IPath resultPath = container.getLocation();
String path = resultPath.makeRelativeTo(projectPath).toString();
if (updateParentSection) {
final String relativePath = projectPath.makeRelativeTo(resultPath).toString();
try {
performOnDOMDocument(new OperationTuple(pomFile, (Operation) document -> {
Element root = document.getDocumentElement();
Element parent = getChild(root, PARENT);
setText(getChild(parent, GROUP_ID), parentGroupId);
setText(getChild(parent, ARTIFACT_ID), parentArtifactId);
setText(getChild(parent, VERSION), parentVersion);
setText(getChild(parent, RELATIVE_PATH), relativePath);
Element grId = findChild(root, GROUP_ID);
String grIdText = getTextValue(grId);
if (grIdText != null && grIdText.equals(parentGroupId)) {
removeChild(root, grId);
}
Element ver = findChild(root, VERSION);
String verText = getTextValue(ver);
if (verText != null && verText.equals(parentVersion)) {
removeChild(root, ver);
}
}));
} catch (Exception e) {
LOG.error("Error updating parent reference in file:" + pomFile, e);
}
}
createNewModule(path);
}
}
use of org.eclipse.m2e.core.ui.internal.editing.PomEdits.VERSION in project m2e-core by eclipse-m2e.
the class OverviewPage method createParentsection.
private void createParentsection(FormToolkit toolkit, Composite composite, WidthGroup widthGroup) {
parentSection = //
toolkit.createSection(//
composite, ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED | ExpandableComposite.TWISTIE);
parentSection.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
parentSection.setText(Messages.OverviewPage_section_parent);
// $NON-NLS-1$ //$NON-NLS-2$
parentSection.setData("name", "parentSection");
parentSelectAction = new Action(Messages.OverviewPage_action_selectParent, MavenEditorImages.SELECT_ARTIFACT) {
@Override
public void run() {
// calculate current list of artifacts for the project - that's the current parent..
Set<ArtifactKey> current = new HashSet<>();
String parentGroup = parentGroupIdText.getText();
String parentArtifact = parentArtifactIdText.getText();
String parentVersion = parentVersionText.getText();
if (parentGroup != null && parentArtifact != null && parentVersion != null) {
current.add(new ArtifactKey(parentGroup, parentArtifact, parentVersion, null));
}
MavenRepositorySearchDialog dialog = MavenRepositorySearchDialog.createSearchParentDialog(getEditorSite().getShell(), Messages.OverviewPage_searchDialog_selectParent, getPomEditor().getMavenProject(), getProject());
if (parentGroup != null && parentGroup.trim().length() != 0) {
// chances are we will get good match by adding the groupid here..
dialog.setQuery(parentGroupIdText.getText());
} else if (artifactGroupIdText.getText() != null && artifactGroupIdText.getText().trim().length() != 0) {
// chances are we will get good match by adding the groupid here..
dialog.setQuery(artifactGroupIdText.getText());
}
if (dialog.open() == Window.OK) {
IndexedArtifactFile af = (IndexedArtifactFile) dialog.getFirstResult();
if (af != null) {
String grid = nvl(af.group);
String ver = nvl(af.version);
parentGroupIdText.setText(grid);
parentArtifactIdText.setText(nvl(af.artifact));
parentVersionText.setText(ver);
// promote good practices ->
if (grid.equals(artifactGroupIdText.getText())) {
// if the groupId is the same, just remove it in child.
// $NON-NLS-1$
artifactGroupIdText.setText("");
}
if (ver.equals(artifactVersionText.getText())) {
// if the version is the same, just remove it in child.
// $NON-NLS-1$
artifactVersionText.setText("");
}
parentSection.setExpanded(true);
}
}
}
};
parentSelectAction.setEnabled(false);
parentOpenAction = new Action(Messages.OverviewPage_job_open, MavenEditorImages.PARENT_POM) {
@Override
public void run() {
final String groupId = parentGroupIdText.getText();
final String artifactId = parentArtifactIdText.getText();
final String version = parentVersionText.getText();
new Job(NLS.bind(Messages.OverviewPage_job, new Object[] { groupId, artifactId, version })) {
@Override
protected IStatus run(IProgressMonitor monitor) {
OpenPomAction.openEditor(groupId, artifactId, version, getPomEditor().getMavenProject(), monitor);
return Status.OK_STATUS;
}
}.schedule();
}
};
parentOpenAction.setEnabled(false);
ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
toolBarManager.add(parentOpenAction);
toolBarManager.add(parentSelectAction);
Composite toolbarComposite = toolkit.createComposite(parentSection);
GridLayout toolbarLayout = new GridLayout(1, true);
toolbarLayout.marginHeight = 0;
toolbarLayout.marginWidth = 0;
toolbarComposite.setLayout(toolbarLayout);
toolbarComposite.setBackground(null);
toolBarManager.createControl(toolbarComposite);
parentSection.setTextClient(toolbarComposite);
Composite parentComposite = toolkit.createComposite(parentSection, SWT.NONE);
GridLayout gridLayout = new GridLayout(2, false);
gridLayout.marginBottom = 5;
gridLayout.marginWidth = 1;
gridLayout.marginHeight = 2;
parentComposite.setLayout(gridLayout);
parentSection.setClient(parentComposite);
Label parentGroupIdLabel = toolkit.createLabel(parentComposite, Messages.OverviewPage_lblGroupId2, SWT.NONE);
parentGroupIdText = toolkit.createText(parentComposite, null, SWT.NONE);
GridData gd_parentGroupIdText = new GridData(SWT.FILL, SWT.CENTER, true, false);
gd_parentGroupIdText.horizontalIndent = 4;
parentGroupIdText.setLayoutData(gd_parentGroupIdText);
// $NON-NLS-1$ //$NON-NLS-2$
parentGroupIdText.setData("name", "parentGroupId");
ProposalUtil.addGroupIdProposal(getProject(), parentGroupIdText, Packaging.POM);
M2EUIUtils.addRequiredDecoration(parentGroupIdText);
createEvaluatorInfo(parentGroupIdText);
setElementValueProvider(parentGroupIdText, new ElementValueProvider(PomEdits.PARENT, PomEdits.GROUP_ID));
setModifyListener(parentGroupIdText);
final Label parentArtifactIdLabel = toolkit.createLabel(parentComposite, Messages.OverviewPage_lblArtifactId, SWT.NONE);
parentArtifactIdText = toolkit.createText(parentComposite, null, SWT.NONE);
GridData gd_parentArtifactIdText = new GridData(SWT.FILL, SWT.CENTER, true, false);
gd_parentArtifactIdText.horizontalIndent = 4;
parentArtifactIdText.setLayoutData(gd_parentArtifactIdText);
// $NON-NLS-1$ //$NON-NLS-2$
parentArtifactIdText.setData("name", "parentArtifactId");
ProposalUtil.addArtifactIdProposal(getProject(), parentGroupIdText, parentArtifactIdText, Packaging.POM);
M2EUIUtils.addRequiredDecoration(parentArtifactIdText);
createEvaluatorInfo(parentArtifactIdText);
setElementValueProvider(parentArtifactIdText, new ElementValueProvider(PomEdits.PARENT, PomEdits.ARTIFACT_ID));
setModifyListener(parentArtifactIdText);
Label parentVersionLabel = toolkit.createLabel(parentComposite, Messages.OverviewPage_lblVersion2, SWT.NONE);
parentVersionLabel.setLayoutData(new GridData());
parentVersionText = toolkit.createText(parentComposite, null, SWT.NONE);
GridData parentVersionTextData = new GridData(SWT.LEFT, SWT.CENTER, true, false);
parentVersionTextData.horizontalIndent = 4;
parentVersionTextData.widthHint = 200;
parentVersionText.setLayoutData(parentVersionTextData);
// $NON-NLS-1$ //$NON-NLS-2$
parentVersionText.setData("name", "parentVersion");
ProposalUtil.addVersionProposal(getProject(), null, /**
* null because we don't want expressions from parent pom here
*/
parentGroupIdText, parentArtifactIdText, parentVersionText, Packaging.POM);
M2EUIUtils.addRequiredDecoration(parentVersionText);
createEvaluatorInfo(parentVersionText);
setElementValueProvider(parentVersionText, new ElementValueProvider(PomEdits.PARENT, PomEdits.VERSION));
setModifyListener(parentVersionText);
ModifyListener ml = e -> {
// apparently the loadParent() method also participates in the enablement logic from time to time..
String text1 = parentArtifactIdText.getText().trim();
String text2 = parentGroupIdText.getText().trim();
String text3 = parentVersionText.getText().trim();
if (text1.length() > 0 && text2.length() > 0 && text3.length() > 0) {
parentOpenAction.setEnabled(true);
} else {
parentOpenAction.setEnabled(false);
}
};
parentArtifactIdText.addModifyListener(ml);
parentVersionText.addModifyListener(ml);
parentGroupIdText.addModifyListener(ml);
Label parentRealtivePathLabel = toolkit.createLabel(parentComposite, Messages.OverviewPage_lblRelPath, SWT.NONE);
parentRelativePathText = toolkit.createText(parentComposite, null, SWT.NONE);
GridData gd_parentRelativePathText = new GridData(SWT.FILL, SWT.CENTER, true, false);
gd_parentRelativePathText.horizontalIndent = 4;
parentRelativePathText.setLayoutData(gd_parentRelativePathText);
// $NON-NLS-1$ //$NON-NLS-2$
parentRelativePathText.setData("name", "parentRelativePath");
createEvaluatorInfo(parentRelativePathText);
setElementValueProvider(parentRelativePathText, new ElementValueProvider(PomEdits.PARENT, PomEdits.RELATIVE_PATH));
setModifyListener(parentRelativePathText);
widthGroup.addControl(parentGroupIdLabel);
widthGroup.addControl(parentArtifactIdLabel);
widthGroup.addControl(parentVersionLabel);
widthGroup.addControl(parentRealtivePathLabel);
toolkit.paintBordersFor(parentComposite);
parentComposite.setTabList(new Control[] { parentGroupIdText, parentArtifactIdText, parentVersionText, parentRelativePathText });
}
use of org.eclipse.m2e.core.ui.internal.editing.PomEdits.VERSION in project m2e-core by eclipse-m2e.
the class OverviewPage method loadThis.
private void loadThis(final int mask) {
Display.getDefault().asyncExec(() -> {
removeNotifyListener(parentGroupIdText);
removeNotifyListener(parentArtifactIdText);
removeNotifyListener(parentVersionText);
removeNotifyListener(parentRelativePathText);
removeNotifyListener(artifactGroupIdText);
removeNotifyListener(artifactIdText);
removeNotifyListener(artifactVersionText);
removeNotifyListener(artifactPackagingCombo);
removeNotifyListener(projectNameText);
removeNotifyListener(projectDescriptionText);
removeNotifyListener(projectUrlText);
removeNotifyListener(inceptionYearText);
removeNotifyListener(organizationNameText);
removeNotifyListener(organizationUrlText);
removeNotifyListener(scmUrlText);
removeNotifyListener(scmConnectionText);
removeNotifyListener(scmDevConnectionText);
removeNotifyListener(scmTagText);
removeNotifyListener(ciManagementUrlCombo);
removeNotifyListener(ciManagementSystemCombo);
removeNotifyListener(issueManagementUrlCombo);
removeNotifyListener(issueManagementSystemCombo);
try {
performOnDOMDocument(new OperationTuple(getPomEditor().getDocument(), document -> {
Element root = document.getDocumentElement();
String pack = nvl(getTextValue(findChild(root, PACKAGING)));
// $NON-NLS-1$ //$NON-NLS-2$
pack = "".equals(pack) ? "jar" : pack;
if ((mask & RELOAD_BASE) != 0) {
setText(artifactGroupIdText, nvl(getTextValue(findChild(root, GROUP_ID))));
setText(artifactIdText, nvl(getTextValue(findChild(root, ARTIFACT_ID))));
setText(artifactVersionText, nvl(getTextValue(findChild(root, VERSION))));
setText(artifactPackagingCombo, pack);
String name = getTextValue(findChild(root, NAME));
setText(projectNameText, nvl(name));
String desc = getTextValue(findChild(root, DESCRIPTION));
setText(projectDescriptionText, nvl(desc));
String url = getTextValue(findChild(root, URL));
setText(projectUrlText, nvl(url));
String incep = getTextValue(findChild(root, INCEPTION_YEAR));
setText(inceptionYearText, nvl(incep));
boolean expandProjectSection = name != null || desc != null || url != null || incep != null;
projectSectionData.grabExcessVerticalSpace = expandProjectSection;
projectSection.setExpanded(expandProjectSection);
}
if ((mask & RELOAD_PARENT) != 0) {
// parent section
Element parent = findChild(root, PARENT);
String parentGrId = getTextValue(findChild(parent, GROUP_ID));
String parentArtId = getTextValue(findChild(parent, ARTIFACT_ID));
String parentVers = getTextValue(findChild(parent, VERSION));
setText(parentGroupIdText, nvl(parentGrId));
setText(parentArtifactIdText, nvl(parentArtId));
setText(parentVersionText, nvl(parentVers));
setText(parentRelativePathText, nvl(getTextValue(findChild(parent, RELATIVE_PATH))));
parentSelectAction.setEnabled(!isReadOnly());
// only enable when all 3 coordinates are actually present.
parentOpenAction.setEnabled(root != null && parentGrId != null && parentArtId != null && parentVers != null);
parentSection.setExpanded(parent != null);
}
if ((mask & RELOAD_ORG) != 0) {
// organization section
Element org = findChild(root, ORGANIZATION);
setText(organizationNameText, nvl(getTextValue(findChild(org, NAME))));
setText(organizationUrlText, nvl(getTextValue(findChild(org, URL))));
organizationSection.setExpanded(org != null);
}
if ((mask & RELOAD_SCM) != 0) {
// scm section
Element scm = findChild(root, SCM);
setText(scmUrlText, nvl(getTextValue(findChild(scm, URL))));
setText(scmConnectionText, nvl(getTextValue(findChild(scm, CONNECTION))));
setText(scmDevConnectionText, nvl(getTextValue(findChild(scm, DEV_CONNECTION))));
setText(scmTagText, nvl(getTextValue(findChild(scm, TAG))));
scmSection.setExpanded(scm != null);
}
if ((mask & RELOAD_CI) != 0) {
// ci section
Element ci = findChild(root, CI_MANAGEMENT);
setText(ciManagementSystemCombo, nvl(getTextValue(findChild(ci, SYSTEM))));
setText(ciManagementUrlCombo, nvl(getTextValue(findChild(ci, URL))));
ciManagementSection.setExpanded(ci != null);
}
if ((mask & RELOAD_IM) != 0) {
// issue management
Element im = findChild(root, ISSUE_MANAGEMENT);
setText(issueManagementSystemCombo, nvl(getTextValue(findChild(im, SYSTEM))));
setText(issueManagementUrlCombo, nvl(getTextValue(findChild(im, URL))));
issueManagementSection.setExpanded(im != null);
}
if ((mask & RELOAD_MODULES) != 0) {
// modules section..
List<Element> moduleEls = findChilds(findChild(root, MODULES), MODULE);
List<String> modules = new ArrayList<>();
for (Element moduleEl : moduleEls) {
String text = getTextValue(moduleEl);
if (text != null) {
modules.add(text);
}
}
loadModules(modules, pack);
// #335337 no editing of packaging when there are modules, results in error anyway
artifactPackagingCombo.setEnabled(modules.isEmpty());
}
if ((mask & RELOAD_PROPERTIES) != 0) {
propertiesSection.refresh();
Element props = findChild(root, PROPERTIES);
propertiesSection.setExpanded(props != null);
// TODO used to check teh model's empty state as well, not done now..
}
}, true));
} catch (Exception e) {
LOG.error("Failed to populate overview panel", e);
}
addNotifyListener(artifactGroupIdText);
addNotifyListener(artifactIdText);
addNotifyListener(artifactVersionText);
addNotifyListener(artifactPackagingCombo);
addNotifyListener(projectNameText);
addNotifyListener(projectDescriptionText);
addNotifyListener(projectUrlText);
addNotifyListener(inceptionYearText);
addNotifyListener(parentGroupIdText);
addNotifyListener(parentArtifactIdText);
addNotifyListener(parentVersionText);
addNotifyListener(parentRelativePathText);
addNotifyListener(organizationNameText);
addNotifyListener(organizationUrlText);
addNotifyListener(scmUrlText);
addNotifyListener(scmConnectionText);
addNotifyListener(scmDevConnectionText);
addNotifyListener(scmTagText);
addNotifyListener(ciManagementUrlCombo);
addNotifyListener(ciManagementSystemCombo);
addNotifyListener(issueManagementUrlCombo);
addNotifyListener(issueManagementSystemCombo);
});
}
use of org.eclipse.m2e.core.ui.internal.editing.PomEdits.VERSION in project m2e-core by eclipse-m2e.
the class MavenPomEditorPage method updateParentAction.
private void updateParentAction() {
if (selectParentAction != null) {
final boolean[] ret = new boolean[1];
try {
performOnDOMDocument(new OperationTuple(getPomEditor().getDocument(), document -> {
Element parent = findChild(document.getDocumentElement(), PARENT);
String g = getTextValue(findChild(parent, GROUP_ID));
String a = getTextValue(findChild(parent, ARTIFACT_ID));
String v = getTextValue(findChild(parent, VERSION));
ret[0] = g != null && a != null && v != null;
}, true));
} catch (Exception e) {
ret[0] = false;
}
selectParentAction.setEnabled(ret[0]);
}
}
Aggregations