iShacks
Directory actions
More options
Directory actions
More options
iShacks
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta name=Title content="iShacks Readme"> <meta name=Keywords content=""> <meta http-equiv=Content-Type content="text/html; charset=utf-8"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 10"> <meta name=Originator content="Microsoft Word 10"> <link rel=File-List href="proxy.php?url=https%3A%2F%2Fwww.github.com%2FReadme_files%2Ffilelist.xml"> <title>iShacks Readme</title> <!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Template>Normal</o:Template> <o:LastAuthor>a b</o:LastAuthor> <o:Revision>3</o:Revision> <o:Created>2002-10-15T22:43:00Z</o:Created> <o:LastSaved>2002-10-15T22:48:00Z</o:LastSaved> <o:Pages>2</o:Pages> <o:Words>625</o:Words> <o:Characters>3566</o:Characters> <o:Company>c</o:Company> <o:Lines>29</o:Lines> <o:Paragraphs>7</o:Paragraphs> <o:CharactersWithSpaces>4379</o:CharactersWithSpaces> <o:Version>10.1316</o:Version> </o:DocumentProperties> </xml><![endif]--> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin-right:0in; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; font-size:10.0pt; font-family:Times;} h1 {mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:1; font-size:12.0pt; font-family:Times; mso-font-kerning:0pt; font-weight:normal;} h2 {mso-style-next:Normal; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:2; font-size:12.0pt; font-family:Times; font-weight:normal; font-style:italic;} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:Times;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} p {margin-right:0in; mso-margin-top-alt:auto; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; font-size:10.0pt; font-family:Times;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="1027"/> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> </head> <body bgcolor=white lang=EN-US link=blue vlink=purple style='tab-interval:.5in'> <div class=Section1> <p align=center style='text-align:center'><span style='font-size:18.0pt'><b>iShacks</b></span><span style='font-size:18.0pt'><o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><b>Difficulty Level:</b></span><span style='font-size: 12.0pt'> Intermediate<o:p></o:p></span></p> <p><span style='font-size:12.0pt'><b>Topics Covered:</b></span><span style='font-size:12.0pt'> EOF, cookies, DirectActions, component validation <o:p></o:p></span></p> <p><span style='font-size:12.0pt'><b>Framework Classes Used: </b></span><span style='font-size:12.0pt'>EOF Control Layer, WOCookie, WOComponent validation mechanisms, JavaRealEstate example framework<b><o:p></o:p></b></span></p> <p><span style='font-size:12.0pt'><b>Overview:</b></span><span style='font-size:12.0pt'><o:p></o:p></span></p> <p class=MsoBodyText><span style='mso-tab-count:1'> </span>This in an HTML based application that uses the JavaRealEstate Framework (also used by the JCRealEstate example which is Java Client based).</p> <p class=MsoBodyText style='text-indent:.5in'>This example implements a simple Real Estate site in which Agents make recommendations to their Customers about which Listings they should look at. There is also a general Listings search mechanism, including the support of searching via Direct Actions. New Listings, Customers and Agents can be added to the Data Base. The edit pages for Listings and Customers use component validation to make sure the field input is correct.</p> <p class=MsoBodyText style='text-indent:.5in'>WOCookies are used to implement and automatic login functionality.</p> <p><span style='font-size:12.0pt'><b>Usage:</b></span><span style='font-size: 12.0pt'><o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt;text-indent:.5in'><span style='font-size:12.0pt'>There are three ways you can use the application, depending on how you log in. In this section, when mentioning a particular page name we also list the WO Component it refers to in the project.<o:p></o:p></span></p> <p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in; margin-left:.5in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <h1><i>1) Not logged in <o:p></o:p></i></h1> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>From the initial log in page (Main component) you can chose to click on the ‘search’ link and go directly to the search page (SearchPage component) without logging into the app. The search page displays the results in a list (SearchResultPage component) from which you can click on a listing to see the details (ListingDetailPage component).<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>From the main page you can also chose to create a new Customer (EditUserPage component). <o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>The “Remember my password” checkbox tells the app to store your user information in a cookie so that the next time you connect to the main page it automatically logs you in.<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <h2>2) Logged in as a Customer</h2> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>To see the full list of valid username/password combinations, you can open up the<span style="mso-spacerun: yes"> </span>RealEstate eomodel (in /Library/Frameworks/JavaRealEstate.framework/Resources) and use the Data Browser of EOModeler to look at the data for the User entity. Some valid username/password combinations are <b>wocustomer/wocustomer</b></span><span style='font-size: 12.0pt'>, <b>afell/fells</b></span><span style='font-size:12.0pt'>, and <b>apark/parker</b></span><span style='font-size:12.0pt'>.<o:p></o:p></span></p> <p class=MsoBodyText><span style='mso-tab-count:1'> </span>After providing a valid login, the customer is taken to the home page (HomePage component) where they can see a picture of their agent and the listings recommended by the agent. Clicking on a listing takes them to the detail page. The ‘Not for me’ link removes the listing.</p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>The Search Property in this mode works the same as if the customer were not logged in.<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>Choose Agent (ChooseAgentPage component) allows the customer to select a new agent. Clicking on an agent’s name takes them to the Agent Detail page where you can assign ratings and comments to a particular agent.<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>The Personal Information page allows the updating of name, username, password, and the adding/deleting of contact numbers.<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style="mso-spacerun: yes"> </span><o:p></o:p></span></p> <p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in; margin-left:.5in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <h2>3) Logged in as an Agent</h2> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>Valid agent username/password combinations are <b>woagent/woagent</b></span><span style='font-size:12.0pt'>, <b>sbass/basset</b></span><span style='font-size: 12.0pt'>, and <b>cches/chesterton</b></span><span style='font-size:12.0pt'>. New agents can only be created by existing agents.<o:p></o:p></span></p> <p class=MsoBodyText><span style='mso-tab-count:1'> </span>The Agent’s home page (HomePage component) display a list of customers and properties they manage. </p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>To recommend a property to a customer, the agent uses the search function for properties and in the Listing Detail page they can specify a customer’s username. The listing detail page for agents also allows the editing and deleting of property information.<o:p></o:p></span></p> <p class=MsoBodyText><span style='mso-tab-count:1'> </span>The Personal Information page for Agents is similar to the Customer one but adds the functionality of setting a photo for the agent. Sample photos for agents and properties can be found the the SampleImages directory of the project.</p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>Agents are also able to create new properties (EditListingPage component).<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <h2>4) Via a Direct Action</h2> <p class=MsoNormal><span style='font-size:12.0pt'><span style='mso-tab-count: 1'> </span>The application defines a direct action called FindListings which can be used to execute direct searches. The following example http request sends a direct action request to search on listings in the state of CA with an upperLimitPrice of $300000.<o:p></o:p></span></p> <p class=MsoNormal style='margin:0in;margin-bottom:.0001pt'><span style='font-size:12.0pt'>http://yourhostname/cgi-bin/WebObjects/iShacks.woa/wa/FindListings?state=CA&upperLimitPrice=300000<o:p></o:p></span></p> <p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in; margin-left:.5in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> <p class=MsoNormal style='margin-top:0in;margin-right:0in;margin-bottom:0in; margin-left:.5in;margin-bottom:.0001pt'><span style='font-size:12.0pt'><span style="mso-spacerun: yes"> </span><o:p></o:p></span></p> <p><span style='font-size:12.0pt'><b>Technical Points of Interest:</b></span><span style='font-size:12.0pt'><o:p></o:p></span></p> <p><span style='font-size:12.0pt'>DirectAction.java<o:p></o:p></span></p> <p><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>This class implements the direct action FindListings<o:p></o:p></span></p> <p><span style='font-size:12.0pt'>IshacksCookie.java<o:p></o:p></span></p> <p><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>This subclass of WOCookie store the users name, username, and password. See additional comments in the class file.<o:p></o:p></span></p> <p><span style='font-size:12.0pt'>ValidationAwareComponent.java<o:p></o:p></span></p> <p><span style='font-size:12.0pt'><span style='mso-tab-count:1'> </span>This is the superclass of EditListingPage and EditUserPage.<span style="mso-spacerun: yes"> </span>See additional comments in class file.<o:p></o:p></span></p> <p><span style='font-size:12.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p> </div> </body> </html>