Author: rob.stryker(a)jboss.com
Date: 2011-01-14 19:30:33 -0500 (Fri, 14 Jan 2011)
New Revision: 28262
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/ASyncContentProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/AbstractCommonNavActionProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyActionProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyContentProvider.java
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java
Log:
nicks hudson tools what what!!!
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/ASyncContentProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/ASyncContentProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/ASyncContentProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -0,0 +1,52 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Display;
+
+public abstract class ASyncContentProvider implements ITreeContentProvider {
+ protected TreeViewer viewer;
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ this.viewer = (TreeViewer)viewer;
+ }
+
+ protected DelayObject getDelayObject(Object parent) {
+ return new DelayObject(parent);
+ }
+
+ static class DelayObject {
+ private Object parent;
+ public DelayObject(Object parent) {
+ this.parent = parent;
+ }
+ }
+
+ protected static Runnable refreshParentRunnable(final TreeViewer v, final Object parent)
{
+ return new Runnable() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ v.refresh(parent);
+ }
+ });
+ }
+ };
+ }
+
+ @Override
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+ @Override
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/AbstractCommonNavActionProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/AbstractCommonNavActionProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/AbstractCommonNavActionProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -0,0 +1,79 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.navigator.CommonActionProvider;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;
+import org.eclipse.ui.navigator.ICommonViewerSite;
+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+
+public abstract class AbstractCommonNavActionProvider extends CommonActionProvider {
+ protected ICommonActionExtensionSite actionSite;
+ protected CommonViewer cv;
+
+ public AbstractCommonNavActionProvider() {
+ super();
+ }
+
+ public void init(ICommonActionExtensionSite aSite) {
+ super.init(aSite);
+ this.actionSite = aSite;
+ ICommonViewerSite site = aSite.getViewSite();
+ if( site instanceof ICommonViewerWorkbenchSite ) {
+ StructuredViewer v = aSite.getStructuredViewer();
+ if( v instanceof CommonViewer ) {
+ cv = (CommonViewer)v;
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
+ createActions(cv, wsSite.getSelectionProvider());
+ addDoubleClickHandler(cv);
+ }
+ }
+ }
+
+ public void dispose() {
+ super.dispose();
+ removeDoubleClickHandler();
+ }
+
+ private IDoubleClickListener doubleClickListener;
+ protected void addDoubleClickHandler(CommonViewer cv) {
+ doubleClickListener = new IDoubleClickListener() {
+ public void doubleClick(DoubleClickEvent event) {
+ doubleClickEvent(getSelection());
+ }
+ };
+ cv.addDoubleClickListener(doubleClickListener);
+ }
+
+ protected void removeDoubleClickHandler() {
+ cv.removeDoubleClickListener(doubleClickListener);
+ }
+
+ protected IStructuredSelection getSelection() {
+ ICommonViewerSite site = actionSite.getViewSite();
+ if (site instanceof ICommonViewerWorkbenchSite) {
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite) site;
+ return (IStructuredSelection)wsSite.getSelectionProvider().getSelection();
+ }
+ return null;
+ }
+
+ protected Object getSelectedItem() {
+ IStructuredSelection selection = getSelection();
+ if( selection != null )
+ return selection.getFirstElement();
+ return null;
+ }
+
+ protected void doubleClickEvent(IStructuredSelection selection) {
+ // do nothing
+ }
+
+ public abstract void fillContextMenu(IMenuManager menu);
+ public abstract void createActions(CommonViewer tableViewer, ISelectionProvider
provider);
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -0,0 +1,49 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
+
+public class HudsonActionProvider extends AbstractCommonNavActionProvider {
+
+ private Action refreshJobAction, openBuiltOnAction;
+ public HudsonActionProvider() {
+ super();
+ }
+
+ public void fillContextMenu(IMenuManager menu) {
+ Object first = getSelection();
+ if (first == null)
+ return;
+ if( getSelectedItem() instanceof HudsonJob )
+ menu.add(refreshJobAction);
+ if( getSelectedItem() instanceof JobBuild) {
+ menu.add(openBuiltOnAction);
+ String builtOn = ((JobBuild)getSelectedItem()).getBuiltOn();
+ openBuiltOnAction.setText("Open Build Machine: "+ builtOn);
+ }
+ }
+
+ public void createActions(CommonViewer tableViewer, ISelectionProvider provider) {
+ refreshJobAction = new Action() {
+ public void run() {
+ HudsonJob job = (HudsonJob)getSelectedItem();
+ job.clearDetails();
+ cv.refresh(job);
+ }
+ };
+ refreshJobAction.setText("Refresh Job");
+ openBuiltOnAction = new Action() {
+ public void run() {
+ JobBuild build = (JobBuild)getSelectedItem();
+ String builtOn = build.getBuiltOn();
+ System.out.println(builtOn);
+ }
+ };
+ openBuiltOnAction.setText("Open Build Machine");
+ }
+ //http://hudson.qa.jboss.com/hudson/computer/dev90-linux/
+}
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java 2011-01-15
00:29:22 UTC (rev 28261)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonContentProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -1,5 +1,8 @@
package org.jboss.tools.hudson.manager.ui.views;
+import java.util.ArrayList;
+import java.util.Arrays;
+
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
@@ -8,51 +11,17 @@
import org.jboss.tools.hudson.manager.core.jobs.LoadHudsonJobJob;
import org.jboss.tools.hudson.manager.core.jobs.LoadHudsonModelJob;
import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.ChangeSetRevision;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
import org.jboss.tools.hudson.manager.core.model.HudsonModel;
import org.jboss.tools.hudson.manager.core.model.HudsonServer;
-public class HudsonContentProvider implements ITreeContentProvider {
- private TreeViewer v;
- @Override
- public void dispose() {
- }
+public class HudsonContentProvider extends ASyncContentProvider {
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- v = (TreeViewer)viewer;
- }
-
- @Override
- public Object[] getElements(Object inputElement) {
- return getChildren(inputElement);
- }
-
- private DelayObject getDelayObject(Object parent) {
- return new DelayObject(parent);
- }
-
- static class DelayObject {
- private Object parent;
- public DelayObject(Object parent) {
- this.parent = parent;
- }
- }
-
- private static Runnable refreshParentRunnable(final TreeViewer v, final Object parent)
{
- return new Runnable() {
- public void run() {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- v.refresh(parent);
- }
- });
- }
- };
- }
-
private Object[] handleRootElement(Object parentElement) {
if( !HudsonModel.getInstance().isInitialized()) {
final DelayObject delay = getDelayObject(parentElement);
- new LoadHudsonModelJob(refreshParentRunnable(v, parentElement)).schedule();
+ new LoadHudsonModelJob(refreshParentRunnable(viewer, parentElement)).schedule();
return new Object[]{delay};
}
return HudsonModel.getInstance().getServers();
@@ -61,7 +30,7 @@
private Object[] handleHudsonServer(HudsonServer parent) {
if( !parent.jobsLoaded()) {
DelayObject delay = getDelayObject(parent);
- new LoadHudsonJobJob(parent, refreshParentRunnable(v, parent)).schedule();
+ new LoadHudsonJobJob(parent, refreshParentRunnable(viewer, parent)).schedule();
return new Object[]{delay};
}
return parent.getHudsonJobs();
@@ -70,7 +39,7 @@
private Object[] handleHudsonJob(HudsonJob parent) {
if( !parent.detailsLoaded()) {
DelayObject delay = getDelayObject(parent);
- new LoadHudsonBuildsJob(parent, refreshParentRunnable(v, parent)).schedule();
+ new LoadHudsonBuildsJob(parent, refreshParentRunnable(viewer, parent)).schedule();
return new Object[]{delay};
}
return parent.getDetails().getBuilds();
@@ -87,15 +56,29 @@
if( parentElement instanceof HudsonJob ) {
return handleHudsonJob((HudsonJob)parentElement);
}
+ if( parentElement instanceof JobBuild) {
+ ArrayList<Object> l = new ArrayList<Object>();
+ l.addAll(Arrays.asList(((JobBuild)parentElement).getSVNChangeSet().getChangeSetRevisions()));
+ //l.addAll(Arrays.asList(((JobBuild)parentElement).getSVNChangeSet().getChangeSetItems()));
+ return (Object[]) l.toArray(new Object[l.size()]);
+ }
+
+ if( parentElement instanceof ChangeSetRevision ) {
+ ChangeSetRevision rev = (ChangeSetRevision)parentElement;
+ return rev.getRelevantFileChanges();
+ }
return new String[]{};
}
- public Object getParent(Object element) {
- return null;
- }
-
public boolean hasChildren(Object element) {
- return true;
+ if( element instanceof DelayObject )
+ return false;
+ if( element instanceof HudsonServer )
+ return true;
+ if( element instanceof HudsonJob)
+ return true;
+
+ return getChildren(element).length > 0 ? true : false;
}
}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyActionProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyActionProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyActionProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -0,0 +1,35 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
+
+public class HudsonHeirarchyActionProvider extends AbstractCommonNavActionProvider {
+
+ public HudsonHeirarchyActionProvider() {
+ super();
+ }
+
+ private Action buildHeirarchyModel;
+
+ public void fillContextMenu(IMenuManager menu) {
+ Object first = getSelection();
+ if( first instanceof HudsonJob ) {
+ menu.add(buildHeirarchyModel);
+ }
+ }
+
+ public void createActions(CommonViewer tableViewer, ISelectionProvider provider) {
+ buildHeirarchyModel = new Action() {
+ public void run() {
+ HudsonJob job = (HudsonJob)getSelectedItem();
+ job.clearDetails();
+ cv.refresh(job);
+ }
+ };
+ buildHeirarchyModel.setText("Build Heirarchy Model");
+ }
+}
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyContentProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyContentProvider.java
(rev 0)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonHeirarchyContentProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -0,0 +1,160 @@
+package org.jboss.tools.hudson.manager.ui.views;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.jboss.tools.hudson.manager.core.jobs.LoadHudsonJobJob;
+import org.jboss.tools.hudson.manager.core.model.HeirarchyModel;
+import org.jboss.tools.hudson.manager.core.model.HeirarchyModel.JobHeirarchyNode;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+import org.jboss.tools.hudson.manager.ui.views.ASyncContentProvider.DelayObject;
+
+
+public class HudsonHeirarchyContentProvider extends ASyncContentProvider {
+
+ public static class HeirarchyViewNode {
+ public HudsonJob job;
+ public HeirarchyViewNode(HudsonJob job) {
+ this.job = job;
+ }
+ public static DirectionalProject[] getUpstreamProjs(HudsonServer server,
JobHeirarchyNode node) {
+ String[] ups = node.getUpstream();
+ DirectionalProject[] result = new DirectionalProject[ups.length];
+ for( int i = 0; i < ups.length; i++ ) {
+ result[i] = new UpstreamProject(server, ups[i]);
+ }
+ return result;
+ }
+ public static DirectionalProject[] getDownstreamProjs(HudsonServer server,
JobHeirarchyNode node) {
+ String[] downs = node.getDownstream();
+ DirectionalProject[] result = new DirectionalProject[downs.length];
+ for( int i = 0; i < downs.length; i++ ) {
+ result[i] = new DownstreamProject(server, downs[i]);
+ }
+ return result;
+ }
+ public DirectionalProject[] getProjects() {
+ ArrayList<DirectionalProject> list = new ArrayList<DirectionalProject>();
+ list.addAll(Arrays.asList(getUpstreamProjects()));
+ list.addAll(Arrays.asList(getDownstreamProjects()));
+ return list.toArray(new DirectionalProject[list.size()]);
+ }
+
+ public DirectionalProject[] getUpstreamProjects() {
+ String url = job.getTrimUrl();
+ JobHeirarchyNode node = HeirarchyModel.getModel().getHeirarchyNode(url, false);
+ return getUpstreamProjs(job.getServer(), node);
+ }
+
+ public DirectionalProject[] getDownstreamProjects() {
+ String url = job.getTrimUrl();
+ JobHeirarchyNode node = HeirarchyModel.getModel().getHeirarchyNode(url, false);
+ return getDownstreamProjs(job.getServer(), node);
+ }
+ }
+
+ public abstract static class DirectionalProject {
+ protected String name;
+ protected HudsonServer server;
+ private DirectionalProject[] children;
+ public DirectionalProject(HudsonServer server, String name) {
+ this.server = server;
+ this.name = name;
+ }
+ public boolean childrenLoaded() {
+ return children != null;
+ }
+ public DirectionalProject[] getChildren() {
+ if( children == null )
+ children = loadChildren();
+ return children;
+ }
+
+ public abstract DirectionalProject[] loadChildren();
+ }
+
+ public static class UpstreamProject extends DirectionalProject {
+ public UpstreamProject(HudsonServer server, String name) { super(server, name);}
+ public DirectionalProject[] loadChildren() {
+ HudsonJob j = server.findJob(name);
+ // ensure loaded
+ j.getDetails();
+ String jobURL = HudsonJob.getTrimJobUrl(server, name);
+ JobHeirarchyNode hNode = HeirarchyModel.getModel().getHeirarchyNode(jobURL, false);
+ return HeirarchyViewNode.getUpstreamProjs(server, hNode);
+ }
+ }
+
+ public static class DownstreamProject extends DirectionalProject {
+ public DownstreamProject(HudsonServer server, String name) { super(server, name);}
+ public DirectionalProject[] loadChildren() {
+ HudsonJob j = server.findJob(name);
+ // ensure loaded
+ j.getDetails();
+ String jobURL = HudsonJob.getTrimJobUrl(server, name);
+ JobHeirarchyNode hNode = HeirarchyModel.getModel().getHeirarchyNode(jobURL, false);
+ return HeirarchyViewNode.getDownstreamProjs(server, hNode);
+ }
+ }
+
+ @Override
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement instanceof HudsonJob ) {
+ return new Object[]{
+ new HeirarchyViewNode((HudsonJob)parentElement)
+ };
+ }
+ if( parentElement instanceof HeirarchyViewNode ) {
+ return ((HeirarchyViewNode)parentElement).getProjects();
+ }
+
+ if( parentElement instanceof DirectionalProject) {
+ DirectionalProject dProj = (DirectionalProject)parentElement;
+ if( !dProj.childrenLoaded() ) {
+ DelayObject delay = getDelayObject(dProj);
+ launchLoadDirectionalProjects(dProj);
+ return new Object[]{delay};
+ }
+ return ((DirectionalProject)parentElement).getChildren();
+ }
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void launchLoadDirectionalProjects(final DirectionalProject dProj) {
+ new LoadProjectHeirarchyJob(dProj, refreshParentRunnable(viewer, dProj)).schedule();
+
+ }
+ public class LoadProjectHeirarchyJob extends Job {
+ private Runnable postJob = null;
+ private DirectionalProject dProj;
+ public LoadProjectHeirarchyJob(DirectionalProject dProj) {
+ super("Load Project Heirarchy");
+ this.dProj = dProj;
+ }
+
+ public LoadProjectHeirarchyJob(DirectionalProject dProj, Runnable r) {
+ this(dProj);
+ postJob = r;
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ dProj.getChildren();
+ if( postJob != null )
+ postJob.run();
+ return Status.OK_STATUS;
+ }
+ }
+ @Override
+ public boolean hasChildren(Object element) {
+ // TODO Auto-generated method stub
+ return true;
+ }
+
+}
\ No newline at end of file
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java
===================================================================
---
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java 2011-01-15
00:29:22 UTC (rev 28261)
+++
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonLabelProvider.java 2011-01-15
00:30:33 UTC (rev 28262)
@@ -4,10 +4,16 @@
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.hudson.manager.core.model.HudsonJob;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.BuildCause;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.ChangeSetItem;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.ChangeSetItemPathPair;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.ChangeSetRevision;
+import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
import org.jboss.tools.hudson.manager.core.model.HudsonServer;
-import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
import org.jboss.tools.hudson.manager.ui.HudsonSharedImages;
-import org.jboss.tools.hudson.manager.ui.views.HudsonContentProvider.DelayObject;
+import org.jboss.tools.hudson.manager.ui.views.ASyncContentProvider.DelayObject;
+import
org.jboss.tools.hudson.manager.ui.views.HudsonHeirarchyContentProvider.DirectionalProject;
+import
org.jboss.tools.hudson.manager.ui.views.HudsonHeirarchyContentProvider.HeirarchyViewNode;
public class HudsonLabelProvider extends LabelProvider implements
ILabelProvider {
@@ -47,8 +53,34 @@
return ((HudsonJob)element).getName();
}
if( element instanceof JobBuild ) {
- return "Build " + ((JobBuild)element).getNumber();
+ String cause;
+ BuildCause bc = ((JobBuild)element).getFirstBuildCause();
+ int type = bc.getType();
+ if( type == BuildCause.KICKED_BY_USER_TYPE)
+ cause = " (Kicked by User " + bc.getUserName() + ")";
+ else if( type == BuildCause.SVN_CHANGE_TYPE)
+ cause = " (Kicked by SVN change)";
+ else
+ cause = " (Kicked by upstream project " + bc.getUpstreamProject() +
")";
+ return "Build " + ((JobBuild)element).getNumber() + cause;
}
+
+ if( element instanceof ChangeSetItem) {
+ return ((ChangeSetItem)element).getRevision() + " - " +
((ChangeSetItem)element).getMessage();
+ }
+ if( element instanceof ChangeSetRevision) {
+ return "r" + ((ChangeSetRevision)element).getrNum() + " - " +
((ChangeSetRevision)element).getModule();
+ }
+ if( element instanceof ChangeSetItemPathPair ) {
+ ChangeSetItemPathPair e = (ChangeSetItemPathPair)element;
+ ChangeSetItem i = e.getItem();
+ return i.getUser() + " - " + i.getRevision() + " - " +
e.getPath();
+ }
+ if( element instanceof HeirarchyViewNode )
+ return "Project Heirarchy";
+ if( element instanceof DirectionalProject ) {
+ return ((DirectionalProject)element).name;
+ }
return element == null ? "" : element.toString();//$NON-NLS-1$
}
}