From a86a73a2e2d8e9bfcc27f7b417ab469b3d218949 Mon Sep 17 00:00:00 2001 From: Andrew Ferguson Date: Thu, 21 Jun 2007 10:49:16 +0000 Subject: [PATCH] 160012: add ISV docs for template engine --- .../Howtodeveloptemplates.html | 830 ++++++++++++++++++ .../Howtoregistertemplates.html | 197 +++++ .../projectTemplateEngine/_stock/arrow_up.gif | Bin 0 -> 834 bytes .../_stock/arrow_up_2.gif | Bin 0 -> 833 bytes .../_stock/basicsettings.gif | Bin 0 -> 15146 bytes .../projectTemplateEngine/_stock/btn_next.gif | Bin 0 -> 196 bytes .../_stock/btn_next_wt.gif | Bin 0 -> 954 bytes .../projectTemplateEngine/_stock/btn_prev.gif | Bin 0 -> 237 bytes .../_stock/btn_prev_wt.gif | Bin 0 -> 1000 bytes .../projectTemplateEngine/_stock/btn_top.gif | Bin 0 -> 176 bytes .../_stock/explorerview.gif | Bin 0 -> 14685 bytes .../projectTemplateEngine/_stock/gradient.jpg | Bin 0 -> 2225 bytes .../_stock/projectdirectories.gif | Bin 0 -> 13428 bytes .../projectTemplateEngine/_stock/sysdoc.css | 272 ++++++ .../exampletemplate.html | 103 +++ .../guide/projectTemplateEngine/index.html | 57 ++ doc/org.eclipse.cdt.doc.isv/topics_Guide.xml | 1 + 17 files changed, 1460 insertions(+) create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtoregistertemplates.html create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/arrow_up.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/arrow_up_2.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/basicsettings.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_next.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_next_wt.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_prev.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_prev_wt.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_top.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/explorerview.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/gradient.jpg create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/projectdirectories.gif create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/sysdoc.css create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/exampletemplate.html create mode 100644 doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/index.html diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html new file mode 100644 index 00000000000..3861e5ab5ba --- /dev/null +++ b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtodeveloptemplates.html @@ -0,0 +1,830 @@ + + +How to develop templates in How to extend the user interface using templates + + + + + + + + + +
+

 

+
+

[Previous] [Next]

+
+
+ + +
+
+ + +
+ +

How to develop templates

+
+

+Templates form an important part of the drive to support automatic GUI generation + of various user interface types as supported in Eclipse frame work. +These templates are often referred as project +templates, as they are used to support the creation of ready-made projects. For +example, you can define a template to create a simple GUI based +EXE application for a set of Build Configurations. +

+

+The project templates are simple XML files, which follow a structure or +schema defined in the TemplateDescriptorSchema.xsd file. These +templates define the inputs and processes required to create a project for a +particular platform. Inputs define the type of inputs required such as, files, +settings etc. The processes define what to do with those inputs to create a +particular type of project. +

+

+The New Project wizard lists all the templates available based on the +matching criteria defined by the templates. Once the user selects a template from the list, the +Template Engine plug-in processes the selected template. The plug-in generates the subsequent wizard +pages based on whether the template needs user input or not. +

+

+This document details the schema for writing project templates. The +schema file TemplateDescriptorSchema.xsd, which defines the +structure for the project templates, is part of +org.eclipse.cdt.templateengine plug-in. +

+

+The structure or schema for a project template is as follows: +

+

<template
type="TemplateType"
version="Version"
supplier="Supplier"
revision="Revision"
author="Author"   
id="TemplateId"
label="Template label visible to the user"
description="A brief description of the template"
help="help.html"
preview-icon="icon.gif">

<property-group
id="properyGroupId"
label="Property group label"
description="A simple description of the property group"
type=" Type of UIElement group"
help="help.html"
branding-icon="icon.gif">
...
</property-group>

<process>
...
</process>

</template>

+

+The root element for a project template is template, which +provides the following properties or attributes to describe the template: +

+ +

+The template element includes the following child elements: +

+ +

+property-group +

+

+As mentioned earlier, a property-group includes the +property elements that specify all the input fields required for a +wizard page. A property-group can include any number of +property elements. The following attributes can be used to +describe a property group: +

+ +

+property +

+

+The syntax for the property elements included by the +property-group element is as follows: +

+

<property
id="propertyId"
label="User visible label of the property"
description="A brief description of the property"
type="type of the property"
pattern="Regular expression of the expected property"
default="Default value of the property"
size="size"
mandatory="true|false"
hidden="true|false"
persist="true|false">

     <item
     name="name of the item"
     label="User visible label of the item"
     selected="true|false">
     ...
     </item>
</property>

+

+Here is a list of attributes of the property element: +

+ +

+If the property type is select or +stringlist, you can include the item element to +specify the items to be listed. There is no limitation on the number of items +that can be listed. Here is the syntax for the item element: +

+

<item
name="name of the item"
label="User visible label of the item"
selected="true|false">
</item>

+

+Here is a list of attributes of the item element: +

+ +

+process +

+

+The process element within the root element of a project +template defines the processes to be followed to create a project, based on the +inputs taken. Here is the syntax for this element: +

+

<process type="org.eclipse.cdt.templateengine.<process type>">
    <simple name="name" value=""/>

    <complex name="name">
        ...
    </complex>

    <simple-array name="values">
        ...
    </simple-array>

    <complex-array name="name">
        ...
    </complex-array>

</process>

+

+A process element defines a single process. A process is +like a procedure with a set of parameters. In similar terms, the +process element defines the procedure. You need to specify all the +parameters expected by a process. In the project template, you need to specify +arguments for the process matching their types and in the order specified. +

+

+You can specify the process type using the type attribute. +For example, to add files to a project you can use +org.eclipse.cdt.templateengine.AddFiles as the process type. +

+

+A process element may include the following child elements: +

+ +

+Process types +

+

+A process type is a prototype of a process procedure. It defines the +parameters required to complete a procedure. For example, to copy a file you +need its source and destination information, which can be defined as parameters +for the copy process. +

+

+The Template Engine plug-in provides a set of process types using the +extension-point org.eclipse.cdt.templateengine.processType. Using +these process types you can describe a process in your template. For example, +you can describe the copy process by providing the source and destination +folder names. +

+

+The following is a list of process types provided by the Template Engine: +

+ +

+Once the project template has been written, register it with Eclipse to +make it available for use. For more information on this, refer to +How to register a template with Eclipse. +

+ +
+
+

See also:

+
+ + +
+ + + diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtoregistertemplates.html b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtoregistertemplates.html new file mode 100644 index 00000000000..cace8220a0f --- /dev/null +++ b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/Howtoregistertemplates.html @@ -0,0 +1,197 @@ + + +How to register a template with Eclipse in How to extend the user interface using templates + + + + + + + + + +
+

 

+
+

[Previous] [Next]

+
+
+ + +
+
+ + +
+ +

How to register a template with Eclipse

+
+

+Once the project template is ready, you need to register it with Eclipse +to make the template available for use. It is a good practice to group all the +files and resources related to the project template together in one folder. For +example, if you are writing a project template for a Hello World Application, +group all the resources required for this application in a folder +"HelloWorld". +

+

+To register a project template with Eclipse follow the steps given below: +

+
    +
  1. +

    +Create an empty plug-in project from the Eclipse workbench without +the source folders. +

    +
  2. +

    +Create a folder and copy the project template along with all the +resources required to create the project. For example, all the hearder files, +source files, resource files etc. +

    +
  3. +

    +Open the plug-in manifest editor and select the +Dependencies page. For more information on plug-in manifest +editor, refer to PDE + Guide > Getting Started > Basic Plug-in Tutorial +> Plug-in manifest editor. +

    +
  4. +

    +Click Add to select +org.eclipse.cdt.templateengine plug-in from the list. +

    +
  5. +

    +Select the Extensions page in the plug-in manifest +editor. +

    +
  6. +

    +Click Add to create an extension to the extension-point. +

    +
  7. +

    +Select the extension-point with ID +org.eclipse.cdt.templateengine.templates from the list of +extensions-points. +

    +
  8. +

    +Right-click on the newly added extension, and select +New > +template from the context menu. +

    +
  9. +

    +Choose the new template added in step 6 from the All +Extensions list. +

    +
  10. +

    +Specify the wizardId attribute of the template as +"org.eclipse.cdt.project.ui.NewProjectWizard". This +attribute is mandatory. +

    +
  11. +

    +Specify the location of the template relative to the plug-in created +in step 1. This attribute is mandatory. +

    +
  12. +

    +Specify a filterPattern to indicate the build +Configurations for which the template is created. It is a regular expression used +to filter the build Configurations. If the template is designed for a particular +Configuration, it is recommended to specify the filter pattern. For example, If +the template is designed for GCC Configurations, the filter pattern can be ".*gcc". + If the template is designed for multiple build Configurations, you can specify + the filter patterns delimited by "|" . +

    +

    +The New Project wizard filters the available build Configurations based on the filter +pattern for the selected template. The filter patterns are matched against the +available Configurations' ID to get a list of matching SDKs. This is an optional +attribute. +

    +

    +For more information on regular expression patterns, refer to Java +API document for +java.util.regex.Pattern. +

    +
  13. +

    +Select an appropriate project type from the +projectType drop-down list. This is an optional attribute. +

    +
  14. +

    +Specify the usageDescription, which is a notation +describing how this template is used. Usually used to filter the list of +templates on offer depending on other wizard attributes. This is an optional +attribute. For more information, refer to Java API document for +java.util.regex.Pattern. +

    +

    +The New Project wizard will list only those templates, which are +relevant for the build Configurations choosen for the project. For a example, if the developer +choose to create a C++ Application for Symbian OS, the wizard +will list all the templates with the relevant +usageDescription. Otherwise, for a standard CDT +C++ Project the wizard will list all the templates, irrespective of +whether the usageDescription is specified or not. +

    +
  15. +

    +Specify the pagesAfterTemplateSelectionProvider, +which is a fully qualified name of the class that implements +org.eclipse.cdt.templateengine.IPagesAfterTemplateSelectionProvider +interface. This is an optional attribute. +

    +
  16. +
+

+After creating the plug-ins and registering the templates, launch a +runtime workbench and invoke the New Project wizard to check that the template +you added is listed. +

+ +
+
+

See also:

+
+ + +
+ + + diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/arrow_up.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..3fc958e352be3abd812192e7f764ae0617a34ce4 GIT binary patch literal 834 zcmZ?wbhEHbRZaks1Ozz%0N3$_oq}>I}>rG8_pD9Ge-0{ETS7eRNJije=RN^uCI)K&Am0j; literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/arrow_up_2.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/arrow_up_2.gif new file mode 100644 index 0000000000000000000000000000000000000000..44419165c40e0cb1f39dd0ac9060178dccbcce69 GIT binary patch literal 833 zcmZ?wbhEHbRZaks1Ozz%0N3$_oq}Y7ERAG9DWi9BgJ`RFL6V f@bFNZ0Ke0mh=N6~ZDRUqcXk*&bn9khWUvMRIx!3W literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/basicsettings.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/basicsettings.gif new file mode 100644 index 0000000000000000000000000000000000000000..aec95acf512ddd752b9b87dd1035ca611447c2af GIT binary patch literal 15146 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

_ug=_~TkdDS_Bdbeczsll@Ax`z?&aR} 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 YE4rqux~?m`wyV3oE4;?*!UO~WJEqIiQ2+n{ literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_next.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_next.gif new file mode 100644 index 0000000000000000000000000000000000000000..045254173feca9236331d8fdff87bfc116dff5c4 GIT binary patch literal 196 zcmZ?wbhEHbv|Vy08UFuI15*G013CX0(q;l>umZ)OEQ|~c>DVg&!R;|l_D}IZ5BUF1oE2F}?`20JQ;3?VV*^%$QWZT}-F7+(T astvO7&#w|G*6;1>pD=OKWF0{U25SKM(n`4i literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_next_wt.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_next_wt.gif new file mode 100644 index 0000000000000000000000000000000000000000..ffe4e24c78453afe1454a4041987aa70c60e2f87 GIT binary patch literal 954 zcmZ?wbhEHbv|Vy08UFuI15*G013CX0(q=M@g3%Bd0U@CHlZBCi zft^7I#9^KI5G6uYx?vy%5zkH%*%JHIdl zE)q^xvW?oT={w!O+igzeC#}n?<2HYqGGkNr41`D(MiEW6p1THJQ^R+z@=`SDkU UWPWd4e}8`iGq>CsLj?wF0F5nJ{{R30 literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_prev.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..dfb39c574a0f0bf1929aac9f5dcb46af4896ed46 GIT binary patch literal 237 zcmZ?wbhEHb3}p~w*v!DdV4Qa5%>Vy08UFuI15*G013CX0(q;l>umZ)OEQ|~c>7BD0I STeofBv2)k%J*t8X4AuY}4Prb1 literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_prev_wt.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_prev_wt.gif new file mode 100644 index 0000000000000000000000000000000000000000..88fbefb3dd3f103030e503266d10b4abe6c7822a GIT binary patch literal 1000 zcmZ?wbhEHb3}p~w_|DG2V4Qa5%>Vy08UFuI15*G013CX0(q=M@g3%Bd0U@CHlZBCi zft^7IK=+Jsg=ho%t z{*BJLZmqkftO{M~Hr;RPiz}JeR!8qoVqG1o71$QLH>h{#H;w2Oj>k`xR);0tT3(nL zX8Stm&7D=IjEmpS3dxUb&i@~GcJ~g=xP58T;$_m)je?K)a!=0Pz5VmKCcU%YbUk-% Rd3kw7@anj;yOJCjtO17kb-Vxo literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_top.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/btn_top.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe1b1528e3315ee0eb0f21170ffc53d9fb425639 GIT binary patch literal 176 zcmZ?wbhEHbG-eQE*v!DdV4Qa5%>Vy08UFuI15*G013CX0(q;l>umZ)OEQ|~c>c&^@S@%rrU{|Op>DVg&!R;_!}w&w%OnJYQThdfU=T=~6U*44p;v;W|d z)*0H0l?Pr-xG7`1)a+qPlxQr!_1h`lzuM}(^Td}dtv#NlEmhOJ?CR@jb?4vz{$D4^ Hz+epkEwV>C literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/explorerview.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/explorerview.gif new file mode 100644 index 0000000000000000000000000000000000000000..d782980b3a53060f684c5abd50ed137629f8075f GIT binary patch literal 14685 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 literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/gradient.jpg b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/gradient.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffff5f6689f9a70409c3e3f46039509d342e5ef1 GIT binary patch literal 2225 zcmbW1Z%iBK9mmf;jLF3^F&xB07_dXw9g4L$C7t7u4R8<64g~y|uF1WKQW%@B{v%z7MQWTpzJMM(4bjSWwqDr7n*X#|k9hzp+G`q_-@FLY2WXlwZJ!g|m z+N*76JwEGs&d>Av-uLtS?%vz|J#xU>ZfQp(5-Cy*KgjNH5i=q~i;9X+8T^vTWW{nt zi5y;~`}glts7lMqRHZ6ad1dv%a=fZSrBZ9vRT@ogZEg8MUA?ZRzPhHiM%+XK|0*w* zD@#h0HMk0|`Jb=d8;Gg|A&b6-N_2=+B|%k^-H(u31d+%j`3u>*BvP~pR#~zS+YcXD zK7dFiC@O{ZLjmyVH{d!_q>`0s4XwrHwwL9)SMg&bfl$ezw(B=5z@0DZpX<9Yx(};7 zsQyyb;f600WMk9u=f7$^VKTo!wRg}KtG)NdZ@zTqEYtt3fp34u;dFiX;^6mQ8~VQI z(ht33z8_s?r>28fW_~jJ)?9dz<0H{)v3KA9nXvrxU;Oe{AFQr@6u*$97li$XE)~=zg|-yQMO_l< zYjB{dBAM1uT-Iunzx-;s?$}5P-WCX5zq#+wbKr}Lz6*D-%KE1C;hZQfuk61QHu`@l z`$;C9Pzf{-RUzL%9__>`7n#5-+vZ0jS)gxU)}`JL)WNw5_`|nEFIT0;Tg@9B z^QMc64d|$c0DJTG-cdf-Y){ORo3z8CkVw@pzQ& z3}v_qbxhV^SX*kg%b6kWc6B3lElvw#&312--D{ye$+*FpnI=o|bQhkc`{O5_qYJ`Y zv^&b4ha2?!mBO8V>9cnB$BlN%2#BF5 z=7?e~Cp>oVaX1=!a;Iq0(Gu5?PPvsSBEln-qCZ9*CPKrDOZvL(Dca$Na|pU*9E9hj zH>TA>cq-U~`mBV8xayFZ=E&5TS3^>Dn^qDLltPbb-H^fvT*259Q^AYe4Mv7z=C-8w z`FTPeo+rcbW~1<<8VUyz3daaykl3_XO})e689!J@uZ7v-(V3~4X?3B1PU$;cQJ`Mr zaV0z!t_DIKRvT>sY%!6436ys2S#f;Ot8r##P02XDzU7W2y_SBT)g74(rfJR;1c06L z??f?I(yI$Rxd$p%*UkCttUVWN@GsV3Qm^yS@W~=u3XO(r_jRzG9u| z9Zzr$H{7zZ74+=D`*I!E^B~IhCF9VNJS@}d^u_{tX{i|uC?TkQ9AmD5zLKjPcM@t8 za+aWvbw^k?XUHrFH@lfm&S;MxwZ}!8PI!_Xkc=2vhP{}j$(NS2Q_5hv3xW|a`xy6T zm&UoqHyARa9VA|Wt*&|n?hnT_F~oDYP}esZ6fW_4DQ;^Cj~P;;?Kf;2GyXxIYcj&Q zVadk437+H5S|%8q#Y#xl@+LJw$M7w4+hj28zsTdmjGQ4f4)qq~pje;x8l2ZlS(!HE zTz&gAuCSfP@4y=oX4T3tOCn)bhT|rP4zFo!v59<2QZ@>0J!Ls%nJ5$xk(`bsV+vb> zmBVAubEx-eGlfKw~9IO6)T4 zap!7)e)<`9 zKvjLgDJt|iObPWvptsONc}N4{*2Ka}Oe6!4r7>9tz&afs2!z3z{oVADA(#^FjnpP+ zGQuq@>SBZ^HM+?70db)a0K`xp7R!V?3n7DG9P?oiJD}J8IG+pv)Ig15f|v`PuFiEc z=c7vvpqk9gk{OYv`4#6PBqJ5PENk51#I*QCzSkWg*g_Y@{!UD*b9p=10&ITeImith zmS8hTV9WtShm~nf%#2{fRhwD8CE9+TfH7f8B&w?6Tnmytt%2tl2f15%g5z-{oj0ip zI>ruapY?8w9$mtff?^PIfL7+cCXZH*P*VT8knW0Nu(!paD#mS;LJs3%*hWcNOk*_x zFnOhp5cx#5U|L<}Ii9;!C?JVM?atH~u}PuuSh&hLY>6OH2E!w4{v`xx_p{<+1KJK| nD54Z{pvg2(3TbdAotP&Vc_Sc|JRS^-UA8(Wz~K17?q~l5hm(HD literal 0 HcmV?d00001 diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/projectdirectories.gif b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/_stock/projectdirectories.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b2503b70e0c1fb377868ba2b6b5032c5b30fad2 GIT binary patch literal 13428 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 + +Example template in How to extend the user interface using templates + + + + + + + + + +
+

 

+
+

   + [Previous]

+
+


+ + +
+
+ + +
+ +

Example template

+
+

+The following is an example template to create a simple Symbian OS +EXE project: +

+

<?xml version="1.0" encoding="ISO-8859-1"?>
<template type="ProjTempl" version="1.0" supplier="Symbian" revision="1.0" author="Bala Torati"
        id="EXE" label="Simple EXE" description="A skeletal Symbian OS EXE project. Creates a folder for sources and another for include."
         help="help.html">

    <property-group id="basics" label="Basic Settings" description="Basic properties of a project" type="PAGES-ONLY" help="help.html">
        
<property id="uid2"
            label="UID 2"
            description="UID 2"
            default="0x00000000"
            type="input"
            pattern="0x[0-9a-fA-F]{8}"
            hidden="false"
            mandatory="true"
            persist="true"/>
        
<property id="uid3"
            label="UID 3"
            description="UID 3"
            default="0x00000000"
            type="input"
            pattern="0x[0-9a-fA-F]{8}"
            hidden="false"
            mandatory="false"
            persist="true"/>

<property id="vid"
            label="Vendor ID"
            description="Vendor ID"
            default="0x00000000"
            type="input"
            pattern="0x[0-9a-fA-F]{8}"
            hidden="false"
            mandatory="true"
            persist="true"/>

<property id="author"
            label="Author"
            description="Name of the author"
            type="input"
            pattern=".*"
            default=""
            hidden="false"
            persist="true"/>

<property id="copyright"
            label="Copyright notice"
            description="Your copyright notice"
            type="input"
            pattern=".*"
            default="Your copyright notice"
            hidden="false"
            persist="true"/>

<property id="targetType"
            label="Target Type"
            description="Select the target type"
            type="select"
            hidden="false"
            mandatory="true"
            persist="true">
            <item label="APP" selected="true" name="app"/>
            <item label="LIB" selected="false" name="lib"/>
            <item label="DLL" selected="false" name="dll"/>
            <item label="EXE" selected="false" name="exe"/>
            <item label="EXEDLL" selected="false" name="exedll"/>
        </property>
    </property-group>

    <property-group id="directories" label="Project Directories" description="Generated files will be copied to the specified directories under the project root directory" type="PAGES-ONLY" help="help.html">
    <property id="incDir"
                label="Include"
                description="Directory for C++ header files"
                type="input"
        default="inc"
                pattern="[a-zA-Z0-9]+"
                mandatory="true"
                persist="true"/>

    <property id="sourceDir"
                label="Source"
                description="Directory for C++ source files"
                type="input"
                default="src"
                pattern="[a-zA-Z0-9]+"
                mandatory="true"
                persist="true"/>
    </property-group>
    
    <process type="org.eclipse.cdt.templates.NewSymbianProject">
        <simple name="name" value="$(projectName)"/>
        <simple name="targetType" value="$(targetType)"/>
        <simple name="uid2" value="$(uid2)"/>
        <simple name="uid3" value="$(uid3)"/>
        <simple name="vid" value="$(vid)"/>
    </process>

    <process type="org.eclipse.cdt.templateengine.CreateSourceFolder">
        <simple name="projectName" value="$(projectName)"/>
        <simple name="path" value="$(sourceDir)"/>
    </process>

    <process type="org.eclipse.cdt.templateengine.CreateIncludeFolder">
        <simple name="projectName" value="$(projectName)"/>
        <simple name="path" value="$(incDir)"/>
    </process>

    <process type="org.eclipse.cdt.templateengine.AddFiles">
        <simple name="projectName" value="$(projectName)"/>
        <complex-array name="files">
            <element>
                <simple name="source" value="inc/Basename.h"/>
                <simple name="target" value="$(incDir)/$(baseName).h"/>
                <simple name="replaceable" value="true"/>
            </element>
            <element>
                <simple name="source" value="src/Basename.cpp"/>
                <simple name="target" value="$(sourceDir)/$(baseName).cpp"/>
                <simple name="replaceable" value="true"/>
            </element>
        </complex-array>
    </process>

    <process type="org.eclipse.cdt.templateengine.AppendToMBSStringListOptionValues">
        <simple +name="projectName" value= "$(projectName)"/>      
        <complex-array name="resourcePaths">
            <element>
                <simple name="id" value=".*linker\.libraries\.libraries.*" />
                <simple-array name="values">
                    <element value="euser.lib" />
                </simple-array>
                <simple name="path" value="" />
            </element>
        </complex-array>
    </process>
</template>

+

+The above given template copies the following source (.cpp) +and header (.h) files in the src and inc +folders respectively. These files uses a set of macros to get the values +specified by the developer for file name, author name, copyright etc. +

+

/*
============================================================================
 Name : $(baseName).cpp
 Author : $(author)
 Version :
 Copyright : $(copyright)
 Description : Exe source file
============================================================================
*/

// Include Files

#include "$(baseName).h"
#include <e32base.h>
#include <e32std.h>
#include <e32cons.h> // Console


// Constants

_LIT(KTextConsoleTitle, "Console");
_LIT(KTextFailed, " failed, leave code = %d");
_LIT(KTextPressAnyKey, " [press any key]\n");


// Global Variables

LOCAL_D CConsoleBase* console; // write all messages to this


// Local Functions

LOCAL_C void MainL(const TDesC& aArgs)
    {
    //
    // add your program code here, example code below
    //
    console->Write(_L("Hello, world!\n"));
    console->Printf(_L("Command line args: \"%S\"\n"), &aArgs);
    }


LOCAL_C void DoStartL()
    {
    // Create active scheduler (to run active objects)
    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
    CleanupStack::PushL(scheduler);
    CActiveScheduler::Install(scheduler);

    // Call main function with command line
    TBuf<256> cmdLine;
    RProcess().CommandLine(cmdLine);
    MainL(cmdLine);

    // Delete active scheduler
    CleanupStack::PopAndDestroy(scheduler);
    }


// Global Functions

GLDEF_C TInt E32Main()
    {
    // Create cleanup stack
    __UHEAP_MARK;
    CTrapCleanup* cleanup = CTrapCleanup::New();

    // Create output console
    TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(KConsFullScreen,KConsFullScreen)));
    if (createError)
        return createError;

    // Run application code inside TRAP harness, wait keypress when terminated
    TRAPD(mainError, DoStartL());
    if (mainError)
        console->Printf(KTextFailed, mainError);
    console->Printf(KTextPressAnyKey);
    console->Getch();
    
    delete console;
    delete cleanup;
    __UHEAP_MARKEND;
    return KErrNone;
    }

+

/*
============================================================================
 Name : $(baseName).h
 Author : $(author)
 Version :
 Copyright : $(copyright)
 Description : Exe header file
============================================================================
*/

#ifndef __$(baseName)_H__
#define __$(baseName)_H__


// Include Files

#include <e32base.h>


// Function Prototypes

GLDEF_C TInt E32Main();


#endif // __$(baseName)_H__

+

+When the developer chooses the above template in the New Project wizard, +the following wizard pages are generated: +

+
+

Basic Settings

+

+Basic Settings +

+
+
+

Project Directories

+

+Project Directories +

+
+

+The input fields listed in the above given pages are as per the +definitions given in the template. In the template, the +property-group element with the ID "basics" defines all the input +fields required for the Basic Settings page. While the +property-group element with the ID "directories" defines all +the input fields required for the Project Directories page. +

+

+The template will create a Symbian OS EXE project in the +Eclipse workspace with all the required resources. +

+

+The following C/C++ Projects view shows the resources +created by the New Project wizard for the above given template: +

+
+

Explorer view

+

+Explorer view +

+
+ +
+ + + diff --git a/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/index.html b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/index.html new file mode 100644 index 00000000000..0365ab72bd1 --- /dev/null +++ b/doc/org.eclipse.cdt.doc.isv/guide/projectTemplateEngine/index.html @@ -0,0 +1,57 @@ + + +How to extend the user interface using templates + + + + + + + + + +
+

 

+
+

[Next]

+
+
+ +
+ +

How to add project templates to CDT

+
+

+CDT 4.0 has a framework and extension points for allowing the contribution of project templates. Project templates +are used by the New Project Wizard to generate projects which are automatically populated with source files or settings. +The particular source files or settings can be dependent on information the user enters into the wizard. +

+

+The two main parts to integrating a template are writing the template itself (in XML format), and adding this to +a plug-in which extends the appropriate extension point. +

+ + +
+ + + diff --git a/doc/org.eclipse.cdt.doc.isv/topics_Guide.xml b/doc/org.eclipse.cdt.doc.isv/topics_Guide.xml index c6e41ba2ec3..81b595bbd3b 100644 --- a/doc/org.eclipse.cdt.doc.isv/topics_Guide.xml +++ b/doc/org.eclipse.cdt.doc.isv/topics_Guide.xml @@ -6,4 +6,5 @@ +