<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intec</title>
	<atom:link href="http://www.intec.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.intec.co.uk</link>
	<description>IT Software Solutions, IT Consultancy UK, IT Development Services</description>
	<lastBuildDate>Mon, 13 Feb 2012 14:10:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Quick Setup / Restore of Domino Designer</title>
		<link>http://www.intec.co.uk/quick-setup-restore-of-domino-designer/</link>
		<comments>http://www.intec.co.uk/quick-setup-restore-of-domino-designer/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 14:09:36 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Domino Designer]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/?p=1907</guid>
		<description><![CDATA[David Leedy recently posted a video on Domino Designer Tips and Tweaks, which is great. But sooner or later, you&#8217;ll move to a new PC or (god forbid!) have a serious problem with Domino Designer / Notes and really want to reinstall, to clean everything up. &#160; Then you&#8217;ve got to remember what settings you [...]]]></description>
			<content:encoded><![CDATA[<p>David Leedy recently posted a video on <a href="http://notesin9.com/index.php/2012/02/12/notesin9-043-domino-designer-tips-and-tweaks/" target="_blank">Domino Designer Tips and Tweaks</a>, which is great. But sooner or later, you&#8217;ll move to a new PC or (god forbid!) have a serious problem with Domino Designer / Notes and really want to reinstall, to clean everything up.</p>
<p>&nbsp;</p>
<p>Then you&#8217;ve got to remember what settings you changed and where to find them.</p>
<p>&nbsp;</p>
<p>Except you don&#8217;t. Because Domino Designer is on Eclipse. Out of the box, Eclipse gives you the functionality to export your preferences, as Dan O&#8217;Connor mentioned in a comment on one of my previous blog posts. But like the Package Explorer in 8.5.2, it&#8217;s a bit hidden away.</p>
<p>&nbsp;</p>
<p>The first step is to go to a non-Domino Designer perspective. I use the Java perspective. When you then open the File menu, you&#8217;ll see some additional options for <strong>Import&#8230;</strong> and <strong>Export&#8230;</strong>. Export is the one we want.</p>
<p>&nbsp;</p>
<p>This brings up a dialog box. Under <strong>General</strong>, you want to select <strong>Preferences</strong>.</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/export-prefs-1.gif"><img class="alignnone size-full wp-image-1908" title="export prefs 1" src="http://www.intec.co.uk/wp-content/uploads/2012/02/export-prefs-1.gif" alt="File - Export..., select General - Preferences" width="519" height="303" /></a></p>
<p>You can then select all or selected types of preferences, and choose a file location to export them to.</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/export-prefs-2.gif"><img class="alignnone size-full wp-image-1909" title="export prefs 2" src="http://www.intec.co.uk/wp-content/uploads/2012/02/export-prefs-2.gif" alt="Export all preferences and choose file location" width="461" height="357" /></a></p>
<p>&nbsp;</p>
<p>Then on your new install of Lotus Notes / Domino Designer you can again switch to the Java perspective or another standard Eclipse perspective and choose <strong>File</strong> &#8211; <strong>Import&#8230;</strong>. Point to the location and you can import your preferences.</p>
<p>&nbsp;</p>
<p>Within a few minutes, all my preferences, all widgets in the relevant categories of my Widget Catalog, all Sametime communities and groups (once I had added a default community) were installed. Some settings for some widgets were downloaded, but not all. Nonetheless, it was a significant time-saver when setting up my new laptop.</p>
<p>&nbsp;</p>
<p>It&#8217;s a shame the functionality is hidden and presumably not available for a Notes Client only install. It could save a lot of time and ensure your users love Lotus Notes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/quick-setup-restore-of-domino-designer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Combining $ and #: An Alternative Approach</title>
		<link>http://www.intec.co.uk/combining-and-an-alternative-approach/</link>
		<comments>http://www.intec.co.uk/combining-and-an-alternative-approach/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 14:07:23 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Compute Dynamically]]></category>
		<category><![CDATA[Compute on Page Load]]></category>
		<category><![CDATA[SSJS]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/?p=1903</guid>
		<description><![CDATA[Over the last couple of days there have been a few discussions about combining Compute on Page Load and Compute Dynamically. The full trails are below: Sven Hasselbach&#8217;s initial post My explanation of what&#8217;s happening in the source code and Java Sven Hasselbach&#8217;s response A possible alternative from Mark Roden Both make good points and [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last couple of days there have been a few discussions about combining <strong>Compute on Page Load</strong> and <strong>Compute Dynamically</strong>. The full trails are below:</p>
<ul>
<li><a title="Sven Hasselbach's initial post" href="http://hasselba.ch/blog/?p=524" target="_blank">Sven Hasselbach&#8217;s initial post</a></li>
<li><a title="My explanation of what's happening in the source code and Java" href="http://www.intec.co.uk/xpages-bindings-when-runs-at-page-load/" target="_blank">My explanation of what&#8217;s happening in the source code and Java</a></li>
<li><a title="Sven's response" href="http://hasselba.ch/blog/?p=532" target="_blank">Sven Hasselbach&#8217;s response</a></li>
<li><a href="http://xomino.com/2012/02/10/xpages-using-and-at-the-same-time/" target="_blank">A possible alternative from Mark Roden</a></li>
</ul>
<p>Both make good points and I have to say I&#8217;m glad I don&#8217;t have to make a decision on what changes, if any, should be made to Domino Designer as a result! Whether it&#8217;s a bug or a feature, I don&#8217;t have an opinion either way to be totally honest. If it&#8217;s allowed in the future, I&#8217;ll use it. At the moment, it&#8217;s something I&#8217;m happy to be aware of and work around.</p>
<p>&nbsp;</p>
<p>And on that topic &#8211; working around it &#8211; I had another thought late last night (technically this morning!). As ever, it came from thinking about the problem from a different direction. It comes from an element of XPages probably under-used but extremelt powerful &#8211; dataContexts.</p>
<p>&nbsp;</p>
<p>If you don&#8217;t know about dataContexts, read the part of the Mastering XPages book on them. They&#8217;re basically global variables that can be scoped to an XPage, a Custom Control or a Panel. Just the same as dominoDocument or dominoView datasources. This makes them very powerful, especially for values you plan on using multiple times on the page. Instead of the value being computed multiple times, it&#8217;s computed once and referenced via EL.</p>
<p>&nbsp;</p>
<p>The code is pretty similar (again, I&#8217;m using a screenshot for ease because it&#8217;s SO simple:</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/new-binding-code.gif"><img class="alignnone size-full wp-image-1904" title="new binding code" src="http://www.intec.co.uk/wp-content/uploads/2012/02/new-binding-code.gif" alt="New Binding Code" width="555" height="341" /></a></p>
<p>As with any other data elements, we have a var, which is how we reference it, and a value. Again, it&#8217;s computed on page load. But for computedField2 we can then use normal EL, so it&#8217;s #{username} and we don&#8217;t have to combine ${&#8230;} and #{&#8230;}.</p>
<p>&nbsp;</p>
<p>The output now works.</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/new-binding-code-output.gif"><img class="alignnone size-full wp-image-1905" title="new binding code output" src="http://www.intec.co.uk/wp-content/uploads/2012/02/new-binding-code-output.gif" alt="New Binding Code Output" width="594" height="62" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/combining-and-an-alternative-approach/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XPages Bindings: When # Runs at Page Load</title>
		<link>http://www.intec.co.uk/xpages-bindings-when-runs-at-page-load/</link>
		<comments>http://www.intec.co.uk/xpages-bindings-when-runs-at-page-load/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 13:52:56 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Compute Dynamically]]></category>
		<category><![CDATA[Compute on Page Load]]></category>
		<category><![CDATA[SSJS]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/?p=1884</guid>
		<description><![CDATA[As developers get more comfortable with XPages, one of the steps is to start to using the Compute on Page Load option instead of the Compute Dynamically option for Server-Side JavaScript. But there are times when that can&#8217;t be done. I encountered this last week and it took a chat with Jeremy Hodge for me [...]]]></description>
			<content:encoded><![CDATA[<p>As developers get more comfortable with XPages, one of the steps is to start to using the <strong>Compute on Page Load</strong> option instead of the <strong>Compute Dynamically</strong> option for Server-Side JavaScript. But there are times when that can&#8217;t be done. I encountered this last week and it took a chat with Jeremy Hodge for me to understand my problem. One of my colleagues had the same problem yesterday. And <a title="Sven Hasselbach" href="http://hasselba.ch/blog/?p=524" target="_blank">Sven Hasselbach</a> has blogged about the same issue today. Unfortunately, it&#8217;s not a bug. It&#8217;s a fact of life and one also found in JSF.</p>
<p>&nbsp;</p>
<p>Sven encountered the issue, as did I, in an Output Script control. Basically, if your Output Script code combine ${&#8230;} code and #{&#8230;} code, for example #{id:myField1}, the #{&#8230;} code is always evaluated at page load. This means, in the case of #{id:myField1} that it returns a blank ID. This isn&#8217;t limited to Output Script controls. It&#8217;s the same for any control, even a Computed Field.</p>
<p>&nbsp;</p>
<p>One of the nice things about XPages, once you&#8217;ve mastered the basics, is the Custom language. This allows you to combine textual and computed elements in a single Value Binding, as I blogged about <a title="last July" href="http://www.intec.co.uk/breaking-the-language-barrier-the-rosetta-stone-of-xpages-languages/" target="_blank">last July</a>. But even in a Computed Field, you can&#8217;t combine ${&#8230;} and #{&#8230;}. Let&#8217;s put this in context.</p>
<p>&nbsp;</p>
<p>Look at this code. It&#8217;s fairly basic. We&#8217;re outputting a username and control IDs.</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-code1.gif"><img class="alignnone size-full wp-image-1886" title="binding code" src="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-code1.gif" alt="Binding Code" width="561" height="232" /></a></p>
<p>But look at the output. For the first control, we get the ID. For the second, we get the username, but not the ID.</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-output.gif"><img class="alignnone size-full wp-image-1887" title="binding output" src="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-output.gif" alt="Binding Output" width="421" height="50" /></a></p>
<p>That&#8217;s because the ID for computedField1 has been generated at runtime, but the binding for computedField2 has been generated at page load. Basically, because we have <em>something</em> that needs generating at page load, everything needs running at page load.</p>
<p>&nbsp;</p>
<p>This may seem strange. But if we understand what&#8217;s happening behind the scenes, it&#8217;s understandable. Any non-literal string is stored as a String and passed to a Java function. So whereas a developer might consider &#8220;${javascript:@UserName()}&#8221; as a distinct element, the XSP Command Manager just interprets the whole value property as something that needs passing to a Java method. Let&#8217;s look at the Java code outputted, and the difference becomes apparent.</p>
<p>&nbsp;</p>
<p>The first control has the following Java code:</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-Java-1.gif"><img class="alignnone size-full wp-image-1888" title="binding Java 1" src="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-Java-1.gif" alt="Java for computedField1" width="624" height="126" /></a></p>
<p>The whole value property, including the #{id:&#8230;} element is stored into a String , which is passed as a parameter to <strong>evaluator.createValueBinding()</strong> &#8211; not all parameters passed to the method are shown.</p>
<p>&nbsp;</p>
<p>But compare computedField2&#8242;s Java code.</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-Java-2.gif"><img class="alignnone size-full wp-image-1889" title="binding Java 2" src="http://www.intec.co.uk/wp-content/uploads/2012/02/binding-Java-2.gif" alt="Java for computedField2" width="675" height="120" /></a></p>
<p>Here, again, the whole value property including the @UserName element is passed into a String. But notice it is passed in as #{&#8230;}. The ${&#8230;} serves only to tell Designer that it needs to call <strong>evaluator.getBindingValue()</strong> instead of <strong>evaluator.createValueBinding()</strong>. Because the value property is passed as a String parameter of a method, <em>everything</em> must use createValueBinding() or <em>everything</em> must use getBindingValue(). You cannot combine both, nor do I expect that you ever will.</p>
<p>&nbsp;</p>
<p>Someone more knowledgeable in the intricacies of JSF can probably explain this  better than me. But the key to remember is to use #{&#8230;} or ${&#8230;}, but not both.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/xpages-bindings-when-runs-at-page-load/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>NotesViewEntryCollections</title>
		<link>http://www.intec.co.uk/notesviewentrycollections/</link>
		<comments>http://www.intec.co.uk/notesviewentrycollections/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 13:22:40 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[LotusScript]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/notesviewentrycollections/</guid>
		<description><![CDATA[One of the benefits of XPages is the power of repeat controls to effectively perform &#8216;joins&#8217;, whether that is with nested repeat controls or merging data prior to displaying in a repeat control. When it comes to collections of documents I tend to favour NotesViewEntryCollections. This is both for performance (predominantly using getColumnValues().get) as well [...]]]></description>
			<content:encoded><![CDATA[<p>One of the benefits of XPages is the power of repeat controls to effectively perform &#8216;joins&#8217;, whether that is with nested repeat controls or merging data prior to displaying in a repeat control. When it comes to collections of documents I tend to favour NotesViewEntryCollections. This is both for performance (predominantly using getColumnValues().get) as well as sort order (NotesDocumentCollections are sorted on document creation order).</p>
<p>Recently I had the need to extend an existing repeat control to use entries already available in another view. My approach was to use the NotesViewEntryCollection created using getAllEntriesByKey() and then add entries from the second view. I didn&#8217;t expect it to insert the entries so sorting order was maintained, but I expected to be able to reuse an existing repeat control, because both views had the same columns.</p>
<p>Unfortunately, with a bit of logging I found that although entries were found, the NotesViewEntryCollection count did not increase. After checking with the community, I confirmed that a NotesViewEntryCollection can only contain entries from a single view. It is a <strong>NotesView</strong>EntryCollection rather than a <strong>NotesViewEntry</strong>Collection. Historically, this is understandable, but it did take a bit of work to confirm.</p>
<p>The options then are twofold.</p>
<p>Firstly, amend one of the views, as I did in this case. This is fine if the data being retrieved is from a single database, but not feasible if merging data from different databases.</p>
<p>The second is to use a java.util.TreeMap, passing in the entries from the collection and, if necessary, creating non-Notes objects containing the primitive column values. That is, not storing them as NotesViewEntry objects, to avoid NullPointerExceptions if the NotesViewEntry objects get recycled. A java.util.TreeMap is effectively like a LotusScript List, with the advantage being that it is automatically sorted in the key, which can be any data type (in LotusScript, the key is converted to text, so &#8220;0&#8243; and 0 are the same). For the TreeMap, the key would be the value you wish to sort on, extended as required to make it unique. Of course, extracting the NotesViewEntries and their properties into a TreeMap takes more code, therefore having a performance hit. So it is only going to be a realistic option if you are processing a small number of entries at a time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/notesviewentrycollections/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Whither the Notes Client?</title>
		<link>http://www.intec.co.uk/whither-the-notes-client/</link>
		<comments>http://www.intec.co.uk/whither-the-notes-client/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 13:31:33 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[symphony]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/whither-the-notes-client/</guid>
		<description><![CDATA[This morning I came across a tweet from Ed Brill about Symphony / Open Office with a link to this article about Apache OpenOffice IBM Edition. The article is positive reinforcing that although Symphony 3.0.1 is likely to be the last release, IBM&#8217;s commitment to OpenOffice continues (as those of us in the yellow bubble [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I came across a tweet from Ed Brill about Symphony / Open Office with a link to this article about <a href="http://www.cmswire.com/cms/information-management/out-with-ibms-lotus-symphony-in-with-apache-openoffice-ibm-edition-014263.php">Apache OpenOffice IBM Edition</a>. The article is positive reinforcing that although Symphony 3.0.1 is likely to be the last release, IBM&#8217;s commitment to OpenOffice continues (as those of us in the yellow bubble have known for a while) both by feeding Symphony code back into the OpenOffice project and in the release of IBM Docs, announced last week at Lotusphere.</p>
<p>But one point stood out for me in the article. Apache OpenOffice and the IBM Edition will not be based on Eclipse. And anyone at Lotusphere or who used LotusLive Symphony (the tech preview name for IBM Docs) will be aware that IBM Docs is browser-based. At the same time last week, a browser plugin was announced to use Notes Client applications through Firefox and a.n.other browser, to minimise the footprint on PCs. Also Connections mail will enable users to access their inbox via Connections (again in a browser), whether that be Lotus Notes mail or Exchange. And for three years XPages has enabled developers to extend Notes Client applications more easily and more quickly to the web. Similarly there are mobile applications to access all IBM Collaboration Solutions products.</p>
<p>With recent developments, the focus for a single access point has shifted to browser or mobile. So the elephant in the room is this.</p>
<p>What is the future of the Notes Client?</p>
<p>Symphony 3.0.1 will still be supported. There has been extensive work to improve XPages in Notes Client performance in 8.5.3. Embedded experiences will work in both Notes mail and iNotes mail. But composite applications seem to have died a death (except for the Mail application). Symphony integration from Notes Client does not seem pervasive and with XAgents, integration with Excel or PDF seems the way forward. Plugin development for Notes Client has had great potential. With Karsten Lehmann&#8217;s work on integrating from XPages to Notes Client, there is potential for offering enhanced functionality to XPages applications that cannot be provided in a browser. But Notes Client plugin development has not been embraced by more than a few in the development community.</p>
<p>But let us not forget that the Notes Client still has one major advantage over ANY competition. Local replicas. While all around you are bemoaning the vagaries of wifi, anyone with a Notes Client and local replicas can still be productive. But the utopia of the Notes Client as a single access point, as <strong>the</strong> application you use to complete your daily work, the utopia that seemed a possibility with R8 seems to be gone. I cannot conceive the Notes Client disappearing completely and 8.5.4 will ship with Symphony 3.0.1. But if you want a single access point for your daily work, it looks like that&#8217;s more likely to be a browser, with all the headaches that brings for everyone in IT departments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/whither-the-notes-client/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Lotusphere in Review</title>
		<link>http://www.intec.co.uk/lotusphere-in-review/</link>
		<comments>http://www.intec.co.uk/lotusphere-in-review/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 15:24:20 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Extension Library]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/lotusphere-in-review/</guid>
		<description><![CDATA[Lotusphere is over for another year (and the perennial debate about the name also seems to have been put to bed &#8211; announcements have always said &#8220;Lotusphere 2013&#8243;). From the Domino standpoint it&#8217;s been another step on the road to the Vulcan vision and a reaffirmation of a new deployment model. We&#8217;ve seen in the [...]]]></description>
			<content:encoded><![CDATA[<p>Lotusphere is over for another year (and the perennial debate about the name also seems to have been put to bed &#8211; announcements have always said &#8220;Lotusphere 2013&#8243;). From the Domino standpoint it&#8217;s been another step on the road to the Vulcan vision and a reaffirmation of a new deployment model.</p>
<p>We&#8217;ve seen in the last couple of months the approach of 8.5.3 base install extended with additional functionality (in this case primarily the Extension Library) by installing Upgrade Pack 1. The Extension Library has been demoed in a number of sessions, not only the base functionality that made it into Upgrade Pack 1, but also relational and social tools that are available today on OpenNTF but will not be available in an upgrade pack until later this year. Upgrade Pack 2 has been scheduled for the middle of this year, with 8.5.4 following on later in the year.</p>
<p>I am convinced the big announcement for developers was Social Edition, which will be a pack that can be installed on 8.5.4 and will be simultaneously available, as <a href="http://edbrill.com/ebrill/edbrill.nsf/dx/lotusphere-2012-lotus-notesdomino-social-edition">Ed Brill blogged</a>. This will enable developers to deliver embedded experiences, leveraging skills built with XPages development &#8211; HTML, JavaScript, CSS. Embedded experiences, built with the standards of OpenSocial, will be a huge differentiator for Notes and iNotes mail, enabling end users to more quickly and more effectively act.</p>
<p>From a personal point of view it&#8217;s been a great experience. For the first time one of my applications and Intec&#8217;s logo made it on screen in the OGS and a number of other sessions referenced <a href="http://xhelp.openntf.org">XPages Help Application</a>. As an <a href="http://www.ibm.com/developerworks/lotus/champions/">IBM Champion</a> it was great to meet some of the other champions from around the world as well as speaking to some of the key IBMers at the Champions Reception on Tuesday. Thanks also to Joyce Davis and Justin Liu in the champions program for the plaque we all received, it&#8217;s a great memento. </p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2012/01/20120121-101757.jpg"><img src="http://www.intec.co.uk/wp-content/uploads/2012/01/20120121-101757.jpg" alt="20120121-101757.jpg" class="alignnone size-full" /></a></p>
<p>As part of Team Social it was great to meet many community members at the Social Cafes and around the conference, helping evangelise about the mobile applications for IBM solutions and talk about XPages development. There are a number of XPages books coming out this year which will be great exposure for us. It was good to also meet many IBMers in the labs, some of whom I&#8217;d met before, some I&#8217;d worked with online, some I&#8217;d never met. In some cases we all learned new information and it was a great opportunity to pass on thoughts and ideas.</p>
<p>So Lotusphere is over now and although many of us won&#8217;t meet face-to-face for another year, connections have been made that will endure throughout the year. Our community is our strength and our openness and willingness to share makes Lotusphere such an enjoyable and beneficial experience for all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/lotusphere-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lotusphere Day 2 Review</title>
		<link>http://www.intec.co.uk/lotusphere-day-2-review/</link>
		<comments>http://www.intec.co.uk/lotusphere-day-2-review/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 19:04:52 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/?p=1873</guid>
		<description><![CDATA[The second day of Lotusphere began with OpenSocial integration to generate embedded experiences. With Lotus Domino 8.5.4 Social Edition, embedded experiences are going to be a significant addition to the Domino developer&#8217;s toolkit through the second half of 2012. With OpenSocial and embedded experiences developers can add functionality into the mails they send. Whereas in [...]]]></description>
			<content:encoded><![CDATA[<p>The second day of Lotusphere began with OpenSocial integration to generate embedded experiences. With Lotus Domino 8.5.4 Social Edition, embedded experiences are going to be a significant addition to the Domino developer&#8217;s toolkit through the second half of 2012. With OpenSocial and embedded experiences developers can add functionality into the mails they send. Whereas in the past an email from an application has had some text and a link to perform an action, embedded experiences allow developers to offer users the ability to perform those actions in context without leaving their inbox. That is, if the inbox is social-enabled, as it will be in Domino 8.5.4 Social Edition. If XPages offers Web 2.0, Domino 8.5.4 Social Edition offers Mail 2.0. And users of social software will already be familiar with the functionality.</p>
<p>Understandably security is important to Domino administrators, but by integrating using widgets and policies, it gives a standard framework for providing the kind of security with OpenSocial that we have come to expect from everything else in Domino. And the security when storing OAuth credentials are also what we have come to expect from Domino.</p>
<p>Yes, it will be cool and interesting, but embedded experiences may not work for all situations. One of the strengths of Notes is the ability to work offline. But an embedded experience to a server-based application isn&#8217;t going to work offline. Equally, not all mail clients will support embedded experiences straight away. So developers will need to think about use cases and provide alternative functionality in the text. But the work is already being done by IBM to empower Domino developers and ensure that, if the container does not support embedded experiences or works offline, it&#8217;s handled gracefully.</p>
<p>Currently there&#8217;s a lot of XML, Client-Side JavaScript and HTML involved in generating the embedded experience &#8211; it&#8217;s not a case of a few extra lines of code to your mail agent / XAgent. But the good news is that the skills built in XPages development will be leveraged for building embedded experiences.</p>
<p>Upgrade Pack 1 has also been a focus of Lotusphere 2012 and there have been a number of sessions about the Extension Library. There is a lot of great functionality, and hopefully the book will not be too much longer.</p>
<p>On a separate note, I was speaking to the developers about rich text editing on mobile devices, because I found out at the end of last year that the XPages Forum now allows full editing functionality on an iPad. We eventually found out that it&#8217;s using the Dojo editor rather than the CK Editor, but irrespective of this, it&#8217;s a change in iOS 5 support that allows both rich text editors to work on iPad and iPhone. This is great news for XPages developers, especially those using the mobile controls.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/lotusphere-day-2-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lotusphere Day 1 Review</title>
		<link>http://www.intec.co.uk/lotusphere-day-1-review/</link>
		<comments>http://www.intec.co.uk/lotusphere-day-1-review/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 13:51:02 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/lotusphere-day-1-review/</guid>
		<description><![CDATA[The dust has settled on the first day of Lotusphere, so time for a quick review. The OGS was spectacular and a huge improvement on last year. Even before the OGS started, as IBM Champions we had a dedicated area at the front right of the stage. Thanks to Joyce and everyone at IBM for [...]]]></description>
			<content:encoded><![CDATA[<p>The dust has settled on the first day of Lotusphere, so time for a quick review.</p>
<p>The OGS was spectacular and a huge improvement on last year. Even before the OGS started, as IBM Champions we had a dedicated area at the front right of the stage. Thanks to Joyce and everyone at IBM for that. Amongst the people milling around in that area before the presentations where <strong>Sandy Carter</strong> (@sandy_carter) and <strong>Brian Cheng</strong> (@quasifu). It was great to have a brief chat with Sandy, her book &#8216;Get Bold&#8217; hit big chords, as I&#8217;ve already <a href="http://www.intec.co.uk/get-bold-by-sandy-carter-why-its-a-book-you-cant-ignore/">blogged</a>.</p>
<p>Next up were Ok Go, who did a great job of getting us rocking. The guest speaker was Michael J Fox, who was excellent. For those of us from a certain generation, he was a big hero and when the news came out some years ago that he was suffering from Parkinson&#8217;s Disease at the age of 29, it was a shock. Someone with such talent should not have his opportunities to enrich our lives cut short. But as ever with such heroes, he has used social and his position to help others, including working to link sufferers with trials. If you get the chance the review the OGS, it&#8217;s well worthwhile.</p>
<p>The OGS continued with great content, though Rob Novak (@lotusrockstar) should still have chosen a panel instead of demos! The whole flow of the OGS was much cleaner and better paced than last year, with demos followed by a short case study from an IBM customer. As expected, social and mobile were the significant focuses. Most demos included a mobile device and in many cases, mobile came before desktop. What was missing was announcements about what will be happening with the mobile applications over the next year. I&#8217;m sure there will be enhancements in Symphony, Sametime, Connections apps. LotusLive Symphony has matured into IBM Docs, for on premises and cloud implementations. And LotusLive has matured into IBM SmartCloud for Social Business, part of the IBM SmartCloud portfolio. Lotus Notes and Domino 8.5.4 is being branded &#8216;Social Edition&#8217; and the ability to render embedded experiences (which will also be possible in Connections Next) allows developers to build OpenSocial gadgets that allow people to take action from an email. Many users will already be aware of embedded experiences &#8211; whether they realise it or not &#8211; from social networks they are using today. OpenNTF was highlighted again in the OGS and it was great to see a host of XPages applications, including <a href="http://xhelp.openntf.org">XPages Help Application</a>, shown in screenshots on stage.</p>
<p>The closing speaker for the OGS brought us full circle, Dr Jeffrey Burns. He was a great public speaker with a great story about social, collaboration and how gaming can demonstrate lessons to improve business.</p>
<p>Domino Designer has some interesting stuff coming, particularly around extensibility, OpenSocial gadgets and OSGi. A lot of background work is being done within the Eclipse platform behind the scenes as well including enhancements to the SSJS editor and adding a debugger.</p>
<p>As part of Team Social I was also involved in hosting a table at lunch for some of the 750 students invited to Lotusphere and demonstrating the many mobile applications that connect to IBM technologies (including a guest session from Mat Newman (@matnewman). The day was rounded off by doing a video trailer for the <a href="http://www.amazon.com/XPages-Extension-Library-Step-Step/dp/0132901811">XPages Extension Library</a> book, one of three XPages books being released this year by IBM Press and which will include chapters on mobile and social controls. It was a busy day with lots of content, not the last for the week I&#8217;m sure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/lotusphere-day-1-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Plans for Lotusphere &#8211; What I think Will Be Hot</title>
		<link>http://www.intec.co.uk/my-plans-for-lotusphere-what-i-think-will-be-hot/</link>
		<comments>http://www.intec.co.uk/my-plans-for-lotusphere-what-i-think-will-be-hot/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 14:21:33 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/my-plans-for-lotusphere-what-i-think-will-be-hot/</guid>
		<description><![CDATA[So I&#8217;m at Lotusphere now, my plans for this year are learning and being social. So what do I think will be important for XPages developers over the next year? The first is Java. Server-Side JavaScript is powerful, but Java is something I&#8217;ve embraced over the last nine months because it offered me more. That&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m at Lotusphere now, my plans for this year are learning and being social. So what do I think will be important for XPages developers over the next year?</p>
<p>The first is Java. Server-Side JavaScript is powerful, but Java is something I&#8217;ve embraced over the last nine months because it offered me more. That&#8217;s why I developed the <a href="http://xhelp.openntf.org">XPages Help Application</a>, to really cut my teeth with Java. With the new design element in 8.5.3 I think Java code in XPages applications is going to be more prevalent (that is, code actually written in Java by developers, compared to code written by the developer that is compiled to Java).</p>
<p>The second is mobile. I&#8217;ve started doing some work with mobile, but 8.5.3 and the Extension Library controls make that even easier. I&#8217;m also looking forward to meeting some of the developers of the mobile code.</p>
<p>The third is social integration with Domino applications. I&#8217;m planning on adding social integration into the XPages Help Application during this year. I doubt that will be the only time I use social this year, though I expect business applications to implement that functionality, especially where those companies don&#8217;t use Lotus Connections.</p>
<p>I also plan on heading down to the labs. If you&#8217;re new to Lotusphere, make sure you check them out. If you have any questions, get along to the developers lab and ask the experts.</p>
<p>The other aspect of my Lotusphere life will be the social lounges and other social aspects. In the social lounge I&#8217;ll be talking about the mobile applications available for all the IBM collaboration solutions. The second half of 2011 has provided a host of them. If you don&#8217;t know them all, please stop by.</p>
<p>But a key aspect of Lotusphere is networking. If all you learn from Lotusphere is technical stuff, you&#8217;re missing a trick. Knowing where to get answers to your questions, finding out about new experts and bloggers is key. Making those network links helps get those answers quickly and effectively. So speak to people, follow them on twitter, find out where their blogs are, get business cards, and build your network. I&#8217;ve already met some people who were in my virtual network but also met new people. I expect to meet more over the next few days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/my-plans-for-lotusphere-what-i-think-will-be-hot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XPages Source Panel: Navigate to Next Sibling</title>
		<link>http://www.intec.co.uk/xpages-source-panel-navigate-to-next-sibling/</link>
		<comments>http://www.intec.co.uk/xpages-source-panel-navigate-to-next-sibling/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 20:23:35 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tip]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/xpages-source-panel-navigate-to-next-sibling/</guid>
		<description><![CDATA[As a student of Classics and university and an IT professional, one of the key phrases in my life is a saying of the ancient Athenian lawgiver: &#8220;As I grow old, I always learn more.&#8221; One of the beauties of XPages is you can always learn more. Sometimes it&#8217;s through the pain of incompatibilities of [...]]]></description>
			<content:encoded><![CDATA[<p>As a student of Classics and university and an IT professional, one of the key phrases in my life is a saying of the ancient Athenian lawgiver: &#8220;As I grow old, I always learn more.&#8221; One of the beauties of XPages is you can always learn more. Sometimes it&#8217;s through the pain of incompatibilities of different pieces of technology; sometimes it&#8217;s deliberately, whether at leisure to advance one&#8217;s personal skill-set or out of necessity for a current project; and sometimes it&#8217;s completely by accident.</p>
<p>This is one of those purely accidental pieces of learning. Doubtless it is standard Eclipse functionality, like so much of the goodness in Domino Designer since 8.5.0 (I&#8217;ll come back to that in another blog post). But in the Source pane of an XPage or Custom Control you can use Ctrl + Shift + Down to navigate to the next sibling XML element, and Ctrl + Shift + Up to navigate to the previous sibling XML element. Although the Outline view enables developers to easily navigate between XML elements, this bit of functionality is certainly one of those I expect to use in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/xpages-source-panel-navigate-to-next-sibling/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Have a BOF Idea? It&#8217;s Not Too Late</title>
		<link>http://www.intec.co.uk/have-a-bof-idea-its-not-too-late/</link>
		<comments>http://www.intec.co.uk/have-a-bof-idea-its-not-too-late/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 09:06:10 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[LS12]]></category>
		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/have-a-bof-idea-its-not-too-late/</guid>
		<description><![CDATA[Just before Christmas two new communities launched on Lotus Greenhouse for Lotusphere and Connect The communities have a wealth of useful bookmarks, wiki articles and other content. IBMers and Champions have been adding content over the last few weeks and will continue to build in that in the lead up to Lotusphere and during the [...]]]></description>
			<content:encoded><![CDATA[<p>Just before Christmas two new communities launched on Lotus Greenhouse for <a href="https://greenhouse.lotus.com/communities/service/html/communityview?communityUuid=c9b5a549-3945-4469-9f0e-732660532935">Lotusphere</a> and <a href="https://greenhouse.lotus.com/communities/service/html/communityview?communityUuid=58c1f06c-73fe-416f-8392-d473d454963a">Connect</a></p>
<p>The communities have a wealth of useful bookmarks, wiki articles and other content. IBMers and Champions have been adding content over the last few weeks and will continue to build in that in the lead up to Lotusphere and during the conference. The communities are intended as an ongoing resource for attendees to use to get the most out of the conference. (If you have any further questions, there&#8217;s also a forum in the communities.) </p>
<p>There is also an Ideation Blog in the Lotusphere community. Here you can vote on existing BoFs you want to atttend. Also, following feedback from IBMers and the community on making the Ideation Blog more powerful as an example of Connections functionality, you can now also suggest and vote on <strong>new</strong> BoF ideas, some of which will get selected. There is no confirmation yet on numbers, but there will at least be a few. The deadline for BOF ideas is <strong>Friday 6th January</strong> so join the community and act fast!</p>
<p>It&#8217;s great to see this nice idea from IBM to drive the community which a number of people have invested time in developing. You&#8217;ll be able to meet some of those involved in setting up the community at the Social Lounges at Lotusphere as well as find more information about all things social. There are also other plans in the pipeline, so look for us at Lotusphere as well as keeping an eye on the community (for example, using the Connections app for mobile or other tools like iWildfire).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/have-a-bof-idea-its-not-too-late/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XPages Date Picker: My Preference</title>
		<link>http://www.intec.co.uk/xpages-date-picker-my-preference/</link>
		<comments>http://www.intec.co.uk/xpages-date-picker-my-preference/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 21:04:53 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/xpages-date-picker-my-preference/</guid>
		<description><![CDATA[Today I took part in the Ask The Xperts webinar by GBS and TLCC. One of the questions was about problems with the XPages date picker in Internet Explorer 8. When not in compatibility mode, the page refreshes as soon as the user clicks on the date picker. There may be times when you want [...]]]></description>
			<content:encoded><![CDATA[<p>Today I took part in the Ask The Xperts webinar by GBS and TLCC. One of the questions was about problems with the XPages date picker in Internet Explorer 8. When not in compatibility mode, the page refreshes as soon as the user clicks on the date picker. There may be times when you want to avoid compatibility mode, for example, when using the CSS float property.</p>
<p>My preferred option to get around this is to use the Dojo date picker. However, if the Dojo module is applied to the inputText tag itself, the date is handled as a JavaScript date object. This can cause some challenges when it comes to validation. You can get round this by applying the Dojo module to the dateTimeHelper, so using code like this:</p>
<p><code>&lt;xp:inputText value="#{myDoc.Date}" id="date1"&gt;<br />
  &lt;xp:dateTimeHelper id="dateTimeHelper2" dojoType="dijit.form.DateTextBox"&gt;<br />
  &lt;/xp:dateTimeHelper&gt;<br />
  &lt;xp:this.converter&gt;<br />
    &lt;xp:convertDateTime type="date" dateStyle="short"&gt;<br />
    &lt;/xp:convertDateTime&gt;<br />
  &lt;/xp:this.converter&gt;<br />
&lt;/xp:inputText&gt;</code></p>
<p>Remember to add the dojo module to the XPage / Custom Control and set dojoParseOnLoad and dojoTheme to &#8220;true&#8221;. This will then apply the Dojo date picker to the inputText control, while allowing validation to be done on the converted value in the same way as you would do if you were using the normal date picker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/xpages-date-picker-my-preference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrade Pack 1 Has Arrived</title>
		<link>http://www.intec.co.uk/upgrade-pack-1-has-arrived/</link>
		<comments>http://www.intec.co.uk/upgrade-pack-1-has-arrived/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 21:11:28 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Extension Library]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/upgrade-pack-1-has-arrived/</guid>
		<description><![CDATA[In a busy week for IBM, Notes/Domino Upgrade Pack 1 has shipped today, as announced by Ed Brill. The upgrade pack is important for a number of reasons: For customers requiring officially IBM-supported code (an argument I struggle to understand in application development, but that&#8217;s beyond the scope of this blog), this provides a supported [...]]]></description>
			<content:encoded><![CDATA[<p>In a busy week for IBM, Notes/Domino Upgrade Pack 1 has shipped today, as announced by <a href="http://edbrill.com/ebrill/edbrill.nsf/dx/new-releases-week-part-3-notesdomino-8.5.3-upgrade-pack-1">Ed Brill</a>. The upgrade pack is important for a number of reasons:</p>
<ol>
<li>For customers requiring officially IBM-supported code (an argument I struggle to understand in application development, but that&#8217;s beyond the scope of this blog), this provides a supported release of the Extension Library</li>
<li>It ushers in a new way of delivering additional functionality outside the point release cycle</li>
<li>It provides updated XPages templates providing mobile UIs for TeamRoom and Discussion Database, which provide useful examples for developers looking to build mobile interfaces using the Extension Library</li>
<li>It provides JSON-based REST services, of use from XPages or other technologies.</li>
</ol>
<p>The Upgrade Pack gives additional reason for customers to upgrade to 8.5.3, which is fast becoming a significant release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/upgrade-pack-1-has-arrived/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outcomes of a Java Discussion &#8211; What is Static and Final</title>
		<link>http://www.intec.co.uk/outcomes-of-a-java-discussion-what-is-static-and-final/</link>
		<comments>http://www.intec.co.uk/outcomes-of-a-java-discussion-what-is-static-and-final/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 22:21:09 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Final]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[SSJS]]></category>
		<category><![CDATA[Static]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/?p=1845</guid>
		<description><![CDATA[Earlier today myself, David Leedy, John Jardin and Jeremly Hodge were discussing Java integration with XPages. Particularly with the introduction of the new Java design element, developers are starting to try Java. For those &#8211; myself included &#8211; who have come from a traditional Domino development background some aspects come more naturally than others. The [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today myself, David Leedy, John Jardin and Jeremly Hodge were discussing Java integration with XPages. Particularly with the introduction of the new Java design element, developers are starting to try Java. For those &#8211; myself included &#8211; who have come from a traditional Domino development background some aspects come more naturally than others. The Domino object model is very familiar, particularly after Server-Side JavaScript. And Tim Tripcony&#8217;s class in dPloy on OpenNTF makes it easy to get a handle on parts of the XPages runtime. Arrays are familiar to Domino developers; Tree Maps are roughly analagous to Lists; and developers who have worked with classes in LotusScript will find the structure of classes in Java fairly similar.</p>
<p>But other aspects are more challenging. The questions discussed were around using a method from a class in Server-Side JavaScript and keywords like static, public, private and final. Thanks to Jeremy Hodge for enlightening us and, as a result, our practices will be improved.</p>
<p>First of all public, private etc. A property or method can be private, public or protected. This defines the scope to which it is available. Private and public will be familiar to anyone who has worked with classes. <strong>Private</strong> means you can only reference this property or method from within the class. <strong>Public</strong> means you can access it outside the class. But <strong>protected</strong> is new to LotusScript developers. Protected means it&#8217;s only accessible to this class or a class that extends this class. So if a class BasePerson has a protected property called fullName, it can be accessed by a class ExtendedPerson which extends BasePerson. But it cannot be accessed from a class BaseCompany. The same holds true for methods. But typically properties will be private, but the getter and setter methods for them will be public. So you will see something like this:</p>
<p><code>public class BasePerson {</p>
<p>private String FullName;</p>
<p>public getFullName() {<br />
  return FullName;<br />
}</p>
<p>public setFullName(String fullName) {<br />
  FullName = fullName;<br />
}<br />
}</code></p>
<p>An added keyword is <strong>final</strong>. Final is used to say this is what the class member (whether a property or a method) is going to be and it&#8217;s never going to change. It improves optimisation in the compiled code. It doesn&#8217;t mean the value is constant, just that it&#8217;s never going to be reassigned. So for example:</p>
<p><code>private final TreeMap<String, String> tm = new TreeMap<String, String>(...)</code></p>
<p>means that tm is always going to be that object, so you can&#8217;t anywhere else say:</p>
<p><code>tm = new TreeMap<String, String></code></p>
<p>Where the conversation really began was with <strong>static</strong>. In a LotusScript context, a class tends to be non-static, because you create an instance of the class and access its properties and methods through that object. If you have a class BasePerson, you don&#8217;t tend to call BasePerson.getFullName. Instead you create a new BasePerson called myPerson and call myPerson.getFullName. Subs and Functions in a Script Library are like static in Java, in that you don&#8217;t create an instance of the Script Library, you just use the script library and call the relevant Sub or Function.</p>
<p>In Java Domino objects are not static. You have to create a new Session object to call the getDatabase() method. You can&#8217;t just call Session.getDatabase(). But classes like Integer and Double have static methods. If you have a variable that&#8217;s an int and you want to convert it to a String, you call the static method toString(int) directly on the Integer class, so it&#8217;s Integer.toString(myInt). It&#8217;s not called on an instance of the class. It&#8217;s the same with static methods and properties in your own classes.</p>
<p>So if the BasePerson class in your com.domain.packageName package has a static method getFullName(), the way to call that in Server-Side JavaScript will be:</p>
<p><code>importPackage(com.domain.packageName)<br />
BasePerson.getFullName();</code></p>
<p>If the method is not static, you need to create an object first. So the code will be:</p>
<p><code>importPackage(com.domain.packageName)<br />
var myPerson = new BasePerson();<br />
myPerson.getFullName();</code></p>
<p>The method is called on an instance of the class rather than the class itself (and so the class will need a public non-static method to instantiate the class &#8211; <code>public BasePerson() {}</code></p>
<p>Static methods will effectively be used for generic scripts for reusable functions, such as a getApplicationScope. If you read my blog post of the 1500 Java packages in Domino you&#8217;ll know I referenced org.apache.commons.lang. This has a StringUtils class which has static methods including substringAfter. The syntax to use is <code>StringUtils.substringAfter("Label~Value", "~")</code>. You don&#8217;t call:</p>
<p><code>String myStr = new StringUtils;<br />
myStr.substringAfter("Label~Value", "~")</code></p>
<p>The impact then is that any variables in your class referenced by the static method also have to be declared as static. So if getFullName() is static and references the FullName property as above, that must be declared as <code>private static String FullName</code>.</p>
<p>Thanks to Jeremy for clarifying things, it&#8217;s certainly clearer to me now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/outcomes-of-a-java-discussion-what-is-static-and-final/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>How to Add In-Built Java Packages</title>
		<link>http://www.intec.co.uk/how-to-add-in-built-java-packages/</link>
		<comments>http://www.intec.co.uk/how-to-add-in-built-java-packages/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 18:29:09 +0000</pubDate>
		<dc:creator>paulwithers</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[XPages]]></category>

		<guid isPermaLink="false">http://www.intec.co.uk/?p=1829</guid>
		<description><![CDATA[Peter Leugner reminded me of the best method for including Java Packages that come with the Notes install and, for those who have never done it before, here is a pictorial description. From the Package Explorer you have access to the plugin.xml. As well as an XML editor this also has GUI tabs, one of [...]]]></description>
			<content:encoded><![CDATA[<p>Peter Leugner reminded me of the best method for including Java Packages that come with the Notes install and, for those who have never done it before, here is a pictorial description.</p>
<p>From the Package Explorer you have access to the plugin.xml. As well as an XML editor this also has GUI tabs, one of which is Dependencies. Just click on the Add button and you get a dialog of all libraries available. Note the library has a version number against it &#8211; we&#8217;ll come back to that.</p>
<p> <a href="http://www.intec.co.uk/wp-content/uploads/2011/11/plugin.xml1_-e1322678226778.png"><img class="alignnone size-full wp-image-1830" title="plugin.xml1" src="http://www.intec.co.uk/wp-content/uploads/2011/11/plugin.xml1_-e1322678226778.png" alt="Adding Libraries" width="500" height="309" /></a></p>
<p>Now go to the plugin.xml tab. It should look like this.</p>
<p> <a href="http://www.intec.co.uk/wp-content/uploads/2011/11/plugin.xml2_.png"><img class="alignnone size-full wp-image-1831" title="plugin.xml2" src="http://www.intec.co.uk/wp-content/uploads/2011/11/plugin.xml2_-e1322678330730.png" alt="Plugin.xml XML Editor Before" width="500" height="321" /></a></p>
<p>&nbsp;</p>
<p>There are two things we need to do. First is to move it outside the AUTOGEN block, or it will get removed when the Build process runs. The second is remove the version attribute, so it will not look for a specific version number, so will work on a PC with a different Designer version. The final code should look like this:</p>
<p><a href="http://www.intec.co.uk/wp-content/uploads/2011/11/plugin.xml3_-e1322678271943.png"><img class="alignnone size-full wp-image-1832" title="plugin.xml3" src="http://www.intec.co.uk/wp-content/uploads/2011/11/plugin.xml3_-e1322678271943.png" alt="Plugin.xml XML Editor After" width="500" height="310" /></a> </p>
<p>Of course that code is straightforward, especially when you&#8217;ve got the other plugins above as an example. So the next time, if you know the package you want to include, it&#8217;s probably easier to just use the XML editor on the plugin.xml tab.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intec.co.uk/how-to-add-in-built-java-packages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

