Once I get the legal approvals I will be submitting this back to OpenNTF.
Now saves the script with the component.
Now uses the new API’s for tooling in the CAE
The Save button and text field is hidden/readonly in the runtime
Test button now publishes the value to the property broker.
Added it to the CAE palette under “OpenNTF” category
PropertyConvert2 – brand new component
Based on the original concept but allows N number of properties to be created.
Each property is associated with its own script.
All scripts and properties are stored with the component in the CA.xml
The test button publishes the property.
Added it to the CAE palette under “OpenNTF” category
Here is a sample of the components in the run time (can be Notes or Expeditor) – realistically these would be hidden so they would be more like service level components. The red lines show the flow of the wiring and I used a basic web browser component to display the resulting text. You can imagine these components are hidden and you would only have your normal application components visible and these components doing the transformation.
(click on image to make larger)
Components in the CAE:
Notice the Save buttons and the script is now enabled for editing. The component “knows” when it is in edit mode and allows the assembler to modify scripts and add properties.
I got a lot of random emails on this subject ever since BONES was put on the blogosphere but I would like to get a better picture of the demand. This refers to SWT and JFace views, not the built in Java rendering that will be possible in Notes 8.5.1.
My friend and former colleague Juan R. Rodriguez from Everclear Technologies Inc. is offering a 4 day workshop on developing plugins and composite applications for Expeditor 6.2 – which is what Lotus Notes 8.5 is based on. You can check out the agenda and labs below – you will get a very wide breath of coverage in the Eclipse and Expeditor platform with the principles of componentation and composites applied. So if you want to impress Nathan or get hired by his team you might want to check out this workshop.
OSGi Overview and Architecture
Eclipse architecture and the plug-in model, fragments and features, IDE and wizards
Expeditor Toolkit and Client for Desktops
Creating a Composite Application
Eclipse component development – SWT/JFace
Component collaboration with Property Broker
Creating Features and Eclipse Update Site
Composite Application Editor
Integrating existing applications as components
Integrating browsers as components to access web applications
Browser container components with collaboration
Eclipse MVC Programming Design Pattern
OSGi and the Event Admin Service
Extending the default personality
Integrating AWT/Swing applications
Q & A
Workshop hands-on sessions
This hands-on workshop includes the following lab sessions to illustrate how to develop eclipse components and understand what tools can be used to build composite applications:
Lab 1 – Hello World and building a composite application
Lab 2 – Develop eclipse components using Eclipse IDE
Lab 3 – Component collaboration with Property Broker
Lab 4 Creating Fragments
Lab 5 – Publishing an Eclipse Update Site
Lab 6 – Using the Composite Application Editor
Lab 7 – Integrating documents
Lab 8 – Integrating web browsers as components
Lab 9 – Web browser container
Lab 10 – Eclipse MVC Programming
Lab 11 – Cooperating components using OSGi Event Admin
Lab 12 – Branding your application
Lab 13 – Personalities
Lab 14 – Extending the default personality
Lab 15 – Using eclipse preferences in composite applications
The Lotus Expeditor Wiki is asking for input on anything and everything Expeditor. The platform under Lotus Notes, Sametime, and Symphony is a very powerful platform based on Eclipse. If you want to see more education material or postings on API’s, plugins, patterns, or anything related to the Eclipse side of the Lotus products, post your needs here.
Very interesting article over at the InfoWorld site. It has a lot of valid points and I think if something so standard as “HTML” will provide this stuff then it makes me understand why Microsoft is so reluctant to support HTML 5.
“HTML 5, a groundbreaking upgrade to the prominent Web presentation specification, could become a game-changer in Web application development, one that might even make obsolete such plug-in-based rich Internet application (RIA) technologies as Adobe Flash, Microsoft Silverlight, and Sun JavaFX.” – link
Many probably know that Lotus Symphony is based on Lotus Expeditor and Eclipse but you may not have put two and two together for new opportunities. You can install pretty much any Eclipse plugin into stand alone Symphony; by default the Eclipse plugin install menu is enabled:
Now, in Symphony 1.3, there is also support for composite applications. So if a Notes or Expeditor developer create a .CA file a Lotus Symphony user can open it. Of course you will have to make sure any features developed for are linked in the .CA file so it can be launched correctly.
So from a business partner point you can provide plugins and composite applications for the Symphony product suite. You can also deploy entire RCP based applications to Symphony. If you have the coolest plugin you can essentially deploy it to Symphony, Notes, Sametime, and Expeditor installations.
I was checking my blog this morning for comments and I noticed this Google Ad for Quickstart Eclipse RCP Training so I clicked the link and found a pretty nice venue for Eclipse RCP education. I often recommend the old RCP book (which is kind of dated at this point) and I think getting a fresh online course is much better considering most of what you can find is on the internet. Once you get a primer with the basics you will be able to Google for just about anything. This course looks like it starts in about 2 weeks.
This course will be held online using the GoToMeeting service. The PDF manual and lab materials will be delivered as an encrypted archive available a few days before the course begins.
The timing of the course is meant to be convenient for students throughout North America, though youre welcome to take the course from anywhere in the world. The specific course times for the North American time zones are as follows:
No “bones” about it, you could definitely make an application like the one Nathan’s team put together but it will not be trivial. I wish my team could have developed this kind of demo years ago – Notes 8 could have used a first class application like this to demonstrate the power of the Eclipse framework. This truly is a composite application at its best – mixing the world of Eclipse and Notes so seamlessly you don’t even know its a Lotus Notes based application – congrats! It is really just an Eclipse RCP application surfaced through the composite application framework. So even though it doesn’t use wiring, properties, or actions – it uses the CA to surface the RCP application from an NSF and then the application leverages all of the power of Notes that has been there forever.
So what would you need to know in order to create a similar application? Here are a few pointers you can reference to get started:
The Notes.jar API’s. From what I understand the communication with Notes is almost completely through the Java API’s. This has challenges in itself because of the threading problems. So you will also need to understand threading…a few bullets down.
SWT programming – ok, you might not have to go to the point Lotus911 did and create all of your own custom controls but you will need to know a good level of SWT programming if you do not intend on using the canned UI from the Notes Java views. The key here is to look at the JFace stuff and learn how to create Data and Label providers. If you want some of the low level Notes controls then check out the SWidgets that ship with Notes. Your controls will then at least be compatible with the Notes themes.
The Eclipse Jobs framework – know this in and out. You really need to understand multi-threading and the Eclipse Jobs framework makes it alot easier then working directly with threads.
SWT Layouts – these are a bare, not only in SWT but also AWT/Swing. They are just very hard to figure out.
Eclipse plugin development. You need to fully grasp plugins, features, and fragments. Especially if you intend on supporting multiple operating systems. I always recommend this book, which covers jobs, swt, plugins,etc.
The last thing you need is a lot of ambition. The application these guys put together is nothing short of amazing when you think about how long it took them or just think about the end result and realize its Lotus Notes.
I got this from a colleague who received it from another colleague who got it forwarded from someone from Lotus911 – no mention of names. I figure since its on YouTube I can blog about it. The application is absolutely beautiful with an amazing user interface. As Nathan explains it is based on Notes 8 and a Foundations server. It is an excellent display of using Eclipse Java as the front end to Lotus Notes data and of course it comes with all of the benefits of NSF as Nathan explains.
With the announcement of Google Wave, we now have three distinct camps (maybe more) for creating that new Web 2.0 killer application/component. We have a lot of consumers of widgets (check out the supported sites) but we have three main API “frameworks”; Microsofts Silverlight, Apache Shindig and now Google Wave. Shindig and Wave are very similar in the roots (support the same base specifications) and are very compatible at many levels. There are clear distinction is in the API’s that both platforms support (Wave actually extends OpenSocial) but with the added extensions Wave supports it looks like it has gone a little further in supporting broader real world use cases (Robots, Embedded API). The great thing about Wave is it does support OpenSocial gadgets and its specification:
“Gadgets, which you may know from OpenSocial, are client-side programs that make it easy to write full applications inside of Google Wave. The neat part is that we’ve introduced an extension to the OpenSocial gadgets API that enables you to take advantage of the collaborative nature of Wave when building a gadget.” – link
Silverlight continues to be very MS like but seems to be gaining a lot of ground – I am seeing more and more job openings for Silverlight developers. Silverlight also supports OpenSocial gadgets and compliments Silverlight very well.
So if you want to start developing base gadgets for these platforms and sites, stick with Open Social gadgets – and since OS Gadgets just require an iFrame you can stick them pretty much in any web page. You can start developing and debugging these gadgets with the Open Social Development Environment (OSDE) for Eclipse today. You can even watch the introduction video that walks you through what OSDE can do.