Difference between revisions of "Build Environment Effort/HID List"

From Apache OpenOffice Wiki
Jump to: navigation, search
(The problem)
m
Line 1: Line 1:
 
{{Build Environment Effort}}
 
{{Build Environment Effort}}
 
== The problem==
 
== The problem==
Functions (commands, sometimes called "slots") and GUI elements like controls, dialogs or windows in OOo have IDs. Such an ID is called "help ID" (HID). It can be used to assign help content to the command or GUI element or address it from the OOo testtool application. In the first case OOo uses the HID to create a help content URL and request the corresponding help text from the help content provider. In the second case the ID is used to send commands from the testtool application to trigger some actions, e.g. "click" a button or execute a command. In the testtool application and the executed test scripts HIDs are strings, sometimes called "long names".  
+
Functions (commands, sometimes called "slots") and GUI elements like controls, dialogs or windows in OOo have IDs. Such an ID is called "help ID" (HID). It can be used to assign help content to the command or GUI element or it can be used to address it from the VCLTestTool application. In the first case OOo uses the HID to create a help content URL and request the corresponding help text from the help content provider. In the second case the ID is used to send commands from the testtool application to trigger some actions, e.g. "click" a button or execute a command. In the testtool application and the executed test scripts HIDs are strings, sometimes called "long names".  
  
The testtool client in OOo receives the "long names" and in case of long names for commands (slots) these names are the same as the internal command names, and so OOo is able to execute these commands using the OOo Dispatch API without any further treatment. On the other hand, HIDs for GUI elements inside OOo are long integer values and OOo doesn't know anything about "long names" for them. In the same way the mentioned help URLs that OOo sends to the help content provider either contain the "long name" of a command or the numerical ID of a GUI element.
+
The testtool client in OOo receives the HelpIDs and in case of long names for commands (slots) these names are the same as the internal command names, and so OOo is able to execute these commands using the OOo Dispatch API without any further treatment. On the other hand, HIDs for GUI elements inside OOo are long integer values and OOo doesn't know anything about "long names" for them. In the same way the mentioned help URLs that OOo sends to the help content provider either contain the "long name" of a command or the numerical ID of a GUI element.
  
 
Obviously OOo and the HID "customers" speak different languages and so a translator is needed. This translator is the famous (notorious?) "HID list", hid.lst. It defines a mapping from long name to numerical IDs for all GUI elements that have such an ID. If a test script contains a "long name" of a GUI element, the test tool "translates" it into the assigned numerical ID and uses it to address said GUI element. OTOH if a help is requested for a GUI element, the help content provider internally "translates" the ID in the help URL to the "long name" und uses that one to find the content assigned to it. So far, so good.
 
Obviously OOo and the HID "customers" speak different languages and so a translator is needed. This translator is the famous (notorious?) "HID list", hid.lst. It defines a mapping from long name to numerical IDs for all GUI elements that have such an ID. If a test script contains a "long name" of a GUI element, the test tool "translates" it into the assigned numerical ID and uses it to address said GUI element. OTOH if a help is requested for a GUI element, the help content provider internally "translates" the ID in the help URL to the "long name" und uses that one to find the content assigned to it. So far, so good.
Line 13: Line 13:
 
* the HID list generation is an awkward and time consuming process  
 
* the HID list generation is an awkward and time consuming process  
  
So if would be desirable to get rid of the hid.lst by letting all participants (help, testtool, OOo itself) working with the same "long names".
+
So it would be desirable to get rid of the hid.lst by letting all participants (help, testtool, OOo itself) work with the same "long names".

Revision as of 11:23, 13 November 2009

Edit.png

Build Environment Effort

Quick Navigation

About this template


The problem

Functions (commands, sometimes called "slots") and GUI elements like controls, dialogs or windows in OOo have IDs. Such an ID is called "help ID" (HID). It can be used to assign help content to the command or GUI element or it can be used to address it from the VCLTestTool application. In the first case OOo uses the HID to create a help content URL and request the corresponding help text from the help content provider. In the second case the ID is used to send commands from the testtool application to trigger some actions, e.g. "click" a button or execute a command. In the testtool application and the executed test scripts HIDs are strings, sometimes called "long names".

The testtool client in OOo receives the HelpIDs and in case of long names for commands (slots) these names are the same as the internal command names, and so OOo is able to execute these commands using the OOo Dispatch API without any further treatment. On the other hand, HIDs for GUI elements inside OOo are long integer values and OOo doesn't know anything about "long names" for them. In the same way the mentioned help URLs that OOo sends to the help content provider either contain the "long name" of a command or the numerical ID of a GUI element.

Obviously OOo and the HID "customers" speak different languages and so a translator is needed. This translator is the famous (notorious?) "HID list", hid.lst. It defines a mapping from long name to numerical IDs for all GUI elements that have such an ID. If a test script contains a "long name" of a GUI element, the test tool "translates" it into the assigned numerical ID and uses it to address said GUI element. OTOH if a help is requested for a GUI element, the help content provider internally "translates" the ID in the help URL to the "long name" und uses that one to find the content assigned to it. So far, so good.

Unfortunately the hid.lst imposes some problems on our build process:

  • it is built at the end of the build, but it is needed in the helpcontent2 module, where it is even committed to the SCM repository. So this list always is not the most current one.
  • the testtool can't work correctly if the hid.lst from the CWS is not "delivered" correctly; there is always some confusion and uncertainty which list is the correct one to use
  • the HID list generation is an awkward and time consuming process

So it would be desirable to get rid of the hid.lst by letting all participants (help, testtool, OOo itself) work with the same "long names".

Personal tools