Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-08-28 12:01:41 +0000
committerEike Stepper2012-08-28 12:01:41 +0000
commit75c6827aa0a46243d7e8a5e6e542cea46947286f (patch)
tree8ccf2a8aad52aa1ac81500e79bc24d212f7e852b /plugins/org.eclipse.emf.cdo.releng.version.ui
parent5a8360ab2bbf49f8eb9a84d48f31fee7af28bfe0 (diff)
downloadcdo-75c6827aa0a46243d7e8a5e6e542cea46947286f.tar.gz
cdo-75c6827aa0a46243d7e8a5e6e542cea46947286f.tar.xz
cdo-75c6827aa0a46243d7e8a5e6e542cea46947286f.zip
Add Manage Ignored Releases
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.version.ui')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version.ui/plugin.xml9
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/preferences/VersionBuilderPreferencePage.java116
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/ReleasePathResolution.java64
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/VersionResolutionGenerator.java9
4 files changed, 198 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.version.ui/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.version.ui/plugin.xml
index f530571d43..772ccaf344 100644
--- a/plugins/org.eclipse.emf.cdo.releng.version.ui/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.releng.version.ui/plugin.xml
@@ -90,4 +90,13 @@
</markerResolutionGenerator>
</extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.emf.cdo.releng.version.ui.preferences.VersionBuilderPreferencePage"
+ id="org.eclipse.emf.cdo.releng.version.ui.preferences.VersionBuilderPreferencePage"
+ name="Extended Version Management">
+ </page>
+ </extension>
+
</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/preferences/VersionBuilderPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/preferences/VersionBuilderPreferencePage.java
new file mode 100644
index 0000000000..2c89e3265f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/preferences/VersionBuilderPreferencePage.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.version.ui.preferences;
+
+import org.eclipse.emf.cdo.releng.internal.version.Activator;
+import org.eclipse.emf.cdo.releng.version.VersionUtil;
+
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * @author Eike Stepper
+ */
+public class VersionBuilderPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
+{
+ public VersionBuilderPreferencePage()
+ {
+ super("XXX");
+ setDescription("Manage ignored releases:");
+ }
+
+ public void init(IWorkbench workbench)
+ {
+ // Do nothing
+ }
+
+ @Override
+ protected Control createContents(Composite parent)
+ {
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ layout.numColumns = 2;
+
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(layout);
+
+ final List list = new List(composite, SWT.BORDER | SWT.SINGLE);
+ list.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
+
+ java.util.List<String> ignoredReleases = new ArrayList<String>(Activator.getIgnoredReleases());
+ Collections.sort(ignoredReleases);
+ for (String releasePath : ignoredReleases)
+ {
+ list.add(releasePath);
+ }
+
+ final Button button = new Button(composite, SWT.PUSH);
+ button.setText("Remove");
+ button.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
+ button.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ String releasePath = getSelectedReleasePath(list);
+ if (releasePath != null)
+ {
+ list.remove(releasePath);
+ Activator.getIgnoredReleases().remove(releasePath);
+ VersionUtil.cleanReleaseProjects(releasePath);
+ adjustEnablement(list, button);
+ }
+ }
+ });
+
+ adjustEnablement(list, button);
+ list.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ adjustEnablement(list, button);
+ }
+ });
+
+ return composite;
+ }
+
+ private String getSelectedReleasePath(List list)
+ {
+ String[] selection = list.getSelection();
+ if (selection != null && selection.length != 0)
+ {
+ return selection[0];
+ }
+
+ return null;
+ }
+
+ private void adjustEnablement(final List list, final Button button)
+ {
+ button.setEnabled(getSelectedReleasePath(list) != null);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/ReleasePathResolution.java b/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/ReleasePathResolution.java
new file mode 100644
index 0000000000..b584e871b1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/ReleasePathResolution.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.version.ui.quickfixes;
+
+import org.eclipse.emf.cdo.releng.internal.version.VersionBuilderArguments;
+import org.eclipse.emf.cdo.releng.version.Markers;
+import org.eclipse.emf.cdo.releng.version.VersionUtil;
+import org.eclipse.emf.cdo.releng.version.ui.Activator;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+
+import java.util.Set;
+
+/**
+ * @author Eike Stepper
+ */
+public class ReleasePathResolution extends AbstractResolution
+{
+ public ReleasePathResolution(IMarker marker)
+ {
+ super(marker, "Add to ignored releases", Activator.CORRECTION_CONFIGURE_GIF);
+ }
+
+ @Override
+ protected boolean isApplicable(IMarker marker)
+ {
+ return Markers.RELEASE_PATH_PROBLEM.equals(Markers.getProblemType(marker));
+ }
+
+ @Override
+ public String getDescription()
+ {
+ IMarker marker = getMarker();
+ IProject project = marker.getResource().getProject();
+ VersionBuilderArguments arguments = new VersionBuilderArguments(project);
+
+ return "Add '"
+ + arguments.getReleasePath()
+ + "' to the set of ignored releases in the Version Management preferences. To re-enable this release use the Preferences dialog and manage the set of ignored releases.";
+ }
+
+ @Override
+ protected void apply(IMarker marker) throws Exception
+ {
+ IProject project = marker.getResource().getProject();
+ VersionBuilderArguments arguments = new VersionBuilderArguments(project);
+ final String releasePath = arguments.getReleasePath();
+
+ Set<String> ignoredReleases = org.eclipse.emf.cdo.releng.internal.version.Activator.getIgnoredReleases();
+ if (ignoredReleases.add(releasePath))
+ {
+ VersionUtil.cleanReleaseProjects(releasePath);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/VersionResolutionGenerator.java b/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/VersionResolutionGenerator.java
index d790f5d0f9..a8c03bc0ba 100644
--- a/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/VersionResolutionGenerator.java
+++ b/plugins/org.eclipse.emf.cdo.releng.version.ui/src/org/eclipse/emf/cdo/releng/version/ui/quickfixes/VersionResolutionGenerator.java
@@ -68,6 +68,10 @@ public class VersionResolutionGenerator implements IMarkerResolutionGenerator2
{
resolutions.add(new RootProjectResolution(marker));
}
+ else if (Markers.RELEASE_PATH_PROBLEM.equals(problemType))
+ {
+ resolutions.add(new ReleasePathResolution(marker));
+ }
String ignoreOption = Markers.getQuickFixConfigureOption(marker);
if (ignoreOption != null)
@@ -106,6 +110,11 @@ public class VersionResolutionGenerator implements IMarkerResolutionGenerator2
return true;
}
+ if (Markers.RELEASE_PATH_PROBLEM.equals(problemType))
+ {
+ return true;
+ }
+
return false;
}
}

Back to the top