ad103-100707123701-phpapp02 (ad103 have it your way extending ibm)

25
7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM) http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 1/25  AD103 Have It Your Way: Extending IBM Lotus® Domino® Designer Andre Guirard |  Product Developer Xin Rang Wang ("Grace") |  Software Engineer 

Upload: k4lonk

Post on 14-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 1/25

 AD103 Have It Your Way: Extending IBMLotus® Domino® Designer Andre Guirard | Product Developer 

Xin Rang Wang ("Grace") | Software Engineer 

Page 2: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 2/25

2

Agenda● Eclipse-based Domino® Designer Architecture

● What you will need

The Designer Extensibility API

● Example applications

● Demonstration

Q & A

Page 3: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 3/25

 

Extensibility in Domino Designer ● Extend Domino Designer.

▬ Use Eclipse development skills to create plug-in in Java™.

▬ Or, integrate existing Eclipse based plug-in

▬ Create

● Publish your Designer plug-in to OpenNTF.org▬ Please!

● Or sell them for $$$

Page 4: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 4/25

Page 5: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 5/25

 

What You Will Need● Eclipse 3.4 or later development environment (FREE!)● Eclipse plugin development skills

● Domino Designer 8.5.1 or later 

Page 6: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 6/25

 

Capabilities of Designer Extensibility API● Let custom plugins tell what's selected

▬ Which Notes application

▬ Which design elements

▬ (if no design elements) which navigator heading or design list

▬ Whether a core editor window has focus

● Get / set basic properties (title, alias, template name, etc.)● Combine with Notes Java API (lotus.domino.*) and DXL, to manipulate

design elements in other ways.

Page 7: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 7/25

Page 8: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 8/25

Page 9: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 9/25 

Core Window● The "old style" design element editors

Page 10: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 10/25 

Eclipse-based Editor ● The newer design elements and new LotusScript editor 

Page 11: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 11/2511

Demo Use Cases● Selection tracker 

●  Assign Comment on Multiple Design Elements▬ etc...

● Create View From Form●

Refactor plugin for Domino Designer ● References validation plugin for Domino Designer 

● Import/Export plugin for Domino Designer 

Page 12: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 12/2512

Extensibility API Classes/Interfaces● Class DesignerResource

▬ Static methods for working with Designer selections and objects

● Interface DesignerDesignElementSelection▬ The description of “what Domino- based elements are selected”.

● Interface DesignerProject▬ IProject object representing “Notes Database”

● Interface DesignerDesignElement▬ Object representing “Notes design element”

● Class DesignerException▬ Exception object for all problems using methods of DesignerDesignElement and DesignerProject

Property tester com.ibm.designer.domino.ui.commons.extensions.*▬ What sort of thing is selected?

Page 13: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 13/25 

Context Menu extension – Design Element

Page 14: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 14/25 

Context Menu extension – Design Element

org.eclipse.ui.popupMenusorg.eclipse.core.resources.IFile

Page 15: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 15/25

 

Context Menu extension – Application

Page 16: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 16/25

 

Context Menu Extension – Application

org.eclipse.ui.popupMenusorg.eclipse.core.resources.IProject

Page 17: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 17/25

 

To Make Menu Appear (only) in Designer 

  <extension  point="org.eclipse.ui.perspectiveExtensions">  <perspectiveExtension  targetID="com.ibm.designer.domino.perspective ">

  <actionSet  id="ID of your action set which is defined elsewhere">  </actionSet>  </perspectiveExtension>  </extension>

Page 18: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 18/25

 

Controlling Menu/Control Enablement● Enable when selection is anywhere in a Domino application:

▬ <enablement><reference definitionId="com.ibm.designer.domino.ui.commons.extensions.designerProjectSelected" />

</enablement>

● Enable when exactly one form is selected:▬

<enablement><with variable="selection">  <test

property="com.ibm.designer.domino.ui.commons.extensions.numAndType"  value="1,forms" /></with></enablement>

Page 19: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 19/25

19

com.ibm.designer.domino.ui.commons.extensions

DesignerResource

static DesignerDesignElement getDesignElement(IResource resource)Convert IResource to Notes design element.

static DesignerProject getDesignerProject(IProject project)

staticDesignerDesignElementSelection

getDesignerSelection(ISelection selection)Returns object with info about everything Domino-related in

current selection.

static IResource getResourceFromEditor(IEditorPart part)Answers the question “What design element am I editing here?”

static DesignerProject openDesignerProject(java.lang.String server, java.lang.Stringfilepath)Kicks off a background process that adds a bookmark to the

 Notes application into Designer.

Page 20: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 20/25

20

com.ibm.designer.domino.ui.commons.extensions

Interface DesignerDesignElementSelection

 java.lang.String getCategory()

int getDesignElementCount()

 java.lang.String getDesignElementType()

 java.util.List<DesignerDesignElement> getSelectedDesignElements ()

DesignerProject getSelectedDesignerProject ()

 boolean isDominoProjectSelected ()

Page 21: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 21/25

21

com.ibm.designer.domino.ui.commons.extensions

Interface DesignerProject java.lang.String getDatabaseTitle() (also set!)

 java.lang.String getServerName()

java.lang.String getDatabaseName()The filepath of the application.

java.lang.String getReplicaId()

void refresh()Update UI to reflect recent changes.

 java.lang.String getInheritTemplateName() (also set!)Which template this application inherits its design from (null=none).

 java.lang.String getMasterTemplateName() (also set!)If application is a template, "template name" by which other applications can inherit its design (null = none).

DesignerDesignElement getDesignElement(IPath path)To get an object to work with a design element even if it's not selected.

 boolean isMultiLingual()

 boolean isDesignHidden()

...

Page 22: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 22/25

22

com.ibm.designer.domino.ide.resources.extensions

Interface DesignerDesignElement java.lang.String getName() (also set!)

 java.lang.String getAlias() (also set!)Multiple aliases delimited with “|”

java.lang.String getComment() (also set!)The filepath of the application.

java.lang.String getNoteId()

IResource getResource()

 boolean isProhibitRefresh() (also set!)Whether design element protected from design refresh/replace.

 java.lang.String getDesignElementTemplateName () (also set!)If design element inherits design individually from a template, whichtemplate.

 java.lang.String getDesignElementType()String from IMetaModelConstants telling whether this is a form, viewor what.

 java.lang.String getLanguage()

...

Page 23: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 23/25

you’d like to see ademonstration.So why don’t we just do that?Click to edit the title text format

you’d like to see ademonstration.So why don’t we just do that?

Page 24: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 24/25

Page 25: Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

7/30/2019 Ad103-100707123701-Phpapp02 (AD103 Have It Your Way Extending IBM)

http://slidepdf.com/reader/full/ad103-100707123701-phpapp02-ad103-have-it-your-way-extending-ibm 25/25

25

Legal Disclaimer © IBM Corporation 2009. All Rights Reserved.

The information contained in this publication is provided for informational purposes only. While efforts were made to verify thecompleteness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM withoutnotice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations fromIBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBMsoftware.

References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBMoperates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion basedon market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way.

Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by youwill result in any specific sales, revenue growth or other results.

IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere aretrademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.