hudson.model
Class View

java.lang.Object
  extended by hudson.model.AbstractModelObject
      extended by hudson.model.View
All Implemented Interfaces:
ExtensionPoint, Describable<View>, ModelObject, Saveable, SearchableModelObject, SearchItem, AccessControlled
Direct Known Subclasses:
AllView, ListView, MyView, ProxyView, TreeView

@ExportedBean
public abstract class View
extends AbstractModelObject
implements AccessControlled, Describable<View>, ExtensionPoint, Saveable

Encapsulates the rendering of the list of TopLevelItems that Jenkins owns.

This is an extension point in Hudson, allowing different kind of rendering to be added as plugins.

Note for implementors

Author:
Kohsuke Kawaguchi
See Also:
ViewDescriptor, ViewGroup

Nested Class Summary
static class View.AsynchPeople
          Variant of View.AsynchPeople.People which can be displayed progressively, since it may be slow.
static class View.People
           
static class View.PropertyList
           
static class View.UserInfo
           
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
static Permission CONFIGURE
           
static Permission CREATE
          Permission to create new views.
static Permission DELETE
           
protected  String description
          Message displayed in the view page.
protected  boolean filterExecutors
          If true, only show relevant executors
protected  boolean filterQueue
          If true, only show relevant queue items
static DescriptorList<View> LIST
          Deprecated. as of 1.286 Use all() for read access, and use Extension for registration.
protected  String name
          Name of this view.
static AlternativeUiTextProvider.Message<View> NEW_PRONOUN
          "Job" in "New Job".
protected  ViewGroup owner
          Container of this view.
static PermissionGroup PERMISSIONS
           
static Permission READ
           
static Comparator<View> SORTER
           
protected  List<Action> transientActions
           
 
Fields inherited from interface hudson.model.Saveable
NOOP
 
Constructor Summary
protected View(String name)
           
protected View(String name, ViewGroup owner)
           
 
Method Summary
static DescriptorExtensionList<View,ViewDescriptor> all()
          Returns all the registered ViewDescriptors.
static List<ViewDescriptor> allInstantiable()
           
 void checkPermission(Permission p)
          Convenient short-cut for getACL().checkPermission(permission)
abstract  boolean contains(TopLevelItem item)
          Checks if the job is in this collection.
static View create(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp, ViewGroup owner)
           
static View createViewFromXML(String name, InputStream xml)
           
 org.kohsuke.stapler.HttpResponse doConfigDotXml(org.kohsuke.stapler.StaplerRequest req)
          Accepts config.xml submission, as well as serve it.
 void doConfigSubmit(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
          Accepts submission from the configuration page.
abstract  Item doCreateItem(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
          Creates a new Item in this collection.
 void doDoDelete(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
          Deletes this view.
 void doRssAll(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
           
 void doRssFailed(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
           
 void doRssLatest(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
           
 void doSubmitDescription(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
          Accepts the new description.
 String getAbsoluteUrl()
          Gets the absolute URL of this view.
 ACL getACL()
          Returns the ACL for this object.
 List<Action> getActions()
          Returns the transient Actions associated with the top page.
 List<ViewProperty> getAllProperties()
          List of all ViewPropertys exposed primarily for the remoting API.
 Api getApi()
           
 List<ViewPropertyDescriptor> getApplicablePropertyDescriptors()
          Returns all the LabelAtomPropertyDescriptors that can be potentially configured on this label.
 List<Queue.Item> getApproximateQueueItemsQuickly()
           
 View.AsynchPeople getAsynchPeople()
           
 RunList getBuilds()
           
 Iterable<? extends ListViewColumn> getColumns()
          If this view uses <t:projectView> for rendering, this method returns columns to be displayed.
 List<Computer> getComputers()
           
 String getDescription()
          Message displayed in the top page.
 ViewDescriptor getDescriptor()
          Gets the descriptor for this instance.
 String getDisplayName()
           
 Object getDynamic(String token)
           
 Indenter getIndenter()
          If this view uses <t:projectView> for rendering, this method returns the indenter used to indent each row.
 TopLevelItem getItem(String name)
          Gets the TopLevelItem of the given name.
static Permission getItemCreatePermission()
           
abstract  Collection<TopLevelItem> getItems()
          Gets all the items in this collection in a read-only view.
 TopLevelItem getJob(String name)
          Alias for getItem(String).
 String getNewPronoun()
           
 ViewGroup getOwner()
          Gets the ViewGroup that this view belongs to.
 ItemGroup<? extends TopLevelItem> getOwnerItemGroup()
          Backward-compatible way of getting getOwner().getItemGroup()
 View getOwnerPrimaryView()
           
 List<Action> getOwnerViewActions()
           
 View.People getPeople()
          Gets the users that show up in the changelog of this job collection.
 String getPostConstructLandingPage()
          Returns the page to redirect the user to, after the view is created.
 DescribableList<ViewProperty,ViewPropertyDescriptor> getProperties()
          Gets the view properties configured for this view.
 List<Queue.Item> getQueueItems()
           
 String getSearchUrl()
          Returns the URL of this item relative to the parent SearchItem.
 BuildTimelineWidget getTimeline()
           
 String getUrl()
          Returns the path relative to the context root.
 String getViewName()
          Gets the name of all this collection.
 String getViewUrl()
          Same as getUrl() except this returns a view/{name} path even for the default view.
 List<Widget> getWidgets()
          Gets the Widgets registered on this object.
 boolean hasPeople()
          Deprecated. Potentially very expensive call; do not use from Jelly views.
 boolean hasPermission(Permission p)
          Convenient short-cut for getACL().hasPermission(permission)
 boolean isDefault()
          If true, this is a view that renders the top page of Hudson.
 boolean isEditable()
          By default, return true to render the "Edit view" link on the page.
 boolean isFilterExecutors()
          If true, only show relevant executors
 boolean isFilterQueue()
          If true, only show relevant queue items
 SearchIndexBuilder makeSearchIndex()
          Default implementation that returns empty index.
abstract  void onJobRenamed(Item item, String oldName, String newName)
          Called when a job name is changed or deleted.
 void rename(String newName)
          Renames this view.
 void save()
          Persists the state of this object into XML.
protected abstract  void submit(org.kohsuke.stapler.StaplerRequest req)
          Handles the configuration submission.
 String toString()
           
 void updateByXml(Source source)
          Updates Job by its XML definition.
 void updateTransientActions()
           
 
Methods inherited from class hudson.model.AbstractModelObject
getSearch, getSearchIndex, getSearchName, requirePOST, sendError, sendError, sendError, sendError, sendError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

owner

protected ViewGroup owner
Container of this view. Set right after the construction and never change thereafter.


name

protected String name
Name of this view.


description

protected String description
Message displayed in the view page.


filterExecutors

protected boolean filterExecutors
If true, only show relevant executors


filterQueue

protected boolean filterQueue
If true, only show relevant queue items


transientActions

protected transient List<Action> transientActions

LIST

public static final DescriptorList<View> LIST
Deprecated. as of 1.286 Use all() for read access, and use Extension for registration.
A list of available view types.


SORTER

public static final Comparator<View> SORTER

PERMISSIONS

public static final PermissionGroup PERMISSIONS

CREATE

public static final Permission CREATE
Permission to create new views.


DELETE

public static final Permission DELETE

CONFIGURE

public static final Permission CONFIGURE

READ

public static final Permission READ

NEW_PRONOUN

public static final AlternativeUiTextProvider.Message<View> NEW_PRONOUN
"Job" in "New Job". When a view is used in a context that restricts the child type, It might be useful to override this.

Constructor Detail

View

protected View(String name)

View

protected View(String name,
               ViewGroup owner)
Method Detail

getItems

@Exported(name="jobs")
public abstract Collection<TopLevelItem> getItems()
Gets all the items in this collection in a read-only view.


getItem

public TopLevelItem getItem(String name)
Gets the TopLevelItem of the given name.


getJob

public final TopLevelItem getJob(String name)
Alias for getItem(String). This is the one used in the URL binding.


contains

public abstract boolean contains(TopLevelItem item)
Checks if the job is in this collection.


getViewName

@Exported(visibility=2,
          name="name")
public String getViewName()
Gets the name of all this collection.

See Also:
rename(String)

rename

public void rename(String newName)
            throws Failure,
                   Descriptor.FormException
Renames this view.

Throws:
Failure
Descriptor.FormException

getOwner

public ViewGroup getOwner()
Gets the ViewGroup that this view belongs to.


getOwnerItemGroup

public ItemGroup<? extends TopLevelItem> getOwnerItemGroup()
Backward-compatible way of getting getOwner().getItemGroup()


getOwnerPrimaryView

public View getOwnerPrimaryView()

getOwnerViewActions

public List<Action> getOwnerViewActions()

getDescription

@Exported
public String getDescription()
Message displayed in the top page. Can be null. Includes HTML.


getProperties

public DescribableList<ViewProperty,ViewPropertyDescriptor> getProperties()
Gets the view properties configured for this view.

Since:
1.406

getApplicablePropertyDescriptors

public List<ViewPropertyDescriptor> getApplicablePropertyDescriptors()
Returns all the LabelAtomPropertyDescriptors that can be potentially configured on this label.


save

public void save()
          throws IOException
Description copied from interface: Saveable
Persists the state of this object into XML.

For making a bulk change efficiently, see BulkChange.

To support listeners monitoring changes to this object, call SaveableListener.fireOnChange

Specified by:
save in interface Saveable
Throws:
IOException - if the persistence failed.

getAllProperties

@Exported(name="property",
          inline=true)
public List<ViewProperty> getAllProperties()
List of all ViewPropertys exposed primarily for the remoting API.

Since:
1.406

getDescriptor

public ViewDescriptor getDescriptor()
Description copied from interface: Describable
Gets the descriptor for this instance.

Descriptor is a singleton for every concrete Describable implementation, so if a.getClass()==b.getClass() then a.getDescriptor()==b.getDescriptor() must hold.

Specified by:
getDescriptor in interface Describable<View>

getDisplayName

public String getDisplayName()
Specified by:
getDisplayName in interface ModelObject

getNewPronoun

public String getNewPronoun()

isEditable

public boolean isEditable()
By default, return true to render the "Edit view" link on the page. This method is really just for the default "All" view to hide the edit link so that the default Hudson top page remains the same as before 1.316.

Since:
1.316

isFilterExecutors

public boolean isFilterExecutors()
If true, only show relevant executors


isFilterQueue

public boolean isFilterQueue()
If true, only show relevant queue items


getWidgets

public List<Widget> getWidgets()
Gets the Widgets registered on this object.

For now, this just returns the widgets registered to Hudson.


getColumns

public Iterable<? extends ListViewColumn> getColumns()
If this view uses <t:projectView> for rendering, this method returns columns to be displayed.


getIndenter

public Indenter getIndenter()
If this view uses <t:projectView> for rendering, this method returns the indenter used to indent each row.


isDefault

public boolean isDefault()
If true, this is a view that renders the top page of Hudson.


getComputers

public List<Computer> getComputers()

getQueueItems

public List<Queue.Item> getQueueItems()

getApproximateQueueItemsQuickly

public List<Queue.Item> getApproximateQueueItemsQuickly()

getUrl

public String getUrl()
Returns the path relative to the context root. Doesn't start with '/' but ends with '/' (except returns empty string when this is the default view).


getViewUrl

public String getViewUrl()
Same as getUrl() except this returns a view/{name} path even for the default view.


toString

public String toString()
Overrides:
toString in class Object

getSearchUrl

public String getSearchUrl()
Description copied from interface: SearchItem
Returns the URL of this item relative to the parent SearchItem.

Specified by:
getSearchUrl in interface SearchItem
Returns:
URL like "foo" or "foo/bar". The path can end with '/'. The path that starts with '/' will be interpreted as the absolute path (within the context path of Hudson.)

getActions

public List<Action> getActions()
Returns the transient Actions associated with the top page.

If views don't want to show top-level actions, this method can be overridden to return different objects.

See Also:
Jenkins.getActions()

updateTransientActions

public void updateTransientActions()

getDynamic

public Object getDynamic(String token)

getAbsoluteUrl

@Exported(visibility=2,
          name="url")
public String getAbsoluteUrl()
Gets the absolute URL of this view.


getApi

public Api getApi()

getPostConstructLandingPage

public String getPostConstructLandingPage()
Returns the page to redirect the user to, after the view is created. The returned string is appended to "/view/foobar/", so for example to direct the user to the top page of the view, return "", etc.


getACL

public ACL getACL()
Returns the ACL for this object.

Specified by:
getACL in interface AccessControlled
Returns:
never null.

checkPermission

public void checkPermission(Permission p)
Description copied from interface: AccessControlled
Convenient short-cut for getACL().checkPermission(permission)

Specified by:
checkPermission in interface AccessControlled

hasPermission

public boolean hasPermission(Permission p)
Description copied from interface: AccessControlled
Convenient short-cut for getACL().hasPermission(permission)

Specified by:
hasPermission in interface AccessControlled

onJobRenamed

public abstract void onJobRenamed(Item item,
                                  String oldName,
                                  String newName)
Called when a job name is changed or deleted.

If this view contains this job, it should update the view membership so that the renamed job will remain in the view, and the deleted job is removed.

Parameters:
item - The item whose name is being changed.
oldName - Old name of the item. Always non-null.
newName - New name of the item, if the item is renamed. Or null, if the item is removed.

hasPeople

public boolean hasPeople()
Deprecated. Potentially very expensive call; do not use from Jelly views.

Does this View has any associated user information recorded?


getPeople

public View.People getPeople()
Gets the users that show up in the changelog of this job collection.


getAsynchPeople

public View.AsynchPeople getAsynchPeople()
Since:
1.484

makeSearchIndex

public SearchIndexBuilder makeSearchIndex()
Description copied from class: AbstractModelObject
Default implementation that returns empty index.

Overrides:
makeSearchIndex in class AbstractModelObject

doSubmitDescription

public void doSubmitDescription(org.kohsuke.stapler.StaplerRequest req,
                                org.kohsuke.stapler.StaplerResponse rsp)
                         throws IOException,
                                javax.servlet.ServletException
Accepts the new description.

Throws:
IOException
javax.servlet.ServletException

doConfigSubmit

public final void doConfigSubmit(org.kohsuke.stapler.StaplerRequest req,
                                 org.kohsuke.stapler.StaplerResponse rsp)
                          throws IOException,
                                 javax.servlet.ServletException,
                                 Descriptor.FormException
Accepts submission from the configuration page. Subtypes should override the submit(StaplerRequest) method.

Throws:
IOException
javax.servlet.ServletException
Descriptor.FormException

submit

protected abstract void submit(org.kohsuke.stapler.StaplerRequest req)
                        throws IOException,
                               javax.servlet.ServletException,
                               Descriptor.FormException
Handles the configuration submission. Load view-specific properties here.

Throws:
IOException
javax.servlet.ServletException
Descriptor.FormException

doDoDelete

public void doDoDelete(org.kohsuke.stapler.StaplerRequest req,
                       org.kohsuke.stapler.StaplerResponse rsp)
                throws IOException,
                       javax.servlet.ServletException
Deletes this view.

Throws:
IOException
javax.servlet.ServletException

doCreateItem

public abstract Item doCreateItem(org.kohsuke.stapler.StaplerRequest req,
                                  org.kohsuke.stapler.StaplerResponse rsp)
                           throws IOException,
                                  javax.servlet.ServletException
Creates a new Item in this collection.

This method should call ModifiableItemGroup.doCreateItem(StaplerRequest, StaplerResponse) and then add the newly created item to this view.

Returns:
null if fails.
Throws:
IOException
javax.servlet.ServletException

doRssAll

public void doRssAll(org.kohsuke.stapler.StaplerRequest req,
                     org.kohsuke.stapler.StaplerResponse rsp)
              throws IOException,
                     javax.servlet.ServletException
Throws:
IOException
javax.servlet.ServletException

doRssFailed

public void doRssFailed(org.kohsuke.stapler.StaplerRequest req,
                        org.kohsuke.stapler.StaplerResponse rsp)
                 throws IOException,
                        javax.servlet.ServletException
Throws:
IOException
javax.servlet.ServletException

getBuilds

public RunList getBuilds()

getTimeline

public BuildTimelineWidget getTimeline()

doRssLatest

public void doRssLatest(org.kohsuke.stapler.StaplerRequest req,
                        org.kohsuke.stapler.StaplerResponse rsp)
                 throws IOException,
                        javax.servlet.ServletException
Throws:
IOException
javax.servlet.ServletException

doConfigDotXml

@WebMethod(name="config.xml")
public org.kohsuke.stapler.HttpResponse doConfigDotXml(org.kohsuke.stapler.StaplerRequest req)
                                                throws IOException
Accepts config.xml submission, as well as serve it.

Throws:
IOException

updateByXml

public void updateByXml(Source source)
                 throws IOException
Updates Job by its XML definition.

Throws:
IOException

all

public static DescriptorExtensionList<View,ViewDescriptor> all()
Returns all the registered ViewDescriptors.


allInstantiable

public static List<ViewDescriptor> allInstantiable()

getItemCreatePermission

public static Permission getItemCreatePermission()

create

public static View create(org.kohsuke.stapler.StaplerRequest req,
                          org.kohsuke.stapler.StaplerResponse rsp,
                          ViewGroup owner)
                   throws Descriptor.FormException,
                          IOException,
                          javax.servlet.ServletException
Throws:
Descriptor.FormException
IOException
javax.servlet.ServletException

createViewFromXML

public static View createViewFromXML(String name,
                                     InputStream xml)
                              throws IOException
Throws:
IOException


Copyright © 2004-2013. All Rights Reserved.