To continue my journey with Designer 8.5.1, You may have already read my first , second , third and fourth article. In this article I will focus mainly on Designer 8.5.1 UI interface which is quite different from other versions (except 8.5) and fully based on Eclipse editor.You must need to know UI interface throughly to make most out of it.

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 ?
A perspective is a group of views and editors in the Workbench window. One or more
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.

What is editor ?
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.

What is View ?
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.

To continue my journey with Designer 8.5.1, You may have already read my first , second and third article. Let's check what I've got in this article.

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 :)

1-Prior to 8.5.1 release very few people care about cause of Lotus Notes crash. There is a nice "Fault Diagnostic" report dialog box if you started Notes after crash.It will be an opportunity to every Lotus Notes users to participate in betterment of Lotus Notes product to share their error reports with IBM.

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.

To continue from my first and second article, As we know designer 8.5.1 entirely built on Eclipse framework so most of the domino experts definitely believe on the fact that there is a new era started where we need to get used to with Eclipse framework for Lotus Notes development. However , It's not going to be as easy as it was before when fresh graduate can develop Lotus Notes applications.
The best thing about domino designer 8.5.1 is to guide developer to use best practices in coding like, Add comments automatically whenever you add new functions or subs , Compel not to use undeclared variables etc.
however , To increase developers productivity in Domino designer 8.5.1, They have to learn Eclipse framework to some extent. Let's check how can you make most in Designer 8.5.1,

1-Customize annotations: Customize the display of annotations in editors settings to interact better with Lotus Script/Java editors.
Here is the effect,

2- Quick Diff : You can keep track of what has changed as you edit.

Here is the effect,

Note: Unfortunately this feature only works for Java but not for Lotus Script . However,I believe designer team will fix this when actual release will come.

3- Spelling : Enable spell checker to remove incorrect spellings in your comments.

here how it looks in Java,

Lotus script doesn't detect correctly ,

Note:Unfortunately this feature doesn't work correctly in Lotus Script code but works well in Java code. I believe this could be fixed in actual release.

4- View keyword shortcuts : It's a great way to increase your productivity in Eclipse framework. To get the all keyword list instantly press Ctrl+Shift+L
5- Detached view : It's possible to detach a view so that it can be placed wherever desired, including over another Eclipse window.Right-click on the view to be moved and select "Detached" from the menu. (Alternatively, drag the view by its tab to detach the view from its position in the perspective.)

6- Modify code template : Most of the developers don't include error handler while writing the code , once they encounter the error then remember to add error handler. In designer 8.5.1 even you can standardize error handler code for your new function and subroutine. Definitely this feature will guide developers to follow coding guidelines.

7- Colorful editor : There are lot of developers who got bored in writing Lotus Script/Java code in white text editor. Designer 8.5.1 has given you an option to design your editor as the way you want .

Here is my script editor,

To continue with my first article on Domino designer 8.5.1 new features and my findings, Let's check some more cool features in Designer 8.5.1.

1- In prior versions of Domino designer what happens if existing script library has been missing or removed and agents which were using that library throws an error "Unable to load xxx library".To find such problem in complex applications was quite tedious and time consuming. In 8.5.1 designer, It can be easily detected. You can see red cross beside agent name which is having unresolved issues.Even database icon shows the same.That's elegant !

2- As I've mentioned the possible bug about outline view (Outline view in Designer 8.5 - BUG or only for XPages) in Designer 8.5 is fixed in 8.5.1.
It's nice feature to review and optimize your Domino Java agents in Domino designer itself. Now , Who needs Eclipse to develop Domino Java agents , I don't use anymore :)

3- In Designer 8.5.1 , You don't need to open Agent/Script library property window to modify their property.It can be done inline while writing code.

4- Review your global variables declarations instantly without going to declaration section.I'm going to love this feature because I often use Global declarations in my code.

5- Add line number in your code to enhance readability and ease in debugging.

Note: To attain this feature Show line number option must be enabled from Text Editor

6- Coding Help on your fingertip. You don't need to open help file anymore and wait to get indexed ( if it's not ) and perform search for your desire functions or methods. Just move your mouse on function and get the instant help. Most of the domino developers going to love this..

7- In earlier versions of Domino it was impossible to detect function and sub-routine type in Agent/Script library without opening them individually. Domino designer 8.5.1 came with outstanding feature where you don't need to manually check their types. Even you can detect class with green icon below.

Along with that Constants can be detected ,

Today I received mail from IBM regarding Lotus 8.5.1 beta program and at very first I cancelled all my weekend plan to explore new stuffs in Lotus Notes 8.5.1 designer. Early morning in Singapore time I've started to download 8.5.1 to avoid much network traffic in IBM site :). In an hour I've successfully installed and configured 8.5.1 in my machine.First thanks to IBM team who made Lotus installation/upgrade so easy that you don't even feel you are upgrading to newer version.Those who still have not participated for this program refer to Ed Brill blog here,

My first area of interest was Agents and Script library because I was awaiting long to get type ahead feature in Lotus Script and Java agents. Let's check some outstanding enhancements in Agents and Script libraries.

1- The best enhancement is to have type ahead feature with pop-up help. There are good number of Domino developers who spend quite some time in designer help to read about method and property before writing the code.This enhancement will definitely increase the productivity of Domino developers.

Similarly this feature is now available for Domino Java agents too ,

Apart from domino package, Domino Java agent will provide type ahead feature for non-domino classes as well . Only you need to make sure you have included relevant package in your agent.

2- In 8.5 designer , When you click on new agent you will be presented new dialog box to enter agent name . I personally like this idea which will prevent saving "untitled" or "duplicate agent name" in same database.This idea is further extended in 8.5.1 to allow selection of agent type, application,comment and alias which is even more better :)

3- In your application if you have lot of agents which comprises of Lotus script,Java, Formula type; How would you find the type of agent ? Prior to 8.5.1 you have to open each agent or rely on agent's comment field. In 8.5.1 , You can see the type in agent list in left navigation.

4- Align your lotus script code as you want using "Shift left" and "Shift right" options.

5- Easy to trace undeclared variables/objects in your code.

Note: To attain this feature we must include "Option declare" in your code.

6- We can filter agent and script library list by type using filter option( even it's implemented for all design elements )

7- Eclipse based Java class creation process.

preload preload preload