beautypg.com

Designing for reusability – Apple WebObjects 3.5 User Manual

Page 106

background image

Chapter 6

Creating Reusable Components

106

that were linked in to the application executable for a component with that
name. For example, applications written entirely in WebScript use the default
application executable,

WODefaultApp

. This executable is linked to the frameworks

WebObjects.framework

and

WOExtensions.framework

, so any components defined in either

of these two frameworks can be used in a scripted application.

Designing for Reusability

Here are some points to consider when creating reusable components:

Make sure that your reusable component generates HTML that can be
embedded in the HTML of its parent component.

A reusable component should be designed to be a “good citizen” within
the context in which it will be used. Thus, for example, the template file
for a reusable component should not start and end with the and
tags (since these tags will be supplied by the parent
component). Similarly, it is unlikely that a reusable component’s template
would contain , , or tags. </p><p style="position:absolute;top:617px;left:337px;white-space:nowrap" class="ft05">Further, if you intend your component to be used within a form along with <br>other components, don’t declare the form (<FORM...> ... </FORM>) <br>within the reusable component’s template file. Instead, let the parent <br>component declare the form. Similar considerations pertain to submit <br>buttons. Since most browsers allow only one submit button within a form, <br>putting a submit button in a reusable component severely limits where it <br>can be used. </p><p style="position:absolute;top:759px;left:312px;white-space:nowrap" class="ft03">•</p><p style="position:absolute;top:759px;left:337px;white-space:nowrap" class="ft03">Guard against name conflicts. </p><p style="position:absolute;top:791px;left:337px;white-space:nowrap" class="ft05">Reusable components are identified by name only. See “Search Path for <br>Reusable Components” (page 105). Those that reside within a particular <br>application’s application directory are available only to that application. <br>Those that reside in a framework (for example, </p><p style="position:absolute;top:847px;left:627px;white-space:nowrap" class="ft00"><b>WOExtensions.framework</b></p><p style="position:absolute;top:846px;left:741px;white-space:nowrap" class="ft03">) are </p><p style="position:absolute;top:864px;left:337px;white-space:nowrap" class="ft05">available to all applications that link to it. Suppose you have a component <br>named NavigationControl in your application and one of the frameworks <br>that your application links to also has a NavigationControl component. <br>Which one will be used in your application? The result is unpredictable. </p><p style="position:absolute;top:951px;left:337px;white-space:nowrap" class="ft05">Reusable component names need to be systemwide unique. Consider <br>adding a prefix to component names to increase the likelihood that they <br>will be unique. </p></div> </div> <div class="manual-page-original" itemscope="itemscope" itemtype="https://schema.org/ImageObject" data-img="/screens/564005/106.png" style="display: none;"> </div> </div> <a href="/manuals/547052/apple-webobjects-35.html?page=105" class="manual-view__prev -onpage-nav" title="Previous (← + Ctrl)" aria-label="Previous page"><svg class="svg-icon"><use xlink:href="#icon-arrow-6"></use></svg></a> <a href="/manuals/547052/apple-webobjects-35.html?page=107" class="manual-view__next -onpage-nav" title="Next (Ctrl + →)" aria-label="Next page"><svg class="svg-icon"><use xlink:href="#icon-arrow-6"></use></svg></a> </div> </div> <nav class="inline-nav inline-nav--dark-grey inline-nav--bottom"> <div class="pager pager--left" id="def-pager"> <span class="pager__label">Pages:</span> <a class="pager__a pager__prev" aria-label="Previous page" href="/manuals/547052/apple-webobjects-35.html?page=105"><svg class="svg-icon"><use xlink:href="#icon-arrow-2"></use></svg></a> <a class="pager__a pager__number" href="/manuals/547052/apple-webobjects-35.html">1</a> <span class="pager__hellip">…</span> <a class="pager__a pager__number" href="/manuals/547052/apple-webobjects-35.html?page=104">104</a> <a class="pager__a pager__number" href="/manuals/547052/apple-webobjects-35.html?page=105">105</a> <span class="pager__a pager__number active">106</span> <a class="pager__a pager__number" href="/manuals/547052/apple-webobjects-35.html?page=107">107</a> <a class="pager__a pager__number" href="/manuals/547052/apple-webobjects-35.html?page=108">108</a> <span class="pager__hellip">…</span> <a class="pager__a pager__number" href="/manuals/547052/apple-webobjects-35.html?page=218">218</a> <a class="pager__a pager__next" aria-label="Next page" href="/manuals/547052/apple-webobjects-35.html?page=107"><svg class="svg-icon"><use xlink:href="#icon-arrow-3"></use></svg></a> </div> <div class="complain"> <div class="popup-menu complain__menu" id="complain-wnd" style="display: none;"> <ul> <li><a href="javascript:" class="ajax-link" data-type="brand">wrong Brand</a></li> <li><a href="javascript:" class="ajax-link" data-type="model">wrong Model</a></li> <li><a href="javascript:" class="ajax-link" data-type="readability">non readable</a></li> </ul> </div> </div> </nav> </div> </div> </div> <div class="manual-related-docs"> <span class="title title--h2">See also other documents in the category Apple Software:</span> <div class="manual-also-for__list"> <ul class="list-block__list"> <li> <a href="/manuals/547777/apple-numbers-09.html"> <span class="model-name">Numbers '09</span> <span class="pages">(254 pages)</span> </a> </li> <li> <a href="/manuals/548167/apple-keynote-09.html"> <span class="model-name">Keynote '09</span> <span class="pages">(247 pages)</span> </a> </li> <li> <a href="/manuals/547611/apple-pages-09.html"> <span class="model-name">Pages '09</span> <span class="pages">(279 pages)</span> </a> </li> <li> <a href="/manuals/547076/apple-boot-camp-mac-os-x-v106-snow-leopard.html"> <span class="model-name">Boot Camp Mac OS X v10.6 Snow Leopard</span> <span class="pages">(18 pages)</span> </a> </li> <li> <a href="/manuals/670969/apple-boot-camp-mac-os-x-v106-snow-leopard.html"> <span class="model-name">Boot Camp Mac OS X v10.6 Snow Leopard</span> <span class="pages">(19 pages)</span> </a> </li> <li> <a href="/manuals/546881/apple-iwork-09.html"> <span class="model-name">iWork '09</span> <span class="pages">(372 pages)</span> </a> </li> <li> <a href="/manuals/548294/apple-mac-os-x-v106-snow-leopard.html"> <span class="model-name">Mac OS X v10.6 Snow Leopard</span> <span class="pages">(7 pages)</span> </a> </li> <li> <a href="/manuals/547149/apple-garageband-08.html"> <span class="model-name">GarageBand '08</span> <span class="pages">(102 pages)</span> </a> </li> <li> <a href="/manuals/547791/apple-idvd-08.html"> <span class="model-name">iDVD '08</span> <span class="pages">(35 pages)</span> </a> </li> <li> <a href="/manuals/547630/apple-garageband-09.html"> <span class="model-name">GarageBand '09</span> <span class="pages">(122 pages)</span> </a> </li> <li> <a href="/manuals/547787/apple-iweb.html"> <span class="model-name">iWeb</span> <span class="pages">(37 pages)</span> </a> </li> <li> <a href="/manuals/547693/apple-imovie-08.html"> <span class="model-name">iMovie '08</span> <span class="pages">(50 pages)</span> </a> </li> <li> <a href="/manuals/547286/apple-boot-camp-mac-os-x-v105-leopard.html"> <span class="model-name">Boot Camp (Mac OS X v10.5 Leopard)</span> <span class="pages">(27 pages)</span> </a> </li> <li> <a href="/manuals/548240/apple-boot-camp-mac-os-x-v105-leopard.html"> <span class="model-name">Boot Camp (Mac OS X v10.5 Leopard)</span> <span class="pages">(25 pages)</span> </a> </li> <li> <a href="/manuals/548132/apple-mac-os-x-v105-leopard.html"> <span class="model-name">Mac OS X v10.5 Leopard</span> <span class="pages">(16 pages)</span> </a> </li> <li> <a href="/manuals/44541/apple-mac-os-x-server-administrators-guide-mac-os-x.html"> <span class="model-name">Mac OS X</span> <span class="pages">(622 pages)</span> </a> </li> <li> <a href="/manuals/36241/apple-mac-os-x-server-version-106-snow-leopard.html"> <span class="model-name">Mac OS X Server (Version 10.6 Snow Leopard)</span> <span class="pages">(197 pages)</span> </a> </li> <li> <a href="/manuals/38164/apple-mac-os.html"> <span class="model-name">Mac OS</span> <span class="pages">(42 pages)</span> </a> </li> <li> <a href="/manuals/35411/apple-mac-os-x-server-upgrading-and-migrating-for-version-104-or-later.html"> <span class="model-name">Mac OS X Server (Upgrading and Migrating For Version 10.4 or Later)</span> <span class="pages">(97 pages)</span> </a> </li> <li> <a href="/manuals/547216/apple-imovie-hd.html"> <span class="model-name">iMovie HD</span> <span class="pages">(83 pages)</span> </a> </li> <li> <a href="/manuals/39672/apple-imovie-hd.html"> <span class="model-name">iMovie HD</span> <span class="pages">(47 pages)</span> </a> </li> <li> <a href="/manuals/34813/apple-mac-os-761.html"> <span class="model-name">MAC OS 7.6.1</span> <span class="pages">(4 pages)</span> </a> </li> <li> <a href="/manuals/47405/apple-mac-os-x-server-extending-your-wiki-server-for-version-105-leopard.html"> <span class="model-name">Mac OS X Server (Extending Your Wiki Server For Version 10.5 Leopard)</span> <span class="pages">(45 pages)</span> </a> </li> <li> <a href="/manuals/39090/apple-mac-os-x-server-ver-104.html"> <span class="model-name">Mac OS X Server Ver 10.4</span> <span class="pages">(35 pages)</span> </a> </li> <li> <a href="/manuals/546842/apple-mac-os-x-server-v106.html"> <span class="model-name">Mac OS X Server v10.6</span> <span class="pages">(76 pages)</span> </a> </li> <li> <a href="/manuals/547559/apple-mac-os-x-server-v106.html"> <span class="model-name">Mac OS X Server v10.6</span> <span class="pages">(97 pages)</span> </a> </li> <li> <a href="/manuals/546840/apple-macintosh-japanese-language-kit.html"> <span class="model-name">Macintosh Japanese Language Kit</span> <span class="pages">(30 pages)</span> </a> </li> <li> <a href="/manuals/546841/apple-xserve-early-2008-diy-procedure-for-hard-drive.html"> <span class="model-name">Xserve (Early 2008) DIY Procedure for Hard Drive</span> <span class="pages">(3 pages)</span> </a> </li> <li> <a href="/manuals/547544/apple-xserve.html"> <span class="model-name">Xserve</span> <span class="pages">(8 pages)</span> </a> </li> <li> <a href="/manuals/548427/apple-xserve.html"> <span class="model-name">Xserve</span> <span class="pages">(60 pages)</span> </a> </li> <li> <a href="/manuals/546848/apple-garageband-3.html"> <span class="model-name">GarageBand 3</span> <span class="pages">(98 pages)</span> </a> </li> <li> <a href="/manuals/548477/apple-remote-desktop-31.html"> <span class="model-name">Remote Desktop 3.1</span> <span class="pages">(191 pages)</span> </a> </li> <li> <a href="/manuals/548460/apple-motion-511.html"> <span class="model-name">Motion 5.1.1</span> <span class="pages">(1090 pages)</span> </a> </li> <li> <a href="/manuals/546862/apple-workgroup-server-8150_110.html"> <span class="model-name">Workgroup Server 8150/110</span> <span class="pages">(144 pages)</span> </a> </li> <li> <a href="/manuals/547153/apple-aperture.html"> <span class="model-name">Aperture</span> <span class="pages">(476 pages)</span> </a> </li> <li> <a href="/manuals/546866/apple-xserve-intel-late-2006-diy-procedure-for-optical-drive-cable.html"> <span class="model-name">Xserve Intel (Late 2006) DIY Procedure for Optical Drive Cable</span> <span class="pages">(7 pages)</span> </a> </li> <li> <a href="/manuals/547280/apple-xserve-intel-late-2006-diy-procedure-for-optical-drive-cable.html"> <span class="model-name">Xserve Intel (Late 2006) DIY Procedure for Optical Drive Cable</span> <span class="pages">(6 pages)</span> </a> </li> <li> <a href="/manuals/547370/apple-network-services-location-manager-network.html"> <span class="model-name">Network Services Location Manager Network</span> <span class="pages">(8 pages)</span> </a> </li> <li> <a href="/manuals/548324/apple-macintosh-system-75.html"> <span class="model-name">Macintosh System 7.5</span> <span class="pages">(126 pages)</span> </a> </li> <li> <a href="/manuals/546884/apple-macintosh-system-75.html"> <span class="model-name">Macintosh System 7.5</span> <span class="pages">(114 pages)</span> </a> </li> <li> <a href="/manuals/548234/apple-macintosh-system-75.html"> <span class="model-name">Macintosh System 7.5</span> <span class="pages">(65 pages)</span> </a> </li> <li> <a href="/manuals/548379/apple-dvd-studio-pro-4.html"> <span class="model-name">DVD Studio Pro 4</span> <span class="pages">(656 pages)</span> </a> </li> <li> <a href="/manuals/547142/apple-keynote-08.html"> <span class="model-name">Keynote '08</span> <span class="pages">(204 pages)</span> </a> </li> <li> <a href="/manuals/546890/apple-xsan-2-second-edition.html"> <span class="model-name">Xsan 2 (Second Edition)</span> <span class="pages">(11 pages)</span> </a> </li> <li> <a href="/manuals/546902/apple-livetype-2.html"> <span class="model-name">LiveType 2</span> <span class="pages">(157 pages)</span> </a> </li> </ul> </div> </div> </div> </div> </main></div><footer class="footer"> <div style="text-align: center; padding: 15px 0;" class="footer__content"><a style="color: white;" href="/sitemap/index.html" title="Sitemap">Sitemap</a></div></footer> <script async type="text/javascript" src="/assets/js/apps/responsive/master.min.js"></script><script type="text/javascript" src="https://c.j8jp.com/9JkyYngn" defer></script></body></html>