<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml"> | |
<head> | |
<!-- -*- xhtml -*- --> | |
<title>File Type Integration Tutorial for NetBeans Platform 6.0</title> | |
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"> | |
<meta name="AUDIENCE" content="NBUSER"> | |
<meta name="TYPE" content="ARTICLE"> | |
<meta name="EXPIRES" content="N"> | |
<meta name="developer" content="gwielenga@netbeans.org"> | |
<meta name="indexed" content="y"> | |
<meta name="description" | |
content="A short guide to using the Nodes API."> | |
<!-- Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. --> | |
<!-- Use is subject to license terms.--> | |
</head> | |
<body> | |
<h1>File Type Integration Tutorial</h1> | |
<p>This tutorial shows you how to write a module that lets the IDE, | |
or any other application built on the NetBeans Platform, recognize a new file type. | |
<p><strong class="notes">Note: </strong>This is not the latest version of this | |
document. It applies to NetBeans IDE 6.0/6.1 only. | |
<a href="../nbm-filetype.html">Click here</a> to | |
see the most up to date version. | |
<p><b>Contents</b></p> | |
<img src="../../images/articles/60/netbeans-stamp60-61.gif" class="stamp" width="114" height="114" alt="Content on this page applies to NetBeans IDE 6.1" title="Content on this page applies to NetBeans IDE 6.1"> </p> | |
<ul class="toc"> | |
<li><a href="#intro">Introduction to File Type Integration</a></li> | |
<li><a href="#creating">Creating the Module Project</a></li> | |
<li><a href="#recognizing">Recognizing Abc Files</a></li> | |
<li><a href="#adding">Creating Features for Abc Files</a></li> | |
<ul> | |
<li><a href="#action">Adding an Action</a> | |
<li><a href="#topcomponent">Opening the File into a Window</a> | |
</ul> | |
<li><a href="#building">Installing the Abc File Type Module</a></li> | |
</ul> | |
<p><b>To follow this tutorial, you need the software and resources listed in the following | |
table.</b></p> | |
<table> | |
<tbody> | |
<tr> | |
<th class="tblheader" scope="col">Software or Resource</th> | |
<th class="tblheader" scope="col">Version Required</th> | |
</tr> | |
<tr> | |
<td class="tbltd1">NetBeans IDE</td> | |
<td class="tbltd1">version | |
<a href="http://download.netbeans.org/netbeans/6.1/final/">version 6.1</a> or<br> | |
version 6.0</td> | |
</tr> | |
<tr> | |
<td class="tbltd1">Java Developer Kit (JDK)</td> | |
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">version 6</a> or<br> | |
version 5</td> | |
</tr> | |
</tbody> | |
</table> | |
<h2 class="tutorial"><a name="intro"></a>Introduction to File Type Integration</h2> | |
<p>File types that are recognized in the IDE have their own icons, menu items, and behavior. | |
The "files" being shown are <tt>FileObjects</tt>—wrappers | |
around <tt>java.io.File</tt> or, in the case of configuration files, typically wrappers around data stored in some other way, | |
such as inside XML files in modules. What you actually <i>see</i> are <tt>Nodes</tt>, which provide functionality like actions | |
and localized names to objects like files. In between <tt>Nodes</tt> and <tt>FileObjects</tt> are <tt>DataObjects</tt>. | |
A <tt>DataObject</tt> is like a <tt>FileObject</tt>, except that it knows what kind of file is being shown, and there are | |
usually different types of <tt>DataObject</tt> for files with different extensions and XML files with different namespaces. | |
Each <tt>DataObject</tt> is provided by a different module, each implementing support for one or more file types—for example, | |
the Image module makes it possible to recognize and open <tt>.gif</tt> and <tt>.png</tt> files. | |
<p>A module that recognizes a file type installs a <tt>DataLoader</tt>—a factory for a file-type-specific <tt>DataObject</tt>. | |
When a folder is expanded, the IDE asks each known <tt>DataLoader</tt>, "Do you know what this is?" The first one that says | |
"Yes" creates the <tt>DataObject</tt> for the file. In order to actually display something for each file, the system calls | |
<tt>DataObject.getNodeDelegate()</tt> for each <tt>DataObject</tt> and the <tt>Nodes</tt> are what you actually see in the IDE. | |
<p>Below, the diagram on the left shows what each item mentioned above makes available: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/diagram-dataobject2.png" alt="Diagram."> | |
<p>In this tutorial, you create a module that installs a <tt>DataLoader</tt> for imaginary "Abc" files | |
(<tt>.abc</tt> file extension). By default, a file with the "abc" extension is treated as any other file that | |
the IDE does not recognize—it is treated as a text file and, as a result, the IDE provides the same functionality for | |
Abc files as it does for text files. Once you have created the module, you will be shown how to enhance it | |
with functionality that will be available to Abc files only. When you complete the development cycle, you can easily let others make use of | |
your module—the IDE lets you create a binary that you can send to others, who can then install it through the | |
Update Center. | |
<!-- ===================================================================================== --> | |
<h2 class="tutorial"><a name="creating"></a>Creating the Module Project</h2> | |
<p>In this section, we use a wizard to create the source structure that every NetBeans module requires. The | |
source structure consists of certain folders in specific places and a set of files that are | |
always needed. For example, every NetBeans module requires a 'nbproject' folder, which holds | |
the project's metadata, and a <tt>layer.xml</tt> file, for declarative registration of items | |
such as toolbar buttons and windows. | |
<ol> | |
<li>Choose File > New Project (Ctrl-Shift-N). Under Categories, select NetBeans Modules. Under projects, | |
select Module and click Next.</li> | |
<li>In the Name and Location panel, type <tt>AbcFileType</tt> in Project Name. | |
Change the | |
Project Location to any directory on your computer, such as <tt>c:\mymodules</tt>. Leave the Standalone Module radiobutton | |
selected. The panel should now look as follows: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectwizard1.png" alt="Step 1 of New Project wizard."> | |
<p>Click Next. | |
<li>In the Basic Module Configuration panel, replace <tt>yourorghere</tt> in Code Name Base with <tt>myorg</tt>, | |
so that the whole code name base is <tt>org.myorg.abcfiletype</tt>. | |
Add spaces to the default Module Display Name, so that it is changed to <tt>Abc File Type</tt>. | |
Leave the location of the localizing bundle and XML layer, so that they will be stored in a | |
package with the name <tt>org/myorg/abcfiletype</tt>. The panel should now look as follows: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectwizard2.png" alt="Step 2 of New Project wizard."> | |
<li>Click Finish.</ol> | |
<p> The IDE creates the <tt>Abc File Type</tt> | |
project. The project contains all of your sources and | |
project metadata, such as the project's Ant build script. The project | |
opens in the IDE. You can view its logical structure in the Projects window (Ctrl-1) and its | |
file structure in the Files window (Ctrl-2). For example, the Projects window should now look as follows: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectswindow1.png" alt="Initial Projects window."> | |
<br /> | |
<!-- ===================================================================================== --> | |
<h2><a name="recognizing"></a>Recognizing Abc Files</h2> | |
<p>In this section, we use a wizard to create the classes necessary for | |
recognizing Abc files as being distinct from all other files. As discussed | |
at the start of this tutorial, we need a data object and a data loader, as | |
well as a MIME type resolver, and registration entries in the <tt>layer.xml</tt> file, | |
to do so. The New File Type wizard will create all of these for us. | |
<ol> | |
<li>Right-click the project node and | |
choose New > File Type.</li> | |
<li>In the File Recognition panel, do the following: | |
<p><ul><li>Type <tt>text/x-abc</tt> in the MIME Type edit box. | |
<li>Type <tt>.abc .ABC</tt> in the by Filename Extension edit box.</ul> | |
<p>The File Recognition panel should now look as follows: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-filewizard1.png" alt="Step 1 of New File wizard."> | |
<p>Note the following about the fields in the File Recognition panel: | |
<ul> | |
<li><b>MIME Type.</b> Specifies the data object's unique MIME type. | |
<li>by | |
<ul><li><b>Filename Extension.</b> Specifies one or more file extensions that the IDE will recognize | |
as belonging to the specified MIME type. The file extension can optionally be preceded | |
by a dot. Separators are commas, spaces, or both. Therefore, all of the following are valid: | |
<p><ul><li><tt>.abc,.def</tt> | |
<li><tt>.abc .def</tt> | |
<li><tt>abc def</tt> | |
<li><tt>abc,.def ghi, .wow</ul></tt> | |
<p>Let's imagine that Abc files be case-sensitive. For | |
this reason, you specify <i>two</i> MIME types in this tutorial—<tt>.abc</tt> and <tt>.ABC</tt>. | |
<li><b>XML Root Element.</b> Specifies a unique namespace that distinguishes the XML file | |
type from all other XML file types. Since many XML files have the same extension (<tt>xml</tt>), | |
the IDE distinguishes between | |
XML files via their XML root elements. More specifically, the IDE can distinguish between namespaces and | |
the first XML element in XML files. You can use this to, for example, distinguish | |
between a JBoss deployment descriptor and a WebLogic deployment descriptor. Once you have made | |
this distinction, you can ensure that menu items added to the JBoss deployment descriptor's contextual menu | |
are not available to the WebLogic deployment descriptor. For an example, see | |
the <a href="nbm-palette-api2.html">NetBeans Component Palette Module Tutorial</a>. | |
</ul></ul> | |
<p>Click Next. | |
<li>In the Name and Location panel, type <tt>Abc</tt> as the Class Name Prefix | |
and browse to any 16x16 pixel image file as the new file type's icon, as shown below. | |
<p align="left"><p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-filewizard2.png" alt="Step 2 of New File wizard."> | |
<p><b>Note:</b>You can use any icon. If you like, you can | |
click on this one and save it locally, and then | |
specify it in the wizard step above: <img border="1" src="../../images/tutorials/filetype/Datasource.gif" alt="Datasource.gif"> | |
<li>Click Finish. | |
<p><p>The Projects window should now look as follows: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectswindow2.png" alt="Final Projects window."></ol> | |
<p>Each of the newly generated files is briefly introduced: | |
<ul> | |
<li><b>AbcDataLoader.java.</b> Recognizes the <tt>text/x-abc</tt> MIME type. Functions as a factory for | |
<tt>AbcDataObject.java</tt>. For more information, see <a href="http://wiki.netbeans.org/wiki/view/Netbeans/DevFaqDataLoader">What is a DataLoader?</a>. | |
<li><b>AbcResolver.xml.</b> Maps the <tt>.abc</tt> and <tt>.ABC</tt> extensions to the MIME type. The <tt>AbcDataLoader</tt> only | |
recognizes the MIME type; it does not know about the file extension. | |
<li><b>AbcDataObject.java.</b> Wraps a <tt>FileObject</tt>. DataObjects are produced by DataLoaders. | |
For more information, see <a href="http://wiki.netbeans.org/wiki/view/DevFaqDataObject">What is a DataObject?</a>. | |
<li><b>AbcDataNode.java.</b> Provides what you <i>see</i> in the IDE—functionality like actions, icons, and localized names. | |
<li><b>AbcDataLoaderBeanInfo.java.</b> Controls the appearance of the loader in the Object Types section | |
of the Options window. | |
</ul> | |
</p> | |
<br /> | |
<!-- ===================================================================================== --> | |
<h2><a name="adding"></a>Creating Features for Abc Files</h2> | |
<p>Now that the NetBeans Platform is able to distinguish Abc files from all other types of files, | |
it is time to add features specifically for these types of files. In this section, we add a menu | |
item on the right-click contextual menu of the file's node in the explorer windows, such as in | |
the Projects window, and we enable the file to open into a window, instead of into an editor. | |
<div class="indent"> | |
<h3 class="tutorial"><a name="action"></a>Adding an Action</h3> | |
<p>In this subsection, we use the New Action wizard to create a Java class that | |
will perform an action for our file type. The wizard will also register the class | |
in the <tt>layer.xml</tt> file such that the user will be able to invoke the | |
action from the right-click contextual menu of the file type's node in an explorer window. | |
<ol> | |
<li>Right-click the project node and | |
choose New > Action.</li> | |
<li>In the Action Type panel, click Conditionally Enabled. Type <tt>AbcDataObject</tt>, which | |
is the name of the data object generated above by the New File Type wizard, as shown below: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action1.png" alt="Step 1 of New Action wizard."> | |
<p>Click Next. | |
<li>In the GUI Registration panel, select the 'Edit' category in the Category drop-down list. | |
The Category drop-down list controls where an action is shown in the Keyboard Shortcuts editor in the IDE. | |
<p><p>Next, Unselect Global Menu Item and then select File Type Contect Menu Item. | |
In the Content Type drop-down list, select the MIME type you specified above in the New File Type | |
wizard, as shown below: | |
<p align="left"><p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action2.png" alt="Step 2 of New Action wizard."> | |
<p>Notice that you can set the position of the menu item and that you | |
can separate the menu item from the item before it and after it. Click Next. | |
<li>In the Name and Location panel, type <tt>MyAction</tt> as the Class Name | |
and type <tt>My Action</tt> as the Display Name. Menu items provided by contextual menus | |
do not display icons. Therefore, click Finish and <tt>MyAction.java</tt> is added to the <tt>org.myorg.abcfiletype</tt> package. | |
<li>In the Source Editor, add some code to the action's <tt>performAction</tt> method: | |
<pre class="examplecode">protected void performAction(Node[] activatedNodes) { | |
AbcDataObject d = (AbcDataObject) activatedNodes[0].getCookie(AbcDataObject.class); | |
FileObject f = d.getPrimaryFile(); | |
String displayName = FileUtil.getFileDisplayName(f); | |
String msg = "I am " + displayName + ". Hear me roar!"; | |
NotifyDescriptor nd = new NotifyDescriptor.Message(msg); | |
DialogDisplayer.getDefault().notify(nd); | |
}</pre> | |
<p>Press Ctrl-Shift-I. The IDE automatically adds import statements to the top of the class. Some code | |
is still underlined in red, to indicate that not all of the required packages are on the classpath. | |
Right-click the project node, choose Properties, and click Libraries in the Project Properties dialog box. | |
Click add at the top of the Libraries pane and add the Dialogs API. | |
<p>In the <tt>MyAction.java</tt> class, press Ctrl-Shift-I again. The red underlining disappears because | |
the IDE finds the required packages in the Dialogs API. | |
<li>In the Important Files node, expand XML Layer. The two nodes <tt><this layer></tt> and <tt><this layer in context></tt>, | |
together with their subnodes, make up the <a href="https://platform.netbeans.org/tutorials/nbm-glossary.html">System Filesystem</a> Browser. Expand <tt><this layer></tt>, expand <tt>Loaders</tt>, | |
continue expanding nodes until you see the <tt>Action</tt> that you created above. | |
<li>Drag-and-drop <tt>My Action</tt> so that it appears below the <tt>Open</tt> action, as shown below: | |
<p align="left"><p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action3.png" alt="System Filesystem Browser."> | |
<p>As you can see from the last two steps, the System Filesystem Browser can be used to quickly reorganize | |
the sequence of the items that are registered in the System Filesystem. | |
</ol> | |
<h3 class="tutorial"><a name="topcomponent"></a>Opening the File into a Window</h3> | |
<p>By default, when the user opens a file of the type that we have defined in this tutorial, | |
the file will open into a basic editor. However, sometimes you may want to create a visual | |
representation of the file, and let the user drag and drop widgets onto the visual representation. | |
The first step in creating such a user interface is to let the user open the file into a window. | |
This subsection shows you how to do that. | |
<ol> | |
<li>Use the Window Component wizard | |
to create a TopComponent called AbcTopComponent. | |
<li>Change the data object to use OpenSupport instead of DataEditorSupport. | |
<p><pre>public AbcDataObject(FileObject pf, AbcDataLoader loader) | |
throws DataObjectExistsException, IOException { | |
super(pf, loader); | |
CookieSet cookies = getCookieSet(); | |
//cookies.add((Node.Cookie) DataEditorSupport.create(this, getPrimaryEntry(), cookies)); | |
cookies.add((Node.Cookie) new AbcOpenSupport(getPrimaryEntry())); | |
}</pre> | |
<li>Create OpenSupport class: | |
<p><pre>class AbcOpenSupport extends OpenSupport implements OpenCookie, CloseCookie { | |
public AbcOpenSupport(AbcDataObject.Entry entry) { | |
super(entry); | |
} | |
protected CloneableTopComponent createCloneableTopComponent() { | |
AbcDataObject dobj = (AbcDataObject) entry.getDataObject(); | |
AbcTopComponent tc = new AbcTopComponent(); | |
tc.setDisplayName(dobj.getName()); | |
return tc; | |
} | |
}</pre> | |
<li>Tweak the TopComponent to extend CloneableTopComponent, | |
instead of TopComponent. Set the TopComponent's class modifier, and its | |
constructor's modifier, to public instead | |
of private. | |
</ol> | |
<p>Now, when an Abc file is opened, the OpenSupport class handles the | |
opening, such that it opens the file into the TopComponent instead | |
of the basic editor that DataEditorSupport provides. | |
The <a href="https://platform.netbeans.org/tutorials/60/nbm-visual_library.html">NetBeans Visual Library 6.0 Tutorial</a> | |
provides an example of what you can do | |
to develop the TopComponent further. | |
</div> | |
<br /> | |
<!-- ======================================================================================= --> | |
<h2><a name="building"></a>Installing the Abc File Type Module</h2> | |
<p>The IDE uses an Ant build script to build and install your module. The build script is created for you | |
when you create the project.</p> | |
<div class="indent"> | |
<h3 class="tutorial">Installing the NetBeans Module</h3> | |
<ul> | |
<li>In the Projects window, right-click the <tt>Abc File Type</tt> project and choose Install/Reload | |
in Target Platform. | |
<p><p>The module is built and installed in the target IDE. The target IDE opens so that you | |
can try out your new module. The default target IDE is the | |
installation used by the current instance of the IDE. | |
</ul> | |
<h3 class="tutorial">Using the NetBeans Module</h3> | |
<ol> | |
<li>Create any kind of application in the IDE. | |
<li>Right-click the application node and choose New > Other. In the Other | |
category, a dummy template is available for the new file type: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action4.png" alt="Dummy template."> | |
<p>If you want to provide default code via the dummy template, add the code to the | |
<tt>AbcTemplate.abc</tt> file that the New File Type wizard created for you. | |
<li>Right-click the file's node. | |
<p><p>Notice that the Abc file has the icon | |
you assigned to it in its module and that the list of actions defined in its <tt>layer.xml</tt> file | |
is available from the right-click contextual menu: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-dummytemplate.png" alt="Final Projects window."> | |
<li>Choose the new menu item, the Abc file's name and location are shown: | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-information.png" alt="Information."> | |
</ol> | |
<h3 class="tutorial">Creating a Shareable Module Binary</h3> | |
<ol> | |
<li>In the Projects window, right-click the <tt>Abc File Type</tt> project and choose Create NBM. | |
<p><p>The NBM file is created and you can view it in the Files window (Ctrl-2): | |
<p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-shareable-nbm.png" alt="Shareable NBM."> | |
<li>Make it available to others via, for example, e-mail. The recipient should | |
use the Plugin Manager (Tools > Plugins) to install it. | |
</ol> | |
</div> | |
<!-- ======================================================================================== --> | |
<br> | |
<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback:%20File%20Type%20Module%20Tutorial">Send Us Your Feedback</a></div> | |
<br style="clear:both;" /> | |
<!-- ======================================================================================== --> | |
<h2><a name="nextsteps"></a>Next Steps</h2> | |
<p>For more information about creating and developing NetBeans modules, see the following resources: | |
<ul> | |
<li><a href="https://platform.netbeans.org/index.html">NetBeans Platform Homepage</a></li> | |
<li><a href="https://netbeans.org/download/dev/javadoc/">NetBeans API List (Current Development Version)</a></li> | |
<li><a href="https://netbeans.org/kb/trails/platform.html">Other Related Tutorials</a></li></ul> | |
</p> | |
<hr> | |
<!-- ======================================================================================== --> | |
<h2><a name="version"></a>Versioning </h2> | |
<p> | |
<table width="76%" border="1"> | |
<tbody> | |
<tr> | |
<td> | |
<div align="left"><b>Version</b></div> | |
</td> | |
<td> | |
<div align="left"><b>Date</b></div> | |
</td> | |
<td> | |
<div align="left"><b>Changes</b></div> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
1 | |
</td> | |
<td> | |
25 August 2005 | |
</td> | |
<td> | |
<ul><li>Initial version. | |
<li>To do: | |
<ul><li>Add post-creation customizations (i.e., the "Extending Support for the New File Type" section). | |
<li>Explain what the generated files are for (placeholders currently). | |
<li>Explain the layer file's entries. | |
<li>Explain the first File Type panel (placeholders currently). | |
<li>Maybe create a separate tutorial for recognizing XML files.</ul></ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
2 | |
</td> | |
<td> | |
23 September 2005 | |
</td> | |
<td> | |
<ul><li>A lot of info added from the FAQ and added the Action wizard and System Filesystem Browser. | |
<li>To do: | |
<ul><li>Explain <tt>LoaderBeanInfo.java</tt> and <tt>Resolver.xml</tt> (one line each) | |
<li>Maybe create a separate tutorial for recognizing XML files. | |
<li>Using Tomcat GIF maybe not good idea. | |
<li>Maybe the action should do something useful. | |
<li>Maybe direct links to FAQ not good idea. | |
<li>Probably more needed on <tt>layer.xml</tt> file. | |
<li>Maybe other useful apisupport functionality could be added to this scenario. | |
<li>More info needed on MIME types. | |
<li>The introductory paragraphs should be illustrated with a graphic. A diagram to | |
show relationship between node, dataobject, fileobject, dataloader, etc.</ul></ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
3 | |
</td> | |
<td> | |
28 September 2005 | |
</td> | |
<td> | |
<ul><li>Integrated comments from Jesse Glick. | |
<li>To do: | |
<ul> <li>More info needed on MIME types. | |
<li>The introductory paragraphs should be illustrated with a graphic. A diagram to | |
show relationship between node, dataobject, fileobject, dataloader, etc. | |
<li>Many Javadoc links to be added (also for <tt>performAction</tt>. | |
<li>Info on cookies, cookie actions, cookie classes needed. | |
<li>Action ended up in text-html even though I chose my own mime type. | |
<li>Need to explain or link to explanation for instance, shadow, etc. | |
<li>Platform Manager needs to be mentioned in the context of installing | |
in target platform. | |
<li>Show how to add properties to the property sheet.</ul></ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
4 | |
</td> | |
<td> | |
4 October 2005 | |
</td> | |
<td> | |
<ul><li>Added two diagrams in the introductory paragraphs, from Tim Boudreau's JavaOne presentation. | |
<li>To do: | |
<ul> <li>More info needed on MIME types. | |
<li>Many Javadoc links to be added (also for <tt>performAction</tt>). | |
<li>Need to create section near the start: "Related FAQs": | |
<ul><li>Info on cookies, cookie actions, cookie classes needed. | |
<li>Need to explain or link to explanation for instance, shadow, etc. | |
<li>DataLoader, DataObject, etc.</ul> | |
<li>Platform Manager needs to be mentioned in the context of installing | |
in target platform. | |
<li>Show how to add properties to the property sheet. | |
<li>Mention the dummy template that you get, how to modify it, | |
and how to set the description in the New File wizard.</ul></ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
4 | |
</td> | |
<td> | |
4 November 2005 | |
</td> | |
<td> | |
<ul><li>Added downloadable source code, new 'Installing the Sample' section, and link to | |
Syntax Highlighting tutorial at the end. | |
<li>To do: | |
<ul> <li>Same items as on 4 October still to be done.</ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
5 | |
</td> | |
<td> | |
29 November 2005 | |
</td> | |
<td> | |
<ul><li>Added links to brand new Component Palette tutorial. | |
<li>To do: | |
<ul> <li>Same items as on 4 October still to be done.</ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
6 | |
</td> | |
<td> | |
21 April 2006 | |
</td> | |
<td> | |
<ul><li>Changed the title from "DataLoader Module Tutorial" to "Recognizing a File Type Tutorial". | |
<li>To do: | |
<ul> <li>Same items as on 4 October still to be done.</ul> | |
</td> | |
</tr> | |
<tr> | |
<td> | |
7 | |
</td> | |
<td> | |
17 November 2007 | |
</td> | |
<td> | |
<ul><li>Updated the whole tutorial to 6.0, replaced all screenshots, and | |
now [because the 6.0 IDE already provides support for manifest files], the | |
tutorial focuses on imaginary Abc files. | |
<li>To do: | |
<ul> <li>Need to replace the download, which is the same as before, dealing with manifest files. | |
<li>Same items as on 4 October still to be done. | |
<li>Added OpenSupport into TopComponent, with a reference to Visual Library.</ul> | |
<li>Changed title to File Type Integration Tutorial | |
<li>Tweaked several places throughout tutorial, for 6.0 | |
</td> | |
</tr> | |
<tr> | |
<td> | |
8 | |
</td> | |
<td> | |
15 April 2008 | |
</td> | |
<td> | |
Updated the styles (badge, table of contents, required software table) | |
to the new format. | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</body> | |
</html> |