Link getProductEditorLink(Product product) throws RemoteException {
   Link link = ProductEditorWindow.getEditorLink(product.getID());
   link.setImage(this.iEdit);
   link.addParameter(
       ProductEditorWindow.PRODUCT_CATALOG_OBJECT_INSTANCE_ID, this.getICObjectInstanceID());
   link.setToolTip(
       this.iwrb.getLocalizedString(
           "trade.product_catalog.edit_this_product",
           "Edit this product (" + product.getProductName(this._currentLocaleId) + ")"));
   return link;
 }
 protected String getCacheState(IWContext iwc, String cacheStatePrefix) {
   Product prod = getSelectedProduct(iwc);
   //    System.out.println("[ProductCatalog] gettingCacheState");
   String returnString = cacheStatePrefix + getICObjectInstanceID();
   if (iwc.isParameterSet(CATEGORY_ID)) {
     returnString = returnString + "_" + iwc.getParameter(CATEGORY_ID);
   }
   if (prod != null) {
     returnString = returnString + "_" + prod.getID();
   }
   return returnString;
 }
 public Link getNameLink(Product product, PresentationObject nameText, boolean useAnchor)
     throws RemoteException {
   Link productLink;
   if (this._productIsLink) {
     if (useAnchor) {
       productLink = new AnchorLink(nameText, getAnchorString(product.getID()));
     } else {
       productLink = new Link(nameText);
     }
     productLink.addParameter(ProductBusinessBean.PRODUCT_ID, product.getID());
     if (this._productLinkPage != null) {
       productLink.setPage(this._productLinkPage);
     } else if (this._windowString != null) {
       productLink.setWindowToOpenScript(this._windowString);
     }
     if (this._addCategoryID) {
       try {
         if (this.productCategories != null
             && this.productCategories.size() > 0
             && this._useParameterCategory) {
           List list = this.productCategories;
           if (list != null) {
             Iterator iter = list.iterator();
             while (iter.hasNext()) {
               productLink.addParameter(CATEGORY_ID, ((ICCategory) iter.next()).getID());
             }
           }
         } else {
           List list = getProductBusiness().getProductCategories(product);
           if (list != null) {
             Iterator iter = list.iterator();
             while (iter.hasNext()) {
               productLink.addParameter(CATEGORY_ID, ((ProductCategory) iter.next()).getID());
             }
           }
         }
       } catch (IDORelationshipException e) {
       }
       // productLink.addParameter(CATEGORY_ID,product.g);
     }
     return productLink;
   } else {
     return null;
   }
 }
 PresentationObject getNamePresentationObject(Product product, boolean useCategoryStyle)
     throws RemoteException {
   return getNamePresentationObject(
       product, product.getProductName(this._currentLocaleId), useCategoryStyle);
 }
  public PresentationObject getCatalog(
      ProductCatalog productCatalog, IWContext iwc, List productCategories)
      throws RemoteException, FinderException {
    this.localeID = iwc.getCurrentLocaleId();
    this.locale = iwc.getCurrentLocale();
    this.defaultLocale = iwc.getIWMainApplication().getSettings().getDefaultLocale();
    this.defaultLocaleID = ICLocaleBusiness.getLocaleId(this.defaultLocale);

    Table table = new Table();
    table.setWidth("100%");
    table.setCellspacing(1);
    table.setCellpadding(2);

    Collection products = productCatalog.getProducts(productCategories);
    Iterator iter = products.iterator();
    Iterator catIter = productCategories.iterator();

    int row = 1;
    int column = 1;
    int imageColumn = 1;

    Hashtable metaDataTypes = new Hashtable();

    table.add(
        productCatalog.getHeader(
            productCatalog.iwrb.getLocalizedString("product.product", "Product")),
        column++,
        row);
    List metadataKeys = new Vector();
    String[] metadata = new String[10 + column];

    while (catIter.hasNext()) {
      ICCategory element = (ICCategory) catIter.next();
      metaDataTypes.putAll(
          getCategoryService(iwc).getInheritedMetaDataTypes(element.getMetaDataTypes(), element));
    }

    if (!metaDataTypes.isEmpty()) {
      Set set = metaDataTypes.keySet();
      Iterator setIter = set.iterator();
      while (setIter.hasNext()) {
        String key = setIter.next().toString();
        if (!metadataKeys.contains(key)) {
          metadataKeys.add(key);
          metadata[column] = key;
          table.add(
              productCatalog.getHeader(productCatalog.iwrb.getLocalizedString(METADATA + key, key)),
              column++,
              row);
        }
      }
    }
    imageColumn = column;
    table.add(
        productCatalog.getHeader(
            productCatalog.iwrb.getLocalizedString("product.images", "Images")),
        column++,
        row);
    table.setRowColor(row, productCatalog.getHeaderBackgroundColor());

    Product product;
    String key;
    String meta;
    Locale localeInUse;
    int localeIDinUse;
    while (iter.hasNext()) {
      ++row;
      product = (Product) iter.next();

      if (null == product.getProductName(this.localeID, null)) {
        localeInUse = this.defaultLocale;
        localeIDinUse = this.defaultLocaleID;
      } else {
        localeInUse = this.locale;
        localeIDinUse = this.localeID;
      }

      if (productCatalog.hasEditPermission()) {
        table.add(productCatalog.getProductEditorLink(product), 1, row);
      }
      table.add(
          productCatalog.getNamePresentationObject(
              product, product.getProductName(localeIDinUse), false),
          1,
          row);
      for (int i = 0; i < metadata.length; i++) {
        key = metadata[i];
        if (key != null) {
          meta = product.getMetaData(METADATA + key + "_" + localeInUse.toString());
          if (meta != null) {
            table.add(productCatalog.getText(meta), i, row);
          }
        }
      }

      // Collection coll = getEditorBusiness(iwc).getFiles(product);
      Collection coll;
      try {
        coll = product.getICFile();
        Iterator images = coll.iterator();
        Image image;
        int counter = 0;
        while (images.hasNext()) {
          ++counter;
          try {
            image =
                new Image(
                    new Integer(((ICFile) images.next()).getPrimaryKey().toString()).intValue());
            Window window = new Window(image);

            Link link = new Link(productCatalog.getText(Integer.toString(counter)));

            if (productCatalog._iconPhoto != null) {
              link = new Link(productCatalog._iconPhoto);
            }

            link.setWindow(window);

            table.add(link, imageColumn, row);
            table.add(productCatalog.getText(Text.NON_BREAKING_SPACE), imageColumn, row);
          } catch (Exception e) {
            e.printStackTrace(System.err);
          }
        }
      } catch (IDORelationshipException e1) {
        e1.printStackTrace();
      }

      table.setRowColor(row, productCatalog.getBackgroundColor());
    }

    return table;
  }