Creating a JViews Diagrammer application

Describes the various ways to create a JViews Diagrammer application, from simple to more complex.

Explains how to create an instance of IlvDiagrammerApplication.

Describes which parts of the predefined IlvDiagrammerApplication you can customize.

Explains how to create an application by combining JavaBeans™.

Explains how to create more complex applications.

Describes an example of a more complex application provided with JViews Diagrammer.

Creating an application instance

The Designer is used with sample data that contains only enough information to specify the drawing style.

The class IlvDiagrammerApplication is a ready-to-use application to display or edit diagrams in diagram components (instances of IlvDiagrammer.).

To create an instance of an application, the CLASSPATH environment variable must contain the JViews Diagrammer JAR files, as well as the palette JAR files that contain the symbols used in the projects.

To create an IlvDiagrammerApplication instance:

  • Launch the application from the command line, passing it the style sheet created in the Designer as the style argument, as in the following example.

    Example    

    java ilog.views.diagrammer.application.IlvDiagrammerApplication -style example.css

    You can pass further command-line arguments to control which components are visible, to allow editing of the diagram, and so on. See the reference documentation for IlvDiagrammerApplication for a list of the possible command-line arguments.

To modify the data source of the application in order to display your own data:

  1. Retrieve the current diagrammer,

    IlvDiagrammerApplication.getCurrentDiagrammer()

  2. Modify its data source as explained in the section 'Specifying a different data source' of Next steps after the Designer.

Customizing the predefined application

You can customize the ready-to-use application by subclassing IlvDiagrammerApplication. In the subclass, you can customize the following aspects of the application:

  • Working area: can be single-document (default) or multidocument with JDesktopPane and internal frames

  • Menu bar: default contents File, Edit, View, Options, Help

  • Edit toolbar: by default horizontally above the working area

  • View toolbar: by default vertically to the left of the working area

  • Palette toolbar (optional)

  • Property Sheet (optional)

  • Overview showing the whole of a (large) diagram (optional)

Runtime flags govern what is displayed at startup.

Creating a basic application from JViews Diagrammer beans

An alternative to using the predefined IlvDiagrammerApplication class is to combine the JViews Diagrammer beans yourself. You can do this either using an Integrated Development Environment (IDE), or directly in your Java™ code.

To create a very simple JViews Diagrammer application containing one diagram component ( IlvDiagrammer instance) and a view toolbar (IlvDiagrammerViewBar instance):

  • Write the following code

    Example   A basic application that extends JFrame

     

    /**

     * This is a very simple application based on a diagram component,

     *

     * This application displays a diagram component in a frame.

     * A simple data file is loaded and displayed using a

     * basic style sheet. A predefined toolbar is also used.

     */

    public class BasicDiagrammerApplication extends JFrame

    {

      // Create the main frame.

      //

      public BasicDiagrammerApplication()

      {

        // Set up the frame.

        //

        super("Basic Diagrammer Application");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLocation(100, 100);

        setSize(400, 300);

        // Create the IlvDiagrammer instance.

        //

        IlvDiagrammer diagrammer = new IlvDiagrammer();

        // Allow selection.

        //

        diagrammer.setSelectMode(true);

        // Add the IlvDiagrammer instance.

        //

        getContentPane().setLayout(new BorderLayout());

        getContentPane().add(diagrammer, BorderLayout.CENTER);

        // Add a predefined toolbar for controlling the view

        // north of the frame.

        //

         getContentPane().add(new IlvDiagrammerViewBar(), BorderLayout.NORTH);

        try {

        // Load a project file.

        //

        diagrammer.setDataFile(new URL("file:data/basic.idpr"));

        } catch (Exception e) {

          e.printStackTrace();

        }

      }

      /**

       * The main method of the application.

       */

      public static void main(String[] args)

      {

        // Create an instance of the application, and

        // show it.

        //

        new BasicDiagrammerApplication().setVisible(true);

      }

    }

    This sample is available at <installdir>/jviews-diagrammer/codefragments/basic/srchtml/BasicDiagrammerApplication.java.html.

Adding further components

You can build more complex applications by adding further JViews Diagrammer beans to the Swing GUI of a basic application.

JViews Diagrammer beans are connected automatically to the currently active IlvDiagrammer instance of the GUI.

To add a bean:

  1. Create the bean.

  2. Add it to your Swing GUI.

    No call is necessary to connect the bean to the IlvDiagrammer instance.

Example    

For example, you can make the basic application in A basic application that extends JFrame more complete by adding a menu bar to the frame, and an overview to the right of the panel, as shown in the following code example:

 

setJMenuBar(new IlvDiagrammerMenuBar());

getContentPane().add(new IlvDiagrammerOverview(), BorderLayout.EAST);

An editing application created from JViews Diagrammer beans

For an example of a more complex application, see the Editor sample, which is available at <installdir>/jviews-diagrammer/codefragments/editor/srchtml/DiagramEditor.java.html.

This sample is a simple multidocument diagram editor based on the diagram component with the following elements:

  • A horizontal toolbar for editing the diagram.

  • Palette icons in the toolbar to create nodes and links in the diagram.

  • A vertical toolbar to control the diagram view.