incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ksch...@apache.org
Subject svn commit: r1206895 [4/12] - in /incubator/ooo/ooo-site/trunk/content/udk/common: ./ man/ man/concept/ man/draft/ man/draft/scripting/ man/draft/scripting/DesignDoc/ man/images/ man/spec/ man/tasks/ man/tutorial/
Date Sun, 27 Nov 2011 22:50:08 GMT
Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/BindingUI.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/BindingUI.html?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/BindingUI.html (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/BindingUI.html Sun Nov 27 22:49:46 2011
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Binding &amp; the Binding UI</title>
+                         
+  <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1" />
+       <base
+ href="http://cdelab18.ireland/twiki/bin/view/Projectdocs/BindingUISpike" />
+</head>
+  <body bgcolor="#ffffff">
+        
+<h2>Binding and the Binding UI</h2>
+     
+<h3>Information about binding and the binding UI</h3>
+    <i><b> Loading of macros</b></i>  
+<p>  The loading of macros is done through a BasicManager       (basic/source/basmgr/basmgr.cxx). 
+Each document has a    BasicManager associated with it, and the application 
+has a BasicManager has well.  Each BasicManager has a stream, which is the 
+content of the  macros from their context (i.e. application or document). 
+Macros have their own URL within Star/OpenOffice.org which is of the form
+macro://&lt;path&gt;/&lt;library&gt;.&lt;module&gt;.&lt;method&gt; 
+  </p>
+ 
+<p>  <i><b>Populating Dialogs</b></i> </p>
+ 
+<p>           For populating the dialogs, the SfxConfigGroupListBox_Impl 
+          (sfx2/source/dialog/cfg.cxx) queries the application's        
+   BasicManager for a list of macros and then queries every open        
+   document's BasicManager for their associated macros. The           SfxConfigGroupListBox_Impl 
+builds up a list of macros, which it             populates the dialog box 
+with.     </p>
+ 
+<p>  <i><b>Assignment of Macros to Events</b></i> </p>
+ 
+<p>           Assignment of a macro to an event is done by the           
+AssignDeleteHdl_Impl in _SfxMacroTabPage            (sfx2/source/dialog/macropg.cxx), 
+when the "Assign" button is            pressed, it deletes any already assign 
+macros to the event. Then             assigns the new macro to the event. 
+An assignment is just an            event id with a macro name attached to 
+it.   </p>
+ 
+<p>  <i>Comments from Mathias Bauer in italics (and similar in the following 
+sections).</i> </p>
+ 
+<p>  <i> This is the "old" view. Our new API describes events by names, but 
+the    dialog still uses the old API, and there is some code that mediates 
+  between both APIs. The configuration dialogs will be replaced   completely 
+later, so we didn't want to invest here. Forget about the   event Ids. </i></p>
+ 
+<p> <i> The "real" assignment inside the document and the way this is stored 
+  uses the com::sun::star::document::XEventSupplier and   com::sun::star::document::XEventBroadcaster 
+API where an office   document supports the event supplier interface, that 
+provides a   container to bind events (described by a name) to a script (only 
+  StarBasic in the current implementation). More about that see below. </i> 
+ </p>
+ 
+<p><i><b>Execution of Macros</b></i></p>
+ 
+<p> The various document types, e.g. SwXTextDocument, are subclasses  of the
+SfxBaseModel. When an event is generated, it gets passed  (how?) to the Notify
+method of the SfxBaseModel. This does ??,  and makes a call to postEventImpl, 
+passing in an SfxEventHint. </p>
+ 
+<p><i> As already mentioned the SFX still contains a lot of code using the old 
+API,   so the document based events are still created as SfxEventHints by 
+the  SFX representation of the document, the subclass of SfxObjectShell. 
+ The model object is a listener to this object, and so it gets notified 
+(the SfxBroadcaster/SfxListener pair implementation is used for that).  Then 
+the model itself broadcasts the event, but now it uses the event  name, not 
+the Id it got from the SfxObjectShell as a part of the  SfxEventHint. So every
+listener that is registered using the new, UNO  based API (and not the C++
+class SfxListener) is notified also.   </i></p>
+ 
+<p> <i>There is one special listener that always registers for event  notifications. 
+This listener makes a lookup in a table to find a macro  that is bound to 
+the event in question, and if it finds one, it calls  the macro.</i>    </p>
+ 
+<p> The postEvent_Impl gets the InterfaceContainer   (::cppu::OInterfaceContainerHelper),
+and gets an     InterfaceIterator (::cppu::OInterfaceIteratorHelper) from
+it. It   then calls notifyEvent on each of the XEventListeners returned  
+by the iterator.    </p>
+<p><i>Exactly. This is the "real" event handling, take all the previous  
+stuff as mutable implementation detail, because at the end it's not important
+how the model gets notified that an event wants to be notified!</i><br/>
+</p>
+<p>    In various methods on the SfxObjectShell we see direct calls to  
+the SfxApplication::NotifyEvent method with various   SfxEventHints such
+as SFX_EVENT_LOADFINISHED (defined in   svtools?) . Also seen in methods
+on SfxViewFrame. The   SfxObjectShell source also shows a number of Broadcast
+calls.   This is a method inherited from the SfxBroadcaster. Do these   have
+some significance?    </p>
+<p><i>   Partly. Every document based events that is created inside an SFX
+   based document is broadcasted by calling SfxApplication::NotifyEvent.
+   This method uses SfxEventConfiguration::ExecuteEvent that did the   whole
+job in SO5. "The whole job" means that it called both globally   and document
+specific bound macros.    In SO6/OOo we replaced the binding mechanism for
+documents by a new   API as mentioned above. So this part of the "job" was
+removed from the   SfxEventconfiguration, as you can see in the code: this
+method quits   the job, if the document itself has a bound macro. This macro
+will be   called by the process described above. The MacroTable of the document
+  is only used for the dialog (it is part of the mediating code   mentioned
+above), not for the event binding evaluation.      If the document has no
+specific binding, the method proceeds with   global bindings. We still need
+this, because we don't have a global   event broadcaster and configuration,
+so here we use the old MacroTable   stored for the application.    SfxApplication::NotifyEvent
+also uses the passed document to force it   to a broadcast the event, and
+that's the way our model gets notified   and triggers the notification of
+its own listeners as described above.    But the SfxObjectShell does some
+more internal broadcasts that are   only internal communications between
+the document and its views. So   these "Broadcast" calls are not related
+to the configurable events.</i><br/>
+</p>
+<p>    When the SfxApplication::NotifyEvent is called, the SfxEventHint  
+is queried for the SfxObjectShell. If the shell is a document   preview the
+method returns. Otherwise it makes a call to    </p>
+<p><i>   Previews don't have UI and events. They are just a view. We use
+a   complete document to make a preview, so it's necessary to do some   magic
+in the code.</i><br/>
+</p>
+<p>    SfxEventConfiguration::ExecuteEvent. After this call the event   is
+broadcast (either synchronously or asynchronously using the   SfxEventAsyncer_Impl).
+     When ExecuteEvent is called on an SfxEventConfiguration, it   returns
+if the doc is a preview. The next check I really don't    understand, but
+it returns if that's the case.&nbsp;</p>
+<p><i>It's the check for a document binding as mentioned above, because  
+bindings at the document are handled by the new API.</i><br/>
+</p>
+<p>Otherwise, it attempts to get the macro from the SfxEventConfiguration_Impl's
+macro table (SvxMacroTableDtor). If it finds the macro, then what  
+happens depends on whether the macro is being called synchronously. If
+it is synchronous, then skip the next   paragraph and it calls ExecuteMacro
+on the results of a static   call to GetOrCreate on SfxMacroConfig, otherwise
+it creates a   new SfxAsyncEvent_Impl.       The SfxAsyncEvent_Impl contains
+a Notify method &amp; a Timer to   deal with the possibility that another
+StarBasic macro might be   running (it waits until this is done). When the
+timer handler   (TimeHdl via macro hackery) is called it gets from the  
+ SfxApplication the SfxMacroConfig and calls ExecuteMacro.      The ExecuteMacro
+method does some checking to ensure that the    macro is a StarBasic macro,
+and sets up some args before calling   Call. This is turn calls Call on an
+SbMethod. From there on   we're in StarBasic-land!         </p>
+<p><i><b>
+Problems coming from the discussion</b></i>  </p>
+ 
+<ul>
+   <li>Binding UI uses a C++ API which is language dependant on StarBasic</li>
+   <li>Intermediary code between C++ API and UNO-based API for binding and
+ execution</li>
+   <li>No global broadcaster</li>
+</ul>
+<br/>
+
+<h3>Tasks to be completed by the scripting teams</h3>
+<b>(suggestions coming from discussion of "Binding and the Binding  UI" on
+the dev@framework.openoffice.org started on the 17<sup>th</sup> of  June
+2002</b>)<br/>
+     
+<ol>
+   <li>finish the scripting API for calling, accessing scripts </li>
+   <li>script containers </li>
+   <li>storage - preference to access storage is through a URL like
+       macro://&lt;path or doc&gt;/&lt;library&gt;.&lt;module&gt;.&lt;method&gt;</li>
+   <li>IDE interface </li>
+   <li>later implement prototypes </li>
+   <li> Specification for the Binding UI</li>
+   <li>UNO-Based Binding UI (With help from UI Team)</li>
+   <li>Throw out  remaining C++ API code and replace with a UNO-based API
+       for binding and invocation</li>
+   <li>Implement a "global" broadcaster </li>
+</ol>
+</body>
+</html>

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/BindingUI.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/BindingActions.dia
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/BindingActions.dia?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/BindingActions.dia
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/BindingSequence.png
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/BindingSequence.png?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/BindingSequence.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/SO-IDE-debug.dia
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/SO-IDE-debug.dia?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/SO-IDE-debug.dia
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInfo.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInfo.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInfo.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInfo.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,32 @@
+#ifndef __com_sun_star_scripting_storage_ScriptInfo_idl__
+#define __com_sun_star_scripting_storage_ScriptInfo_idl__
+
+#ifndef __com_sun_star_scripting_storage_XScriptInfo_idl__
+#include <drafts/com/sun/star/scripting/storage/XScriptInfo.idl>
+#endif
+
+#ifndef __com_sun_star_scripting_storage_XScriptStore_idl__
+#include <drafts/com/sun/star/scripting/storage/XScriptStore.idl>
+#endif
+
+//==============================================================================
+
+module drafts { module com { module sun { module star { module scripting { module storage {
+
+//==============================================================================
+/** 
+  This service provides access for script related information
+*/
+service ScriptInfo
+{
+/**
+  This interface provides acces to one script's information
+*/
+  interface drafts::com::sun::star::scripting::storage::XScriptInfo;
+
+  interface drafts::com::sun::star::scripting::storage::XScriptStore;
+
+};
+
+}; };  };  };  };  };
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInvocationClassDiagram.dia
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInvocationClassDiagram.dia?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInvocationClassDiagram.dia (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptInvocationClassDiagram.dia Sun Nov 27 22:49:46 2011
@@ -0,0 +1,488 @@
+<?xml version="1.0"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+  <dia:diagramdata>
+    <dia:attribute name="background">
+      <dia:color val="#ffffff"/>
+    </dia:attribute>
+    <dia:attribute name="paper">
+      <dia:composite type="paper">
+        <dia:attribute name="name">
+          <dia:string>#A4#</dia:string>
+        </dia:attribute>
+        <dia:attribute name="tmargin">
+          <dia:real val="2.8222"/>
+        </dia:attribute>
+        <dia:attribute name="bmargin">
+          <dia:real val="2.8222"/>
+        </dia:attribute>
+        <dia:attribute name="lmargin">
+          <dia:real val="2.8222"/>
+        </dia:attribute>
+        <dia:attribute name="rmargin">
+          <dia:real val="2.8222"/>
+        </dia:attribute>
+        <dia:attribute name="is_portrait">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="scaling">
+          <dia:real val="0.4"/>
+        </dia:attribute>
+        <dia:attribute name="fitto">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="grid">
+      <dia:composite type="grid">
+        <dia:attribute name="width_x">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="width_y">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_x">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_y">
+          <dia:int val="1"/>
+        </dia:attribute>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="guides">
+      <dia:composite type="guides">
+        <dia:attribute name="hguides"/>
+        <dia:attribute name="vguides"/>
+      </dia:composite>
+    </dia:attribute>
+  </dia:diagramdata>
+  <dia:layer name="Background" visible="true">
+    <dia:object type="UML - Class" version="0" id="O0">
+      <dia:attribute name="obj_pos">
+        <dia:point val="6.97041,0.714289"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="6.92041,0.664289;34.3284,3.56429"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="6.97041,0.714289"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="27.308"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2.8"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string>#XScriptInvocation#</dia:string>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string/>
+      </dia:attribute>
+      <dia:attribute name="abstract">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_attributes">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_operations">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="visible_attributes">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="visible_operations">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="foreground_color">
+        <dia:color val="#000000"/>
+      </dia:attribute>
+      <dia:attribute name="background_color">
+        <dia:color val="#ffffff"/>
+      </dia:attribute>
+      <dia:attribute name="attributes"/>
+      <dia:attribute name="operations">
+        <dia:composite type="umloperation">
+          <dia:attribute name="name">
+            <dia:string>#invoke#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="type">
+            <dia:string>#any#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="visibility">
+            <dia:enum val="0"/>
+          </dia:attribute>
+          <dia:attribute name="abstract">
+            <dia:boolean val="true"/>
+          </dia:attribute>
+          <dia:attribute name="class_scope">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="parameters">
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#scriptName#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#string#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string/>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#params#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#sequence&lt;any&gt;#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string/>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="template">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="templates"/>
+    </dia:object>
+    <dia:object type="UML - Class" version="0" id="O1">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.28571,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.23571,10.8908;20.9437,13.9908"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="8.28571,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="12.608"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="3"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string>#ScriptRuntimeManager#</dia:string>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string>#service#</dia:string>
+      </dia:attribute>
+      <dia:attribute name="abstract">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_attributes">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_operations">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="visible_attributes">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="visible_operations">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="foreground_color">
+        <dia:color val="#000000"/>
+      </dia:attribute>
+      <dia:attribute name="background_color">
+        <dia:color val="#ffffff"/>
+      </dia:attribute>
+      <dia:attribute name="attributes"/>
+      <dia:attribute name="operations"/>
+      <dia:attribute name="template">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="templates"/>
+    </dia:object>
+    <dia:object type="UML - Class" version="0" id="O2">
+      <dia:attribute name="obj_pos">
+        <dia:point val="23.6184,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="23.5684,10.8908;31.8664,13.9908"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="23.6184,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="8.198"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="3"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string>#ScriptRuntime#</dia:string>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string>#service#</dia:string>
+      </dia:attribute>
+      <dia:attribute name="abstract">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_attributes">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_operations">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="visible_attributes">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="visible_operations">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="foreground_color">
+        <dia:color val="#000000"/>
+      </dia:attribute>
+      <dia:attribute name="background_color">
+        <dia:color val="#ffffff"/>
+      </dia:attribute>
+      <dia:attribute name="attributes"/>
+      <dia:attribute name="operations"/>
+      <dia:attribute name="template">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="templates"/>
+    </dia:object>
+    <dia:object type="UML - Generalization" version="0" id="O3">
+      <dia:attribute name="obj_pos">
+        <dia:point val="20.6244,3.51429"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="14.5397,3.51429;21.4744,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="20.6244,3.51429"/>
+        <dia:point val="20.6244,9.57143"/>
+        <dia:point val="14.5897,9.57143"/>
+        <dia:point val="14.5897,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string/>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="6"/>
+        <dia:connection handle="1" to="O1" connection="1"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="UML - Generalization" version="0" id="O4">
+      <dia:attribute name="obj_pos">
+        <dia:point val="20.6244,3.51429"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="19.7744,3.51429;27.7674,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="20.6244,3.51429"/>
+        <dia:point val="20.6244,6.07143"/>
+        <dia:point val="27.7174,6.07143"/>
+        <dia:point val="27.7174,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string/>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="6"/>
+        <dia:connection handle="1" to="O2" connection="1"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="UML - Association" version="0" id="O5">
+      <dia:attribute name="obj_pos">
+        <dia:point val="14.5897,13.9408"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="14.5397,13.9408;30.7374,15.6929"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="14.5897,13.9408"/>
+        <dia:point val="14.5897,15.6429"/>
+        <dia:point val="27.7174,15.6429"/>
+        <dia:point val="27.7174,13.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string/>
+      </dia:attribute>
+      <dia:attribute name="direction">
+        <dia:enum val="0"/>
+      </dia:attribute>
+      <dia:attribute name="ends">
+        <dia:composite>
+          <dia:attribute name="role">
+            <dia:string/>
+          </dia:attribute>
+          <dia:attribute name="multiplicity">
+            <dia:string/>
+          </dia:attribute>
+          <dia:attribute name="arrow">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="aggregate">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+        <dia:composite>
+          <dia:attribute name="role">
+            <dia:string/>
+          </dia:attribute>
+          <dia:attribute name="multiplicity">
+            <dia:string># 1..n#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="arrow">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="aggregate">
+            <dia:enum val="2"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O1" connection="6"/>
+        <dia:connection handle="1" to="O2" connection="6"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="UML - Class" version="0" id="O6">
+      <dia:attribute name="obj_pos">
+        <dia:point val="0.571429,4.85714"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.521429,4.80714;19.3614,7.70714"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="0.571429,4.85714"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="18.74"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="2.8"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string>#XScriptNameResolver#</dia:string>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string/>
+      </dia:attribute>
+      <dia:attribute name="abstract">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_attributes">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="suppress_operations">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="visible_attributes">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="visible_operations">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+      <dia:attribute name="foreground_color">
+        <dia:color val="#000000"/>
+      </dia:attribute>
+      <dia:attribute name="background_color">
+        <dia:color val="#ffffff"/>
+      </dia:attribute>
+      <dia:attribute name="attributes"/>
+      <dia:attribute name="operations">
+        <dia:composite type="umloperation">
+          <dia:attribute name="name">
+            <dia:string>#resolve#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="type">
+            <dia:string>#string#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="visibility">
+            <dia:enum val="0"/>
+          </dia:attribute>
+          <dia:attribute name="abstract">
+            <dia:boolean val="true"/>
+          </dia:attribute>
+          <dia:attribute name="class_scope">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="parameters">
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#scriptName#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#string#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string/>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="template">
+        <dia:boolean val="false"/>
+      </dia:attribute>
+      <dia:attribute name="templates"/>
+    </dia:object>
+    <dia:object type="UML - Generalization" version="0" id="O7">
+      <dia:attribute name="obj_pos">
+        <dia:point val="9.94143,7.65714"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="9.09143,7.65714;14.6397,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_points">
+        <dia:point val="9.94143,7.65714"/>
+        <dia:point val="9.94143,9.57143"/>
+        <dia:point val="14.5897,9.57143"/>
+        <dia:point val="14.5897,10.9408"/>
+      </dia:attribute>
+      <dia:attribute name="orth_orient">
+        <dia:enum val="1"/>
+        <dia:enum val="0"/>
+        <dia:enum val="1"/>
+      </dia:attribute>
+      <dia:attribute name="name">
+        <dia:string/>
+      </dia:attribute>
+      <dia:attribute name="stereotype">
+        <dia:string/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O6" connection="6"/>
+        <dia:connection handle="1" to="O1" connection="1"/>
+      </dia:connections>
+    </dia:object>
+  </dia:layer>
+</dia:diagram>

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptResolution.gif
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptResolution.gif?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptResolution.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptURI.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptURI.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptURI.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/ScriptURI.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,28 @@
+#ifndef __com_sun_star_scripting_scripturi_ScriptURI_idl__
+#define __com_sun_star_scripting_scripturi_ScriptURI_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_scripting_scripturi_XScriptURI_idl__
+#include <drafts/com/sun/star/scripting/scripturi/XScriptURI.idl>
+#endif
+
+//===========================================================================
+
+module drafts { module com { module sun { module star { module scripting { module scripturi {
+
+//===========================================================================
+/**
+    XScriptURI
+*/
+service ScriptURI {
+    //----------------------------------------------------------------------
+    interface XScriptURI;
+};
+
+//===========================================================================
+}; }; }; }; }; };// com::sun::star::scripting::scripturi
+
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/Source-Edit.png
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/Source-Edit.png?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/Source-Edit.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/StorageServiceClassDiagram.png
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/StorageServiceClassDiagram.png?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/StorageServiceClassDiagram.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XBinding.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XBinding.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XBinding.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XBinding.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ *  $RCSfile: XBinding.idl,v $
+ *
+ *  $Revision: 1.2 $
+ *
+ *  last change: Laszlo Kovacs: mi $ $Date: 2002/08/16 10:10:35 $
+ *
+ *  The Contents of this file are made available subject to the terms of
+ *  either of the following licenses
+ *
+ *         - GNU Lesser General Public License Version 2.1
+ *         - Sun Industry Standards Source License Version 1.1
+ *
+ *  Sun Microsystems Inc., October, 2000
+ *
+ *
+ *  GNU Lesser General Public License Version 2.1
+ *  =============================================
+ *  Copyright 2000 by Sun Microsystems, Inc.
+ *  901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License version 2.1, as published by the Free Software Foundation.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ *  MA  02111-1307  USA
+ * 
+ *
+ *  Sun Industry Standards Source License Version 1.1
+ *  =================================================
+ *  The contents of this file are subject to the Sun Industry Standards
+ *  Source License Version 1.1 (the "License"); You may not use this file
+ *  except in compliance with the License. You may obtain a copy of the
+ *  License at http://www.openoffice.org/license.html.
+ *
+ *  Software provided under this License is provided on an "AS IS" basis,
+ *  WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ *  See the License for the specific provisions governing your rights and
+ *  obligations concerning the Software.
+ *
+ *  The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ *  Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ *  All Rights Reserved.
+ *
+ *  Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef __com_sun_star_scripting_storage_XBinding_idl__
+#define __com_sun_star_scripting_storage_XBinding_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+//=======================================================================
+
+module drafts { module com { module sun { module star { module scripting  { module storage {
+
+//=======================================================================
+/**
+    XBinding 
+	encapsulates a binding object (used with the binding storage 
+	interface XBindingStore)
+*/
+interface XBinding : ::com::sun::star::uno::XInterface
+{
+        //--------------------------------------------------------------
+	/**
+	    set the event name for this binding
+
+	    @params event
+		the event name
+	*/
+       void setEvent([in] string event);
+
+	//--------------------------------------------------------------
+        /**
+            get the event name from this binding
+
+            @returns
+                the event name
+        */
+        string getEvent();
+
+        //--------------------------------------------------------------
+        /**
+            set the logical or language specific script name from this binding
+
+            @params
+                the script name
+        */
+        void setScriptName([in] string scriptName);
+
+	//--------------------------------------------------------------
+        /**
+            get the logical or languuage specific name from this binding
+
+            @returns
+                the script name
+        */
+        string getScriptName();
+};
+}; }; }; }; }; }; // com::sun::star::scripting
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptImpl.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptImpl.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptImpl.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptImpl.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,33 @@
+#ifndef __com_sun_star_scripting_storage_XScriptImpl_idl__
+#define __com_sun_star_scripting_storage_XScriptImpl_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+module com { module sun { module star { module scripting { module storage {
+//==============================================================================
+/** 
+This interface provides detail to clients that require to resolve logical script
+URI's to a specific language URI.
+*/
+interface XScriptImpl : XInterface
+{
+
+//------------------------------------------------------------------------------
+/** 
+@returns
+  A sequence of language specific script URI's for the specified language.
+*/
+  sequence <string> getLanguageImpls([in] string langType);
+
+//------------------------------------------------------------------------------
+/**
+@returns
+  A sequence of script URI's for all languages implementing the script.
+*/
+  sequence <string> getImpls();
+}
+
+};  };  };  }; 
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptInfo.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptInfo.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptInfo.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/XScriptInfo.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,143 @@
+#ifndef __com_sun_star_scripting_storage_XScriptInfo_idl__
+#define __com_sun_star_scripting_storage_XScriptInfo_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+
+#ifndef __com_sun_star_beans_XPropertySet_idl__
+#include <com/sun/star/beans/XPropertySet.idl>
+#endif
+
+module drafts { module com { module sun { module star { module scripting { module storage {
+//==============================================================================
+/** This interface allows access to information of one script
+*/
+interface XScriptInfo : ::com::sun::star::uno::XInterface
+{
+//========================================================================
+/**
+  Interface to provide read-only access to information associated with a script
+*/
+
+  //-----------------------------------------------------------------------
+  /**
+    Get the logical name for the script
+
+    @return
+     <type>string</type> The string representing the logical name of the
+      script
+  */
+  string getLogicalName();
+
+  //-----------------------------------------------------------------------
+  /**
+    Set the logical name of the script
+
+    @param name The new logical name for the script
+  */
+  void setLogicalName( [in] string name );
+
+  //-----------------------------------------------------------------------
+  /**
+    Get a textual description of the script's function.
+
+    @returns
+      <type>string</type> A string containing the description
+      <NULL/> If there is no description, return an empty string
+  */
+  string getDescription();
+
+  //-----------------------------------------------------------------------
+  /**
+    Set the textual description of the script
+
+    @param desc
+      The description of the script
+  */
+  void setDescription( [in] string desc );
+
+//-------------------------------------------------------------------------------
+/** Returns the language the script is written in
+@returns 
+A string reresenting the language of the script.
+*/
+  string getLanguage(); 
+
+//-------------------------------------------------------------------------------
+/** Allows the language to be set.
+@param language
+  Language to be set.
+*/
+  void setLanguage([in] string language);
+
+//-------------------------------------------------------------------------------
+/** Is source provided for this script 
+@returns 
+<TRUE/> if source is provided, determined if location of source is provided, otherwise <FALSE/>
+*/
+  boolean hasSource();
+
+//-------------------------------------------------------------------------------
+/** Access a copy of the source for the script.
+@returns 
+A string containing the script source.
+/*
+  string getSourceAsText();
+
+//-------------------------------------------------------------------------------
+/** Access to the location of the script.
+@returns 
+A string containing a URL to the script.
+/*
+  string getScriptSourceLocation();
+
+//-------------------------------------------------------------------------------
+/** Set the location of the script source
+@param fileURL
+  Sets location of script source as a URL
+/*
+  void setScriptSourceLocation([in] string fileURL);
+
+//-------------------------------------------------------------------------------
+/** Access to the language specific name of a script.
+@returns 
+A string that contains the language specific name.
+*/
+  string getLanguageSpecificName();
+
+//-------------------------------------------------------------------------------
+/** Sets language specific name.
+@param langName
+Full name of language specific script e.g. com.sun.star.convertors.myconverters.myCustomConvert.method.
+*/
+  void setLanguageSpecificName([in] string langName); 
+
+//-------------------------------------------------------------------------------
+/** 
+@returns 
+Location of root of installation for script
+*/
+  string getRoot();
+
+//-------------------------------------------------------------------------------
+/** 
+@returns 
+Relative (to root from getRoot) location of the container (.class file, module file jar etc.) that the script resides in. 
+  string getTarget()
+
+//-------------------------------------------------------------------------------
+/** Retrieve list of dependencies, (maybe jar files in the case of java).
+@returns
+  A list of strings containing dependencies.
+*/
+  sequence <string> getDependencies(); 
+
+//-------------------------------------------------------------------------------
+/** Retrieve a list of other properties (as yet undefined) association with this script.
+*/
+  com::sun::star::beans::XPropertySet extraProperties();
+};
+
+};  };  };  };  };  };
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/addassoc.png
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/addassoc.png?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/addassoc.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/addassoc.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/index.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/index.html?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/index.html (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/index.html Sun Nov 27 22:49:46 2011
@@ -0,0 +1,453 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><html><head>
+                                                       
+  <meta http-equiv="Content-Type" content="text/html;CHARSET=iso-8859-1">
+                 <!-- udk.openoffice.org --><title>Design Document</title>
+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
+</head><body link="#6666cc" alink="#cc3333" bgcolor="#ffffff" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0"><hr>&nbsp;
+ <basefont size="-1" face="Arial, Helvetica, sans-serif"> 
+<table border="0" cellspacing="8" cellpadding="5" width="100%">
+   <tbody>
+     <tr valign="top">
+       <td valign="top" width="100%" id="bodycol" bgcolor="#ffffff">    
+  
+      <h1 align="center">Language Independent Scripting Framework</h1>
+       
+      <h2 align="center">Design Document - Last update: 16th August 2002</h2>
+         This document should only be read after having read the <a href="http://udk.openoffice.org/common/man/draft/scripting/ArchDoc.20020618.sxw">
+      Architecture  Document</a>
+      . This document contains:<br>
+       
+      <ul>
+         <li><a href="#Diagrams">Class &amp; Object Interaction Diagrams</a></li><li><a href="#Binding">Binding storage sequence diagrams</a>
+         <br>
+        </li>
+
+         <li><a href="#OOIDE">OpenOffice - IDE Integration Interaction Diagrams</a>
+           <br>
+         </li>
+         <li><a href="#Proposed_file_structure_for_scripting">Proposed File
+    structure for scripting</a>
+         </li>
+         <li><a href="#Language-Specific__Logical_Script_names">Language-specific 
+   &amp; Logical ScriptNames</a>
+         </li>
+         <li><a href="#Deployment_DTD">DTD &amp; sample XML for Deployment</a>
+         </li>
+         <li><a href="#DTD_for_Script_Registry">DTD &amp; sample XML for
+Script   Registry</a>
+         </li>
+         <li><a href="#deployinterface">Deployment Interfaces</a>&nbsp;</li><li><a href="#Storage">Script storage interfaces</a><br>
+        </li>
+
+         <li><a href="#IDLFiles">Links to the IDL Files</a>
+         </li>
+       
+      </ul>
+       <br>
+       
+      <hr>       
+      <h3><a name="Diagrams"></a>
+      Class &amp; Object Interaction Diagrams</h3>
+       <img src="BindingObject.png">
+       <br>
+            Binding Object Class Diagram(<a href="BindingObject.dia">source</a>
+      ).         <br>
+       
+      <hr><img src="BindingSequence.png">
+       <br>
+            Binding Object Interaction Diagram(<a href="BindingSequence.dia">
+    source</a>
+      ).          <br>
+       
+      <hr>&nbsp;
+       <br><img src="ScriptInvocation.png">
+       <br>
+            Script Invocation Interaction Diagram(<a href="ScriptInvocation.dia">
+      source</a>
+      ).         <br>
+       
+      <hr><img src="ScriptInvocationClassDiagram.gif">
+       <br>
+            Script Invocation Class Diagram(<a href="ScriptInvocationClassDiagram.dia">
+      source</a>
+      ).        <br>
+       
+      <hr><br>
+      <h3><a name="Binding"></a>Binding storage sequence diagrams</h3>
+      <h3><img src="BindingActions.png">
+
+       </h3>
+
+            Actions available on Bindings( <a href="BindingActions.dia">source</a>
+      ).          <br>
+            XBinding represents a binding, this is an event (string) and
+script    (string)   pair. XBindingStore is the interface for access the
+binding storage   of a  certain document or the application. It provides
+store, remove and  query functionality of binding objects implementing the
+XBinding interface.         <br>
+       
+      <hr><img src="BindingActions2.png">
+       <br>
+            Query available on Bindings(<a href="BindingActions2.dia">source</a>
+      ).          <br>
+       
+      <hr width="100%" size="2">       
+      <h3><a name="OOIDE"></a>
+ OpenOffice - IDE Integration Interaction Diagrams</h3>
+       <img src="Source-Edit.png" alt="Editing a Script in an IDE" width="762" height="646">
+       
+      <p>&nbsp;Editing a script in an IDE(<a href="Source-Edit.dia">source</a>
+ )</p>
+       Context:                
+      <ul>
+         <li>all the GUI used for binding and parcel management is implemented
+   in  OpenOffice and it is embedded into the IDE using the  OpenOffice Bean</li>
+         <li>a temporary area of the filesystem is used to transfer files,
+ parcels   selected by the user in the above  OpenOffice GUI into the IDE
+(this should  be transparent to the user)</li>
+       
+      </ul>
+    When a file is selected to be edited or a new  file is created roughly
+ the dialog taking place is: -  OpenOffice checks if the IDE is running,
+if  not it starts it<br>
+       
+      <ul>
+         <li>  OpenOffice moves the selected content (from the document)
+into   the temporary area and notifies the IDE that the content is there</li>
+         <li> the IDE loads the content from the temporary area</li>
+         <li>user edits, saves (maybe builds)</li>
+         <li>at save the IDE notifies   OpenOffice that the content is again 
+ available in the temporary  area </li>
+         <li> OpenOffice (C&amp;C module) moves the content back into the 
+document</li>
+       
+      </ul>
+     Transferred content will most likely have to be a complete build  environment 
+ rather than one file only. Transfer can be optimized to transfer  only changed 
+ files rather than all the files. When a file is displayed all  the corresponding 
+ build environment has to be transferred to facilitate build,  run and debug.<br>
+       <br>
+       
+      <hr width="100%" size="2"><img src="SO-IDE-debug.png" alt="Debugging a OpenOffice Script in an IDE" width="959" height="668">
+  <br>
+       <br>
+ Debugging a script in an IDE(<a href="SO-IDE-debug.dia">source</a>
+ )<br>
+       <br>
+ This diagram describes how OpenOffice and the IDE interact to facilitate
+debugging. When the user starts up the IDE the debugging connection (e.g.
+debugger from IDE attaching to the OpenOffice JVM) should be established.
+This is the time to check whether individual runtimes or OpenOffice have
+to be restarted in order to facilitate debugging from the IDE.<br>
+       <br>
+ The dialog protocol is this:        
+      <ol>
+         <li>OpenOffice tries to start the IDE</li>
+         <li>OpenOffice checks whether the runtime is running and is debug 
+enabled (if not then the runtime or OpenOffice has to be restarted</li>
+         <li>OpenOffice starts the IDE </li>
+         <li>when IDE signals that it is ready OpenOffice sends the parameters 
+needed for debugger attachment (host, port etc) </li>
+         <li>the user sets breakpoints in the IDE </li>
+         <li>at this point the user will invoke the script, this will be
+either from the IDE or from OpenOffice; if it is from the IDE then the IDE
+has to request an invocation from OpenOffice, if it is from OpenOffice then
+nothing has to be done (a user action will invoke the script)</li>
+         <li>after invocation the runtime will pause waiting for the debugger 
+(from the IDE) to attach, a message has to be sent to the IDE to start the 
+debugger</li>
+         <li>the IDE debugger will attach to the runtime in OpenOffice </li>
+       
+      </ol>
+  This protocol is somewhat Java specific, it might need changes for other 
+runtimes.<br>
+       <br>
+       
+      <hr width="100%" size="2"><br>
+       <img src="Exception-IDE.png" alt="Debugging Exceptions from OpenOffice in an IDE" width="1110" height="805">
+       <br>
+       <br>
+ Debugging a script exception in an IDE(<a href="Exception-IDE.dia">source</a>
+ )<br>
+       <br>
+ Exception handling is a variation of the code editing and debug enabling 
+diagrams. The diagram describes the dialog between OpenOffice and the IDE 
+when the IDE has not been started yet so the attachment to the OpenOffice
+ JVM from the IDE has to be done.  <br>
+       <br>
+ The dialog is the following:        
+      <ol>
+         <li>after invocation of a script when an exception is caught by
+the script runtime check if the IDE is already running, if not and OpenOffice 
+is not running with debugger attachment enabled to the JVM then OpenOffice 
+has to be restarted</li>
+         <li>if OpenOffice has been restarted then it is the user's responsibility 
+to get the script invoked again</li>
+         <li>if the IDE was not running then it is started and the source 
+is loaded as described in the Edit diagram</li>
+         <li>after this the debugger from the IDE attaches to the OpenOffice 
+JVM as described in the debug enabling diagram</li>
+         <li>the user can evaluate variables at this point</li>
+         <li>changing and saving the code at this point happens as already 
+described in the Edit diagram</li>
+       
+      </ol>
+       <br>
+       
+      <hr>       
+      <h3><a name="Proposed_file_structure_for_scripting"></a>
+      Proposed file  structure for scripting</h3>
+          The file structure for the application and the document will be 
+the   same,  the only difference is the structure for the document will stored 
+ in the document zip file.  The file structure is as follows             
+                                             
+      <pre>scripting/<br>          |<br>          +- java/<br>          |<br>          +- basic/<br>          |<br>          +- otherLanguage/<br></pre> 
+         under the language specific folder                             
+                                    &nbsp;each script parcel has a separate
+folder. The file and folder structure in a script parcel is arbitrary, it
+depends on how the developer organizes files and folders of&nbsp;       
+  the parcel. <br>
+      <br>
+A registry file exists at the script level in the directory structure
+   that  identifies the scripts that are installed (in either the document
+ or  application)  or other metadata associated with the script.        
+                                                  
+      <hr><br>
+       
+      <h3><a name="Language-Specific__Logical_Script_names"></a>
+      Language-Specific &amp; Logical Script names</h3>
+       <u>Generic script name:</u><br>
+       script://&lt;sname&gt;/[&lt;qtype&gt;['?'&lt;query&gt;]]<br>
+       <br>
+       ;	name of a script functionality<br>
+       sname =: &lt;name&gt;<br>
+       ;	query type<br>
+       qtype =: &lt;name&gt;<br>
+       ;	query<br>
+       query =: &lt;qelm&gt;(','&lt;qelm&gt;)*<br>
+       ;	query element<br>
+       qelm  =: &lt;word&gt;'='&lt;name&gt;<br>
+       <br>
+       <br>
+       <u>Language specific script name:</u><br>
+       script:///&lt;lname&gt;'?'&lt;lpart&gt;<br>
+       <br>
+       ;	language runtime name<br>
+       lname =: &lt;name&gt;<br>
+       ;	language specific portion of name<br>
+       lpart =: sequence of any printable characters<br>
+       <br>
+       <br>
+       name  =: &lt;word&gt;('.'&lt;word&gt;)*<br>
+       word  =: &lt;alpha&gt;(['-'|'_'](&lt;alpha&gt;|&lt;digit&gt;))*<br>
+       alpha =: an alphabetical character as in rfc2396-1.6<br>
+       digit =: a digit character as in rfc2396-1.6<br>
+       
+      <hr width="100%" size="2">       
+      <h3><a name="Deployment_DTD"></a>
+       Deployment DTD</h3>
+        &lt;?xml version="1.0" encoding="UTF-8"?&gt; <br>
+        &lt;!ELEMENT script (logicalname, languagename, dependencies, description?,
+    delivery)&gt;<br>
+        &lt;!ELEMENT bundle (script+)&gt;<br>
+        &lt;!ELEMENT logicalname EMPTY&gt;<br>
+        &lt;!ELEMENT languagename EMPTY&gt;<br>
+        &lt;!ELEMENT dependencies (dependfile+)&gt;<br>
+        &lt;!ELEMENT description (#PCDATA)&gt;<br>
+        &lt;!ELEMENT delivery (deliverfile+)&gt;<br>
+        &lt;!ELEMENT deliverfile EMPTY&gt;<br>
+        &lt;!ELEMENT dependfile EMPTY&gt;<br>
+        &lt;!ATTLIST script<br>
+           language CDATA #REQUIRED<br>
+           deploymentdir CDATA #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST logicalname<br>
+           value CDATA #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST languagename<br>
+           value CDATA #REQUIRED<br>
+           location CDATA #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST dependfile<br>
+           name CDATA #REQUIRED<br>
+           isdeliverable (yes | no) #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST deliverfile<br>
+           name CDATA #REQUIRED<br>
+           type (binary | data | source | resource) #REQUIRED<br>
+        &gt;<br>
+       <br>
+       
+      <h3>Sample deployment XML</h3>
+        &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
+        &lt;!DOCTYPE bundle SYSTEM "deployment.dtd"&gt;<br>
+        &lt;bundle&gt;<br>
+           &lt;script language="Java" deploymentdir="calc.convert.EuroConvert"&gt;<br>
+              &lt;logicalname value="calc.convert.EuroConvert"/&gt;<br>
+              &lt;languagename value="com.sun.star.calc.EuroConvert"<br>
+            location="convert.jar"/&gt;<br>
+              &lt;dependencies&gt;<br>
+                 &lt;dependfile name="data/currenices.txt" isdeliverable="yes"/&gt;<br>
+              &lt;/dependencies&gt;<br>
+              &lt;delivery&gt;<br>
+                 &lt;deliverfile name="convert.jar" type="binary"/&gt;<br>
+                 &lt;deliverfile name="currencies.txt" type="resource"/&gt;<br>
+              &lt;/delivery&gt;<br>
+           &lt;/script&gt;<br>
+        &lt;/bundle&gt;<br>
+       
+      <hr>       
+      <h3><a name="DTD_for_Script_Registry"></a>
+      DTD for Script Registry</h3>
+        &lt;?xml version="1.0" encoding="UTF-8"?&gt; <br>
+        &lt;!ELEMENT script (logicalname, languagename, description, properties,<br>
+        dependencies)&gt;<br>
+        &lt;!ELEMENT logicalname EMPTY&gt;<br>
+        &lt;!ELEMENT languagename EMPTY&gt;<br>
+        &lt;!ELEMENT description (#PCDATA)&gt;<br>
+        &lt;!ELEMENT properties (#PCDATA)&gt;<br>
+        &lt;!ELEMENT dependencies (file)&gt;<br>
+        &lt;!ELEMENT file EMPTY&gt;<br>
+        &lt;!ATTLIST script<br>
+           language CDATA #REQUIRED<br>
+           rootdir CDATA #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST logicalname<br>
+           value CDATA #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST languagename<br>
+           value CDATA #REQUIRED<br>
+           location CDATA #REQUIRED<br>
+        &gt;<br>
+        &lt;!ATTLIST file<br>
+           name CDATA #REQUIRED<br>
+        &gt;<br>
+       
+      <h3>Sample XML for Script Registry</h3>
+        &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
+        &lt;!DOCTYPE script SYSTEM "registry.dtd"&gt;<br>
+        &lt;script language="Java" rootdir="calc.convert.EuroConvert"&gt;<br>
+           &lt;logicalname value="calc.convert.EuroConvert"/&gt;<br>
+           &lt;languagename value="com.sun.star.calc.EuroConvert"<br>
+          location="convert.jar"/&gt;<br>
+           &lt;description&gt;A Euro Converter&lt;/description&gt;<br>
+           &lt;properties&gt;Other properties&lt;/properties&gt;<br>
+           &lt;dependencies&gt;<br>
+              &lt;file name="data/currencies.txt"/&gt;<br>
+           &lt;/dependencies&gt;<br>
+        &lt;/script&gt;<br>
+       
+      <hr width="100%" size="2">       
+      <h3><a name="deployinterface"></a>
+ Deployment Interfaces</h3>
+       <a href="XParcel.idl">XParcel</a> 
+  Interface access to a parcel file hierarchy by retrieving the hierarchy
+ and adding/removing content (using w3c standard urls with wildcards in them
+ to add/remove a number of files/folders). The parcel name can also be retrieved.
+The interface XParcel is implemented by the Parcel service.<br>
+       <br>
+       <a href="XParcelStore.idl"> XParcelStore</a>
+  provides access to parcels installed into a document or the application 
+context. Complete parcel packages (archived as zip) can be installed. Parcels 
+can be created (to fill with content through the XParcel interface) and parcels 
+can be removed. A list of all the installed parcels can also be obtained.<br>
+       <br>
+       
+      
+      <hr>
+      <h3><a name="Storage"></a>Script storage interfaces</h3>
+
+      The toplevel storage service is ScriptingStorage. Every document and
+the application has one ScriptingStorage component that provides access to
+the scripts stored in that context. ScriptingStorage implements several interfaces:<br>
+      <br>
+      <ul>
+        <li>XScriptAccessManager: provides access to script related data encapsulated in the ScriptInfo component</li>
+        <li>XScriptImplAccess: resolves logical script names to language specific script names</li>
+        <li>XNamingAccess: provide access to the logical naming of scripts
+(it is designed to provide various views, a hierarchical one will be implemented)</li>
+        <li>XBindingStore: provide access to the binding storage (described above)</li>
+        <li>XParcelStore: provide access to the parcel storage (described above)</li>
+      </ul>
+ScriptInfo is a service providing access to information related to one script. It contains two interfaces:<br>
+      <ul>
+        <li>XScriptInfo: provides access to script metadata</li>
+        <li>XScriptStore: provides support for implementation of data persistence by the script<br>
+        </li>
+      </ul>
+
+<hr>       
+      <h3><a name="IDLFiles"></a>
+      IDL Files</h3>
+                                              The following are the proposed
+  interfaces.  In some cases, these are just placeholders and need further
+ work.                                                   
+      
+      <p><a href="CannotResolveScriptNameException.idl">CannotResolveScriptNameException.idl</a>
+       <br>
+       <a href="ScriptInfoAccessException.idl">ScriptInfoAccessException.idl</a>
+       <br>
+       <a href="ScriptRuntime.idl">ScriptRuntime.idl</a>
+       <br>
+       <a href="ScriptRuntimeException.idl">ScriptRuntimeException.idl</a>
+       <br>
+       <a href="ScriptRuntimeManager.idl">ScriptRuntimeManager.idl</a>
+       <br>
+       <a href="ScriptStorage.idl">ScriptStorage.idl</a>
+       <br>
+       <a href="XBinding.idl">XBinding.idl</a>
+       <br>
+       <a href="XBindingStore.idl">XBindingStore.idl</a>
+       <br>
+       <a href="XFunction.idl">XFunction.idl</a>
+       <br>
+       <a href="XFunctionProvider.idl">XFunctionProvider.idl</a>
+       <br>
+       <a href="XNameNode.idl">XNameNode.idl</a>
+       <br>
+       <a href="XScriptAccessManager.idl">XNamingAccess.idl<br>
+       </a>
+      <a href="XParcel.idl">XParcel.idl<br>
+ XParcelStore.idl<br>
+       </a>
+      <a href="XScriptAccessManager.idl"> XScriptAccessManager.idl      
+      </a>
+      <br>
+       <a href="XScriptContext.idl">XScriptContext.idl</a>
+       <br>
+       <a href="XScriptImplAccess.idl">XScriptImplAccess.idl</a>
+       <br>
+       <a href="XScriptInvocation.idl">XScriptInvocation.idl</a>
+       <br>
+       <a href="XScriptStore.idl">XScriptStore.idl</a>
+       <br>
+       <a href="XScriptURI.idl">XScriptURI.idl</a>
+       <br>
+       <a href="ScriptURI.idl">ScriptURI.idl</a>
+       <br>
+       <a href="XScriptNameResolver.idl">XScriptNameResolver.idl</a>&nbsp;<br>
+<a href="XScriptStore.idl">XScriptInfo.idl<br>
+XScriptStore.idl</a>&nbsp;<br>
+      <a href="ScriptInfo.idl">ScriptInfo.idl</a><br>
+      <a href="Parcel.idl">Parcel.idl</a>
+       <br>
+       </p>
+
+       <b><br>
+       <br>
+       </b><br>
+       </td>
+     </tr>
+   
+  </tbody> 
+</table>
+ <!-- end footer --><br>
+ <br>
+ <br>
+ <br>
+ <br>
+ <br>
+ 
+<br>
+<br>
+</body></html>

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/remove.dia
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/remove.dia?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/remove.dia
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/DesignDoc/remove.dia
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/MethodInvokeException.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/MethodInvokeException.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/MethodInvokeException.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/MethodInvokeException.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,26 @@
+#ifndef __com_sun_star_scripting_MethodInvokeException_idl__
+#define __com_sun_star_scripting_MethodInvokeException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+module com {
+  module sun {
+    module star {
+      module scripting {
+      
+        /** Indicates that there is a problem invoking in the method
+         */
+        exception MethodInvokeException: com::sun::star::uno::Exception
+        {
+          /** The method that tried to be invoked
+          */
+          string Method;
+        };
+      };
+    };
+  };
+};
+        
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ProblemsIssues.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ProblemsIssues.html?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ProblemsIssues.html (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ProblemsIssues.html Sun Nov 27 22:49:46 2011
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Framework Problem &amp; Issues</title>
+                    
+  <meta http-equiv="content-type"
+ content="text/html; charset=ISO-8859-1">
+</head>
+  <body>
+     
+<h1>Scripting Framework Problem Areas &amp; High-Level Issues</h1>
+     
+<h2>Runtime Container</h2>
+ <u>  Problem Statement:  </u><br>
+ Scripts are executed within a language specific script runtime. We need
+to  define the features of this runtime container and the contract between
+the  container and the scripts run in it, with regard to threading, symbol
+resolution  and persistence of script related data.    <br>
+ <br>
+ <u>Requirements:</u>    <br>
+ 
+<ul>
+   <li>define the contract between the script container and a script, this 
+contract should be language neutral&nbsp;</li>
+   <li>define the threading model that script containers should use</li>
+   <li>define how symbols are resolved within the script container</li>
+   <li>define how symbols conflicts are handled</li>
+   <li>define the services the container provides to the script for saving 
+state</li>
+ 
+</ul>
+ <u>Issues:    </u><br>
+ 
+<ul>
+   <li>the requirement for language neutrality will impose restrictions on
+  how the contract between the script runtime container  and scripts run
+ &nbsp;in the container can be defined</li>
+   <li>it would be impossible evaluate our contract against all scripting
+languages, so we must select a subset of languages to  use&nbsp;</li>
+ 
+</ul>
+<u>Further analysis:</u><br>
+<ul>
+  <li><a href="thread-management.html">Thread management</a></li>
+  <li><a href="persistence.html">Persistence of script data</a></li>
+  <li><a href="symbol-resolution.html">Symbol/Dependency Resolution</a></li>
+</ul>
+ 
+<h2>Code Management</h2>
+ <u>Problem Statement:</u>    <br>
+ Scripts can be in many formats, source or binary, encrypted or obfuscated.
+  They can be stored in many locations, eg. a filesystem or a webserver.
+They   can be stored as files, or embedded within a file. They can be protected
+  by security features such as digital signing.    <br>
+ Clients of the scripting framework (eg. StarOffice, IDEs) need to be able 
+ to  access these scripts without concerning themselves with where and how 
+the  scripts are stored. The Application Scripting Framework needs to provide 
+ a  set of services and interfaces which will allow these clients such access.
+    <br>
+ <br>
+ <u>Requirements:</u>    <br>
+ 
+<ul>
+   <li>research current StarOffice script location/load/store interfaces</li>
+   <li>define the digital signing service for scripts</li>
+   <li>define the script location service</li>
+   <li>define the script loading/storing service&nbsp;</li>
+ 
+</ul>
+<u>Further analysis:</u><br>
+<ul>
+  <li><a href="code-management.html">Code management</a><br>
+  </li>
+</ul>
+ 
+<h2>IDE related Issues      </h2>
+ 
+<ul>
+   <li>Do we want a scripting IDE as part of SO&nbsp; (I will call this internal 
+ IDE for  simplicity) or an external one plugging into SO? One option could 
+be to have an  internal IDE for StarBasic and an external IDE for the new 
+scripting languages.  The external editor should be NetBeans (Forte for JAVA?). 
+NetBeans already  has  some support for BeanShell, Dynamic Java and Jython. 
+This support definitely  needs further improvements. If we go with NetBeans 
+then we might need to  cooperate with NetBeans developers. NetBeans has a 
+framework for plugging  in new  scripting interpreters into the IDE.&nbsp;</li>
+   <li>The main issues are debugging and editing scripts, code browsing,
+ configuration.</li>
+   <li>We need possibilities to edit and debug scripts from simple command 
+line  applications.&nbsp;</li>
+ 
+</ul>
+ <u>Code editing:</u><br>
+ &nbsp;We need the script storage and script loading and storing interfaces 
+as  described above. This needs to be able to retrieve and store a script 
+source  and its context (document, application). Both the IDE (internal and 
+external)  and the command line application need to use these interfaces to
+edit scripts  and their contexts.    <br>
+ NetBeans has an API that abstracts storage of files and file like objects. 
+ This  could use the script loading and storing interfaces to edit scripts. 
+Context  editing could be done with Nodes, the DataSystems API and the Explorer 
+API,  but  this needs to be investigated.    <br>
+ <u>Debugging:</u><br>
+ Main issues are launching, setting breakpoints and evaluating variables.
+   <br>
+ The IDE has to be able to launch the language specific debugger/interpreter 
+ and  load the binary/script source and its context in it, an interface has 
+to  be  defined for this.      <br>
+ OpenOffice already has an <a
+ href="http://api.openoffice.org/common/ref/com/sun/star/script/XDebugging.html">interface</a> 
+for setting/clearing breakpoints and evaluating  variables. This could be 
+the interface the debugger/interpreter plug-in of a new language  will have 
+to implement. An IDE will have to use this interface to implement  the  debugging 
+tasks and implement a Watch and Output windows to display various  information.
+    <br>
+ (If we go with NetBeans) the JVM and NetBeans are already integrated and 
+ they do  not use this interface so without a language agnostic framework 
+most of the work  would be done. If we want a language agnostic framework 
+we will have to add  extra implementation for languages not supported by NetBeans.
+This would  be  different from the way the JVM is integrated.<br>
+ If we go with one or more Java based scripting language(s) as part of our
+  implementation then we need to investigate ways of translating script code 
+ line  numbers to Java code line numbers and script variables to underlying 
+Java  variables.    Command line debugging does not need much here, the user 
+will have to launch  the  language specific debugger and configure it (to 
+find the SO libraries). A  command line utility will need to be developed 
+that will load the script  in the  debugger/interpreter and make it aware 
+of the script context.    <br>
+ <u>Code browsing:</u><br>
+ This is not as important as the previous ones.    <br>
+ We need an interface that would return object and method names from a script.
+  This will need language specific implementations. The IDE will have to
+use  this  to display and navigate through the code structure.    <br>
+ There would be no command line functionality here.<br>
+ <u>Configuration</u>:<br>
+ This has already been described as "runtime-related user interfaces".  We
+  need a way to provide similar functionality when debugging from the command
+  line.      <br><br>
+<u>Further analysis:</u><br>
+<ul>
+  <li><a href="ide.txt">IDE requirements</a><br>
+  </li>
+</ul>
+ 
+<h2>Macro Recording</h2>
+ Macro recording is not a very big issue in the investigation phase. The
+main   issue is whether we can generate macros made of UNO API calls or we
+have  to stay  with the dispatch APIs. The investigation should be about
+whether this is  possible or not and how to do it.    It is very simple to
+write macro recorders for any language if the recorded  macros use the dispatch 
+API. Considering that for UNO API based macro recording  we would probably 
+have to write UNO API based macros for all the dispatch  calls  in all the 
+languages that we support, UNO API based macro recording might  not be  feasible. 
+But this should be the subject of the investigation.      <br>
+ 
+<h2>Runtime related security</h2>
+ <u>Problem domain definition:</u><br>
+ The language runtime security subsystem is a set of restrictions  which
+are applied by the language runtime to a script  during loading and execution.
+  <br>
+ Restrictions could be applied to:<br>
+ 
+<ul>
+   <li>the type of the script</li>
+   <li>the source of the script</li>
+   <li>the length of life of the script</li>
+   <li>the amount of resource available to the script</li>
+   <li>the availability of a service by the type of the service</li>
+   <li>the availability of the specific service by the type  of&nbsp;the
+request</li>
+   <li>the availability of the specific service by the content  of the request</li>
+ 
+</ul>
+ <u>Participants:</u><br>
+ 
+<ul>
+   <li>the script execution sandbox<br>
+ an implementation of the language  neutral runtime security  &nbsp;subsystem</li>
+   <li>the language runtime (the runtime container)&nbsp;<br>
+  language specific binding to the execution engine (VM)</li>
+   <li>the language execution context<br>
+ static and runtime data available  to a script during execution</li>
+   <li>the code management subsystem<br>
+ script finder/explorer/loader</li>
+   <li>UI of security configuration</li>
+   <li>debugger&nbsp;</li>
+ 
+</ul>
+ 
+<h2>Script lifecycle services</h2>
+ <u>Problem domain definition:</u><br>
+ The script lifecycle services is a subsystem of the execution  engine (VM) 
+which is responsible for:<br>
+ 
+<ul>
+   <li>creation and maintains of the script execution context</li>
+   <li>control over the script length of life</li>
+   <li>accounting of the script acquired resources</li>
+   <li>clean up after the script end of life.    &nbsp;&nbsp;&nbsp;&nbsp;</li>
+ 
+</ul>
+ <u>Participants:</u><br>
+ 
+<ul>
+   <li>the code management subsystem  <br>
+ script finder/explorer/loader</li>
+   <li>the language runtime (the runtime container)<br>
+ language specific binding to the execution engine (VM)</li>
+   <li>the language execution context  <br>
+ static and runtime data available  to a script during  &nbsp;execution 
+       </li>
+ 
+</ul>
+ <br>
+</body>
+</html>

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ProblemsIssues.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptEngine.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptEngine.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptEngine.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptEngine.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,14 @@
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/scripting/XMethod.idl>
+
+module com { module sun { module star { module scripting {
+
+// this service should be implemented once for each language with which
+// we wish to script
+service ScriptEngine {
+	interface com::sun::star::scripting::XModules;
+	interface com::sun::star::scripting::XBind;
+	interface com::sun::star::scripting::XScriptEngine;
+
+};
+}; }; }; };

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptRegisterException.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptRegisterException.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptRegisterException.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptRegisterException.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,26 @@
+#ifndef __com_sun_star_scripting_ScriptRegisterException_idl__
+#define __com_sun_star_scripting_ScriptRegisterException_idl__
+
+#ifndef __com_sun_star_uno_Exception_idl__
+#include <com/sun/star/uno/Exception.idl>
+#endif
+
+module com {
+  module sun {
+    module star {
+      module scripting {
+      
+        /** Indicates that there is a problem in registering the script engine
+         */
+        exception ScriptRegisterException: com::sun::star::uno::Exception
+        {
+          /** The Engine that tried to be (de)registered
+          */
+          string engine;
+        };
+      };
+    };
+  };
+};
+        
+#endif

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptStartedEvent.idl
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptStartedEvent.idl?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptStartedEvent.idl (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptStartedEvent.idl Sun Nov 27 22:49:46 2011
@@ -0,0 +1,20 @@
+#ifndef __com_sun_star_scripting_ScriptStartedEvent__ 
+#define __com_sun_star_scripting_ScriptStartedEvent__
+#ifndef __com_sun_star_lang_EventObject_idl__ 
+#include <com/sun/star/lang/EventObject.idl> 
+#endif 
+
+module com { 
+  module sun { 
+    module star { 
+      module scripting {
+
+        struct ScriptStartedEvent: com::sun::star::lang::EventObject {
+          string scriptName;
+        };
+      }; 
+    }; 
+  };
+};
+#endif
+

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptWP.sxw
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptWP.sxw?rev=1206895&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/ScriptWP.sxw
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/Services-and-interfaces.html
URL: http://svn.apache.org/viewvc/incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/Services-and-interfaces.html?rev=1206895&view=auto
==============================================================================
--- incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/Services-and-interfaces.html (added)
+++ incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/Services-and-interfaces.html Sun Nov 27 22:49:46 2011
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Scripting Framework Services &amp; Interfaces</title>
+      
+  <meta http-equiv="content-type"
+ content="text/html; charset=ISO-8859-1">
+</head>
+  <body>
+ Below are the core services and interfaces which we think are required.
+<br>
+ <br>
+ Services with required supported interfaces: 
+<ul>
+   <li><a href="ScriptManager.idl">ScriptManager</a> service</li>
+   
+  <ul>
+     <li>XModules</li>
+     <li>XBind</li>
+     <li>XScriptManager</li>
+   
+  </ul>
+   <li><a href="ScriptEngine.idl">ScriptEngine</a> service</li>
+   
+  <ul>
+     <li>XModules</li>
+     <li>XBind</li>
+     <li>XScriptEngine&nbsp;</li>
+   
+  </ul>
+   <li><a href="ScriptMethod.idl">ScriptMethod</a> service</li>
+   
+  <ul>
+     <li>XMethod <br>
+     </li>
+   
+  </ul>
+ 
+</ul>
+  Set of interfaces:<br>
+ 
+<ul>
+   <li><a href="Xbind.idl">XBind</a></li>
+   <li><a href="XMethod.idl">XMethod</a></li>
+   <li><a href="XModules.idl">XModules</a></li>
+   <li><a href="XScriptEngine.idl">XScriptEngine</a></li>
+   <li><a href="XScriptManager.idl">XScriptManager</a><br>
+   </li>
+ 
+</ul>
+  A ScriptManager service manages registered ScriptEngine services. It  aggregates 
+the modules and bind functionality of the ScriptEngine services. <br>
+  A ScriptEngine service represents a script engine for a particular language.
+ <br>
+ A ScriptMethod service represents a script method for a particular language 
+that may be invoked by StarOffice. <br>
+  <br>
+  The XBind interface provides methods to bind and unbind a method, which 
+is also associated with a particular context, application or document. A bind
+will create a ScriptMethod service. <br>
+  <br>
+ The XMethod interface provides a method to invoke a script method synchronously 
+on a method written in a script language. <br>
+ <br>
+ The XModules interface provides methods to obtain the set of available libraries, 
+modules and methods or to check that methods exists. Module/Library/Method 
+information may be represented as structs. No hierarchy traversal is required 
+to obtain the information. Hierarchy is implicit in the library/module/method 
+name space. Can be similar in style to the functionality of java.lang.ClassLoader 
+to obtain packages etc. <br>
+  <br>
+ The XScriptEngine interface provides methods to initiate, query, and monitor 
+a script engine. <br>
+  <br>
+ The XScriptManager interface provides methods to register/deregister ScriptEngine 
+services.  <br>
+</body>
+</html>

Propchange: incubator/ooo/ooo-site/trunk/content/udk/common/man/draft/scripting/Services-and-interfaces.html
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message