3D PLM Enterprise Architecture

User Interface - Frame

Managing Transitions between Workbenches

Making a process-driven user interface
Use Case

Abstract

This article shows how to create the transition to the two workbenches of the Geometry workshop.


What You Will Learn With This Use Case

CAAAfrGeometryWksTransition is a use case of the CAAApplicationFrame.edu framework that illustrates the ApplicationFrame framework capabilities.

[Top]

The CAAAfrGeometryWksTransition Use Case

The CAAAfrGeometryWksTransition use case to manage the transitions between any workbench and the workbenches of the Geometry workshop.

[Top]

What Does the CAAAfrGeometryWksTransition Use Case Do

The CAAAfrGeometryWksTransition use case to manage the transitions between any workbench and the workbenches of the Geometry workshop. To do this, it is made of a class that implements the CATIWorkbenchTransition interface as an extension of the CAAAfrGeometryWks_trans late type, CAAAfrGeometryWks being the Geometry workshop description class name.

How to Launch CAAAfrGeometryWksTransition

See the section entitled "How to Launch the CAAGeometry Use Case" in the "The CAAGeometry Sample" use case for a detailed description of how this use case should be launched. For the specific scenario :

Do not type the module name on the command line, but type CNEXT instead. When the application is ready, do the following:

This creates a new CAAGeometry document with the CAA Geometrical Creation workbench active.

[Top]

Where to Find the CAAAfrGeometryWksTransition Code

The CAAAfrGeometryWksTransition use case is made of a single class named CAAEAfrGeometryWksTransition located in the CAAAfrGeometryWksTransition.m module of the CAAApplicationFrame.edu framework:

Windows InstallRootDirectory\CAAApplicationFrame.edu\CAAAfrGeometryWksTransition.m\
Unix InstallRootDirectory/CAAApplicationFrame.edu/CAAAfrGeometryWksTransition.m/

where InstallRootDirectory is the directory where the CAA CD-ROM is installed.

[Top]

Step-by-Step

To manage transitions between any workbench and the workbenches of the CAAGeometry document, there are two steps:

# Step Where
1 Create the extension class that implements CATIWorkbenchTransition CAAEAfrGeometryWksTransition class
2 Update the interface dictionary interface dictionary

[Top]

Creating the Extension Class that Implements CATIWorkbenchTransition

This class is a data extension of a made of the workshop identifier suffixed by _trans, that is here CAAAfrGeometryWks_trans for the Geometry workshop.

  1. Create the CAAEAfrGeometryWksTransition.h file
    #include "CATExtIWorkbenchTransition.h" 
    
    class CAAEAfrGeometryWksTransition : public CATExtIWorkbenchTransition
    {
      CATDeclareClass;
      public:
         CAAEAfrGeometryWksTransition();
         virtual ~CAAEAfrGeometryWksTransition();
    };

    The CATDeclareClass macro states that this class belongs to a component. The class has only a constructor and a destructor.

  2. Create the CAAEAfrGeometryWksTransition.cpp file.
    // Local FW
    #include "CAAEAfrGeometryWksTransition.h"
    
    CATImplementClass(CAAEAfrGeometryWksTransition, 
                      DataExtension, 
                      CATBaseUnknown,
                      CAAAfrGeometryWks_trans);
    
    #include <TIE_CATIWorkbenchTransition.h> 
    TIE_CATIWorkbenchTransition(CAAEAfrGeometryWksTransition);
    
    CAAEAfrGeometryWksTransition::CAAEAfrGeometryWksTransition()
    {
      _newDoc = "CAAGeometry" ;
    }
    
    CAAEAfrGeometryWksTransition::~CAAEAfrGeometryWksTransition() {}

    The CATImplementClass macro reads: the CAAEAfrGeometryWksTransition class is a data extension of the late type CAAAfrGeometryWks_trans. As any extension class, its third argument is CATBaseUnknown. The constructor assigns the type CAAGeometry to the document type to create using the _newDoc data member of the base class CATExtIWorkbenchTransition. This type is the one to which the workbench is dedicated.

Since the DoTransition method is not implemented, the one of the base class CATExtIWorkbenchTransition is executed instead. It creates a new CAAGeometry document, except if:

[Top]

Updating the Dictionary

Update the interface dictionary, that is a file named, for example, CAAApplicationFrame.dico, whose directory's pathname is concatenated at run time in the CATDictionaryPath environment variable, and containing the following declaration to state that the CAAAfrGeometryWks_trans late type implements the CATIWorkbenchTransition interface, and whose code is located in the libCAAAfrGeometryWksTransition shared library or DLL.

CAAAfrGeometryWks_trans CATIWorkbenchTransition libCAAAfrGeometryWksTransition

[Top]


In Short

The CAA process-centric user interface implies that the application should know what to do when the end user selects a workbench in the Start menu. This knowledge is provided by the workshop, or possibly the workbench, supplier by implementing the CATIWorkbenchTransition interface.

For standalone documents, that is, documents that do not contain or are not linked to, or that are not contained or linked by, other documents, the CATIWorkbenchTransition interface is implemented once by the document's workshop supplier, and applies to all the document's workbenches.

Otherwise, each workbench of the embedded or linked document should implement the CATIWorkbenchTransition interface to create its incoming and outgoing transitions, that is what should happen when it is selected, or when it is active and when another workbench is selected.

[Top]


References

[Top]

History

Version: 1 [Jan 2000] Document created
[Top]

Copyright © 2000, Dassault Systèmes. All rights reserved.