Two (and a half) Proposals to Extend Portlet Modes Craig Doremus October 19, 2006.

Slides:



Advertisements
Similar presentations
A Common Sense Approach to Web Usability Steve Krug Highly Recommend Resource!
Advertisements

© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
SharePoint 2010 Permissions Keith Tuomi. profile KEITH TUOMI SharePoint Consultant / Developer at itgroove Developing Online Systems since years.
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
THE OBJECT-ORIENTED DESIGN WORKFLOW Interfaces & Subsystems.
Indianapolis Java User Group JSR-168 Portal Presentation Introduction: Kurt Desserich.
New uPortal Contributions from the University of Wisconsin-Madison Jim Helwig University of Wisconsin-Madison Eric Dalquist Unicon, Inc. JA-SIG December.
Java Portlets (JSR-168) SSE USTC Qing Ding.
Portals and portlets Sean C. Sullivan October 24, 2006 Portland Java Users Group.
9.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Microsoft Word 2010 Lesson 10. Learning Objectives 1 Understand and Use Mail Merge 2 Select and Edit a main document 3 Create a source document 4 Preview,
Indianapolis Java User Group Portal Presentation - Part 2 Introduction: Kurt Desserich.
INDIVIDUAL ACHIEVEMENT. EDUCATIONAL EXCELLENCE. ADMINISTRATIVE INNOVATION. INSTITUTIONAL PERFORMANCE. 1 Develop and Deploy JSR-168 Portlets Presented by:
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
1 ® Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 1 Building Portlets with ColdFusion Pete Freitag Foundeo, Inc.
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
Application Specific Module Tutorial Akos Balasko 02/07/
Candace Stover Principal Product Manager OracleAS Portal Oracle Corporation.
Online Catalog Tutorial. Introduction Welcome to the Online Catalog Tutorial. This is the place to find answers to all of your online shopping questions.
Enterprise Portals Empowering Business via Technology Rajesh Moparthi.
Presented by Syed Baber Development Lead Mazik Global.
© Copyright TONE SOFTWARE CORPORATION. Confidential and Proprietary. All rights reserved. ® Operator Training – Release Alarms List Management.
The EPIKH Project Portlet Develop Introduction Riccardo Rotondo Consortium GARR Tutorial per l’integrazione.
HR Development Division PA Office of Administration Room 511 Finance Building Harrisburg PA Enterprise Portal Community Management Overview Click.
Tutorial on Science Gateways, Roma, Riccardo Rotondo Web Application Development Introduction to application servers, web applications and portlets.
Introduction to portlet development Carla Carrubba INFN Dpt. Of Catania Giuseppina Inserra
Source-to-Pay (S2P) Initiative Coupa Supplier Network Training
Andrew(amwallis) Classes!
SI Ad hoc report builder overview
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
How to think about interaction
Portals: Background, Development & Conversion
Chance Chance Community Chest JOB SEEKER Community Chest JOB SEEKER
CARA 3.10 Major New Features
Data Virtualization Demoette… CIS Rights
Testing and Debugging.
Sri Vatsav Konreddy CIS 764 FALL 2007
Writing a Custom DispatchHandler
ConnectingOntario ClinicalViewer
Domain Matching for BID Association Requests
Introduction to Events
Transition from Classic Interface Phoenix Interface to
Explain to the group of pupils that they have been given an important opportunity to lead this intervention in their schools. They are communication role.
Lesson 2: Building Blocks of Programming
C# Event Processing Model
What is an Employer contact worth?
LightUp Dynamics 365 Brief Overview.
My Story Andrew.
So you were told to make a website
MultiMonitor PowerPoint 2007
How to manage Lodge dues billing and tracking of Lodge dues payments
Contract Status Report
Microsoft Word 2010 Lesson 10 Lesson 10
Introduction When searching for a new mattress, you have to make sure you know where to go to find the best one. The mattress you sleep on is going to.
CISC/CMPE320 - Prof. McLeod
Microsoft Word 2010 Lesson 10 Lesson 10
Flowserve Distributor Online Store & Portal
What Should I Do About Worries?
Where am I? Navigating a website: Browsing, searching, menus & breadcrumbs.
Flowserve Distributor Online Store & Portal
Microsoft Active Directory
Custom Dashboards Quick Help Guide
Flowserve Distributor Online Store & Portal
The uPortal Roadmap uPortal Software Developers Meeting
What Should I Do About Worries?
PromoVue User Training Part V.
Data Recovery: Why Secure Deletion is so Important.
Web Services Enhancements 2.0
Why Did you choose to take Part in this work ?
Presentation transcript:

Two (and a half) Proposals to Extend Portlet Modes Craig Doremus October 19, 2006

Preconditions I do not know what I'm talking about - I'm the guy who suggested that remotable portlets be optional in JSR- 286 at the first F2F meeting - What do you expect from somebody who got up at 3 am all week? - Some of these ideas are not fully baked ● Try not to all talk at the same time - Give someone another chance, Mike ● Some of my best friends are WSRP portlet developers - But we're no longer in WSRP-land here

Craig's Skewed View of a Portlet Mode ● A portlet mode is a loosely-coupled unit of portlet function – portlet developer's perspective ● A portlet mode is a navigational convenience – portal user's perspective ● Who's in control here (with modes)? a. Portlet 1. Controls function – what happens when a mode is rendered depends on the portlet implementation b. Portal 1. Renders appropriate window controls for supported modes 2. Controls security – edit or admin (config) mode 3. Controls screen real estate (window state) – print or preview mode JSR-168 déjà vu?

Imagine a world where a developer has full control over a portlet mode's function? ● Setting security aside (for now) - And conceding that the portal is in charge of window controls and window state ● We'll call this world an 'extension' to keep the WSRP folks happy (for now) ● What if we define a custom mode by a method call? - Like we do with doView(), doEdit() and doHelp() ● This opens up custom modes to anything the developer can think of - A scary thought!

@CustomModeHandler(mode="edit content", content-type="text/html") public void doHtmlEditContent(RenderRequest req, RenderResponse resp) {.....//do view mode logic and rendering here for text/html content", content-type="text/wml") public void doWmlEditContent(RenderRequest req, RenderResponse resp) {.....//do view mode logic and rendering here for text/wml } The content-type attribute is optional. In that case, all mime type renderings for a mode pass through the method. Method Annotation for a Custom Portlet Mode

Custom Mode Considerations ● Custom mode controls will be rendered as a drop-down or fly-out menu 1. Conserves screen real estate, which can be a premium for portlets ● Custom portlet modes will continue to be get/set as they are in JSR For custom modes, the method parameter will be annotation's mode attribute. ● Custom modes could be delegates for standard modes 1. Improves usability – e.g. Use a Customize Mode instead of Edit Mode ● Custom mode use cases are unlimited, but here are a couple of common ones: 1. Shopping cart portlet Shop/Continue Shopping Mode View Shopping Cart Mode Checkout Mode 2. Content management portlet: View Content Mode (could delegate to view mode) Edit Content Mode Approve Content Mode ● Usage of Custom Modes in this way promotes loose coupling in portlet design

Declarative Portlet Mode Security A contract between the developer and the portal administrator defined in portlet.xml ● User roles are either JEE roles or proprietary roles/groups defined in the portal implementation a. JEE role may be required if a portlet uses EJB/JSP/servlet with JEE security (jee attribute). ● Default is no portlet mode security (nothing in portlet.xml). ● This security model could be optional?In that case the administrator can override declarative security. a. Or we can be a hard ass and say that declarative security always wins ● If a user is in a role not allowed access to a specific mode, then the window control or menu to select that mode must be disabled or removed from the user interface. ● Declarative portlet mode security is applicable to all content types for a specific mode. ● Portlet mode security could work with both custom and standard modes except View mode (its up to you). ● PortletRequest.isUserInRole() can still be used inside the portlet for fine-grained security control. a. But the developer must keep in mind that the isUserInRole() call will never happen for a user restricted by declarative mode security. Using non-JEE roles/groups also complicates this issue.

..... text/html create content edit content approve content..... Creates portlet content create content Edits portlet content edit content Approves portlet content approve content..... create content content creator edit content content editor content approver approve content content approver Declarative Portlet Mode Security

..... create content content creator edit content content editor content approver approve content content approver..... Portlet.xml portlet-mode-security Element

Now for Something Completely Off-the-Wall! 1. Enable/disabling portlet mode controls in processAction() 1. Disable a specific mode: ActionResponse.enablePortletModeControl(“Whatever mode”, false) - What if you just called response.setPortletMode(“Whatever mode”) ? -- throw new StupidIdiotException() ?? 2. Setting initial portlet mode control content", content-type="text/html", initial-state=”disabled”) public void doHtmlEditContent(RenderRequest req, RenderResponse resp) {.....//do view mode logic and rendering here for text/html } 3. Used to assure that state is set before a mode is enabled. a. E.g. Disable the View Shopping Cart or Checkout Mode until at least one item is selected 4. How does it relate to Portlet Mode Security? - I'm going back to bed! You figure it out! (In other words, if you didn't like portlet mode handlers and portlet mode security, you really aren't going to like this)