c# wpf adobe pdf reader : Copy pdf page to powerpoint application SDK utility azure wpf html visual studio ATGCommProgGuide14-part1691

ATG  C om mer ce P ro g ramm in g   Gui d e 
12 3  
8  -  C o n fi g uri n g  C o mm erce  Servi ces  
μ
ProductComparisonList
, located in Nucleus at 
/atg/commerce/catalog/comparison/ProductList
ProductListContains 
A droplet that queries whether a product comparison list contains an entry for a 
specific product. ATG Commerce includes a globally-scoped instance of 
ProductListContains
, located in Nucleus at 
/atg/commerce/catalog/comparison/ProductListContains
ProductListHandler 
A form handler that manages product comparison lists. ATG Commerce includes a 
session-scoped instance of 
ProductListHandler
, located in Nucleus at 
/atg/commerce/catalog/comparison/ProductListHandler
ComparisonList 
atg.commerce.catalog.comparison.ComparisonList
provides a generic data structure to maintain 
an ordered list of items that the user may want to compare, as well as an associated set of sort directives 
to apply when displaying the items in the list. The objects in the list may be of any Java class. Like Java 
List
classes, 
ComparisonList
maintains the insertion order of items in the list. Unlike 
List
classes, it 
prohibits duplicate entries in the list by ignoring requests to add items that compare equal to items 
already in the list. 
The following table describes the 
ComparisonList
methods used to maintain a list of items to compare. 
For additional methods and details, refer to the ATG API Reference. 
Method 
Description 
addItem 
Adds an item to the end of the comparison list if the item isn’t already 
present in the list. 
clear 
Removes all items from the comparison list. 
containsItem 
Returns true if the comparison list contains the specified item. 
getItem(n) 
Returns the item at the specified index in the comparison list. 
getItems 
Returns the list of items being compared. 
indexOf 
Returns the index of the specified item in the comparison list; returns -1 
if the item does not appear in the list. 
removeItem 
Removes an item from the comparison list if it was present in the list. 
Size 
Returns the number of items in the comparison list. 
ComparisonList
internally synchronizes operations on the list. This makes it possible for multiple 
request-scoped servlet beans and form handlers to operate safely on a shared session-scoped 
ComparisonList
, as long as all changes to the list are made through the 
ComparisonList
API. Note that 
if your application calls the 
getItems
method to obtain a reference to the list, you should synchronize all 
Copy pdf page to powerpoint - application SDK utility:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Copy pdf page to powerpoint - application SDK utility:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
12 4  
8 -  C o n fi g u rin g   C om merce  Serv ices  
operations on the list or call the 
java.util.Collections.synchronizedList
method to obtain a 
thread-safe version of the list upon which to operate. 
ComparisonList
maintains a property of type 
atg.service.util.TableInfo
as a convenience to the 
developer. In cases where the comparison information will be displayed as a table, this provides an easy 
way to associate default table display properties with a comparison list. ATG Commerce includes a 
session-scoped instance of 
TableInfo
, located in Nucleus at 
/atg/commerce/catalog/comparison/TableInfo
. For more information about the 
TableInfo
component and how to use it to display sortable tables, see the Implementing Sortable Tables chapter in 
the ATG Page Developer’s Guide. 
Use 
ComparisonList
when you want to compare sets of simple Java beans, repository items, user 
profiles, or other self-contained objects. If you want to compare more complex objects, or sets of objects 
against each other, you’ll want to subclass 
ComparisonList
to be able to manage application-specific 
objects. 
ProductComparisonList 
ProductComparisonList
extends 
ComparisonList
, providing an API designed to manage and 
compare products and SKUs. 
ProductComparisonList
uses the 
items
property to store a list of 
Entry
objects, each of which represents a product or SKU that the user has added to her product comparison 
list. 
Entry
is an inner class defined by 
ProductComparisonList
; it combines category, product, SKU, 
and inventory information about a product into a single object. 
You can configure additional instances of 
ProductComparisonList
in Nucleus to provide multiple 
comparison lists. 
The API for ProductComparisonList 
The public API for 
ProductComparisonList
can be divided broadly into the following four categories: 
add methods, which add entries to the list. 
When you call 
ProductComparisonList
’s 
add
method, a new 
Entry
object is 
automatically constructed and added to the item list if it is not already present. When 
you call 
ProductComparisonList
’s 
addAllSkus
method, a new 
Entry
object for 
each SKU associated with the given product is automatically constructed and added to 
the item list. 
When the 
add
method or 
addAllSkus
method is called, if no category ID for the given 
product is specified, then the product’s default parent category is used. If no default 
parent category for the given product is set, then the 
category
property of the new 
Entry
object is null. Similarly, if no SKU is specified in the method call, then the given 
product’s first child SKU is used. If the product has no child SKUs, then the 
sku
property of the new 
Entry
object is null. 
remove methods, which remove entries from the list. 
contains methods, which query whether the list contains an entry matching specified 
product, category, SKU, or site information. 
set and get methods, which set and get various properties of the 
ProductComparisonList
itself. 
application SDK utility:C# PowerPoint - Extract or Copy PowerPoint Pages from PowerPoint
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET Extract/Copy PowerPoint Pages of PowerPoint Document in C# Project. C# DLLs: Extract PowerPoint Page.
www.rasteredge.com
application SDK utility:VB.NET PDF copy, paste image library: copy, paste, cut PDF images
VB.NET DLLs: Copy, Paste, Cut Image in PDF Page. using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; VB.NET: Copy and Paste Image in PDF Page.
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
12 5  
8  -  C o n fi g uri n g  C o mm erce  Servi ces  
When you call 
getItems
on a 
ProductComparisonList
, you get back a List of 
Entry
objects. When working with these objects in Java, you can either cast the objects to 
ProductComparisonList.Entry
or use the 
DynamicBeans
system to retrieve the 
product, category, SKU, site, and inventory information from the 
Entry
. When 
working with these objects in JSPs, you can refer to their properties in the same way 
you refer to the properties of any other Java bean. 
refresh methods, which refresh the inventory information for the items in the 
ProductComparisonList
The 
refreshInventoryData()
method iterates over the items in the 
ProductComparisonList
and loads updated inventory information into them. 
The 
setRefreshInventoryData(String unused)
method calls the 
refreshInventoryData()
method. This method enables you to update the 
inventory information for the items when you render the page that displays the 
ProductComparisonList
. To do so, you could use the following 
setvalue
tag at the 
top of the page: 
<setvalue bean="ProductList.refreshInventoryData">
For related form handler methods, see ProductListHandler
There are several different variations on the 
add
remove
, and 
contains
methods. The various methods 
take different sets of arguments to support a wide range of application behaviors. For example, there are 
remove
methods to remove all entries for a specific product, to remove all entries for all products in a 
specified category, and to remove the entry for a particular category/product/SKU combination. 
Additionally, several methods of 
ProductComparisonList
take an optional 
catalogKey
parameter. 
This 
String
parameter is useful for applications using catalog localization because it enables you to 
specify the product catalog to use when operating on a product comparison list. Through the 
catalogKey
parameter, you pass a key to 
CatalogTools
, which then uses the given key and its key-to-
catalog mapping to select a product catalog repository. 
Refer to the ATG API Reference for additional information on the public API for 
ProductComparisonList
Also note that there is one important protected method: 
protected Entry createListEntry(RepositoryItem pCategory, 
RepositoryItem pProduct, RepositoryItem pSku) 
The 
createListEntry
method is called to create a new list entry with a given category, product, and 
SKU. By subclassing 
ProductComparisonList
and overriding 
createListEntry
, you can extend or 
replace the properties of the 
Entry
object. See Extending the Product Comparison System for more 
information. 
The Entry Inner Class 
The public API for the 
Entry
class exposes properties that the page developer can display in a product 
comparison list or table. The default implementation includes the following properties: 
application SDK utility:C# PDF copy, paste image Library: copy, paste, cut PDF images in
cutting. C#.NET Project DLLs: Copy, Paste, Cut Image in PDF Page. In C#.NET Demo Code: Copy and Paste Image in PDF Page in C#.NET. This C#
www.rasteredge.com
application SDK utility:VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Extract all images from whole PDF or a specified PDF page in VB.NET. Capture VB.NET : Select An Image from PDF Page by Position. Sample
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
12 6  
8 -  C o n fi g u rin g   C om merce  Serv ices  
Property Name  Property Type 
Description 
product 
RepositoryItem 
The product being compared. 
category 
RepositoryItem 
The category of the product being compared. If 
the category is not set explicitly when the 
product is added to the list, then the product’s 
default parent category is used. If the product’s 
default parent category is unset, the 
category
property is null. 
sku 
RepositoryItem 
The product’s SKU. If the SKU is not set explicitly 
when the product is added to the list, then the 
first SKU in the product’s 
childSkus
list is used. If 
the product has no child SKUs, then the 
sku
property is null. 
inventoryInfo  InventoryData 
The 
InventoryData
object that describes the 
inventory status for the given product and SKU. If 
the 
sku
property is null or the inventory 
information isn’t available, then the 
inventoryInfo
property is null. (See the next 
section for more information on the 
InventoryData
object.) 
application SDK utility:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#: Select All Images from One PDF Page. C# programming sample for extracting all images from a specific PDF page. C#: Select An Image from PDF Page by Position.
www.rasteredge.com
application SDK utility:C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
ppt"; String outputFilePath = Program.RootPath + "\\" Output.pdf"; // Load a PowerPoint (.ppt, .pps zoomValue, The magnification of the original PDF page size
www.rasteredge.com
ATG  C om mer ce P ro g ramm in g   Gui d e 
12 7  
8  -  C o n fi g uri n g  C o mm erce  Servi ces  
productLink 
String 
An HTML fragment that specifies an anchor tag 
that links to the product’s page in the catalog. 
The default format for the link is 
<a 
href="product.template.url?id=product.
repositoryId">product.displayName</a>
If you are using ATG’s multisite feature, the 
ProductComparisonList
automatically uses the 
SiteURLManager
to find the base production 
URL for the site from which the entry was added. 
You can change the link format by setting the 
ProductComparisonList.productLink 
Format
property. 
Note: If you display the product comparison 
information in a table, you can use the 
productLink
property in the configuration of 
the 
TableInfo
object that maintains the table 
information, as in the following example: 
columns=\ 
Product Name=productLink,\ 
Price=sku.listPrice,\ 
Or, similarly, to display the product link in a table 
column but sort the column on the product’s 
display name, you could modify the example in 
the following manner: 
columns=\ 
Product Name=productLink; 
product.displayName,\ 
Price=sku.listPrice,\ 
For more information on the 
TableInfo
component, see the Implementing Sortable Tables 
chapter in the ATG Page Developer’s Guide. 
application SDK utility:VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
XDoc.PDF ›› VB.NET PDF: Delete PDF Page. using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; How to VB.NET: Delete a Single PDF Page from PDF File.
www.rasteredge.com
application SDK utility:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Existing PDF Pages. Page: Replace PDF Pages. Page: Move Page Position. Page: Extract, Copy and Paste PDF Pages. Page: Rotate a
www.rasteredge.com
ATG  C om merce  P ro gra mm in g  G ui d e 
12 8  
8 -  C o n fi g u rin g   C om merce  Serv ices  
categoryLink 
String 
An HTML fragment that specifies an anchor tag 
that links to the category’s page in the catalog. 
The default format for the link is 
<a 
href=category.template.url?id=category
.repositoryId>category.displayName</a>
However, you can change the format by setting 
the 
ProductComparisonList.categoryLinkForm
at
property. 
Note: Like the 
productLink
property, the 
categoryLink
property can be used in the 
configuration of a 
TableInfo
component. See 
the description of the 
productLink
property in 
this table for more information. 
Also like 
productLink
, if you are using ATG’s 
multisite feature, the 
ProductComparisonList
automatically uses the 
SiteURLManager
to find 
the base production URL for the site from which 
the entry was added. 
id 
Int 
A unique ID that names the list entry. You can use 
this property to retrieve individual entries by 
calling 
ProductComparisonList.getItems(id)
in 
Java code or by using 
<dsp:valueof 
bean="ProductList.entries[id]"/>
in a 
.
jsp
page. 
You can also use this property to delete specific 
entries, for example, with a form handler. For a 
JSP example, refer to Examples of Product 
Comparison Pages in the Implementing Product 
Comparison chapter of the ATG Commerce Guide 
to Setting Up a Store
siteId 
String 
If you are using ATG’s multisite feature, this 
property holds the ID of the site with which the 
item is associated.  
A page developer can refer to the properties of the 
Entry
objects using familiar JSP syntax, as in the 
following example: 
<dsp:droplet name="ForEach"> 
<dsp:param bean="ProductComparisonList.items" name="array"/> 
<dsp:oparam name="output"> 
<p>Product Name: <dsp:valueof 
ATG  C om mer ce P ro g ramm in g   Gui d e 
12 9  
8  -  C o n fi g uri n g  C o mm erce  Servi ces  
param="element.product.displayName"/><br> 
Category: <dsp:valueof param="element.category.displayName"/><br> 
Inventory: <dsp:valueof 
param="element.inventoryInfo.inventoryAvailabilityMsg"/><br> 
</dsp:oparam> 
</dsp:droplet> 
The InventoryData Inner Class 
The 
getInventoryInfo()
method of the 
Entry
inner class (class 
atg.commerce.catalog.comparison.ProductComparisonList.Entry
) returns an instance of the 
InventoryData
inner class (class 
atg.commerce.catalog.comparison.ProductComparisonList.Entry.InventoryData
). 
The 
InventoryData
object stores the inventory data for a given item in the product comparison list. It 
returns a subset of the readable properties of an 
InventoryInfo
object (class 
atg.commerce.inventory.InventoryInfo
). However, unlike an 
InventoryInfo
object, an 
InventoryData
object is serializable, which enables it to participate in session failover. For a list of 
InventoryData
properties, refer to the ATG API Reference. 
ProductListContains 
When given a category, product, and SKU, the 
ProductListContains
droplet queries whether a product 
comparison list includes the given item. 
The behavior of 
ProductListContains
parallels that of 
ProductComparisonList
. Namely, you can 
specify a product ID with or without an accompanying category or SKU. In the latter situation, 
ProductListContains
behaves as follows: 
If you don’t specify a category ID for the given product, then 
ProductListContains
looks for a list entry whose 
category
property matches either the given product’s 
default category or null if there is no default category for the given product. 
If you don’t specify a SKU for the given product, then 
ProductListContains
looks 
for a list entry whose 
sku
property matches either the given product’s first child SKU 
or null if there are no SKUs for the given product. 
For a list of the input, output, and open parameters for 
ProductListContains
, and for JSP examples of 
how page developers can use 
ProductListContains
, refer to the Implementing Product Comparison 
chapter of the ATG Commerce Guide to Setting Up a Store
ProductListHandler 
The 
ProductListHandler
form handler manages product comparison lists. By default, ATG Commerce 
includes a session-scoped instance of 
ProductListHandler
, located in Nucleus at 
/atg/commerce/catalog/comparison/ProductListHandler
. It is configured to operate on the 
product comparison list located at 
/atg/commerce/catalog/comparison/ProductList
ATG  C om merce  P ro gra mm in g  G ui d e 
13 0  
8 -  C o n fi g u rin g   C om merce  Serv ices  
If your application uses multiple instances of 
ProductComparisonList
to manage multiple product 
comparison lists, then you may want to configure multiple instances of 
ProductListHandler
to manage 
the contents of each list. 
If your application uses alternate product catalogs for different locales, you can specify the product 
catalog to use when operating on a product comparison list. To do so, set the 
ProductListHandler.repositoryKey
property to the key to pass to 
CatalogTools
CatalogTools
uses the given key and its key-to-catalog mapping to select a product catalog repository. Typically, you 
would set the 
ProductListHandler.repositoryKey
property via a hidden input field in a form. If the 
repositoryKey
property is unset, then the default product catalog repository is used. 
The following table describes 
ProductListHandler
’s handle methods for managing a product 
comparison list: 
Handle Method 
Description 
handleAddProduct 
Adds the product specified by 
productID
to the 
product comparison list, applying optional 
category, SKU, and site information if supplied in 
categoryID
skuID
, and 
siteID
handleAddProductAllSkus 
Adds all of the SKUs for the product specified by 
productID
to the product comparison list, 
applying optional category and site information if 
supplied in 
categoryID
and 
siteID
handleAddProductList 
Adds all of the products specified by 
productIDList
to the product comparison list, 
applying optional category and site information if 
supplied in 
categoryID
siteID
, and the default 
SKU for each product, if any. 
handleAddProductListAllSkus 
Adds all of the SKUs for all of the products specified 
by 
productIDList
to the product comparison list, 
applying optional category and site information if 
supplied in 
categoryID
and 
siteID
handleCancel 
Resets the form handler by setting 
productID
categoryID
skuID
, and 
siteID
to null. 
handleClearList 
Clears the product comparison list. 
ATG  C om mer ce P ro g ramm in g   Gui d e 
13 1  
8  -  C o n fi g uri n g  C o mm erce  Servi ces  
handleRefreshInventoryData 
Calls the 
ProductComparisonList.refreshInventory 
Data()
method. 
The 
handleRefreshInventoryData
method also 
calls pre and post methods. If necessary, your 
subclasses can override these methods to provide 
additional application-specific processing. Also 
note that 
ProductListHandler
has two optional 
properties, 
refreshInventoryDataSuccessURL
and 
refreshInventoryDataErrorURL
, which 
you can set to redirect the user when the handle 
method succeeds or fails, respectively. 
handleRemoveCategory 
Removes all entries for the category specified by 
categoryID
and 
siteID
from the product 
comparison list. 
handleRemoveEntries 
Removes the list entries whose ids are specified in 
entryIds
from the product comparison list. 
handleRemoveProduct 
Removes the product specified by 
productID
from 
the product comparison list, applying the optional 
category, SKU, and site information if supplied in 
categoryID
skuID
, and 
siteID
respectively. 
handleRemoveProductAllSkus 
Removes all entries for the product specified by 
productID
and 
siteID
from the product 
comparison list. 
handleSetProductList 
Sets the product comparison list to the products 
specified by 
productIDList
, applying optional 
category information if supplied in 
categoryID
and the default SKU for each product, if any. 
handleSetProductListAllSkus 
Sets the product comparison list to contain all the 
SKUs for all the products specified by 
productIDList
, applying optional category 
information if supplied in 
categoryID
The behavior of 
ProductListHander
’s handle methods parallels that of 
ProductComparisonList
Namely, optional category and SKU information is managed in the same way. If a product’s category 
information isn’t specified in 
categoryID
, then the form handler looks for the default category of the 
product. If no default value exists, then the property is set to null. Similarly, if a product’s SKU information 
isn’t specified in 
skuID
, then the form handler looks for the product’s first child SKU (that is, the default 
SKU). If no default value exists, then the property is set to null. 
For additional information on 
ProductListHandler
’s methods, refer to the ATG API Reference. For 
examples of how page developers can use 
ProductListHandler
in JSPs to manage product comparison 
ATG  C om merce  P ro gra mm in g  G ui d e 
13 2  
8 -  C o n fi g u rin g   C om merce  Serv ices  
lists, refer to the Implementing Product Comparison chapter of the ATG Commerce Guide to Setting Up a 
Store
Using Product Comparison Lists in a Multisite Environment 
If you are using ATG’s multisite feature, you may want to provide users with the ability to compare 
products across multiple sites. You do not need to do any additional configuration to use this feature; the 
ProductComparisonList
is registered as a shareable component by default and works the same way in 
a multisite environment as in a single site. The 
ProductComparisonList
ProductComparisonList.Entry
, and 
ProductListContains
classes are all site-aware by default. 
Note: The product comparison list does not prevent users from adding the same product to a list from 
different sites. 
The shareable Nucleus component that refers to the 
ProductComparisonList
is located at 
/atg/commerce/ShoppingCartShareableType
. By default, the 
ProductComparisonList
is 
registered as a shareable component: 
id=atg.ShoppingCart 
paths=/atg/commerce/ShoppingCart,\ 
/atg/commerce/catalog/comparison/ProductList 
See the ATG Multisite Administration Guide for information on shareable components and how to use 
sharing groups in your multisite configuration. 
Extending the Product Comparison System 
As previously described, the 
Entry
object maintains category, product, SKU, site, and inventory 
information in a single object. 
ProductComparisonList
maintains a list of 
Entry
objects, with each 
Entry
object representing a product that the user has added to her product comparison list. 
You can subclass 
ProductComparisonList
and override its 
createListEntry
method to extend the 
information stored in an 
Entry
object. Although the 
Entry
class contains convenience methods for 
setting and getting properties like 
product
category
sku
siteId
, and 
inventoryInfo
, your 
subclasses don’t need to provide similar methods for their own properties. Because 
Entry
is a subclass of 
java.util.HashMap
, you can call 
Entry.put(name
value)
to add a new property value to the 
Entry
object. The following code example illustrates this point; it stores a hypothetical value called “popularity,” 
which indicates how popular a given product is. 
public class MyProductComparisonList extends ProductComparisonList 
protected Entry createListEntry(RepositoryItem pCategory, 
RepositoryItem pProduct, 
RepositoryItem pSku), 
RepositoryItem pSiteId) 
Entry e = super.createListEntry(pCategory, pProduct, pSku, pSiteId); 
int score = computePopularity(pProduct); 
Documents you may be interested
Documents you may be interested