GullFOSS
OpenOffice.org Engineering at Sun
 
Subscribe

Today's Page Hits: 1065

 
Archives
 
« May 2008
SunMonTueWedThuFriSat
    
3
4
6
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
       
Today
Links
Flickr Photos
More Flickr photos tagged with openoffice
Locations of visitors to this page
all tags: accessibility api aqua architecture automated_tests base build calc chart code community compiler cws database development directx download draw eis events export extensions features filter framework graphics gsl gsoc gullfoss i18n import impress installation irc iso26300 java l10n localization mac macros netbeans odf odff ooo ooocon ooxml opendocument openoffice.org patch pdf performance plugin podcast porting qa quality release report sdk snapshot software specification spreadsheet staroffice statistics sun svg toolkit tools usability user-experience vba web wiki writer writerfilter xml
Friday, 29 Feb 2008
OpenOffice.org 3.0 and cooperation with the RedFlag 2000 framework team
Carsten Driesner

Today I want to give you a new overview on what features and enhancements we are working on in cooperation with the RedFlag 2000 framework team.

We enhanced the “Change Icon” dialog again to enable user to import images more easily. Currently users have to scale their images to the two supported icon sizes (16x16 for small icons and 26x26 pixel for large icons) before they can import these images. Although this solution enables users to use their own tool set to scale images it sets a high hurdle for others. Sometimes users just want to import images and use them as quick as possible. The new import images implementation now automatically scales images, while preserving their aspect ratio.

The next picture gives you an impression how the new scaling implementation works.



The specification for this enhancement can be found here. If you want to discuss this enhancement, please use the user experience team mailing list.

The configuration data structure of some OpenOffice.org features are another topic where the RedFlag2000 framework team helped us. Especially the configuration data for pick list, history and help bookmarks are now based on separate configuration files with a clear structure. This enables developers to create extensions which can use these data structures to support new features. For example it will be possible to create an enhanced version of the pick list with options to clear the list, to change the number of entries. The access code of other configuration data has been rewritten to remove overhead, have a clearer implementation and to process data changes at runtime.

The cooperation with the RedFlag 2000 framework team is on a very good level and OpenOffice.org will clearly benefit in the future with more features, enhancements and bug fixes.

tags:

Posted by Carsten Driesner on 29 Feb 2008  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this

Friday, 11 Jan 2008
Most wanted: New design for keyboard configuration tab page
Carsten Driesner

We are now short before code freeze for OpenOffice.org 2.4 and the framework team tries to fix the last important issues. I think it's time to take a look at the new major version: OpenOffice.org 3.0. We have one project regarding the OpenOffice.org user interface where your feedback is warmly welcome. We want to brush up the existing keyboard customization tab page. It's the last customization tab page which uses the old OpenOffice.org 1.x layout so it's time to exchange it with a better design. I would also guess that this tab page is the most important one regarding customization. The only prerequisite is that the new tab page uses the same style as the other tab pages (e.g. menus, toolbars and events). We don't want to irritate users with a completely different style. You can see a screen shot from the current the keyboard customization tab page below.



The user experience team supports a mailing list where you can discuss this feature and provide design proposals. They are curious for your proposals and ideas to brush up this tab page, so please provide feedback.

If you have technical questions, please use the “dev” mailing list of the OpenOffice.org Application Framework project.

tags:

Posted by Carsten Driesner on 11 Jan 2008  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[4]

Monday, 22 Oct 2007
OpenOffice.org 2.4 features implemented in cooperation with the RedFlag 2000 framework team
Carsten Driesner

Today I want to report about features that were implemented with the help of the RedFlag 2000 team. They will be part of OpenOffice.org 2.4. Liang Weike, a member of the Open Source Framework team from RedFlag 2000, helped me to implement a persistent user image list. It can be used to import your own icons into OpenOffice.org and use them to change toolbar icons. Importing icons was possible with previous OpenOffice.org versions, but now the imported icons are stored persistently within a user image list. Users are not forced to import the same icons again and again, but can create their own icon repository for later use. The “ Change Icon” (see the image below) dialog, the central dialog which supports changing and importing icons, has been reworked to also support the deletion of user icons.



I think this is a successful story how we, the community, can make OpenOffice.org better. Big thanks to Liang Weike who worked hard to implement the feature and fixed all other issues related to the “Change Icon” dialog.
You can find more information about the “Change Icon” dialog in the toolbar specification located at the OpenOffice.org specification project here.

The second enhancement is related to the “print file directly” toolbar button, which resides on the standard bar (next to the PDF export button). Some community members proposed to enhance the quick help text to show the name of the printer which is going to be used when clicking on the button. See the following mock up.



The community wrote the specification, thanks to Kirill Palagin who is a very active member, for the enhancement. Implementation was done by Liang Weike with the help of the framework team. The CWS will be built and provided to the community to make the necessary tests. You can find the specification for the enhancement here . Everybody who thinks that this little enhancement could help him/her is welcome to help us testing. Installation sets are located here . If you have questions or comments to the enhancement you can contact me using cd{at}openoffice.org.

tags:

Posted by Carsten Driesner on 22 Oct 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[40]

Monday, 06 Aug 2007
Language Selection Statusbar Control
Carsten Driesner

For OpenOffice.org 2.4 this project wants to improve the handling of languages in Writer documents. Currently OpenOffice.org doesn't provide an easy way to change the language of a word, paragraph or text selection. The user has to use the menu and a multi-tab dialog to choose the appropriate language. A new status bar control should provide this function and enhance usability for people who have to work with multiple language documents. To get feedback as soon as possible from the community we decided to provide a test version of the new feature. Please keep in mind that this version is not yet feature complete but supports the most important part (the status bar control), and it is currently implemented for text documents only. Especially have a look at the implementation when using multiple script types. You should also be aware that the OpenOffice.org version is a snapshot from a developers build. Therefore don't use this version for your daily work but only as a test version for the status bar control.

You can find a OpenOffice.org version (based on SRC680m217) for Windows and Linux here:
http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/langstatusbar/

The specification of the feature can be found here:
http://specs.openoffice.org/appwide/linguistic/Set_Language_Attribute_for_Text.odt

We prepared two test documents for the status bar control and/or language guessing. In the larger one the language is usually set wrong in order to test language guessing though. To test language guessing just right click on a wrong word and see the entry for the paragraph language.
http://wiki.services.openoffice.org/mwiki/images/e/e4/LGsampletexts.odt
http://wiki.services.openoffice.org/mwiki/images/2/23/Samples_All_Languages.odt

If you have questions or comments about the feature, please use the “dev” mailing list of the Openoffice.org Application Framework project (in case it's technically motivated). Use the “discuss” list of the Openoffice.org User Experience project when you want to discuss about the feature itself (look & feel, missing features ).

tags:

Posted by Carsten Driesner on 06 Aug 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[2]

Thursday, 19 Jul 2007
Update from a Framework/Writer Google Summer Of Code (tm) project
Carsten Driesner

New Application for Status bar control to display/change the language

This project wants to improve the handling of languages in Writer documents. Currently OpenOffice.org doesn't provide an easy way to change the language of a word, paragraph or text selection within the Writer application. The user has to use the menu and a multi-tab dialog to choose the appropriate language. A status bar control which provides this function would greatly enhance usability for people who have to work with multiple language documents. We are making good progress and at half-time our student, Lili Sun from California (USA), implemented most of our required features for the status bar control. If anybody is interested to see the new control just try to build the CWS langstatusbar. I am sure that we can provide this great control for OpenOffice.org 2.4. To have an impression about the look of the feature you can find a screen shot from the latest CWS version below:




You can find more information inside the feature specification which is available here:
http://specs.openoffice.org/appwide/linguistic/Set_Language_Attribute_for_Text.odt

If you are interested in the progress of the feature task, just look at the following issue:
http://www.openoffice.org/issues/show_bug.cgi?id=77208

If you have questions or comments about the feature, please use the “dev” mailing list of the Openoffice.org Application Framework project (in case it's technically motivated) or the “discuss” list of the Openoffice.org User Experience project where you can discuss about the feature itself.

tags:

Posted by Carsten Driesner on 19 Jul 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[2]

Friday, 13 Jul 2007
Bug hunting
Carsten Driesner
After passing the feature freeze date the framework team now concentrates on bug fixing. Code freeze is the next important milestone for OpenOffice.org 2.3 which will be August 2 nd, 2007. Today I want you to give a little insight into the work of bug hunting.

Once in a while one stumble over an interesting bug that may be also interesting for other developers. I encountered a strange crash and the finding the root cause was a very exciting task. The crash occurred during the shutdown phase of OpenOffice.org where libraries will be de-initialized. The crash only occurred on Windows, Linux and Solaris were not affected.

The crash itself was triggered by calling the destructors of static objects within the toolkit library. This library is an UNO API wrapper to the VCL library that provides the system independent GUI layer. The following C++ code snippet shows the toolkit part.

// ...............................................................
Reference< XNumberFormatsSupplier >& lcl_getDefaultFormatsAccess_nothrow()
{

    static Reference< XNumberFormatsSupplier > s_xDefaultFormats;
    return
s_xDefaultFormats;

}

During the shutdown phase the static reference s_xDefaultFormats is destructed and the reference count of the held object is going down to zero. That triggers the destructor of the referenced object which is implemented in a different project called “svtools”. The svtools project is a bag for several different implementations including support code for language handling, configuration access, base classes etc.

The next C++ code snippet shows the svtools code part that is triggered by releasing the reference to the object implementing XNumberFormatsSupplier:

SvtSysLocaleOptions::~SvtSysLocaleOptions()
{
    MutexGuard aGuard( GetMutex() );
    if( !--nRefCount )

    {
        delete pOptions;
        pOptions = NULL;
    }
}

Mutex& SvtSysLocaleOptions::GetMutex()
{
    static Mutex* pMutex = NULL;
    if
( !pMutex )

    {
        MutexGuard aGuard( Mutex::getGlobalMutex() );
        if( !pMutex )
        {
            static Mutex aMutex; <-- ROOT CAUSE!!
            pMutex = &aMutex;
        }
    }
    return *pMutex;
}

The root cause of the problem was that the svtools library already run through the de-initialization code. Means that the static mutex was already destructed. In the above scenario the destructor of SvtSysLocaleOptions tried to lock the mutex with the MutexGuard which accessed a destructed object, end result a crash.

I think every developer must ensure that all resources which are used by an UNO implementation are held by reference. Another option would be to support com::sun::star::lang::XComponent that provides the method dispose(). With dispose() you can control the “active” life-time of an object which has to release all references to other objects within dispose().

tags:

Posted by Carsten Driesner on 13 Jul 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[2]

Tuesday, 05 Jun 2007
Spotlight on framework features for OpenOffice.org 2.3
Carsten Driesner

The official feature freeze date for OpenOffice.org 2.3 (5 th of July 2007) is coming near. The framework team is working on some interesting features for the new version. I want to give you an overview about these new features, especially extension developers and Windows Vista (tm) users will definitely profit.

Menu bar and toolbar merging for extensions

This feature makes it possible for an extension to integrate seamlessly into the OpenOffice.org menu bar or any existing toolbar. An extension can add new menu entries and sub menus, replace existing menu items or remove menu entries. This is also possible for toolbars. This feature allows extensions to look like an integral part of OpenOffice.org. It also overcomes the problem that currently most extensions create a top-level menu which can lead to an overcrowded menu bar. To support menu bar and toolbar merging the Addons.xcu file, a central configuration file for the user interface definition for extensions, has been extended. There are two new configuration sets called “ OfficeMenuBarMerging” and “OfficeToolbarMerging” which contain all merging commands that define how the extension menu and toolbar items should be merged into the OpenOffice.org user interface. There is no programming needed to achieve that, just specify your merge instructions into the new configuration sets and you're done. If the user removes the extension, the merged items will also be removed without any single line of code. You can find more information about the new merging feature with technical details on the “ work in progress” OpenOffice.org framework wiki page.

The next screen shot shows how an extension could integrate itself into the OpenOffice.org menu bar and the “standard” toolbar. The added items are marked with a red ellipse.




Support for Windows Vista Open/Save File Dialog

Currently the integration of OpenOffice.org into Windows Vista (tm) is not as good as we would like. Therefore we are working on the integration of the new file dialogs in OpenOffice.org. During the development of the dialog integration we stumbled over many different problems with the development environment and Windows Vista. Some are very interesting and we want to share it with you:

  • Some early Windows SDKs for Window Vista were not complete (missing files and definitions). Even now, several months after Microsoft Vista is available, there are problems with missing definitions.

  • The first C++ runtime libraries for the Microsoft Visual Studio C++ 8 compiler were incompatible between the Express and Professional compiler edition. Microsoft fixed that with the SP1 for the compiler.

  • The documentation for the new Windows Vista features is not complete and error free. For example, the new interface IFileDialogCustomize can be used to add controls at runtime to the dialogs. The documentation states that you can control the position of the controls (with some limitations), but that's not possible. Sometimes methods (e.g. RemoveAllControlItems() ) report E_NOTIMPL which means not implemented.

You can see two screen shots of OpenOffice.org under Windows Vista.

1. The file open dialog.



2. The file save dialog.



For more information about the Vista integration of OpenOffice.org you can visit the Windows Vista (tm) Openoffice.org wiki page. If you have questions or comments about one of the features, please use the “dev” mailing list of the Openoffice.org Application Framework project (in case it's technically motivated) or the “discuss” list of the Openoffice.org User Experience project where you can discuss about the feature itself.

tags:

Posted by Carsten Driesner on 05 Jun 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[5]

Friday, 27 Apr 2007
Hot framework projects
Carsten Driesner

The Google Summer Of Code 2007 (tm) initiative from Google was a great success for OpenOffice.org and the framework project. The framework team has two active projects within OpenOffice.org. These projects should help users to work more efficiently with OpenOffice.org. Please look at the following description of these two projects.

  • New Application for Status bar control to display/change the language
    by Lili Sun, mentored by Carsten Driesner and Thomas Lange

    Currently OpenOffice.org doesn't provide an easy way to change the language of a word, paragraph or text selection within the Writer application. The user has to use the menu and a multi-tab dialog to choose the appropriate language. A status bar control which provides this function would greatly enhance usability for people who have to work with multiple language documents.

  • Improve UI Design and Layout
    by Ricardo Pereira de Magalhães Cruz, mentored by Michael Meeks

    Currently, OpenOffice.org interface layout is compiled into the binary and its format is not suitable for working on with a visual designer. Also, the layout is specified in absolute coordinates, which make it a hassle to add or remove widgets, and can result in truncated widgets due to internationalization. I propose to work on separating the UI writing from the code to XML-based files, and having the layout being expressed in relative terms.

I want to focus on the status bar control to display/change language. A first draft specification of the new language control in the Writer status bar can be found here:

Below you can see two mockups which show how the new language control should be embedded into the Writer status bar.




The current language will be shown within the control or “Multiple Languages” if there is more than one language (e.g. a paragraph or selection with more than one language). A project wiki page has been set up so anybody who is interested on the progress of the project can find more information. If you have question or comments please use the “dev” mailing list of the Openoffice.org Application Framework project (in case it's technically motivated) or the “discuss” list of the Openoffice.org User Experience project where a discussion is already in progress.

There are more interesting projects cooking within the framework project:

  • The tabbed windows extension
    This extension draws attention by many users. Therefore we created a new wiki page to focus on the discussion about the future of this interesting feature. See also the blog on GullFoss from Mathias Bauer.

  • OpenOffice.org configuration items refactoring
    OpenOffice.org uses wrapper classes to access configuration files. These wrapper classes have their own caching mechanism. There is a big drawback using this caching mechanism as it hinders extension developers to use the configuration API to change OpenOffice.org behavior (e.g. history and pick list etc. ). The code refactoring should remove the caching and therefore enables external code (extensions) to use the configuration API. The “ recent file list” popup menu controller tutorial will greatly benefit from this refactoring.

tags:

Posted by Carsten Driesner on 27 Apr 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[3]

Thursday, 26 Apr 2007
Keeping tabs on "tabs" development
Mathias Bauer

“Tabs” in OpenOffice.org is one of the features that many people would love to see but due to numerous reasons still is not done yet. Nearly two years ago we started with a first prototype to find out whether it is basically possible to add this feature to OpenOffice.org without rewriting major parts of the code base. To prove this we decided to implement this as an extension and made it a Google Summer Of Code project. The project was successful and delivered the desired extension for a “tabbed” document windows prototype in OpenOffice.org. As a side effect it was a good demonstration for the powerful OpenOffice.org application framework and extensions infrastructure. Read more about that here .


As easily discernible the GUI is still very “raw”, it's really only a prototype. And it still has bugs and some features are missing or got lost.

What we learned from this prototype was that besides the pure technical facts there are a lot of other questions we have to answer and some problems we have to solve before the component could become “ready for prime time”. When we started to discuss them we discovered very soon that this won't be a fast-track procedure. The feature richness of OpenOffice.org and its GUI demands for an in-depth analysis of the many situations that deal with windows and the multitude of different kinds of content presented inside of them. Compared with OpenOffice.org the feature set, the modes of operation and the versatility of the content in a Web Browser are rather trivial and this makes implementing a “Tabbed Document Interface” (TDI) in OpenOffice.org a much bigger challenge.

We never found enough time and resources to bring the results of all these discussions together into a common concept and many points are still open. So now we want to present a collection of open questions and possible answers and ask for feedback. Perhaps this could help to speed up things a bit.

Get the extension and play with it. Read the questions and problem descriptions and post your answers to the “dev” mailing list of the Openoffice.org Application Framework project (in case it's technically motivated) or the “discuss” list of the Openoffice.org User Experience project (if you are more interested in the user interface aspects).

For the brave developers amongst the readers there's also the source code of the extension. You can build it with our SDK on Windows, Linux or Solaris and play around with your own ideas. Feedback related to the implementation should go to the mentioned “ dev” list of the Framework project.

It's still a way to go for this feature and quite some work to do. And we should never forget that for the work to be done finally someone has to pick up the tab (pun intended ;-)). So the potential result should be something worth the invested time.



tags:

Posted by Mathias Bauer on 26 Apr 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this  |  Comments[2]

Monday, 12 Mar 2007
Framework project and Google Summer of Code 2007
Carsten Driesner

This time Google Summer of Code 2007 is in the focus of the framework project. Summer is coming near and the framework team has two interesting projects for students who want to earn some money and contribute to OpenOffice.org.

  1. A status bar control to display/change the language of a Writer document
    Currently Writer lacks means to display the language in use. There's also no easy way to change the language as the user has to use the menu. A status bar control would help to solve these problems. The control should be implemented using existing UNO APIs and should be available as an extension.

  2. Extensions to better support some new Vista
    Vista changed its mechanism to integrate some shell extensions incompatible. Extensions which are valid for Win98/2000/XP don't work anymore. A set of new interfaces has been designed, but are only available on Vista. Therefore OpenOffice.org has to support two sets of shell extensions: one set for Win98/2000/XP and a new set for Vista and following windows versions. For this project the new Vista extensions has to be implemented.

You can find the full list of Google Summer of Code projects 2007 regarding OpenOffice.org here:
http://wiki.services.openoffice.org/wiki/Summer_of_Code_2007

One example for the success of the Google Summer of Code projects is the OpenOffice.org Tabbed Window extension. The project was created for Google Summer of Code 2005 and finished successfully. Thanks to Andrzej Wytyczak-Partyka, former Google Summer of Code student, and framework project member Andreas Schlüns this project will be continued. A current developer version can be downloaded on the framework wiki page. It's planed to provide the extension on the OpenOffice.org extension web page if it reaches a final state. A screen shot (OpenOffice.org 2.1) with Tabbed Windows extension can be seen below.


The extension supports OpenOffice.org 2.0.4 and higher. Please keep in mind that the current extension is a developer version. Therefore it can create problems with your OpenOffice.org installation and crashes cannot be excluded. Please don't use it for your production system, but just as a preview.

The popup menu controller tutorial is short before final state where developers can download the C++ source code and the a ready to install extension. A Java version of the sources will follow. Please stay tuned for an announcement on the developer mailing list.
The first chapter of the new OpenOffice.org status bar and controllers tutorial is now online. It describes the internal architecture of the status bar, responsible configuration files and UNO services.

tags:

Posted by Carsten Driesner on 12 Mar 2007  |  PermaLink |  Bookmark to del.icio.us Bookmark to del.icio.us |  Digg this Digg this

GullFOSS