Class View
- java.lang.Object
-
- hudson.model.AbstractModelObject
-
- hudson.model.View
-
- All Implemented Interfaces:
ExtensionPoint
,Describable<View>
,DescriptorByNameOwner
,ModelObject
,Saveable
,SearchableModelObject
,SearchItem
,AccessControlled
,ModelObjectWithChildren
@ExportedBean public abstract class View extends AbstractModelObject implements AccessControlled, Describable<View>, ExtensionPoint, Saveable, ModelObjectWithChildren, DescriptorByNameOwner
Encapsulates the rendering of the list ofTopLevelItem
s thatJenkins
owns.This is an extension point in Hudson, allowing different kind of rendering to be added as plugins.
Note for implementers
-
View
subtypes need thenewViewDetail.jelly
page, which is included in the "new view" page. This page should have some description of what the view is about.
- Author:
- Kohsuke Kawaguchi
- See Also:
ViewDescriptor
,ViewGroup
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
View.AsynchPeople
Variant ofView.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
Fields Modifier and Type Field Description 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 executorsprotected boolean
filterQueue
If true, only show relevant queue itemsstatic DescriptorList<View>
LIST
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
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static DescriptorExtensionList<View,ViewDescriptor>
all()
Returns all the registeredViewDescriptor
s.static List<ViewDescriptor>
allInstantiable()
Returns theViewDescriptor
instances that can be instantiated for theViewGroup
in the currentStaplerRequest
.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)
Instantiate View subtype from XML stream.FormValidation
doCheckJobName(String value)
Makes sure that the given name is good as a job name.ModelObjectWithContextMenu.ContextMenu
doChildrenContextMenu(org.kohsuke.stapler.StaplerRequest request, org.kohsuke.stapler.StaplerResponse response)
Generates the context menu to list up all the children.org.kohsuke.stapler.HttpResponse
doConfigDotXml(org.kohsuke.stapler.StaplerRequest req)
Acceptsconfig.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 newItem
in this collection.void
doDoDelete(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
Deletes this view.Categories
doItemCategories(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp, String iconStyle)
An API REST method to get the allowed {$link TopLevelItem}s and its categories.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 theACL
for this object.List<Action>
getActions()
Returns the transientAction
s associated with the top page.Collection<TopLevelItem>
getAllItems()
Gets all the items recursively contained in this collection in a read-only view.List<ViewProperty>
getAllProperties()
List of allViewProperty
s exposed primarily for the remoting API.Api
getApi()
List<ViewPropertyDescriptor>
getApplicablePropertyDescriptors()
Returns all theViewPropertyDescriptor
s that can be potentially configured on this view.List<Queue.Item>
getApproximateQueueItemsQuickly()
Deprecated.UsegetQueueItems()
.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 usest:projectView
for rendering, this method returns the indenter used to indent each row.TopLevelItem
getItem(String name)
Gets theTopLevelItem
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 forgetItem(String)
.String
getNewPronoun()
ViewGroup
getOwner()
Gets theViewGroup
that this view belongs to.ItemGroup<? extends TopLevelItem>
getOwnerItemGroup()
Deprecated.callViewGroup.getItemGroup()
directlyView
getOwnerPrimaryView()
Deprecated.callViewGroup.getPrimaryView()
directlyList<Action>
getOwnerViewActions()
Deprecated.callViewGroup.getViewActions()
directlyView.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 parentSearchItem
.BuildTimelineWidget
getTimeline()
String
getUrl()
Returns the path relative to the context root.String
getViewName()
Gets the name of all this collection.String
getViewUrl()
Same asgetUrl()
except this returns a view/{name} path even for the default view.List<ViewPropertyDescriptor>
getVisiblePropertyDescriptors()
List<Widget>
getWidgets()
Gets theWidget
s registered on this object.boolean
hasPeople()
Deprecated.Potentially very expensive call; do not use from Jelly views.boolean
isAutomaticRefreshEnabled()
Deprecated.Auto-refresh has been removedboolean
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 executorsboolean
isFilterQueue()
If true, only show relevant queue itemsSearchIndexBuilder
makeSearchIndex()
Default implementation that returns empty index.protected void
makeSearchIndex(SearchIndexBuilder sib)
Add a simple CollectionSearchIndex object to sibvoid
onJobRenamed(Item item, String oldName, String newName)
Deprecated.Does not work properly with moved jobs.static void
registerPermissions()
void
rename(String newName)
Renames this view.void
save()
Persists the state of this object into XML.void
setDescription(String description)
protected abstract void
submit(org.kohsuke.stapler.StaplerRequest req)
Handles the configuration submission.String
toString()
void
updateByXml(Source source)
Updates the View with the new XML definition.void
updateTransientActions()
Deprecated.This method does nothing and should not be usedvoid
writeXml(OutputStream out)
-
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
-
Methods inherited from interface hudson.security.AccessControlled
checkAnyPermission, checkPermission, hasAnyPermission, hasPermission, hasPermission, hasPermission2
-
Methods inherited from interface hudson.model.DescriptorByNameOwner
getDescriptorByName
-
-
-
-
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
-
LIST
@Deprecated public static final DescriptorList<View> LIST
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.
-
-
Method Detail
-
getItems
@NonNull @Exported(name="jobs") public abstract Collection<TopLevelItem> getItems()
Gets all the items in this collection in a read-only view.
-
getAllItems
public Collection<TopLevelItem> getAllItems()
Gets all the items recursively contained in this collection in a read-only view.The default implementation recursively adds the items of all contained Views in case this view implements
ViewGroup
, which should be enough for most cases.- Since:
- 1.520
-
getItem
public TopLevelItem getItem(String name)
Gets theTopLevelItem
of the given name.
-
getJob
public final TopLevelItem getJob(String name)
Alias forgetItem(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") @NonNull 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
-
getOwnerItemGroup
@Deprecated public ItemGroup<? extends TopLevelItem> getOwnerItemGroup()
Deprecated.callViewGroup.getItemGroup()
directly
-
getOwnerPrimaryView
@Deprecated public View getOwnerPrimaryView()
Deprecated.callViewGroup.getPrimaryView()
directly
-
getOwnerViewActions
@Deprecated public List<Action> getOwnerViewActions()
Deprecated.callViewGroup.getViewActions()
directly
-
getDescription
@Exported public String getDescription()
Message displayed in the top page. Can be null. Includes HTML.
-
setDescription
@DataBoundSetter public void setDescription(String description)
-
getProperties
public DescribableList<ViewProperty,ViewPropertyDescriptor> getProperties()
Gets the view properties configured for this view.- Since:
- 1.406
-
getApplicablePropertyDescriptors
public List<ViewPropertyDescriptor> getApplicablePropertyDescriptors()
Returns all theViewPropertyDescriptor
s that can be potentially configured on this view. Returns bothViewPropertyDescriptor
s visible and invisible for user, seegetVisiblePropertyDescriptors()
to filter invisible one.
-
getVisiblePropertyDescriptors
public List<ViewPropertyDescriptor> getVisiblePropertyDescriptors()
- Returns:
- all the
ViewPropertyDescriptor
s that can be potentially configured on this View and are visible for the user. UseDescriptorVisibilityFilter
to make a View property invisible for users. - Since:
- 2.214
-
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(hudson.model.Saveable, hudson.XmlFile)
- Specified by:
save
in interfaceSaveable
- Throws:
IOException
- if the persistence failed.
-
getAllProperties
@Exported(name="property", inline=true) public List<ViewProperty> getAllProperties()
List of allViewProperty
s 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 concreteDescribable
implementation, so ifa.getClass() == b.getClass()
then by defaulta.getDescriptor() == b.getDescriptor()
as well. (In rare cases a single implementation class may be used for instances with distinct descriptors.)- Specified by:
getDescriptor
in interfaceDescribable<View>
-
getDisplayName
public String getDisplayName()
- Specified by:
getDisplayName
in interfaceModelObject
-
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
-
isAutomaticRefreshEnabled
@Deprecated public boolean isAutomaticRefreshEnabled()
Deprecated.Auto-refresh has been removedUsed to enable or disable automatic refreshes of the view.- Since:
- 1.557
-
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 theWidget
s 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 usest: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.
-
getQueueItems
public List<Queue.Item> getQueueItems()
-
getApproximateQueueItemsQuickly
@Deprecated public List<Queue.Item> getApproximateQueueItemsQuickly()
Deprecated.UsegetQueueItems()
. As of 1.607 the approximation is no longer needed.- Returns:
- The items in the queue.
-
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 asgetUrl()
except this returns a view/{name} path even for the default view.
-
getSearchUrl
public String getSearchUrl()
Description copied from interface:SearchItem
Returns the URL of this item relative to the parentSearchItem
.- Specified by:
getSearchUrl
in interfaceSearchItem
- 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 Jenkins.)
-
getActions
public List<Action> getActions()
Returns the transientAction
s 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
@Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) @Deprecated public void updateTransientActions()
Deprecated.This method does nothing and should not be usedNo-op. Included to maintain backwards compatibility.
-
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
@NonNull public ACL getACL()
Returns theACL
for this object.- Specified by:
getACL
in interfaceAccessControlled
- Returns:
- never null.
-
onJobRenamed
@Deprecated public void onJobRenamed(Item item, String oldName, String newName)
Deprecated.Does not work properly with moved jobs. UseItemListener.onLocationChanged(hudson.model.Item, java.lang.String, java.lang.String)
instead.
-
hasPeople
@Deprecated public boolean hasPeople()
Deprecated.Potentially very expensive call; do not use from Jelly views.Does thisView
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
protected void makeSearchIndex(SearchIndexBuilder sib)
Add a simple CollectionSearchIndex object to sib- Parameters:
sib
- the SearchIndexBuilder- Since:
- 2.200
-
makeSearchIndex
public SearchIndexBuilder makeSearchIndex()
Description copied from class:AbstractModelObject
Default implementation that returns empty index.- Overrides:
makeSearchIndex
in classAbstractModelObject
-
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
@POST 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 thesubmit(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 newItem
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
-
doCheckJobName
@Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public FormValidation doCheckJobName(@QueryParameter String value)
Makes sure that the given name is good as a job name. For use fromnewJob
.
-
doItemCategories
@Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public Categories doItemCategories(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp, @QueryParameter String iconStyle) throws IOException, javax.servlet.ServletException
An API REST method to get the allowed {$link TopLevelItem}s and its categories.- Returns:
- A
Categories
entity that is shown as JSON file. - 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
Acceptsconfig.xml
submission, as well as serve it.- Throws:
IOException
-
writeXml
public void writeXml(OutputStream out) throws IOException
- Throws:
IOException
- Since:
- 1.538
-
updateByXml
public void updateByXml(Source source) throws IOException
Updates the View with the new XML definition.- Parameters:
source
- source of the Item's new definition. The source should be either aStreamSource
orSAXSource
, other sources may not be handled.- Throws:
IOException
-
doChildrenContextMenu
public ModelObjectWithContextMenu.ContextMenu doChildrenContextMenu(org.kohsuke.stapler.StaplerRequest request, org.kohsuke.stapler.StaplerResponse response) throws Exception
Description copied from interface:ModelObjectWithChildren
Generates the context menu to list up all the children.- Specified by:
doChildrenContextMenu
in interfaceModelObjectWithChildren
- Throws:
Exception
-
all
public static DescriptorExtensionList<View,ViewDescriptor> all()
Returns all the registeredViewDescriptor
s.
-
allInstantiable
@NonNull public static List<ViewDescriptor> allInstantiable()
Returns theViewDescriptor
instances that can be instantiated for theViewGroup
in the currentStaplerRequest
.NOTE: Historically this method is only ever called from a
StaplerRequest
- Returns:
- the list of instantiable
ViewDescriptor
instances for the currentStaplerRequest
-
registerPermissions
@Initializer(before=SYSTEM_CONFIG_LOADED) @Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public static void registerPermissions()
-
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
Instantiate View subtype from XML stream.- Parameters:
name
- Alternative name to use ornull
to keep the one in xml.- Throws:
IOException
-
-