Create shortcut of page on a button click in Oracle ADF using JShortcut library (For windows)

Sharing is Caring

This post is about a small trick to create shortcut of page from ADF application
Actually this type of requirement doesn’t come in picture when you are working in web application , for web application bookmarks replaces desktop shortcut
Still if you want to do this then you can follow approach mentioned in this post

Creating shortcut programmatically requires access of operating system but you need not to worry about that
There is a java library to do this for you – JShortcut
Download jar files from here..

1. Now first step is to create a fusion web application and add this jar to viewController project

2. Create a page (independent runnable like jspx or JSF, not fragments) and drop a button in that
3. Create a managed bean to handle button’s action
Here we will make use of JShellLink class of this library

See what docs says about this –

Provide access to shortcuts (shell links) from Java. The native library (jshortcut.dll) is loaded when JShellLink is first loaded. By default, JShellLink first looks for the native library in the PATH, using System.loadLibrary. If the native library is not found in the PATH, JShellLink then looks through each directory in the CLASSPATH (as determined by the value of the system property java.class.path). If an entry in the CLASSPATH is a jar file, then JShellLink looks for the native library in the directory containing that jar file. The application can override this behavior and force JShellLink to look for the native library in a specific directory by setting the system property JSHORTCUT_HOME to point to that directory. This property must be set before the JShellLink class is loaded. This makes it possible to use this library from a self-extracting jar file. 

4. Get the url of current page
How to get url of current page in ADF Application?
 (See button action listener code for this )
5. Check code written in managed bean-

import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import javax.servlet.http.HttpServletRequest;

import net.jimmc.jshortcut.JShellLink;

import oracle.adf.controller.ControllerContext;

JShellLink link;
String filePath;

/**Button action listener to create shortcurt of current page on desktop
* @param actionEvent
*/
public void createSortcutonDpAction(ActionEvent actionEvent) {
try {
//Get url of current ViewPort
String viewId = ControllerContext.getInstance().getCurrentViewPort().getViewId();
String viewUrl = ControllerContext.getInstance().getGlobalViewActivityURL(viewId);

//Get Server Name and Port
FacesContext fctx = FacesContext.getCurrentInstance();
HttpServletRequest hsrequest = (HttpServletRequest) fctx.getExternalContext().getRequest();

String serverName = hsrequest.getServerName();
int serverPort = hsrequest.getServerPort();

String runnableUrl = “http://” + serverName + “:” + serverPort + viewUrl;

//Create Object of shortcurt link
link = new JShellLink();
filePath = JShellLink.getDirectory(“”) + runnableUrl;
//Set Where you want to create shortcut
link.setFolder(JShellLink.getDirectory(“desktop”));
//Set shortcut file name
link.setName(“Programmatically Created Shortcut”);
//Use ico file to use as shortcut icon
link.setIconLocation(“C://Users//Admin//Desktop//Jdev_Logo.ico”);
link.setPath(filePath);
link.save();

} catch (Exception ex) {
ex.printStackTrace();
}

}

6.  All done 🙂 , run and check application
Click on button and check on desktop

 

 

Create shortcut of page

Same code can be used to create shortcut from pure java application
Cheers 🙂 Happy Learning

Related Posts

An Oracle ACE, Blogger, Reviewer, Technical Lead working on Oracle ADF

0 thoughts on “Create shortcut of page on a button click in Oracle ADF using JShortcut library (For windows)”

Leave a Reply

Your email address will not be published. Required fields are marked *