In my first "How do you do" xpages learning series I learned how to execute client side simple Java Script on xpages , Thanks to Tim Tripcony who shared interesting work around.
Actually I was trying to execute existing LS dashboard agent on xpage using client side Java Script to draw a chart. Lets see how I've done,
1- Created a new JavaScript script library with client side JavaScript which contains my xmlhttp module to call Lotus Script agent.
2- I've my Lotus Script agent ready which have logic to build flash charts ( Fusion Charts )
3- Created button "Draw Chart" on xpage and added JavaScript function "drawChart()" which is inside my JavaScript library.
You might notice I've selected "Server" tab instead "Client" one , Just following Tim's advice.
4- Open source of xpage and add your Client side JavaScript library reference .
To add Server side JavaScript library reference instead of ".js" use ".jss" and clientSide="false"
5- As per Tim's advice add additional tags in source,
Here is my desire output on the web when button is clicked ,
Few days ago I was working on "Flex builder" and it's interesting to see xpages development is very similar to flex development. Those who knows either of these can accelerate really fast.
It's very common to see new articles and tips about xpages in planet Lotus every day. Today I thought to make myself familiar with xpages. To do so I thought to try with very popular and simple program alerting "Hello World" when xpage loads .
Here is what I've tried,
When I view my xpage on web got something like ,
I'm using 8.5.1 designer with 8.5 server . Any clue ?
Is it the right way to execute client side JavaScript on xpages ?
Just started my day with a cup of coffee and Google news and found an article in zdnet about some Microsoft market strategy.I don't get much interest in reading non technical stuffs but something is quite noticeable in this article.
"In a briefing earlier this week, Ron Markezich, corporate VP, Microsoft Online Services told me that most of his team’s customer wins are at the expense of the IBM division: “Seventy-five percent of our enterprise customers are coming from a non-Microsoft platform — predominantly [Lotus] Notes.”
What only I care , Is this a correct figure ? If it is then It's serious concern for Lotus Notes professionals , But if not then what..
I would say F**k off Microsoft, don't spoil my day !
In my last article, I've demonstrated how designer 8.5.1 can be used to connect SVN environments within domino designer for version controls.
In this series, I'm going to show how designer 8.5.1 can be used to test Web Services in simple steps using SoapUI within Lotus Notes. Those who haven't done much in web services can follow my last article ( Web Services implementation in Domino ) and I would discuss the same flight booking availability web service here. So lets skip the code and other details which I've added in the last article only Web Service testing part will be discussed.
You may notice I've used Eclipse WTP to test my web service in earlier article. Let's check how SoapUI plugin with Domino designer 8.5.1 can used to test Web Services.
First step would be to install SoapUI plugin from http://www.soapui.org/eclipse/update/site.xml update site. Other details will be the same as mentioned in the last article. Once installation is done you can see SoapUI plugin in application location like below,
Now go to designer and change your perspective to SoapUI,
Create new SoapUI project ,
Specify project name and WSDL file location,
Once you have done with wizard you should get following hierarchy ( It may differ if you generate TestSuite and MockService ).
Double click on "Request 1" to open SOAP request window,
You may notice there are some question marks in XML tag which denotes SOAP request needs argument to generate SOAP response. My flight booking web service takes four arguments Travel start date, Travel end date, Travel from and Travel to. I will pass the arguments as per my sample documents.
Pass your arguments and click on green arrow button . Here are both the results,
Drop me an e-mail for the database discussed in the article.
Stay tune for more...
I was trying to find if we could do version controlling in Domino without using any paid software (something like Teamstudio). I had a curiosity if Eclipse having tight integration with the Concurrent Versions System (CVS) and Subversion (SVN), so can domino 8.5.1 provides the same? To keep this in mind I've started my R&D and found some possibilities. Here they are,
My first task was to find the way to enable Subclipse ( Subclipse is a project to add Subversion support to the Eclipse IDE )in domino designer. In Eclipse it can be achieved easily using Help->Software Updates menu option but it's not available in designer 8.5.1
However designer 8.5.1 has this feature hidden ( not completely the same as Eclipse ). To enable this feature you need to add following line in plugin_customization.ini file which is located at \Notes\framework\rcp path.
com.ibm.notes.branding/enable.update.ui=true
You must need to start designer after modification. Now here is your Install option,
Next task to enable Subclipse. Steps are,
Use Subclipse update site "http://subclipse.tigris.org/update_1.0.x"
Once done you will be asked to restart Notes
Now go to designer and change your perspective to SVN Repository
Add new SVN repository ( For demo I'm connecting to Subclipse site where SVN is setup),
Login id is : guest and password is space.
Once connected you can see existing repositories from SVN server,
To create version on SVN server use Team->Share Project option,
Stay tune for more..
Drop me an e-mail to get sample database.
Recently, I've got a query regarding editing of .lss file in designer 8.5.1 . According to him ,
"I'm using massively .lss files that resides on a file server (which I can share using SVN/CVS...) in order to protect my code and I'm using SVN to maintain the code, but I do have a problem for editing these files as the Domino Designer is not able to just open them from my windows explorer."
I've started my investigation with Package Explorer view . It shows Java element hierarchy of your project in your workbench and provides easy way to manage project hierarchy. Designer 8.5.1 internally uses .lsa extension for Agents and .lss for Script libraries. So if you try to open them in "Lotus Script Editor" it perfectly opens in design mode , shown below
However if someone is not willing to import each .lss file in Script library to edit them then what are the options he has to edit them in Lotus script editor ? Most feasible solution is to import them in Resources->File section and open them in Lotus Script editor but it doesn't work ,
If you look closely to Java errors it indicates Lotus Script editor can't be invoke from Resources section . However Text Editor can be invoked but I don't think so anybody would be interested in that . Is it a bug or is this a way designer 8.5.1 built ?
Any thoughts ?
New Project at OpenNTF: Active directory name picker servlet for web/ Active directory search using LS for client
As I've written two articles " Active directory name picker using Java Servlet" and " Accessing LDAP using Lotus Script" earlier . Today got some time to make sample database with both the examples and uploaded on OpenNTF.org. Here is the link,
Active directory name picker and search
Sample database has two forms; One for search user in Active directory on Notes client and other form for name picker which runs on web.
I've added important considerations in "About database" page to run both the examples smoothly so hope developers will not find any difficulties to run or customize the solution.
Let's first start with Perspectives in designer 8.5.1.Perspective determines the visible actions and views within a window.It goes well beyond this by providing mechanisms for task oriented interaction with resources in the Domino designer, multi-tasking and information filtering.
Designer 8.1.1 user interface is built on Eclipse so it's now called Workbench. A Workbench window offers one or more perspectives. A perspective contains editors and views, such as the designer application.Multiple Workbench windows can be opened simultaneously. Initially, in the first Workbench window that is opened, the designer perspective is displayed, with only home page visible (or blank editor area). If by mistake you have closed all the perspectives you may get blank designer window which sometimes confuse you .Here is the example,
To get back your designer perspective go to window->Open Perspective->Other and choose Domino designer.
So, In simple words; A workbench is a visual container for a set of views and editors. The structure of the workbench is exposed within the following diagram. The workbench window is outlined in red. Within this window there is a single open perspective in blue.Editor area is in Pink and Green shows different views.
What is perspective ?
perspectives can exist in a single Workbench window. Each perspective contains one or more
views and editors. Within a window, each perspective may have a different set of views but all
perspectives share the same set of editors.
An editor is also a visual component within the Workbench. It is typically used to edit or
browse a resource. Modifications made in an editor follow an open-save-close life-cycle model.
Multiple instances of an editor type may exist within a Workbench window. In prior versions
of designer we use only one editor at a time but designer 8.5.1 (8.5 as well) allows you to open
more than one editor at the same time. So we can simultaneously preview form designer
while write code or designing views.
Depending on the type of file that is being edited, the appropriate editor is displayed in the editor area. For example, if a .css file is being edited, a style sheet editor is displayed in the editor area.
A view is a visual component within the Workbench. It is typically used to navigate a hierarchy of information (such as the resources in the Workbench), open an editor, or display properties for the active editor. Modifications made in a view are saved immediately. Normally, only one instance of a particular type of view may exist within a Workbench window.
A view might appear by itself or stacked with other views in a tabbed notebook.
It can be detached and placed on top of the other views ,
A view can be displayed by selecting it from the Window > Show Eclipse views menu. A perspective determines which views may be required and displays these on the Show View sub-menu. Additional views are available by choosing Other... at the bottom of the Show Eclipse Views sub-menu. This is just one of the many features that provide for the creation of a custom work environment.
There are some useful menu options which can be used if you lost in Eclipse UI .
1- To open existing perspective : If you work on Lotus and Java projects more often then it's good to have two perspective because some views are not compatible with each other for example "Outline" view. You can design custom perspective based on most useful and frequent options. To open existing perspective use Window->Open perspective->Other menu.
2- Customize perspective : To customize perspective as per your need go to Window->Customize perspective ,
3- Saving new perspective : If you have design your own custom perspective use Window->Save perspective as option to save for later use.
4- Reset perspective : It may happen if you messed up with your working perspective , Use Window->Reset perspective option to reset it.
5- Closing perspective : There are two options in this context one is to close all perspective and other to close perspective. Close perspective will only close currently active perspective where as close all perspective will close all the open perspectives and you will see blank screen as I've mentioned in the beginning.
However I feel there should be a button and text message ( like Eclipse ) to give better understanding and guide end user to next step.
(Note: below screen is my mock-up design )
I have got a requirement to design HTML mailer form in Domino for Blackberry and Smartphone users. With some case study I found, First stage would be to detect browser type and second stage to design HTML/CSS. I assume using @BrowserInfo and HTTP_USER_AGENT we can detect browser client . Does anybody tried this successfully ?
After some googling it seems there are specifications in HTML/CSS to design Blackberry interface. Anybody having working idea ?
What I'm doing ?
There is form in Notes client interface which will be used by an Agent to create mailing document . Once document is created mailer agent will apply styles on those documents and insert them in body field and send . But the problem is IE and Mozilla display contents properly but blackberry is treating badly.
I will appreciate suggestions on the same.
I'm doing my real time development in designer 8.5.1 and you don't believe it's so stable that I don't miss 8.5 release. Sometime I get "Null pointer exception" in Eclipse environment but I don't get worried because it's just a unreleased version and it will be fixed in actual release. Today I've submitted my 8.5.1 beta survey and I didn't forget to mention that "Domino 8.5.1 release will be the best release in Lotus Notes history" and it's going to increase productivity of domino developers by at least 30%.At least I believe that :)
2- Run in background : In designer 8.5 , We had button in process dialog box "Run in background" to control whether you want to run a process in background or foreground. In 8.5.1 designer it has moved under global setting.
However it doesn't work as expected and after setting this option every time process runs in foreground. Probably we will get fix in actual release.
3- Monitor Heap Size : Most often we encounter "Out of memory" or "buffer overflow" problem while working on Domino Java program in designer. Also, There are very few domino developers who actually know what is maximum heap size assigned to JVM. Designer 8.5.1 has new feature to monitor and clean up JVM heap size. It's under preferences, turned off by default, called "Show heap status" under General->Preferences. Simply check this box to display a heap size indicator on the lower right corner of your IDE. This indicator displays the maximum JVM heap size and how much of it is being used. Another useful feature of this indicator is the ability to garbage collect the heap. Simply click on the bin icon in the indicator to immediately schedule the heap for garbage collection. It will free up some heap space. There is also a context menu on this indicator. Simply right click to pop it.
4- Better control on Renaming Classes/Variables and adding libraries for Domino Java : There are some extraordinary enhancements has been done for Domino Java functionalities designer 8.5.1. Prior to 8.5.1 writing Java code in Domino was tedious than writing Lotus script but now you will find writing Java code is much easier in designer 8.5.1 . Let's check one by one,
a) Ease in renaming class file and performing find replace : You don't need to open any domino Java agents to do find and replace functions. Prior to 8.5.1 you must need to do find and replace in each class files separately. Also, You don't need to open the code library to rename java file unlike "Edit Project" or code level rename in earlier versions.
b) Ease in adding resources : Unlike opening Java agent and going to "Edit project" option to add new script library , you can achieve in much easier way in designer 8.5.1
c) Ease in adding removing class file : Unlike to other versions you don't need to go to "Edit Project" option to delete unused classes or to copy/paste new class file from other sources .
5- Use breadcrumb navigation in Domino Java : In designer 8.5.1, Java class files list and editor sections are separated in two different threads. To navigate faster in other java classes while editing you can use "Breadcrumb navigation".
My next article on this series will be on Eclipse Perspective, Different types of Eclipse views and Eclipse navigation in Designer 8.5.1.