# Extending WebLogic Workshop

WebLogic Workshop provides an integrated environment for building web applications efficiently. Through the Workshop extensibility model, you can enhance this environment to provide support for application and productivity needs that are not yet addressed by WebLogic Workshop. In effect, you can use the the extensibility model to integrate new functionality whose focus is, in the spirit of WebLogic Workshop itself, to enable developers to be productive quickly. As it happens, WebLogic Workshop is itself the sum of several extensions that combine to present a unified interface.

Note: If you're new to Swing, the Java technology that you'll use to build user interface components for WebLogic Workshop extensions, you might be interested in the links available at Getting Started with Swing.

The model exposes four main areas for extension-building. Extensions built in these areas are typically used either as application components or as productivity enhancements. By working in these areas you can provide:

- Controls that expose complex functionality in simple ways through customizable interfaces, properties, and control-specific user interface components. Controls are used a components of applications built with WebLogic Workshop.
- Templates that set up the initial structure for new projects, adding dependencies that might otherwise have to be imported or created, and generating files that help the project's user get started quickly. Templates are productivity enhancements.
- Support for custom JSP tag libraries through tag library extensions that integrate the tags seamlessly with the Workshop design-time experience. Tag library extensions are productivity enhancements.
- Components that augment the IDE with toolbar buttons and menus, views in dockable frames, additional document and project types, editing support for additional kinds of source code, source control integration, debugging data views, and so on. IDE extensions are productivity enhancements.
- Help that is specific to your extension and fully integrated with the WebLogic Workshop help system. Help extensions are productivity enhancements.

The following sections provide more information about each of these areas, along with links to further information in this guide.

Advanced Java Controls

Templates

JSP Tag Library Extensions

IDE Extensions

Help Integration

## Advanced Java Controls

Java controls are a core part of the WebLogic Workshop programming framework. Even simple controls are ideal for encapsulating application logic, particularly when that logic coordinates the work of multiple resources. One of the most compelling reasons for building Java controls is to provide simplified access to resources that may otherwise require complex code to integrate into an application.

More complex controls, such as those built with the help of this guide, build on the simpler control support described in the core WebLogic Workshop documentation. These advanced controls support customizable or dynamically-created programming interfaces, design-time user interface for inserting the control and setting its properties, and sophisticated asynchronous operation.

When you build advanced controls, you develop your sources within a control project whose result is a JAR or ZIP file that is delivered to users. WebLogic Workshop provides control installation support that automatically copies control components, documentation, and samples to appropriate locations in the user's installation. Once added to the user's WebLogic Workshop installation, new controls are available in the IDE from palettes and menus.

To get started building advanced controls, see Developing Advanced Controls. For an overview of control samples, see Advanced Control Samples.

## Templates

A template gets a project's or application's user quickly to the point of writing application-specific code. For example, if you create a new web application project in WebLogic Workshop, the IDE uses a template to ensure that your new project starts out with the complement of JAR files needed to get the application running. If you're extending Workshop with a new project type, a template is a great way to help the project's users be productive quickly. A template can set up the project's initial file structure and copy into the new project any files that may be dependencies.

At a high level, the tasks involved in building a template include writing a template.xml file that specifies the names and locations of files included with the projects or applications based on the template. The template.xml file also specifies basic user interface to accompany the template, such as strings and categories displayed in the New Project dialog. You include the template.xml file and any other files that should be added to applications based on the template — such as sources, JARs, and so on — in a ZIP file that you deliver to the template's user.

To get started building templates, see Developing Application and Project Templates.

## JSP Tag Library Extensions

Applications built with WebLogic Workshop support custom JSP tags, just as those applications support other J2EE application components. WebLogic Workshop's specific ease-of-use approach to these tags at design time is possible by integrating the tag library into the IDE through a tag library extension. This kind of extension can provide support for IDE features such as the data and design palettes, Source View error checking (those red squiggle underlines), specific tag rendering in Design View, and integrated documentation.

In other words, when building a custom tag library for use in WebLogic Workshop, you also provide a corresponding extension for seamless design-time support. The core of this extension is a TLDX file whose structure is similar to the standard TLD file. The file specifies design-time characteristics of each tag and attribute defined in the TLD file. These characteristics may require Java classes that you build and include with the extension.

For more information on building tag library extensions, see Developing Tag Library Extensions. For an overview of relevant samples, see Tag Library Extension Samples.

## IDE Extensions

You might argue that extensions in each of the categories described here extend the IDE in some way, and you'd have a point. Generally speaking, though, IDE extensions are built on a framework (available through the majority of the extensibility API) whose support is more broadly applicable, rather than specific to particular component types such as controls or JSP tags. If you're planning to add menus, toolbars, dockable windows, and so on to the IDE, an IDE extension is what you're looking for.

Likewise, if you want to enhance debugging or add support for new kinds of documents, you'd do those through an IDE extension. WebLogic Workshop's productivity benefits are in part due to its special handling of certain file types, such as JWS, JSP, or JCS files. Each of these supports specific actions. Through document type IDE extensions you can implement specific support for your own file types.

You deliver an IDE extension in a JAR file. The file must include an extension.xml that describes the extension's characteristics for the IDE. To be visible to the IDE, the extension JAR must be deployed to the <WORKSHOP_HOME>/extensions folder of the user's installation.

For more information on writing IDE extensions, see Developing IDE Extensions. For a description of samples included with this development kit, see IDE Extension Samples.

## Help Integration

WebLogic Workshop includes a documentation system that enables you to add new content to support your extensions. By following guidelines for delivering help, your documentation is not only integrated with the existing help table of contents and search, but is available when the user presses F1 when your API or custom JSP tag is selected in Source or Design View.

For more information on delivering integrated documentation, see Help Authoring Guide.

Related Topics

None.