Abstract:
Embodiments of the present invention address deficiencies of the art in respect to drag-and-drop operations for content in a portal view and provide a method, system and computer program product for provisioning a portlet viewer for viewing drag-and-drop content in a portal environment. In one embodiment, a computer-implemented method for provisioning a portlet viewer for viewing drag-and-drop content in a portal page can include determining a content type for content selected externally to the portal page subsequent to rendering the portal page, locating a portlet viewer associated with the determined content type, provisioning the located portlet viewer in the portal page, and rendering the provisioned portlet viewer in the portal page with the content.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to the field of portal environment management and more particularly to the field of viewing content in a portlet within a portal environment. 
         [0003]    2. Description of the Related Art 
         [0004]    Distributing content about large computer communications networks is not without its challenges. In particular, the quantity of content available for distribution in a computer communications network often varies proportionally to the size of the computer communications network. At the extreme, the Internet hosts a vast quantity of content not easily accessible by most end-users. Portals represent a sensible solution to the problem of aggregating content through a channel paradigm in a single, network-addressable location. In consequence, portals have become the rage in content distribution. 
         [0005]    Portlets are the visible active components included as part of portal pages. Similar to the graphical windows paradigm of windowing operating systems, each portlet in a portal occupies a portion of the portal page through which the portlet can display associated content from a portlet channel. Portlets are known to include both simple applications such as an electronic mail client, and also more complex applications such as forecasting output from a customer relationship management system. The prototypical portlet can be implemented as server-side scripts executed through a portal server. 
         [0006]    From the end-user perspective, a portlet is a content channel or application to which the end-user can subscribe. By comparison, from the perspective of the content provider, a portlet is a means through which content can be distributed in a personalized manner to a subscribing end-user. Finally, from the point of view of the portal, a portlet merely is a component which can be rendered within the portal page. In any case, by providing one or more individually selectable and configurable portlets in a portal, portal providers can distribute content and applications through a unified interface in a personalized manner according to the preferences of the end-user. 
         [0007]    Portal servers are computer programs which facilitate the distribution of portal based Web sites on the public Internet or a private intranet. Importantly, it will be recognized by one of ordinary skill in the art that the signature characteristic of all conventional portal servers can include the aggregation of content from several portlet applications within a single distributable page in a uniform manner. To that end, each portlet application within the portal page can be represented by a portlet user interface distributed by the portal server to requesting client computing devices. 
         [0008]    In a portal environment, it is a common operation for a user to customize a portal view by adding content to the portal view. In many cases, the content to be added is basic content that has been obtained from another application or location by way of a cut-and-paste or drag-and-drop operation. Basic content often includes copied text, graphics or image content, entire documents, spreadsheets, streaming data sources, Weblogs, RSS or syndicated content feeds, or other reference objects like a uniform resource locator (URL). In order to add basic content to a portal view, the portal view already must include a corresponding viewer—typically a portlet application configured for rendering the pertinent basic content. If the portal view does not already include a corresponding viewer, a configuration mode must be utilized through which a corresponding viewer can be selected for addition to the portal page. 
         [0009]    United States Patent Application Publication No. US 2004/0123238 A1 to Hefetz et al. for SELECTIVELY INTERPRETED PORTAL PAGE LAYOUT TEMPLATE (hereinafter, “Hefetz”), partially addresses the accommodation of a drag-and-drop operation for adding content to a portal page in a portal environment. In Hefetz, during the design phase of a portal page, a placeholder in a portal template can be translated into a representation of a container designed to present portal content. Subsequently, during run-time, dynamic content can be received from a dynamic content source and the placeholder in the portal template can be translated into a presentation of the container containing portal dynamic content components. 
         [0010]    Notwithstanding the solution proposed by Hefetz, in order to accommodate a drag-and-drop operation for basic content, the portal page must be pre-configured at design-time with a placeholder for a container able to render the basic content provided in a drag-and-drop operation at run-time. The use of a placeholder in the absence of a drag-and-drop operation can be inefficient and can needlessly consume real estate in the portal view. Moreover, to properly pre-configure the placeholder, some a priori knowledge of the content to be added to the portal view must exist. 
       BRIEF SUMMARY OF THE INVENTION 
       [0011]    Embodiments of the present invention address deficiencies of the art in respect to drag-and-drop operations for content in a portal view and provide a novel and non-obvious method, system and computer program product for provisioning a portlet viewer for viewing drag-and-drop content in a portal environment. In one embodiment, a computer-implemented method for provisioning a portlet viewer for viewing drag-and-drop content in a portal page can include determining a content type for content selected externally to the portal page subsequent to rendering the portal page, locating a portlet viewer associated with the determined content type, provisioning the located portlet viewer in the portal page, and rendering the provisioned portlet viewer in the portal page with the content. 
         [0012]    In one aspect of the embodiment, determining a content type for content selected externally to the portal page subsequent to rendering the portal page can include detecting a drop event for a drag and drop operation for content selected externally to the portal page, and determining a content type for the content. In another aspect of the embodiment, determining a content type for content selected externally to the portal page subsequent to rendering the portal page can include detecting a paste event for a cut and paste operation for content selected externally to the portal page and determining a content type for the content. 
         [0013]    In either case, the method further can include identifying a designated portion of the portal page for receiving the content. Consequently, provisioning the located portlet viewer in the portal page can include provisioning the located portlet viewer in the designated portion of the portal page for receiving the content. Finally, provisioning the located portlet viewer in the portal page identifying an existing instance of the located portlet viewer in the portal page, and configuring the existing instance of the located portlet viewer to receive the content. 
         [0014]    Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0015]    The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0016]      FIG. 1  is a schematic illustration of a portal data processing system configured for provisioning a portlet viewer for viewing drag-and-drop content in a portal page; 
           [0017]      FIGS. 2A and 2B , taken together, are a pictorial illustration of a portal data processing system configured for provisioning a portlet viewer for viewing drag-and-drop content in a portal page; and, 
           [0018]      FIG. 3  is a flow chart illustrating a process for provisioning a portlet viewer for viewing drag-and-drop content in a portal page. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0019]    Embodiments of the present invention provide a method, system and computer program product for provisioning a portlet viewer for viewing drag-and-drop content in a portal page]. In accordance with an embodiment of the present invention, content from an application external to a portal page can be copied and an available portion of the portal page can be designated to receive the copied content. The content can be analyzed to determine a content type and a corresponding portlet viewer can be selected to render the content in the portal page. Subsequently, the portlet viewer can be provisioned for placement in the available portion of the portal page. Alternatively, an existing instance of the portlet viewer in the portal page can be selected to render the content. 
         [0020]    In further illustration,  FIG. 1  is a schematic illustration of an exemplary portal data processing system configured for provisioning a portlet viewer for viewing drag-and-drop content in a portal page The portal data processing system can include a portal page  135  communicatively coupled to a selection of portlet applications  115 A,  115 B,  115   n  through a portal server  130 . Each portlet application  115 A,  115 B,  115   n  can produce a view based upon portlet data  120 A,  120 B,  120   n  in the form of portlet markup  125  through corresponding rendering logic  110 A,  110 B,  110   n . Notably, the rendering logic  110 A,  110 B,  110   n  can be active markup such as a Java Server Page (JSP), Active Server Page (ASP), or other dynamic script, in which logical scriptlets can be embedded to produce specific markup language tags. 
         [0021]    A portlet aggregator  105  can be coupled to each portlet application  115 A,  115 B,  115   n  to receive the portlet markup  125  and to aggregate the portlet markup  125  into view in the portal page  135 . By aggregation, it is meant that the individual markup language blocks produced by each portlet  115 A,  115 B,  115   n  can be combined into a single cohesive markup language document configured for distribution to and use within a conventional content browser. In this regard, the portal page  135  can be disposed in the portal server  130  from which the portal  135  can be accessed by client content browsing devices  140  over a computer communications network  160  such as a local computer communications network, for instance a private intranet, or a global computer communications network, for instance the public Internet. 
         [0022]    Notably, drag-and-drop provisioning logic  300 B is an active client-side component that can be coupled to a server-side drag-and-drop provisioning logic  300 B over the computer communications network  160 . The drag-and-drop provisioning logic  300 B can be configured to detect a request to copy selected content  165  from an application which is external to the portal page  135  into a designated portion of the portal page  135  such as a vacant portion not already occupied by an instance of the portlets  115 A,  115 B,  115   n . Responsive to detecting the request, the drag-and-drop provisioning logic  300 B can notify drag-and-drop provisioning logic  300 A. 
         [0023]    The drag-and-drop provisioning logic  300 A in turn can be configured to locate a content type for the content within a table  155 . Based upon the content type, the drag-and-drop provisioning logic  300 A can select a particular one of the portlets  115 A,  115 B,  115   n  associated with the content type for provisioning into the designated portion of the portal page  135 . Subsequently, the portal page  135  can be rendered with the provisioned instances of the portlets  115 A,  115 B,  115   n  including one of the portlets  115 A,  115 B,  115   n  in which the content  165  has been rendered. 
         [0024]    In more particular illustration,  FIGS. 2A and 2B , taken together, are a pictorial illustration of an exemplary portal data processing system configured for provisioning a portlet viewer for viewing drag-and-drop content in a portal page. As shown in  FIG. 2A , a selection  270  of content  260  within an application  250  which is external to a portal page  220  rendered in a client  210 , for instance a content browser, can be selected for copying into a designated space  240  of the portal page  220  that is not already occupied by an instance of a portlet  230 A,  230 B,  230 C. For example, the selection  270  can be dragged and dropped into the designated space  240  through the operation of a pointing device  280 , or the selection  270  can be cut and pasted into the designated space  240 . 
         [0025]    As shown in  FIG. 2B , upon detecting either a drop event or a paste event for a drag and drop operation or a cut and paste operation, respectively, the content type for the content  260  can be determined. Based upon the determination, a particular portlet  230 D can be identified for use in rendering the selection  270  in the portal page  220 . Subsequently, the identified portlet  230 D can be provisioned into the designated space  240  in the portal page  220  and the selection  270  can be rendered within the portlet  230 D. 
         [0026]    Significantly, the selection  270  can be rendered within the portlet  230 D without requiring an end user to engage in a complex configuration process and the mere act of dragging and dropping the selection  270  into the designated space can suffice for causing the provisioning of the portlet  230 D and the display of the selection  270  in the portlet  230 D. In the case where more than one interpretation of data type is possible, the user can be presented with the choices and select the appropriate type. Alternatively, the provisioning component can base the selection upon weighted priorities of the available data types. In either event, reconfiguration of the provisioning choices can allow changes in the original provisioning when necessary. 
         [0027]    Turning now to  FIG. 3 , a flow chart is shown which illustrates a process for provisioning a portlet viewer for viewing drag-and-drop content in a portal page. Beginning in block  310 , a drop event can be detected for a location in a portal page. In block  320 , content associated with the drop event can be obtained and a content type for the content can be determined in block  330 . In block  340 , a portlet associated with the identified content type can be located. If, in decision block  350 , a portlet which is associated with the content type cannot be located, an error condition can arise in block  360 . 
         [0028]    Otherwise, in decision block  370 , if more than one content type is located for drag-and-drop event, in block  380  where more than one interpretation of data type is possible, one of the data types can be selected. For instance the user can be presented with the choices and select the appropriate type. Alternatively, the selection can be based upon weighted priorities of the available data types. In any event, in block  390 , the located portlet can be provisioned for the location and in block  400  the content can be loaded into the portlet for viewing. Finally, in block  410 , the portlet can be rendered in the portal page. 
         [0029]    Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
         [0030]    For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. 
         [0031]    A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.