Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/rpm
diff options
context:
space:
mode:
authorAndrew Ferrazzutti2014-08-13 19:33:13 +0000
committerAlexander Kurtakov2014-09-04 20:48:11 +0000
commita8dceb1039f19c1e25ac0e86646da0aac1dc2942 (patch)
tree0841159511d40ae1a64e003aebad648e014922f6 /rpm
parente25ab73d894f4df5d90c7f980aa8e70d8ae55536 (diff)
downloadorg.eclipse.linuxtools-a8dceb1039f19c1e25ac0e86646da0aac1dc2942.tar.gz
org.eclipse.linuxtools-a8dceb1039f19c1e25ac0e86646da0aac1dc2942.tar.xz
org.eclipse.linuxtools-a8dceb1039f19c1e25ac0e86646da0aac1dc2942.zip
RPM: Edit targets of "Build RPM" commands.
-The "Build RPM" toolbar button now only targets the currently active .spec file editor rather than the active selection. -Prevent RPM Builds from being possible for projects without an RPM nature. -Prevent RPM popup menu options from appearing when the active selection contains more than one element. Change-Id: I31aa2c5827b2fa4acf692f764a64dbd7b4fc25d9 Signed-off-by: Andrew Ferrazzutti <aferrazz@redhat.com> Reviewed-on: https://git.eclipse.org/r/31564 Reviewed-by: Alexander Kurtakov <akurtako@redhat.com> Tested-by: Alexander Kurtakov <akurtako@redhat.com>
Diffstat (limited to 'rpm')
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/plugin.xml43
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/plugin.xml21
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/internal/rpm/ui/handlers/SpecfileEditorRPMBuildHandler.java50
3 files changed, 77 insertions, 37 deletions
diff --git a/rpm/org.eclipse.linuxtools.rpm.core/plugin.xml b/rpm/org.eclipse.linuxtools.rpm.core/plugin.xml
index d4d8fbeb97..8fca7b0b70 100644
--- a/rpm/org.eclipse.linuxtools.rpm.core/plugin.xml
+++ b/rpm/org.eclipse.linuxtools.rpm.core/plugin.xml
@@ -27,25 +27,30 @@
point="org.eclipse.core.expressions.definitions">
<definition
id="org.eclipse.linuxtools.rpm.core.rpmfile">
- <iterate
- ifEmpty="false">
- <or>
- <adapt
- type="org.eclipse.core.resources.IProject">
- <test
- property="org.eclipse.core.resources.projectNature"
- value="org.eclipse.linuxtools.rpm.core.rpmnature">
- </test>
- </adapt>
- <adapt
- type="org.eclipse.core.resources.IResource">
- <test
- property="org.eclipse.core.resources.name"
- value="*.spec">
- </test>
- </adapt>
- </or>
- </iterate>
+ <and>
+ <count
+ value="1">
+ </count>
+ <iterate
+ ifEmpty="false">
+ <or>
+ <adapt
+ type="org.eclipse.core.resources.IProject">
+ <test
+ property="org.eclipse.core.resources.projectNature"
+ value="org.eclipse.linuxtools.rpm.core.rpmnature">
+ </test>
+ </adapt>
+ <adapt
+ type="org.eclipse.core.resources.IResource">
+ <test
+ property="org.eclipse.core.resources.name"
+ value="*.spec">
+ </test>
+ </adapt>
+ </or>
+ </iterate>
+ </and>
</definition>
</extension>
</plugin>
diff --git a/rpm/org.eclipse.linuxtools.rpm.ui/plugin.xml b/rpm/org.eclipse.linuxtools.rpm.ui/plugin.xml
index 661fd9e3f7..4be0a6113c 100644
--- a/rpm/org.eclipse.linuxtools.rpm.ui/plugin.xml
+++ b/rpm/org.eclipse.linuxtools.rpm.ui/plugin.xml
@@ -224,6 +224,11 @@
name="buildType"
optional="false">
</commandParameter>
+ <commandParameter
+ id="actOnEditor"
+ name="actOnEditor"
+ optional="true">
+ </commandParameter>
</command>
</extension>
<extension
@@ -265,6 +270,10 @@
name="buildType"
value="ALL">
</parameter>
+ <parameter
+ name="actOnEditor"
+ value="true">
+ </parameter>
</command>
</toolbar>
</menuContribution>
@@ -280,6 +289,10 @@
name="buildType"
value="SOURCE">
</parameter>
+ <parameter
+ name="actOnEditor"
+ value="true">
+ </parameter>
</command>
<command
commandId="rpmEditor.build.command"
@@ -291,6 +304,10 @@
name="buildType"
value="BINARY">
</parameter>
+ <parameter
+ name="actOnEditor"
+ value="true">
+ </parameter>
</command>
<command
commandId="rpmEditor.build.command"
@@ -302,6 +319,10 @@
name="buildType"
value="ALL">
</parameter>
+ <parameter
+ name="actOnEditor"
+ value="true">
+ </parameter>
</command>
</menuContribution>
</extension>
diff --git a/rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/internal/rpm/ui/handlers/SpecfileEditorRPMBuildHandler.java b/rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/internal/rpm/ui/handlers/SpecfileEditorRPMBuildHandler.java
index 0a09076d51..db2bd85b96 100644
--- a/rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/internal/rpm/ui/handlers/SpecfileEditorRPMBuildHandler.java
+++ b/rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/internal/rpm/ui/handlers/SpecfileEditorRPMBuildHandler.java
@@ -29,6 +29,7 @@ import org.eclipse.linuxtools.rpm.core.RPMProject;
import org.eclipse.linuxtools.rpm.core.RPMProjectLayout;
import org.eclipse.linuxtools.rpm.ui.RPMExportOperation;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchSite;
@@ -42,16 +43,19 @@ import org.eclipse.ui.part.EditorPart;
*/
public class SpecfileEditorRPMBuildHandler extends AbstractHandler {
+ private static final String BUILD_TYPE = "buildType"; //$NON-NLS-1$
+ private static final String ON_EDITOR = "actOnEditor"; //$NON-NLS-1$
protected RPMProject rpj;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
final IResource resource = getResource(event);
- final String eventBuildType = event.getParameter("buildType"); //$NON-NLS-1$
rpj = getRPMProject(resource);
- Job job = new RPMExportOperation(rpj, eventBuildType);
- job.setUser(true);
- job.schedule();
+ if (rpj != null) {
+ Job job = new RPMExportOperation(rpj, event.getParameter(BUILD_TYPE));
+ job.setUser(true);
+ job.schedule();
+ }
return null;
}
@@ -61,6 +65,17 @@ public class SpecfileEditorRPMBuildHandler extends AbstractHandler {
* @return The resource that was selected.
*/
private static IResource getResource(ExecutionEvent event) {
+ final boolean actOnEditor = Boolean.valueOf(event.getParameter(ON_EDITOR));
+ if (actOnEditor) {
+ IEditorPart epart = HandlerUtil.getActiveEditor(event);
+ if (epart != null) {
+ IEditorInput input = epart.getEditorInput();
+ if (input instanceof IFileEditorInput) {
+ return ((IFileEditorInput) input).getFile();
+ }
+ }
+ return null;
+ }
IWorkbenchPart part = HandlerUtil.getActivePart(event);
if (part == null) {
return null;
@@ -102,23 +117,22 @@ public class SpecfileEditorRPMBuildHandler extends AbstractHandler {
* @return The RPMProject of the resource passed in.
*/
private static RPMProject getRPMProject(IResource resource) {
- RPMProject rc = null;
- try {
- IProject parentProject = resource.getProject();
+ if (resource != null) {
+ try {
+ IProject parentProject = resource.getProject();
- // determine if project selected is an RPMProject
- if (parentProject.hasNature(IRPMConstants.RPM_NATURE_ID)) {
- if (parentProject.getPersistentProperty(new QualifiedName(IRPMConstants.RPM_CORE_ID, IRPMConstants.SPECS_FOLDER)) != null){
- rc = new RPMProject(parentProject, RPMProjectLayout.RPMBUILD);
- } else {
- rc = new RPMProject(parentProject, RPMProjectLayout.FLAT);
+ // determine if project selected is an RPMProject
+ if (parentProject.hasNature(IRPMConstants.RPM_NATURE_ID)) {
+ if (parentProject.getPersistentProperty(new QualifiedName(IRPMConstants.RPM_CORE_ID, IRPMConstants.SPECS_FOLDER)) != null){
+ return new RPMProject(parentProject, RPMProjectLayout.RPMBUILD);
+ } else {
+ return new RPMProject(parentProject, RPMProjectLayout.FLAT);
+ }
}
- } else {
- rc = new RPMProject(parentProject, RPMProjectLayout.FLAT);
+ } catch (CoreException e) {
+ Activator.logError(Messages.getString("SpecfileEditorRPMBuildHandler.logRPMProjectError"), e); //$NON-NLS-1$
}
- } catch (CoreException e) {
- Activator.logError(Messages.getString("SpecfileEditorRPMBuildHandler.logRPMProjectError"), e); //$NON-NLS-1$
}
- return rc;
+ return null;
}
}

Back to the top