INTEGRA FOR NOTES - THE AWARD WINNING LOTUS NOTES TO MICROSOFT OFFICE & LOTUS SYMPHONY INTEGRATION SOLUTION Integra generates Notes data to Microsoft Word, Excel, and Lotus Symphony, allowing end users to analyse and present data using Graphs, Pivot Tables, Filters, etc. Supports Mail Merge and Labels. No installation required, on the end user's workstation.
Through the optional use of Integra's event driven model, it provides a depth of access to data & computational capability, which is unique in the industry.
Following on from yesterday's post about defining Flex DataGrid columns on the server I want to take it a step further today and use the column definitions to further extend the behaviour of the grid.
Take a look at either the snapshot below or the updated demo and you'll see a PopupButton on the top right of the grid. When you click this "columns" button up pops a choice of columns to toggle on and off in the grid, as highlighted below:
To do this, the first thing I did was extend the XML at the server, by adding a "viewByDefault" attribute to the column tag.
If the viewByDefault attribute is present and set to "false" then the column won't appear unless the user chooses to show it by using the Columns button, now present.
It's a simple example of how you can start adding the R in RIA to your Notes applications. I used the above approach in a reporting app for a customer and allowed them to export to Excel only the columns they were currently viewing. They loved it.
How Is It Coded?
The first thing we need to do is add the PopupButton button. Here's the MXML (Flex code) for doing that:
This defines the button and gives it a label of "Columns". It then defines what is the "popup" for the button. Anything you put inside the popUp child element is what then appears when the user presses the button and should be something of the container type. In our case it's a Tile (which is a bit like a clever table that has as many columns as the width of its parent container will allow - wider parent = more columns and less rows). Inside our the Tile we use a Repeater to loop all the columns produce a CheckBox for each one. The change event of the CheckBox calls the function called toggleColumn, which looks like this:
private function toggleColumn(evt:Event):void {var ch:CheckBox = evt.currentTarget as CheckBox; for each (var col:AdvancedDataGridColumn in grid.columns) {if (col.dataField==ch.data.toString()){ col.visible=ch.selected; }}}
All this does is loop all the columns on the view (id="grid") looking for one which has the same dataField as the data attribute of the CheckBox that was ticked. When it finds the right column it sets its visibility based on the checked status of CheckBox. Give it a go here.
Taking It Even Further
You might have noticed the XML for the columns contained other attributes, such as "type" and "allowGrouping". If I get chance I'll touch on these tomorrow and show what else you can do to allow view modification from the server.
Hopefully you're getting an idea not just of how powerful Flex can be, but how easy it is. It might not seem it now if you're just getting in to it, but trust me, once you've got the hang of using XML and E4X along with a knowledge of what all the MXML objects are used for there's no limit to what you can do.
David Schaffer has a user - a boss - with a problem. He travels a lot and if people send him Quickr links instead of document copies, he can't access the documents. David is wondering if anyone has a better idea than waiting for the internet to reach "everywhere".
In the DominoPower Q&A in December 2009, we responded to a reader's question about managing the size of the Domino server's Log.NSF.
Joe Dolittle pointed out that Domino has an automated log database deletion mechanism, controlled by the Log= entry in the Notes.INI file. He noted that should your server not have such an entry, then 7 days is used as the default deletion interval, so you will always have some automated deletion process in place.
I'd also point out that the log deletions managed by this parameter are, in fact, all deleted at once -- so if the retention period is set to 7 days, the server will delete all log entries older than that. The deletion stubs generated by those deletions are then purged according to the standard purge interval formula, which does do things by thirds.
In this article, I'll add some more to this discussion: look a bit deeper at what causes log databases to get large, look at some of the information that's recorded in the log,nsf, and then add some more ideas about how you can deal with it.
With Flex, as with any kind of development, as soon as you find yourself copy-pasting the same bits of code because you want to create a new copy of an object within the same app, you need to stop what you're doing and convert that something in to a re-useable component.
Without wanting to patronise my peers, the benefits of using a component should be obvious -- not only do they keep the "master" code file nice and tidy but they make it much, much easier to make changes to all common objects. You can also take them and use them in other projects.
I'm working on an app with four tabs at the moment. Each tab has a "view" on it. The first tab is the "dashboard" and that has two views on it. That's five views in total and all share common features. To have had five copies of all the same objects and functions would have been foolish. Instead I created a "Notes View" component.
You can see an example of the type of "view" I'm talking about in the new updated demo and in the screenshots below. Just above the DataGrid is a "toolbar" of items associated with it. The same toolbar items can apply to all views.
On the next tab along is another view, which shares the same features, but is, as you can see, a different view.
It's not only these visual elements the views shares. In the background are numerous functions and hidden elements used in the generation and behaviour of a view. Using components was the only way to go.
Simple isn't it. That's all the code it took to build what you see in the screenshots above. Well, apart from the code inside the View component of course. It's inside the component that the code tells Flex to fetch the XML and load it in to the view. It's also where the columns are built and the filter handling and other functionality lives.
Notice in the above code that the initialize event of the second tab calls the View's method called "load()", which triggers a GET request for the XML from the server. This is a custom method I added, which speaks volumes about how easy that is to do.
To add a View based on this component takes no more than 2 lines of code.
If you want to test it out in lieu of the full database download, which will be some time next week, you'll need a view in the XML format used. Just point the view's sourceURL at this url.
Hey, It Ain't Perfect!
The most obvious omission from this view is the lack of pagination. The URLs I've used in the demo have had "&count=-1" tacked to the end of them and assume all documents are loaded in one go. Hence why the filter box above the view is so fast - it's not searching the backend view, but the XML already loaded.
If I feel inclined then pagination is something I'll add in at some point if there's the demand for it?
Next Step
Next week I'm planning to talk about adding Forms to the Flex app. Once I've done that I'll wrap everything up in to a Zip for you to download.
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'.
With the increasing number of databases and servers, developers use the Domino Administrator, more and more. Understand why administrators suffer - they are forced to constantly switch to Notes Client...
In context menus on the database (tab "Files") missing the following items:
Modal window in any application of the Notes Client, Domino Designer, Domino Administrator, IBM Lotus... Help is blocking them all! There comes a temporary collapse...
Example: RALS in Domino Designer; for this operation is not possible in a client run parallel Update design, but even impossible to simply read the Help.
Another example: fill the data in some sort of dialogue, we must quickly switch to the Domino Administrator or Domino Designer and call it a dialogue, and to copy data from there, or again read the Help - do not... - have to close the dialog in the first box, stuffed with hard data is not saved, because not all fields are filled...
All this is terribly inconvenient. I propose to implement subj.
Modal window in any application of the Notes Client, Domino Designer, Domino Administrator, "IBM Lotus ... Help" is blocking them all! There comes a temporary collapse...
Example: RALS in Domino Designer; for this operation is not possible in a client run parallel Update design, but even impossible to simply read the Help.
Another example: fill the data in some sort of dialogue, we must quickly switch to the Domino Administrator or Domino Designer and call it a dialogue, and to copy data from there, or again read the Help - do not... - have to close the dialog in the first box, stuffed with hard data is not saved, because not all fields are filled...
All this is terribly inconvenient. I propose to implement subj.
A view might be sorted by date or by model. The user finds the model they are looking for and then would like that category sorted by serial number or date or customer name, but only for that model.
Just in time for Lotusphere OpenNTF
has a new/modified home page. The new home page now also shows the latest
releases/entries in the Apache and GPL catalogs. Additionally the most
active projects are displayed. For the catalog releases and most ...
Rama Annavajhala has contributed a new
project - Sample
Workflows for Alloy. This project
contains some UI customization examples for sample workflows using ...
I see more and more examples in my Web browser of "liveText"-like capabilities being added to Web sites so that when I hover over a piece of text on my Web page I am provided with a popoup that displays additional information and/or provides links to "related" material. I would like to see something (perhaps a control) added to Xpages that would allow me to add this capability to the text renederd on my XPage.
e.g. When a name is mentioned that is in my sametime list, the sametime status and options to chat or have an instant meeting with that person. If the person is in my personal address book I would like to see a business card for that person. If the text matches a tag I would like to see a list of documents with the same tag. etc. etc. etc.
There has been lots of whispers and speculation about a new Lotus Esprit concept which is predicted to be launched in 2012. Many people are discussing the car on Lotus forums and community websites. Yet there hasn't been an official announcement from Lotus Cars about the possibility a new Lotus Esprit concept; however that doesn't stop the rumors and the excited anticipation of such a vehicle.
The Lotus Esprit was a sports car built by Lotus from 1976 to 2004. The silver Italdesign concept that eventually became the Esprit was unveiled at the Turin Motor Show in 1972, and was a development of a stretched Lotus Europa chassis. It was among the first of designer Giorgetto Giugiaro's polygonal "folded paper" designs. Originally, the name Kiwi was proposed, but in keeping with the 'E...' naming format of Lotus tradition, the name became Esprit.
The Esprit was launched in October 1975 at the Paris motorshow, and went into production in June 1976, replacing the Europa in the Lotus model line-up.
So what are people saying about the New Lotus Esprit?
Well it is generally thought that it will be longer and wider than the Evora, but will still feature a mid-mounted engine and, in all probability, come as a convertible in time.
Rumor has it that the Esprit, Lotus will again turn to Toyota for an engine. The latest report from Motor Authority says Toyota will offer Lotus a V-10 engine in development for the Lexus LF-A supercar, a project that's been reported cancelled and revived repeatedly over the past year. In Lotus spec, the engine could be tuned to produce more than 500 horsepower. There are various opinions on the engine that will power the new Esprit, but most of them say it will be a V8.
It is thought that the Esprit will use a similar Aluminium bonded chassis technology to the Elise, but the car's platform will not be model specific, so it can be used for various Lotus models.
Another possibility for the Esprit is an "Eco Esprit." Lotus believes the push for more efficient vehicles suits its preference for lightweight engineering. Could the Esprit be going green?
Some people predict that the Esprit will be launched during 2012 or maybe a little later, although other sources say that the Esprit could get launched much sooner. This is especially true if the economy and sales of supercars start to get better.
If the financial climate changes for the better and the demand for supercars gains momentum, Lotus is anticipated to introduce the Esprit in advance of the Evora soft-top. However, if the market remains the same, the Evora Convertible will see introduction ahead of the Esprit.
While the Esprit is due in 2012, it is thought that full development work on the vehicle has not started, as the company is concentrating on getting its new Evora model into showrooms. Lotus' also want to see how well the Evora sales perform before financing another model's development.
There is a new release of the Discussion
template available (updated from a release posted yesterday - some bug
fixes). You can download
here. The changes are to improve the number
of visible entries in the topic views, and to improve visibility of ...
For many design elements including XPages, there is a "Preview in Web Browser" option in Lotus Domino Designer. This option is grayed out for custom controls.
When running a Lotus Domino 32-bit server on Microsoft Windows 64-bit, you notice a high memory allocation. This results in poor system performance and the server being low on physical memory. This is a result of a change Microsoft has made to their API SetSystemFilecache(). To address this issue, IBM has implemented code within Domino which calls the Microsoft API SetSystemFilecache() in order to set a maximum size.