IS TEAMSTUDIO ABOUT TO ANNOUNCE AN EXCITING NEW PRODUCT? Stop by booths #428 and #429 to talk with the Teamstudio team about the newest innovations to our award-winning solutions -- and get a peek into the future with a first look at a brand-new product we're releasing in 2010!
Woke up as a very poorly 35 year old this morning. Just as I thought I'd escaped the tummy bug the kids and Karen have had over the past few days it goes and wipes me out on my birthday. Kids.
Karen had arranged a surprise meal at "Nottingham's best restaurant" - the ever-hard-to-book World Service. Looks like we may have to cancel unless I make some miraculous recovery. Damn those kids and their bugs.
Back on my 31st birthday I wrote:
I know it's just a number and everything, but this one feels a lot more depressing than 30 did. What must 35+ be like? Best not to think about it I suppose.
So, what is 35+ like? Too early to say, but it does sound "old", the more I dwell on it. Heck, I'm half way to 70!
One thing I have noticed as I pass through my thirties is that I am finally becoming a man. Anything under 30 and you're still just a boy really. Life begins at 35...
For the last couple of months I haven't had need to launch Flex Builder at all and, so, I've not really talked about it here much.
Now though I am getting back in to it as I have a fairly in-depth project on at the moment for which I'm using Flex to great advantage. Flex Builder has been permanently open for the last week or so.
Since this requires brushing up on my Flex skills I've also been taking the chance to update the Howlett accounts application. Notice in the shot below I've added a semi-circular spendometer and a seven-segment display. Both of which are part of the iLog Elixir addons for Flex.
The spendometer shows how much we've spent so far in the current month. The aim being to keep it out of the red bit at the top end of the scale.
The numeric display shows us how much we've spent so far in the current year compared to the same period last year. The aim is to keep it green (a negative number), which means we've spent less that we had in the previous year. As you can see we're off to a good start (by this time last year we'd been to two weddings, one of which I was the best man at and needed to buy a matching suit for).
What this shows - I hope - is how easily you can add useful features to Flex apps. The two changes above took my no more than an hour to plugin.
Anyway, what I'm getting round to saying is that I have some stuff I want to share with you. Over the next few days/posts I want to talk about the way in which I've started developing Notes-like Views and Forms in Flex. When done it should give you some idea how you can build a basic Notes-like application in Flex.
Right then. Here goes with the first in a series of Flex posts that will cover some of the basics of a Flex app to integrate with a backend Domino site. By the end we should have a working application that you view, edit and create documents from.
First I want to cover views. In Flex we use a (Advanced)DataGrid to render a view. This is something I've shown how to do before and isn't exactly rocket science; when the Flex app loads it triggers a GET request for the XML of the view. When the XML is received it tells the grid to use the XML as its DataProvider and it all appears in the grid.
Here's the Contact Manager we're going to build:
For now it's just a grid with a couple of rows of data in it. All very simple. What I wanted to discuss here is a technique I've started using in all my Domino-based Flex apps, which makes it a little easier to make "design" changes to the grid.
As I'm sure you know, users like to constantly request new columns be added to views. Every time you need to add or remove a column from a view you really don't want to have to change the Flex app's code.
Because the Flex app itself is a compiled Flash file, any changes you need to make to it require you to launch Flex Builder, make the change, recompile and then import the new SWF file in to Domino Designer, which will mean the user has to download the whole app again (~600kb). We want to avoid having to do this as much as possible.
So, what I now do is include the column definitions as part of the XML data. Here's what the XML looks like when you open the vwContactsAsXML view:
The XML contains two main child elements - the columns and the documents. The documents come from a simple "Treat as HTML" view like below.
The column definitions are added on the Form called "$$ViewTemplate for vwContactsAsXML", which looks like this:
All very straight-forward, no?
In Flex we now need to programmatically add all these columns at "run time". To do this we use the same function that is called when the XML has loaded. The same function that usually just updates the DataProvider of the grid to the <documents> in the XML.
The function looks like this:
private function handleContactsXML(event:ResultEvent):void{//Update the DataProvider of grid, which is bound to {contacts} contacts = new XMLListCollection(event.result.documents.document); //Custom columns var columns:XMLList = XMLList(event.result.columns.column); var cols:Array = new Array(); for each (var column:XML in columns){ var col:AdvancedDataGridColumn = new AdvancedDataGridColumn(column); col.headerText=column.@label; cols.push(col); }//Grid is the name/id of the AdvancedDataGrid! grid.columns = cols;
}
Still, all very simple. Load the demo application to see it in action. It's just the bare bones at the moment. As I add new bits over the coming posts you should see it slowly turn in to a working application. For now, hopefully, you can see the benefit of the above approach. Using this technique makes adding and removing columns from "views" a lot, lot simpler.
In the next post I'll look at taking it one step further and using the column definition to add more control over their appearance and behaviour.
VSS operates at the block level of the file system.
Snapshots have two primary purposes: they allow the creation of consistent backups of a volume, ensuring that the contents cannot change while the backup is being made; and they avoid problems with file locking. By creating a read-only copy of the volume, backup programs are able to access every file without interfering with other programs writing to those same files.</blockquote>
VSS operates at the block level of the file system.
Snapshots have two primary purposes: they allow the creation of consistent backups of a volume, ensuring that the contents cannot change while the backup is being made; and they avoid problems with file locking. By creating a read-only copy of the volume, backup programs are able to access every file without interfering with other programs writing to those same files.
We've received the request to highlight
more of the most popular, most active and latest projects/releases on the
home page. We haven't had too much time yet to improve the home page but
we've prototyped some ...
Show a given set of widget to a user according to a profilation made ( by org, by company, by an LDAP attribute,...). Every group of users see a different homepage according to their profilation.
This is pretty much a default option in almost all mail clients. It is trivially easy to add to the mail template, but then you have an 'unsupported custom template'.
Currently, there is inline styling for the div around the search box and the advanced search link. Neither of these divs have classes or ids, so you cannot change the styles associated with them without modifying the design of the database.
The Lotus Notes Java UI Application
Development team has just added the Java
UI API Exerciser project to OpenNTF
(documentation is here).
This project exemplifies the use of the Java UI APIs for Lotus Notes 8.5.1.
It contributes a sidebar view that ...
The project Elenchus
from Tim Tripcony has been added to the Apache catalog which means that
it has been cleared. Elenchus is an XPages based Domino application that
allows users to post questions to one another and to answer each ...
If you are considering implementing local mail replicas for your IBM Lotus Notes users, learn more about the advantages of this model and how to create local mail replicas manually or administratively using Setup and Desktop policies. Customize the Desktop policy to control users’ Location documents.
An enhancement has been made to provide an option for the Domino server to require an encrypted channel (SSL) when transmitting the LTPAToken used in Single Sign-on (SSO).
If password checking and password expiration is applied via a Security policy, new users receive the following error during Notes 8.5.1 client configuration: "Your password has expired. You cannot access this server until you change it."
This white paper provides an overview and recommendations for how to get the most from your IBM Lotus Notes 8.5.1 client on the new Citrix XenApp 5.0 server. In particular, we show that, by tuning your environment so that you get the most from your applications, you can realize significant improvements in running the Notes client on XenApp. This is true for both the standard and the basic configurations of Lotus Notes. Moreover, the new support for Microsoft Windows 2008 SP2 by Notes 8.5.1 together with memory improvements means we can scale to even higher numbers than before at a much reduced cost. Also presented are the testing environment, tuning parameters, and the workflows that were executed to gather the scalability data on Notes 8.5.1.
Ever wonder how to really know what the status of your IBM Lotus Sametime environment is? Discover how Lotus Sametime can be monitored, in terms of both function and performance, from the user perspective. This article describes (and provides) a simple lightweight proactive tool to assist administrators in better understanding the Lotus Sametime user experience to reduce outages, respond to issues more quickly, and improve the customer experience. In addition to monitoring capabilities, this tool can assist in debug collection and take the burden off users for problem recreates and data collection. By combining network validation with Lotus Sametime IM, user awareness, user login, and username look-up validation, never before has such a complete picture of the user experience been available.
This article provides information for using JavaScript™ to create, view, edit, and remove documents in an IBM® Lotus® Domino® application. It also provides a general introduction to JavaScript in XPages and shows you where and how to attach JavaScript in the XPages user interface.
STMTGSVR, Option 43, Sametime: An ERROR occurred when attempting to start the web conference slide conversion service. See the Sametime Information Center for more information about integrated conversion services on i5/OS. Crash, attachment, meeting
The intent of this article is to bring together in one location the best practices for reporting a problem to the system administrator from an end user's device. A good Traveler Problem Report (TPR) is invaluable to the system administrator when working with Lotus Notes Traveler support to ...
Why does the workspace icon for the mail file replica not honor what is set in the Mail tab of the Location document after a restart of the Notes client?
Users notice that they are getting new mail notification popups and/or sound, but no new message appears in the inbox. They press F9 a few moments later and the message appears.
When a group with the same name exists in the local and server replicas, and is also in recent contacts, the recent contacts version is used. No ambiguous dialog box displays, even though it is possible the group members could differ between server and local.