21 March 2016

1. Image Flow

As of release 2010.2, a new feature called Image Flow was added.

The Image Flow allows the user to browse through a set of images. The images are typically the primary images associated to a set of objects, but it is possible to launch the image flow and show all images associated to an object.

Moreover, the image flow can be configured to launch an URL below the image. When the image is shown, the object associated with the image will be passed along to the specified URL and the page is loaded.

The example screenshot below illustrates an example use case of an image flow.

image

The image flow is configured via an XML file, and to launch the image flow you should use the URL below:

${ROOT_DIR}/tvc-action/imageflow?config=tvc:imageflow/MyImageFlow.xml

The config parameter can be omitted, in that case the image flow will only display the images associated with the object provided in the request. However, typically is that you use a configuration for the image flow. The sub chapter describes the configuration in detail.

1.1. Configuration

The Image Flow component is configured via an XML resource. The XML configuration is of type "imageflow" hence it must be stored inside a directory under the WEB-INF/tvc folder called "imageflow". If you use namespaces (domains), the folder is slightly different.

1.1.1. Example

<ImageFlow>(1)
    <Height>50%</Height>(2)
    <Images>(3)
        <ImageFormat>large</ImageFormat>(4)
        <TitlePattern>$&lt;attribute[attribute_MarketingName]&gt;</TitlePattern>(5)
        <Loader>(6)
            <Query type="type_Model" vault="vault_eServiceProduction"/>
        </Loader>
    </Images>
    <View>
        <URL action="navigate">(7)
            <Param name="pageConfig">tvc:pageconfig:tvx:vcc/Products.xml</Param>
            <Param name="inquiry">tvc:inquiry:tvx:vcc/ProductsFromModel.xml</Param>
            <Param name="portalMode">true</Param>
        </URL>
    </View>
</ImageFlow>
1 The root tag is always <ImageFlow>.
2 The <Height> tag specifies the height of the Image Flow itself; you can either use percentage or pixels.
3 Within the <Images> element you configure what’s displayed in the Image Flow component.
4 The <ImageFormat> designates which format to use. The accepted values are ‘thumbnail’, ‘small’, ‘medium’ and ‘large’.
5 The <TitlePattern> element defines a pattern that will be evaluated to extract the title to use for each object/image. You’re allowed to use business object select macros within this pattern to get data from each object.
6 The <Loader> element configures how to find the objects whose images will be displayed in the Image Flow. Apart from <Query/>, you can also use <Expansion type=’’ relationship=’’ from=’*’ />, <Inquiry inquiry=’’ /> and <JPO program=’’ function=’’ /> within this element. See next chapter for further details.
7 Lastly, the <URL> element defines which URL to be used below the Image Flow.

1.1.2. Loader Types

The data can be loaded using a couple of different alternatives:

  • Expansion

  • Query

  • Inquiry

  • JPO

  • Data Set

To use an expansion, the image flow must be launched in the context of an object, while the latter doesn’t require so.

Query

The example below shows the attributes that you can use to control a query

<Query type="type_Part,type_AnotherType"
    name="A*"
    revision="*"
    vault="vault_eServiceProduction"
    where=""
    owner=""
    limit="1000"
    expand="true"/>
Expansion

The example below shows the attributes that you can use to control an expansion.

<Expansion type="type_Part,type_AnotherType"
    relationship="relationship_EBOM,relationship_AnotherRel"
    objectWhere=""
    relationshipWhere=""
    recurseToLevel="2"
    from="true"
    to="false" />
Inquiry

The example below shows the attributes that you can use to control an inquiry.

<Inquiry inquiry="name of inquiry"/>
JPO

The example below shows the attributes that you can use to control the JPO.

<JPO program="" function=""/>
Data Set

The example below shows the attributes you can use to load data through a data-set.

<DataSet name="tvc:dataset/MyDataSet.xml"/>

1.2. Images

The images that are taken from the objects loaded are either the Image connected with the "Primary Image" relationship, or the primary image specified on the "Image Holder" object connected. E.g. the image flow supports the two different alternate image concepts that exist in the ENOVIA Centrals.

You can also use a custom so called Image finder, which evaluates what images to be included.

To do so, you need to specify the following within the configuration:

<ImageFlow>
    <Images>
        <Finder>value</Finder>

The value can either be "primary", "objectimage" or a class name of a class that implements the interface shown below:

package com.technia.tvc.core.gui.imageflow.model.finder;

import com.technia.tvc.core.gui.imageflow.model.Image;
import com.technia.tvc.core.TVCException;
import com.technia.tvc.core.db.aef.env.Environment;

public interface ImageFinder {
    Image[] getImages(Environment env) throws TVCException;
}

If omitting the finder from the definition, the primary images are loaded (same as saying "primary"). If you instead want to load all images available from the object(s) loaded, then you use the "objectimage" string instead.

And as mentioned, if you need to load the images in a custom way, implement your own ImageFinder.

1.3. Browser Requirements

The Image Flow is implemented as a Microsoft Silver Light component. The client who is using the Image Flow must have the Microsoft Silver Light 3 Runtime installed (browser plug-in).