2017-01-15

1: We Will Learn How to Develop UNO Extensions (LibreOffice Extensions or Apache OpenOffice Extensions)

<The previous article in this series | The table of contents of this series | The next article in this series>

Main body START

To Know How to Handle (Read or Write) LibreOffice or Apache OpenOffice Writer or Calc Documents via Extensions from Java or Macro Programs

What Are UNO Extensions?

-Hypothesizer

We will begin to learn how to develop UNO extensions.

-Rebutter

Huh? Isn't that a bit abrupt? What are UNO extensions?

-Hypothesizer

The UNO extension is an extension that can be installed into LibreOffice or Apache OpenOffice.

-Rebutter

What are extensions?

-Hypothesizer

The extension is, in short, an add-on.

-Rebutter

Ah, I know add-on. . . . What does that 'UNO' mean?

-Hypothesizer

UNO is the name of technology used in LibreOffice and Apache OpenOffice, and is short for Universal Network Objects.

-Rebutter

Do you mean, UNO is an interface standard between LibreOffice and its extensions?

-Hypothesizer

It's not just a standard of interface between LibreOffice and its extensions, but rather LibreOffice itself is built up in UNO. I mean, in the LibreOffice program process, many UNO objects are alive and interact with each other. UNO is the whole of specifications about what UNO objects are like, how UNO objects can be handled, and other related issues.

-Rebutter

. . . What are UNO objects, in short?

-Hypothesizer

To describe in object-oriented language terms, the UNO object is a kind of class instance.

-Rebutter

Oh, I understand. So, UNO extensions are also built up in UNO, and interact with the LibreOffice program process based on UNO?

-Hypothesizer

Yes, UNO extensions may also interact with other UNO extensions.

Why Do We Develop UNO Extensions?

-Rebutter

I see. . . . So, why do we have to learn how to develop them?

-Hypothesizer

As an immediate purpose, while we use LibreOffice in writing and managing our blog articles, I want to make it more convenient. For example, as we manage properties of a blog series and articles of the blog series on a Calc spread sheet, I want to create the table of contents of the series from the spread sheet. And I want to establish links between articles, I mean, previous article links and next article links. I don't say that they are much trouble doing them manually, but it seems unwise to do such mechanical things manually each time.

-Rebutter

Ah-ha . . .

-Hypothesizer

We may be able to do part of them with macros, but the functionality of macros is limited, and honestly, I don't like script languages in which compilers don't check syntax errors. What compilers can check, we have to check, running programs.

-Rebutter

In that respect, . . . as you wish.

-Hypothesizer

As a more central purpose, although our primal goal is to learn to understand things legitimately accurately and describe things exactly and explicitly, rather than thinking on them in vacuum, we need experiment stations to try those skills on. We will experiment on experiment stations and use results of experiments for the exploration of our primal goal.

-Rebutter

Hmm, so we try to legitimately accurately understand how to develop UNO extensions and exactly and explicitly describe what we understood . . .

-Hypothesizer

Yes.

-Rebutter

Well, there is a merit that the topic is something in which we can rather easily evaluate whether our understanding is accurate, and the topic requires exact and explicit descriptions. . . . All right.

-Hypothesizer

Beyond that, spread sheet programs are very convenient tools, and if we can extend their functionalities freely, we can do various things on them. We can manage and analyze information on them and can use them as client user interfaces to servers. As some functions like calculation, graph making, and spell checking are built-in, we don't have to implement such functions from scratch.

Main body END

<The previous article in this series | The table of contents of this series | The next article in this series>