Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'product-guide/guide.html')
-rw-r--r--product-guide/guide.html854
1 files changed, 854 insertions, 0 deletions
diff --git a/product-guide/guide.html b/product-guide/guide.html
new file mode 100644
index 0000000..f37ccce
--- /dev/null
+++ b/product-guide/guide.html
@@ -0,0 +1,854 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
+ <meta name="Author" content="Greg Adams">
+ <title>Creating product branding</title>
+ <link rel="stylesheet" href="default_style.css">
+</head>
+<body>
+
+<div align=right><font face="Times New Roman, Times, serif"><font size=-1>Copyright
+&copy; 2001 Object Technology International, Inc.</font></font></div>
+<div ALIGN=right><table BORDER=0 CELLSPACING=0 CELLPADDING=2 WIDTH="100%" >
+<tr>
+<td ALIGN=LEFT VALIGN=TOP COLSPAN="2" BGCOLOR="#0080C0"><b><font face="Arial,Helvetica"><font color="#FFFFFF">&nbsp;Eclipse
+Corner Article</font></font></b></td>
+</tr>
+</table></div>
+
+<h1>
+<img SRC="idea.jpg" height=86 width=120></h1>
+
+<center>
+<h1>
+Creating product branding</h1></center>
+
+<blockquote><b>Summary</b> <br>
+ In this document we will look at the steps needed to create a product. Before
+ we get too excited hoping the magic of product building will be revealed,
+ we should first confess that we will focus only on those aspects of the platform
+ which you will need to modify in order to give your product some branding.
+ This will include such items as the splash screen, about dialog, the program
+ executable and so forth.
+ <p><b>By Greg Adams, OTI</b> <br>
+ <font size=-1>November 27, 2001</font>
+ <p>Editor's note: This article describes Eclipse release 1.0. All aspects of
+ product branding were completely revamped for Eclipse release 2.0; an updated
+ version of this article is in preparation.
+</blockquote>
+<hr WIDTH="100%">
+
+<h2>The high level picture</h2>
+<p>You have written all the code and now it is time to bundle up your code with
+ the platform and change the identity to have your product brand. Before diving
+ into the details of each step let's take a sneak peak at the big picture and
+ get a flavor for the kinds of things we'll be doing. The high level steps are
+ as follows:</p>
+<ol>
+ <li>Replace the product level graphics (e.g. splash screen)</li>
+ <li>Create graphics for the executable</li>
+ <li>Create a new executable</li>
+ <li>Create a product configuration </li>
+ <li>Create a product plug-in corresponding to the configuration</li>
+ <li>Update the install information to use your new configuration.</li>
+ <li>Remove any existing license information</li>
+</ol>
+<p>As you work through the steps you may notice the occasional <b><img src="TryIt.gif" width="61" height="13"></b>.
+ These indicate points at which you may want to test out the work you have done
+ thus far. Once you have completed the test be sure to delete the <i>eclipse/workspace</i>
+ directory thus ensuring that the next test starts with a fresh state. Once you
+ have mastered the steps you should do a final run through the steps (starting
+ with a clean install) but be sure to skip the &quot;try it&quot; steps. These
+ steps require you to run the platform and consequently will cause information
+ to be cached. Your actual product production process should not run the platform
+ runtime.</p>
+<p>The steps in this document assume that you have the <i>runtime</i> build of
+ the platform installed on your machine. In some cases you will require access
+ to the SDK build but it is important to note that we will be working with and
+ modifying the platform build. In the remaining sections we assume that you have
+ a working knowledge of plug-ins.</p>
+<p>Before continuing make sure that you have installed a platform runtime build
+ and installed into it all of your own plug-ins. You should not consider branding/productization
+ unless you are also including your own plug-ins.</p>
+<p>This article is intended to be a guide to help you produce a release. You need
+ to ensure that you comply with any terms and conditions of the license under
+ which you received the platform runtime.</p>
+<p>&nbsp;</p>
+<h2>Replacing the splash screen</h2>
+<p>The splash screen (shown while the program starts) is contained in two files
+ found in the <i>eclipse/splash</i> directory. You must replace both of these
+ files with your product splash screens. The file <i>splash_basic</i> and <i>splash_full</i>
+ correspond to low color and high color versions of the splash screen. The low
+ color splash screen is used only when the display (color) depth is less than
+ or equal to eight. Typically most displays have sufficient color depth support
+ to allow the high color splash to be used. </p>
+<p><img src="win_only.gif" width="51" height="13"> On Windows&reg; replace the following
+ two files (in eclipse/splash) with your splash screen files: </p>
+<ul>
+ <li>splash_basic.bmp </li>
+ <li>splash_full.bmp </li>
+</ul>
+<p><img src="linux_only.gif" width="51" height="13"> On Linux replace the following
+ two files (in eclipse/splash) with your splash screen files:</p>
+<ul>
+ <li>splash_basic.xpm</li>
+ <li>splash_full.xpm</li>
+</ul>
+<p>&nbsp;</p>
+<p><b><img src="TryIt.gif" width="61" height="13"> </b>Start the program and confirm
+ that your splash screen is shown. Exit the program. Don't forget to delete the
+ <i>eclipse/workspace </i>directory thus ensuring things are in a completely
+ fresh state for our next test.</p>
+<p>&nbsp;</p>
+<h2>Creating the graphics for our executable</h2>
+<p>The executable is located in the <i>eclipse/ </i>root directory and the process
+ for replacing it is platform specific. Start by extracting the file <i>eclipse/launchersrc.zip
+ </i>found in the SDK and opening the resulting <i>library </i>subdirectory<i>.
+ </i>In the following sections, we will work with the <i>library/</i> directory
+ and once we are finished we will copy the resulting executable back to the runtime
+ platform build. This is the only time you will require access to files found
+ in the SDK.</p>
+<p><b><img src="win_only.gif" width="51" height="13"> </b>On Windows executable
+ programs can have an associated icon(s). To create our icon we first need to
+ replace several .BMP graphics located in the <i>library </i>directory<i>. </i>These
+ graphics represent 16x16, 32x32 and 48x48 pixel versions of both low color and
+ high color graphics. In the <i>library/ </i>directory replace the following
+ files:</p>
+<ul>
+ <li>icon16_basic.bmp</li>
+ <li>icon16_full.bmp</li>
+ <li>icon32_basic.bmp</li>
+ <li>icon32_full.bmp</li>
+ <li>icon48_basic.bmp</li>
+ <li>icon48_full.bmp</li>
+</ul>
+<p>Using an appropriate graphics tool (e.g. ICONPRO provided in the MSDN) of your
+ choice, combine these graphics into a single .ICO (icon) file called<i> eclipse.ico</i>
+ and replace <i>library/eclipse.ico</i> with your new eclipse.ico file. The <i>eclipse.ico</i>
+ is referenced by the file<i> library/eclipse.rc</i> which is automatically used
+ when the executable build script is run. Once the build script has finished
+ we will have a new program executable with an associated icon.</p>
+<p><img src="linux_only.gif" width="51" height="13"> Linux does not directly associate
+ an icon with an executable program however we can include an icon that users
+ can use when associating a shortcut with the program. Create yourself an xpm
+ graphic (representing your program icon) using your favorite graphics editor
+ and place it into <i>library/icon.xpm. </i>Once we have built the executable
+ we will copy both the executable and the <i>.xpm </i>file to the <i>eclipse/</i>
+ root directory of the platform runtime build.</p>
+<h2>&nbsp;</h2>
+<h2>Creating a new executable program</h2>
+<p>Executable icon in hand, it's time to make the executable. We will continue
+ to work with the <i>library/ </i>directory and once we have created our executable
+ we will copy it to the <i>eclipse/</i> root directory of the runtime platform
+ build. The process for creating the program executable is different for each
+ platform however the <i>library/</i> directory includes build scripts to help
+ make the process easier.</p>
+<h3><b>Preparing the build script</b></h3>
+<p><img src="win_only.gif" width="51" height="13"> In the <i>library/</i> directory
+ you will find the build script <i>build.bat</i>. We will need to edit this build
+ file to point it to the location of your compiler. To do this, simply uncomment
+ the following lines (by removing <i>rem</i>) and modify <i>MSVC_HOME </i>to
+ point to the root directory of your compiler installation.</p>
+<blockquote>
+ <pre>rem IF NOT &quot;%MSVC_HOME%&quot;==&quot;&quot; GOTO MAKE
+rem set MSVC_HOME=k:\dev\products\msvc60\vc98
+rem call %MSVC_HOME%\bin\vcvars32.bat</pre>
+</blockquote>
+<p>This script has been tested with Microsoft&reg; Visual C/C++ Compiler 6.0 however
+ it is possible that you may need to make additional modifications for your compiler.
+ If you are using Windows 98 you will also need to remove the line<i> rem Usage:
+ build &lt;PROGRAM_OUTPUT&gt; &lt;PROGRAM_NAME&gt;</i> to work around a known
+ problem.</p>
+<p><img src="linux_only.gif" width="51" height="13"> On Linux, the build script
+ (<i>build.csh)</i> has been tested against GNU C and C++ Compiler. You typically
+ should not need to make any changes to the Linux build script.</p>
+<p>&nbsp;</p>
+<h3><b>Running the build script</b></h3>
+<p>The build script takes two arguments, the filename of the executable file to
+ create and the title (name) of your program. If the program name has spaces
+ in it (as in the example below) you will need to put double-quotes around it.
+</p>
+<p>In the example below the program name <i>Cool Stuff &nbsp;</i>will be shown
+ in the task bar while the program is starting. As we will soon learn the icon
+ shown in the top left corner of each Workbench window is set separately and
+ is unrelated to the icons specified for the executable.</p>
+<p><img src="win_only.gif" width="51" height="13"> On Windows you can run the
+ build script (<i>build.bat)</i> as shown below. Prior to running the build script
+ you should delete any <i>.res</i> files from the <i>library</i> directory. These
+ files will typically only be present if you have run the build script previously.
+ This example will create an executable file named <i>cool.exe</i> with the icon
+ we created above.</p>
+<blockquote>
+ <pre>build cool.exe &quot;Cool Stuff&quot;</pre>
+</blockquote>
+<p><img src="linux_only.gif" width="51" height="13"> On Linux you can run the
+ build script (<i>build.csh)</i> as shown below. This example will create an
+ executable file named <i>cool</i>. On Linux an icon is not automatically associated
+ with the executable.</p>
+<blockquote>
+ <pre>csh build.csh cool &quot;Cool Stuff&quot;</pre>
+</blockquote>
+<p>&nbsp;</p>
+<h3><b>Replacing the existing executable</b> </h3>
+<p>Now that you have your own executable, you can copy it to the <i>eclipse/</i>
+ root directory of the runtime platform build. Next, delete the current executable
+ from the <i>eclipse/ </i>root directory. If you forget to delete the existing
+ executable a user will not know which executable to run so its important not
+ to forget this little step.</p>
+<p><img src="linux_only.gif" width="51" height="13"> On Linux we also need to
+ copy the <i>icon.xpm </i>(we created above) to the <i>eclipse/ </i>root replacing
+ the one already found there. </p>
+<p>&nbsp;</p>
+<p><b><img src="TryIt.gif" width="61" height="13"> </b>Let's give it a whirl!
+ Go to the<i> eclipse/</i> root directory of the runtime platform build and start
+ the program by running your executable. Confirm that your executable properly
+ starts, that your icons and program name are shown in the appropriate places
+ and that your splash screen is still shown. Don't worry about the icon or title
+ in the resulting Workbench window we'll fix those in a later section. Exit the
+ program. Don't forget to delete the <i>eclipse/workspace </i>directory thus
+ ensuring things are in a completely fresh state for our next test.</p>
+<p>&nbsp;</p>
+<h2>Create a product configuration</h2>
+<p>A product configuration and its corresponding plug-in define several key product
+ attributes including the icon and title shown in each window, the welcome page,
+ about dialog information and much more. Product configurations are defined in
+ the <i>eclipse/install/configurations </i>directory. If you take a glance at
+ this directory you will likely observe more than one product configuration.
+ Which one defines the product? The answer lies in the file <i>eclipse/install/install.properties
+ </i> that specifies which configuration is the <i>dominant</i> configuration.
+ At any given time only one configuration is the dominant configuration. Each
+ configuration also has a corresponding plug-in directory. We will start by finding
+ the dominant configuration and then proceed to create a new product configuration
+ and corresponding plug-in. Finally we will update the <i>install.properties</i>
+ file to point to the new configuration. </p>
+<h3><b>Discovering the dominant configuration</b> </h3>
+<p>Open the file <i>eclipse/install/install.properties</i> and go to the line
+ with <b>application.configuration = .</b> The information appearing on the right
+ hand side is the name (id and version) of the current <i>dominant</i> configuration.
+ Typically the <b>application.configuration</b> has the form <i>xyz_version</i>.
+ For example <i>xyz_1.0.0</i> indicates the configuration id is <i>xyz</i> and
+ the version level is <i>1.0.0</i>. </p>
+<p>Now that we know the name (id and version) of the dominant configuration take
+ another look at the <i>eclipse/install/configurations </i>directory<i>. </i>You
+ should see a subdirectory with the same name as the dominant configuration name.
+ For example if <i>install.properties </i>had the line <b>application.configuration
+ = xyz_1.0.0 </b>then we should expect to see a directory <i>xyz_1.0.0</i>. In
+ addition you should find a plug-in (in <i>eclipse/plugins</i>) with the exact
+ same name as the configuration directory. </p>
+<p>Make a note of the dominant configuration name (id and version) because we'll
+ want to copy both the configuration and the plug-in directories in the following
+ sections.</p>
+<h3><b>Choosing a name for our configuration</b></h3>
+<p>You may recall (from the section on creating the executable) that the name
+ of our program is &quot;Cool Stuff&quot;. To make things easier to follow let's
+ assume the id we want to give to our configuration and plug-in is <i>org.cool.stuff</i>
+ and the version number is <i>1.0.0</i>. Consequently our configuration and plug-in
+ directories will have the name <i>org.cool.stuff_1.0.0</i> and ultimately we
+ will edit the <i>install.properties</i> file to have application.configuration
+ <b>= </b>org.cool.stuff_1.0.0. </p>
+<h3><b></b> <b>Creating the configuration</b> </h3>
+<p>Open the <i>eclipse/install/configurations </i>directory and copy the current
+ dominant configuration (recall we recorded its name above) to a directory of
+ your own naming. For our example we need to copy the dominant configuration
+ to a directory named to <i>eclipse/install/configurations/<b>org.cool.stuff_1.0.0</b></i>.
+ It is important that you copy the directory, you must not simply rename the
+ existing dominant configuration directory. </p>
+<p>Next edit the file <i>install.xml</i> found in the new configuration directory.
+ You will need to edit the fields (lines) as follows:</p>
+<table width="80%" border="1" cellspacing="0" cellpadding="0">
+ <tr bgcolor="#CCCCCC">
+ <td width="30%"><b>Field</b></td>
+ <td width="80%"><b>Editing Instructions</b></td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>label</b></td>
+ <td width="70%">Change this to be the name of your product (e.g. Cool Stuff)</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>id</b></td>
+ <td width="80%">Change this to match the unique name of your configuration
+ (e.g. org.cool.stuff)</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>version</b></td>
+ <td width="80%">Change this to the appropriate version number of your configuration
+ (e.g. 1.0). Note that 1.0 can be used in place of 1.0.0.</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>provider-name</b></td>
+ <td width="80%">Change this to be the name of your company.</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>description</b></td>
+ <td width="80%">Change this to be a description of the configuration.</td>
+ </tr>
+</table>
+<p>The following example shows what the<i> install.xml </i>file would look like
+ for the Cool example. </p>
+<blockquote>
+ <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
+&lt;configuration
+ label=&quot;Cool Stuff&quot;
+ id=&quot;org.cool.stuff&quot;
+ version=&quot;1.0&quot;
+ provider-name=&quot;Cool Stuff Company&quot;&gt;</pre>
+ <pre> &lt;description&gt;
+ The Cool Stuff Configuration
+ &lt;/description&gt;<br>&lt;/configuration&gt;</pre>
+</blockquote>
+<p>&nbsp;</p>
+<h2><b>Create a plug-in</b> corresponding to the configuration</h2>
+<p>Every configuration has a corresponding plug-in. The name of the plug-in directory
+ is identical to the name of the configuration directory. Since our configuration
+ directory was named org.cool.stuff_1.0.0 we will create a plug-in with the same
+ name. </p>
+<p>Open the <i>eclipse/plugins </i>directory and copy the plug-in corresponding
+ to current dominant configuration (see above) to a directory matching the name
+ of your configuration (e.g. <i>org.cool.stuff_1.0.0</i>). It is important that
+ you copy the directory, you must not simply rename the existing dominant configuration
+ plug-in directory. </p>
+<p>Your new plug-in directory should contain the following files. If you do not
+ see all of these files, you may have copied a regular plug-in directory instead
+ of the plug-in directory corresponding to the dominant configuration.</p>
+<ol>
+ <ol>
+ <li>plugin.xml</li>
+ <li>plugin.properties</li>
+ <li>about.html</li>
+ <li>product.ini</li>
+ <li>product.properties</li>
+ <li>about_prod.gif</li>
+ <li>about_prod_basic.gif</li>
+ <li>prod.gif</li>
+ <li>prod_basic.gif</li>
+ <li>welcome.xml</li>
+ <li>platform.ini</li>
+ <li>platform.properties</li>
+ </ol>
+</ol>
+<p>Files 1-3 you might recognize because they appear in most other plugins. Files
+ 4-10 are unique to plug-ins corresponding to configurations. These represent
+ product attribution information including icon and title for Workbench windows,
+ graphics and text for the about dialog, and the text of the welcome page. Files
+ 11-12 (<i>platform.ini</i> and <i>platform.properties</i>) are also unique however
+ these <b>must not</b> be edited.</p>
+<h3>Editing the standard files plug-in</h3>
+<p>Let's start by modifying files 1-3 which are the three standard files <i>(plugin.xml,
+ plugin.properties and about.html) </i>found in most plug-ins.</p>
+<p><b>plugin.xml</b></p>
+<p>Edit the fields of plugin.xml as follows:</p>
+<table width="80%" border="1" cellspacing="0" cellpadding="0">
+ <tr bgcolor="#CCCCCC">
+ <td width="30%"><b>Field</b></td>
+ <td width="70%"><b>Editing Instructions</b></td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>id</b></td>
+ <td width="80%">Change this to match the id of your configuration (e.g. <i>org.cool.stuff</i>).
+ Do not include the version number of your configuration.</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>version</b></td>
+ <td width="80%">Change this to match the version number of your configuration
+ (e.g. 1.0). Note that 1.0 can be used in place of 1.0.0.</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>Provider-name</b></td>
+ <td width="80%">Change this to be the name of your company.</td>
+ </tr>
+ <tr align="left" valign="top">
+ <td width="20%"><b>name</b></td>
+ <td width="80%">Do not edit this field. It has been externalized and will
+ edit the plugin.properties file next.</td>
+ </tr>
+</table>
+<p>The <i>plugin.xml</i> file for our Cool example should appear as follows:</p>
+<blockquote>
+ <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;plugin
+ id=&quot;org.cool.stuff&quot;
+ name=&quot;%pluginName&quot;
+ version=&quot;1.0&quot;
+ provider-name=&quot;Cool Stuff Company&quot;&gt;
+&lt;/plugin&gt;</pre>
+</blockquote>
+<p><b>plugin.properties</b></p>
+<p>Notice that while editing the <i>plugin.xml</i> file we did not modify the
+ <b>name</b> field. This is because the name field has been externalized into
+ <i>plugin.properties</i>. Open <i>plugin.properties</i> and edit the <b>pluginName</b>
+ field. Our Cool example's <i>plugin.properties</i> file is as follows:</p>
+<blockquote>
+ <pre>pluginName = Cool Stuff Plug-In</pre>
+</blockquote>
+<p><b>about.html</b></p>
+<p> The last file commonly found in most plug-ins is <i>about.html</i>. This HTML
+ file allows you to provide any arbitrary information about your plug-in or company.
+ Some plug-in suppliers opt to include links to their company sites. A user can
+ view a plug-in's about.html by opening the About dialog from the Workbench's
+ Help menu and clicking &quot;Plugin Info...&quot; to open a dialog listing all
+ of the installed plug-ins. Selecting a plug-in and clicking &quot;More Info...&quot;
+ displays the plug-in's about.html.</p>
+<p>Edit the about.html file to include any interesting information about your
+ plug-in.</p>
+<p><b><img src="TryIt.gif" width="61" height="13"> </b>We have created a configuration
+ and its corresponding plug-in. We haven't wired in our configuration but we
+ can do a quick test to see that our plug-in and its about.html show up correctly
+ in the Workbench's About dialog. Start the platform and open the About dialog
+ (from the Workbench's Help menu). Click on the &quot;Plugin Info...&quot; button
+ and confirm the plug-in name, provider and version number are correct for your
+ plug-in (i.e. correspond to the values you entered above). Next select the plug-in
+ and choose &quot;More Info..&quot;. and confirm the contents of your about.html
+ are properly displayed. Exit the program. Don't forget to delete the <i>eclipse/workspace
+ </i>directory thus ensuring things are in a completely fresh state for our next
+ test.</p>
+<h3><b>Editing the plug-in product files</b></h3>
+<p>Plug-in's corresponding to configurations contain two special files, <i>product.ini</i>
+ and <i>product.properties</i>. These files provide product level information.
+ The latter of these (<i>product.properties</i>) contains strings externalized
+ from the <i>product.ini</i>. The configuration plug-in also contains two other
+ files, <i>platform.ini</i> and <i>platform.properties</i>, these files <b>must
+ not </b>be modified. These files are reserved for the platform itself.</p>
+<p><b>product.ini</b></p>
+<p>Although you are allowed to edit any field in product.ini it is strongly recommended
+ that you follow the advice provided below. There are several fields which are
+ either unnecessary to modify, or have potentially serious implications if you
+ modify them (e.g. <b>application</b>). Some fields have been externalized from
+ <i>product.ini</i> consequently we will edit them by modifying <i>product.properties</i>.
+ Fields referencing graphics (e.g. product icon, about graphic) do not need to
+ be altered, because we will replace their corresponding graphic files in subsequent
+ sections. </p>
+<table width="100%" border="1" cellspacing="0" cellpadding="0">
+ <tr bgcolor="#CCCCCC">
+ <td><b>Field</b></td>
+ <td><b>Editing Instructions</b></td>
+ <td><b>Where is it shown</b></td>
+ </tr>
+ <tr valign="top" align="left">
+ <td><b>name</b></td>
+ <td>Change this to match the name of your product (e.g. Cool Stuff). If your
+ product name is lengthy you may want to use a shorter version of it for
+ this field. The value of this field is shown in the title of Workbench windows.</td>
+ <td>Workbench windows</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>detailedName</td>
+ <td>Do not edit this field since it has been externalized. We will edit it
+ by changing <i>product.properties</i>. Typically this field is the same
+ as the <i>name</i> field however if your product name is lengthy you may
+ opt to use the <i>name</i> field for a shorter version of the product name.</td>
+ <td>About dialog</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>image</td>
+ <td>Do not edit this field. We will replace prod.gif with our product graphic.</td>
+ <td>Workbench windows (icon in top left corner of window)</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>image_basic</td>
+ <td>Do not edit this field. We will replace prod_basic.gif with our product
+ graphic.</td>
+ <td>Workbench windows (icon in top left corner of window). This image is only
+ shown for low color displays.</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td><b>Version</b></td>
+ <td>Change this to match the version number of your product. This string is
+ a &quot;pretty&quot; name (e.g. R1.0, Beta-1) that will appear in the Workbench's
+ about dialog. It does not have to match the configuration version number
+ or plug-in version number. </td>
+ <td>About dialog</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>application</td>
+ <td>Do not edit this field. There are very small set of cases under which
+ this needs to be edited (e.g. headless product). Before attempting to edit
+ this field you should thoroughly read the Platform Plug-in Developer Guide.
+ In addition, modifying this attribute may prevent other third party plug-ins
+ from running. </td>
+ <td>N/A</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td><b>productURL</b></td>
+ <td>Change this to be your company or product URL (e.g. http://www.cool-stuff.org)</td>
+ <td>Currently this field is not automatically shown. Consequently many product
+ teams include a URL in their copyright text (see product.properties below).
+ </td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>aboutImage</td>
+ <td>Do not edit this field. We will replace about_prod.gif with our about
+ graphic.</td>
+ <td>About dialog (large graphic in top left corner)</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>aboutImage_basic</td>
+ <td>Do not edit this field. We will replace about_prod_basic.gif with our
+ graphic.</td>
+ <td>About dialog (large graphic in top left corner). This image is only shown
+ for low color displays.</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>welcomePage</td>
+ <td>Do not edit this field. We will replace welcome.xml with our own welcome
+ page.</td>
+ <td>Shown in the welcome page.</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td><b>baseInfosets</b></td>
+ <td>This field identifies the id's of infosets (documentation books) and the
+ order they should be shown in the Workbench's help system. You can edit
+ this list to include the books appropriate to your product, and alter the
+ order as necessary.</td>
+ <td>Help perspective and associated views.</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td><b>defaultPerspectiveId</b></td>
+ <td>Change this field to be the perspective the Workbench should initially
+ show. By default the Resources perspective is shown.</td>
+ <td>N/A</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td>copyright</td>
+ <td>Do not edit this field since it has been externalized. We will change
+ it by editing <i>product.properties</i>.</td>
+ <td>About dialog.</td>
+ </tr>
+ <tr valign="top" align="left">
+ <td><b>buildID</b></td>
+ <td>Change this field to describe the build number of your product build (e.g.
+ 2.100). The build version is shown in the Workbench's About dialog. </td>
+ <td>About dialog.</td>
+ </tr>
+</table>
+<p>Following is the product.ini file for our Cool example. The fields we have
+ changed for the purpose of the example have been marked in bold. For the sake
+ of illustration the PDE infoset has been moved to be the first infoset listed
+ in <i>baseInfosets. </i>The default perspective has been left unchanged.</p>
+<blockquote>
+ <pre> <b>name</b> = Cool Stuff
+ detailedName = %detailedName
+ image = prod.gif
+ image_basic = prod_basic.gif
+ <b>version</b> = R1.0 Sneak Peak
+ application = org.eclipse.ui.workbench
+ <b>productURL</b> = http://www.cool-and-neat-stuff.org
+ aboutImage = about_prod.gif
+ aboutImage_basic = about_prod_basic.gif
+ welcomePage = welcome.xml
+ <b>baseInfosets</b> = org.eclipse.pde.doc.user.infoset_Guide,\
+ org.eclipse.platform.doc.user.infoset_Guide,\
+ org.eclipse.jdt.doc.user.infoset_Guide,\
+ org.eclipse.platform.doc.isv.infoset_Guide,\
+ org.eclipse.jdt.doc.isv.infoset_Guide
+ defaultPerspectiveId = org.eclipse.ui.resourcePerspective
+ copyright = %copyright
+ <b>buildID</b> = 2.345</pre>
+</blockquote>
+<p><b>product.properties</b></p>
+<p>While we were editing the above product.ini file there were several fields
+ we skipped over because they had been externalized. The time has come to edit
+ those fields by editing them in the file <i>product.properties</i> as follows:<br>
+</p>
+<table width="100%" border="1" cellspacing="0" cellpadding="0">
+ <tr bgcolor="#CCCCCC">
+ <td width="20%"><b>Field</b></td>
+ <td width="80%"><b>Editing Instructions</b></td>
+ <td width="80%"><b>Where is it shown</b></td>
+ </tr>
+ <tr>
+ <td width="20%">detailedName</td>
+ <td width="80%">Change this to match the name of your product (e.g. Cool Stuff).
+ </td>
+ <td width="80%">About dialog</td>
+ </tr>
+ <tr>
+ <td width="20%">copyright</td>
+ <td width="80%">Change this to be the copyright text for your application.
+ You can use \n and \ (line continuation) for lengthy copyright messages.
+ You may also want to include a URL in your copyright text.</td>
+ <td width="80%">About dialog</td>
+ </tr>
+</table>
+<p>The <i>product.properties</i> file for our Cool example might look something
+ like this. <br>
+</p>
+<blockquote>
+ <pre>
+copyright = (c) Copyright Cool and Neat Stuff\n\
+ \n\
+ Visit the website at http://www.cool-and-neat-stuff.org\n\
+detailedName = Cool Stuff for Developers </pre>
+</blockquote>
+<h3>Editing the welcome page</h3>
+<p>The next plug-in file we need to edit is <i>welcome.xml. </i>When the Workbench
+ first opens you may recall seeing a Welcome page displayed. This page is defined
+ by the file <i>welcome.xml</i> found in the dominant configuration's corresponding
+ plug-in. The purpose of the Welcome page is to provide initial introductory
+ information to help a user get started. Here is the <i>welcome.xml</i> for our
+ Cool example. For additional information on the types of things you can include
+ in the <i>welcome.xml</i> consult the Platform Plug-in Develop Guide.</p>
+<blockquote>
+ <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
+&lt;welcomePage
+ title=&quot;Welcome to Cool Stuff&quot;&gt;
+ &lt;intro&gt;This page will help familiarize you with many fun things.
+To get started, read the section below and click on the related links. &lt;/intro&gt;</pre>
+ <pre>&lt;item&gt;&lt;b&gt;Create your first cool thing &lt;/b&gt;
+To begin doing cool things you need to start by creating a cool project
+and then creating several cool files.
+&lt;/item&gt;
+&lt;/welcomePage&gt;</pre>
+</blockquote>
+<p>&nbsp;</p>
+<h3><b>Updating some more graphics</b></h3>
+<p>The last thing we need to do with our plug-in is to replace several of the
+ graphics files. The graphics we are replacing are those referenced from the
+ <i>product.ini</i> by the fields: image, image_basic, aboutImage and aboutImage_basic.
+ Files with the suffix &quot;basic&quot; represent low color graphics.</p>
+<p>Replace the following graphic files that are used to provide the icon for the
+ top left corner of every window.</p>
+<ul>
+ <li>prod.gif</li>
+ <li>prod_basic.gif</li>
+</ul>
+<p></p>
+<p></p>
+<p>Replace the following graphic files that are used for the large graphic in
+ the top left corner of the about dialog.</p>
+<ul>
+ <li>about_prod.gif</li>
+ <li>about_prod_basic.gif</li>
+</ul>
+<p></p>
+<h2>&nbsp;</h2>
+<h2><b>Updating the install.properties to use our configuration</b></h2>
+<p>We have our configuration and after a number of edits and file replacements
+ we hopefully have a corresponding plug-in. Now comes the moment of truth as
+ we edit the<i> install.properties</i> file to point to our new configuration.
+ Edit <i>eclipse/install/install.properties </i>and change the <b>application.configuration
+ </b>line to point to the new configuration. You may recall (from above) the
+ <b>application.configuration</b> has the form <i>xyz_version</i>. For example
+ <i>xyz_1.0.0</i> indicates the configuration name is <i>xyz</i> and the version
+ level is <i>1.0.0</i>. For our Cool example the line will need to be:</p>
+<blockquote>
+ <pre>application.configuration=org.cool.stuff_1.0.0</pre>
+</blockquote>
+<p>Remove any other lines that may exist in <i>install.properties</i>. If you
+ have done any of the earlier &quot;try it&quot; tests, you may have additional
+ lines in <i>install.properties </i>representing cached information. In addition,
+ if there is a cached file<i> update.cfg</i> you should delete this. There may
+ be additional files in this directory (also cached by the platform) but you
+ do not need to worry about them.</p>
+<h2>&nbsp;</h2>
+<h2>License and notice</h2>
+<p>You should check legal notices such as: license.html, notice.html, cpl-v05.html
+ and the about.html files in the root directory and plugin subdirectories to
+ make sure they are appropriate for your distribution and that you comply with
+ them or their terms. We can't tell you what to do here, you need to get your
+ own legal advice.</p>
+<p>&nbsp;</p>
+<h2>Wrapping it up</h2>
+<p>Now that all the pieces are in place we can run our program executable one
+ more time. Our Cool example should look something like the screen snapshot below.
+</p>
+<p align="center"><img src="final.jpg" width="800" height="602"></p>
+<p>&nbsp;</p>
+<p>Before celebrating the branding of your product you should take a moment to
+ confirm the following:</p>
+<ul>
+ <li>welcome page is correct</li>
+ <li>the icon and title shown in the window title bar is correct</li>
+ <li>the Help pulldown properly indicate the name of the about dialog (e.g. About
+ Cool Stuff)</li>
+ <li>the about dialog properly include your graphic, copyright text, version
+ and build numbers</li>
+ <li>the about dialog properly includes the platform version information in the
+ lower half of the dialog</li>
+</ul>
+Now that you have mastered the steps you should do a final run through the steps
+(starting with a clean install) but be sure to skip the &quot;try it&quot; steps.
+These steps require you to run the platform and consequently will cause information
+to be cached. Your actual product production process should not run the platform
+runtime.
+<h2>&nbsp;</h2>
+<h2>A brief word on NL enablement</h2>
+<p>In the previous sections we did not discuss NL (National Language) support
+ for your product branding. There are two important parts to localizing the product
+ branding:</p>
+<ul>
+ <li>localizing the configuration's plug-in</li>
+ <li>localizing the splash screen</li>
+</ul>
+<p>Configuration plug-ins are localized in a manner similar to the many other
+ plug-ins you have probably seen. That means creating one or more NL plug-in
+ fragments to contain the localized information. </p>
+<p>To localize the splash screen you will need to create locale subdirectories
+ under <i>eclipse/splash.</i> The names of these directories follow the standard
+ Java&trade; locale naming conventions. For example the platform looks up the splash
+ screen for USA english locale (en_US) as follow:</p>
+<ol>
+ <li>eclipse\splash\en_US\&lt;image file&gt;</li>
+ <li>eclipse\splash\en\&lt;image file&gt;</li>
+ <li>eclipse\splash\&lt;image file&gt;</li>
+</ol>
+<p>where &lt;image file&gt; is the name of the splash file (e.g. splash_full.bmp
+ or splash_full.xpm).</p>
+<p>For additional information on localizing plug-ins consult the Platform Plug-in
+ Developer Guide.</p>
+<p>&nbsp;</p>
+<h2>Product directory</h2>
+<p>In the previous sections we have been working in the <i>eclipse/</i> directory.
+ You are probably asking yourself whether or not you should rename the <i>eclipse</i>
+ directory. The answer is no. Doing so may prevent future fixes and updates from
+ installing. The correct approach is to include the <i>eclipse/</i> directory
+ inside your own product directory. For example our Cool product would look as
+ follows:</p>
+<blockquote>
+ <p>\cool<br>
+ \cool\<b>eclipse<br>
+ </b>\cool\<b>eclipse\cool.exe</b><br>
+ \cool\product-readme<br>
+ \cool\.... </p>
+ </blockquote>
+It is also worth noting that the steps we have gone through describe the complete
+set of steps you need to follow in order to productize/brand your work. Other
+than adding more of your own plug-ins you should not make other modifications
+in the <i>eclipse/</i> directory.
+<h2>Summary</h2>
+<p>We have covered the tasks required to add branding to a product based on the
+ platform. The process involves rebuilding the executable, replacing a number
+ of graphics and creating a product configuration and corresponding plug-in.
+ Once you have mastered the steps you should do a final run through the steps
+ but be sure to skip the &quot;try it&quot; steps. These steps require you to
+ run the platform and consequently will cause information to be cached. Your
+ actual product production process should not run the platform runtime. Here
+ is a quick checklist (ignoring NL issues) to help refresh your memory on what
+ we modified.</p>
+<table width="80%" border="1" cellspacing="0" cellpadding="0">
+ <tr bgcolor="#CCCCCC">
+ <td width="20%"><b>Item</b></td>
+ <td width="40%"><b>Windows</b></td>
+ <td width="40%"><b>Linux</b></td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Splash</td>
+ <td>
+ <p>Replace the following:</p>
+ <ul>
+ <li>eclipse/splash/splash_basic.bmp</li>
+ <li>eclipse/splash/splash_full.bmp</li>
+ </ul>
+ </td>
+ <td>
+ <p>Replace the following: </p>
+ <ul>
+ <li>eclipse/splash/splash_basic.xpm</li>
+ <li>eclipse/splash/splash_full.xpm</li>
+ </ul>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Executable graphics</td>
+ <td>
+ <p>Replace the following in <i>library/</i> (obtained from the SDK)</p>
+ <ul>
+ <li>icon16_basic.bmp</li>
+ <li>icon16_full.bmp</li>
+ <li>icon32_basic.bmp</li>
+ <li>icon32_full.bmp</li>
+ <li>icon48_basic.bmp</li>
+ <li>icon48_full.bmp</li>
+ </ul>
+ <p>and build them into single ICO file by replacing:</p>
+ <ul>
+ <li>library/eclipse.ico</li>
+ </ul>
+ </td>
+ <td>
+ <p>Replace the following:</p>
+ <ul>
+ <li>eclipse/icon.xpm</li>
+ </ul>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Executable</td>
+ <td colspan="2">
+ <p>Remove existing executable from eclipse/ and replace with your product's
+ executable program built using the build scripts in <i>library/ </i>of
+ the SDK<i> </i>. </p>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Product configuration</td>
+ <td colspan="2">
+ <p>Copy the dominant configuration directory to eclipse/install/configurations/<i>your_configuration_id_and_version</i></p>
+ <p>Modify the following files in the new configuration directory</p>
+ <ul>
+ <li>install.xml</li>
+ </ul>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Product plug-in</td>
+ <td colspan="2">Copy the dominant configuration plug-in directory to eclipse/plugins/<i>your_configuration_id_and_version</i></td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Standard plug-in files </td>
+ <td colspan="2">
+ <p>Modify the following files in eclipse/plugins/<i>your_configuration_id_and_version</i></p>
+ <ul>
+ <li>plugin.xml</li>
+ <li>plugin.properties</li>
+ <li>about.html</li>
+ </ul>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Plug-in product files</td>
+ <td colspan="2">
+ <p>Modify the following product files in eclipse/plugins/<i>your_configuration_id_and_version.
+ </i>These provide product naming, About dialog text and the welcome page.</p>
+ <ul>
+ <li>product.ini</li>
+ <li>product.properties</li>
+ <li>welcome.xml</li>
+ </ul>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Plug-in product graphics</td>
+ <td colspan="2">
+ <p>Replace the following product graphics files in eclipse/plugins/<i>your_configuration_id_and_version</i>.
+ These represent the about dialog and the icon shown in the top left corner
+ of all windows:</p>
+ <ul>
+ <li>about_prod.gif</li>
+ <li>about_prod_basic.gif</li>
+ <li>prod.gif</li>
+ <li>prod_basic.gif</li>
+ </ul>
+ </td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>Installation </td>
+ <td colspan="2">Update eclipse/install/install.properties to reference <i>your_configuration_id_and_version</i></td>
+ </tr>
+ <tr align="left" valign="top">
+ <td>License</td>
+ <td colspan="2">You should check legal notices such as: license.html, notice.html,
+ cpl-v05.html and the about.html files in the root directory and plugin subdirectories
+ to make sure they are appropriate for your distribution and that you comply
+ with them or their terms. We can't tell you what to do here, you need to
+ get your own legal advice.</td>
+ </tr>
+</table>
+
+<p><small>Java and all Java-based trademarks and logos are trademarks or registered
+trademarks of Sun Microsystems, Inc. in the United States, other countries, or
+both.</small></p>
+<p><small>Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>

Back to the top