hudson.model
Class MyViewsProperty

java.lang.Object
  extended by hudson.model.UserProperty
      extended by hudson.model.MyViewsProperty
All Implemented Interfaces:
ExtensionPoint, Action, Describable<UserProperty>, ModelObject, ReconfigurableDescribable<UserProperty>, Saveable, ViewGroup, AccessControlled, org.kohsuke.stapler.StaplerFallback

public class MyViewsProperty
extends UserProperty
implements ViewGroup, Action, org.kohsuke.stapler.StaplerFallback

A UserProperty that remembers user-private views.

Author:
Tom Huybrechts

Nested Class Summary
static class MyViewsProperty.DescriptorImpl
           
static class MyViewsProperty.GlobalAction
           
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
 
Fields inherited from class hudson.model.UserProperty
user
 
Fields inherited from interface hudson.model.Saveable
NOOP
 
Constructor Summary
MyViewsProperty(String primaryViewName)
           
 
Method Summary
 void addView(View view)
           
 boolean canDelete(View view)
          Determine whether a view may be deleted.
 void checkPermission(Permission permission)
          Convenient short-cut for getACL().checkPermission(permission)
 void deleteView(View view)
          Deletes a view in this group.
 void doCreateView(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp)
           
 org.kohsuke.stapler.HttpResponse doIndex()
           
 FormValidation doViewExistsCheck(String value, boolean exists)
          Checks if a private view with the given name exists.
 ACL getACL()
          Obtains the ACL associated with this object.
 String getDisplayName()
          Gets the string to be displayed.
 String getIconFileName()
          Gets the file name of the icon.
 ItemGroup<? extends TopLevelItem> getItemGroup()
          Returns the ItemGroup from which the views in this group should render items.
 MyViewsTabBar getMyViewsTabBar()
           
 View getPrimaryView()
          If the view group renders one view in its own URL (like Jenkins top page does), then that view is called the primary view.
 String getPrimaryViewName()
           
 Object getStaplerFallback()
           
 String getUrl()
          Returns the path of this group, relative to the context root, like "foo/bar/zot/".
 String getUrlName()
          Gets the URL path name.
 User getUser()
           
 View getView(String name)
          Gets a view of the given name.
 List<Action> getViewActions()
          Returns actions that should be displayed in views.
 Collection<View> getViews()
          Gets all the views in this group.
 ViewsTabBar getViewsTabBar()
          Gets the TabBar for the views.
 boolean hasPermission(Permission permission)
          Convenient short-cut for getACL().hasPermission(permission)
 void onViewRenamed(View view, String oldName, String newName)
          View calls this method when it's renamed.
 Object readResolve()
           
 UserProperty reconfigure(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject form)
          When a parent/owner object of a Describable gets a config form submission and instances are recreated, this method is invoked on the existing instance (meaning the 'this' reference points to the existing instance) to create a new instance to be added to the parent/owner object.
 void save()
          Persists the state of this object into XML.
 void setPrimaryViewName(String primaryViewName)
           
 
Methods inherited from class hudson.model.UserProperty
all, getDescriptor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MyViewsProperty

@DataBoundConstructor
public MyViewsProperty(String primaryViewName)
Method Detail

readResolve

public Object readResolve()

getPrimaryViewName

public String getPrimaryViewName()

setPrimaryViewName

public void setPrimaryViewName(String primaryViewName)

getUser

public User getUser()

getUrl

public String getUrl()
Description copied from interface: ViewGroup
Returns the path of this group, relative to the context root, like "foo/bar/zot/". Note no leading slash but trailing slash.

Specified by:
getUrl in interface ViewGroup

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.

getViews

public Collection<View> getViews()
Description copied from interface: ViewGroup
Gets all the views in this group.

Specified by:
getViews in interface ViewGroup
Returns:
can be empty but never null.

getView

public View getView(String name)
Description copied from interface: ViewGroup
Gets a view of the given name. This also creates the URL binding for views (in the form of ".../view/FOOBAR/...")

Specified by:
getView in interface ViewGroup

canDelete

public boolean canDelete(View view)
Description copied from interface: ViewGroup
Determine whether a view may be deleted.

Specified by:
canDelete in interface ViewGroup

deleteView

public void deleteView(View view)
                throws IOException
Description copied from interface: ViewGroup
Deletes a view in this group.

Specified by:
deleteView in interface ViewGroup
Throws:
IOException

onViewRenamed

public void onViewRenamed(View view,
                          String oldName,
                          String newName)
Description copied from interface: ViewGroup
View calls this method when it's renamed. This method is intended to work as a notification to the ViewGroup (so that it can adjust its internal data structure, for example.)

It is the caller's responsibility to ensure that the new name is a legal view name.

Specified by:
onViewRenamed in interface ViewGroup

addView

public void addView(View view)
             throws IOException
Throws:
IOException

getPrimaryView

public View getPrimaryView()
Description copied from interface: ViewGroup
If the view group renders one view in its own URL (like Jenkins top page does), then that view is called the primary view. In this case, the hyperlink to the primary view points to the view group itself.

If the view group doesn't do such rendering, this method can always return null.

This method was added later to ViewGroup, so old plugins might not be implementing this. To work around this, Views can use View.getOwnerPrimaryView().

Specified by:
getPrimaryView in interface ViewGroup

doIndex

public org.kohsuke.stapler.HttpResponse doIndex()

doCreateView

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

doViewExistsCheck

public FormValidation doViewExistsCheck(@QueryParameter
                                        String value,
                                        @QueryParameter
                                        boolean exists)
Checks if a private view with the given name exists. An error is returned if exists==true but the view does not exist. An error is also returned if exists==false but the view does exist.


getACL

public ACL getACL()
Description copied from interface: AccessControlled
Obtains the ACL associated with this object.

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

checkPermission

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

Specified by:
checkPermission in interface AccessControlled
Throws:
org.acegisecurity.AccessDeniedException

hasPermission

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

Specified by:
hasPermission in interface AccessControlled

getDisplayName

public String getDisplayName()
Description copied from interface: Action
Gets the string to be displayed. The convention is to capitalize the first letter of each word, such as "Test Result".

Specified by:
getDisplayName in interface Action
Specified by:
getDisplayName in interface ModelObject

getIconFileName

public String getIconFileName()
Description copied from interface: Action
Gets the file name of the icon.

Specified by:
getIconFileName in interface Action
Returns:
If just a file name (like "abc.gif") is returned, it will be interpreted as a file name inside /images/24x24. This is useful for using one of the stock images.

If an absolute file name that starts from '/' is returned (like "/plugin/foo/abc.gif'), then it will be interpreted as a path from the context root of Jenkins. This is useful to pick up image files from a plugin.

Finally, return null to hide it from the task list. This is normally not very useful, but this can be used for actions that only contribute floatBox.jelly and no task list item. The other case where this is useful is to avoid showing links that require a privilege when the user is anonymous.

See Also:
Functions.isAnonymous(), Functions.getIconFilePath(Action)

getUrlName

public String getUrlName()
Description copied from interface: Action
Gets the URL path name.

tions For example, if this method returns "xyz", and if the parent object (that this action is associated with) is bound to /foo/bar/zot, then this action object will be exposed to /foo/bar/zot/xyz.

This method should return a string that's unique among other Actions.

The returned string can be an absolute URL, like "http://www.sun.com/", which is useful for directly connecting to external systems.

If the returned string starts with '/', like '/foo', then it's assumed to be relative to the context path of the Jenkins webapp.

Specified by:
getUrlName in interface Action
Returns:
null if this action object doesn't need to be bound to web (when you do that, be sure to also return null from Action.getIconFileName().
See Also:
Functions.getActionUrl(String, Action)

reconfigure

public UserProperty reconfigure(org.kohsuke.stapler.StaplerRequest req,
                                net.sf.json.JSONObject form)
                         throws Descriptor.FormException
Description copied from interface: ReconfigurableDescribable
When a parent/owner object of a Describable gets a config form submission and instances are recreated, this method is invoked on the existing instance (meaning the 'this' reference points to the existing instance) to create a new instance to be added to the parent/owner object.

The default implementation of this should be the following:

 return form==null ? null : getDescriptor().newInstance(req, form);
 

Specified by:
reconfigure in interface ReconfigurableDescribable<UserProperty>
Overrides:
reconfigure in class UserProperty
Parameters:
req - The current HTTP request being processed.
form - JSON fragment that corresponds to this describable object. If the newly submitted form doesn't include a fragment for this describable (meaning the user has de-selected your descriptor), then this argument is null.
Returns:
The new instance. To not to create an instance of a describable, return null.
Throws:
Descriptor.FormException

getViewsTabBar

public ViewsTabBar getViewsTabBar()
Description copied from interface: ViewGroup
Gets the TabBar for the views. TabBar for views can be provided by extension. Only one TabBar can be active at a given time (Selectable by user in the global Configuration page). Default TabBar is provided by Hudson Platform.

Specified by:
getViewsTabBar in interface ViewGroup

getItemGroup

public ItemGroup<? extends TopLevelItem> getItemGroup()
Description copied from interface: ViewGroup
Returns the ItemGroup from which the views in this group should render items.

Generally speaking, Views render a subset of TopLevelItems that belong to this item group. This method was added later to ViewGroup, so old plugins might not be implementing this. To work around this, Views can use View.getOwnerItemGroup().

Specified by:
getItemGroup in interface ViewGroup
Returns:
Never null. Sometimes this is ModifiableItemGroup (if the container allows arbitrary addition)

getViewActions

public List<Action> getViewActions()
Description copied from interface: ViewGroup
Returns actions that should be displayed in views.

In this interface, the return value is used read-only. This doesn't prevent subtypes from returning modifiable actions, however.

This method was added later to ViewGroup, so old plugins might not be implementing this. To work around this, Views can use View.getOwnerViewActions().

Specified by:
getViewActions in interface ViewGroup
Returns:
may be empty but never null.
See Also:
Actionable.getActions()

getStaplerFallback

public Object getStaplerFallback()
Specified by:
getStaplerFallback in interface org.kohsuke.stapler.StaplerFallback

getMyViewsTabBar

public MyViewsTabBar getMyViewsTabBar()


Copyright © 2004-2013. All Rights Reserved.