Skip to main content
15-Moonstone
May 26, 2016
Solved

ComponentConfigBuilder and ComponentDataBuilder

  • May 26, 2016
  • 1 reply
  • 2079 views

Hi All,

I had seen like what ComponentConfigBuilder and ComponentDataBuilder Interfaces in Windchill Customization Guide and the method that are in that interface.

However can anyone share one sample program with an example on how to implement these interfaces. As I had seen in the customization guide there was an example on how to set the values etc. But can any one share any other code or an example like where we can implement ComponentConfigBuilder and ComponentDataBuilder Interfaces.

Thanks in advance.

Best Regards,

Aditya Achanta

Best answer by satre-2

Aditya

below is one example of extending AbstractComponentBuilder class which implements  ComponentConfigBuilder and ComponentDataBuilder Interfaces

Hope it helps !!!

package ext.sra.mvc;

@ComponentBuilder("ext.sra.PartSearchBuilder")

public class PartSearchBuilder extends AbstractComponentBuilder {

  private static int level = 1;

  @SuppressWarnings("deprecation")

  @Override

  public Object buildComponentData(ComponentConfig config, ComponentParams params) throws Exception {

  ObjectVector result = new ObjectVector();

  String topLevelPartCriteria = (String) params.getParameter("oid");

  String name = (String) params.getParameter("name");

  JcaComponentParams localJcaComponentParams = (JcaComponentParams) params;

  HashMap<String, Object> map = localJcaComponentParams.getHelperBean().getNmCommandBean().getText();

  for (Iterator<String> itr = set.iterator(); itr.hasNext();) {

  String n = itr.next();

  System.out.println(n + "----" + map.get(n));

  }

  System.out.println("--AAA--" + localJcaComponentParams.getHelperBean().getNmCommandBean().getPageOid());

  System.out.println("--" + topLevelPartCriteria);

  System.out.println("--" + params.getAttribute("oid"));

  System.out.println("--" + params.getContextObject());

  wt.fc.ReferenceFactory oid = new wt.fc.ReferenceFactory();

  wt.fc.WTReference ref = oid.getReference(localJcaComponentParams.getHelperBean().getNmCommandBean().getPageOid().toString().split("~")[0]);

  NavigationCriteria nc = new NavigationCriteria();

  nc.setConfigSpecs(Arrays.asList(new LatestConfigSpec()));

  WTPart part = (WTPart) ref.getObject();

  QueryResult qr = new QueryResult();

  getStructure(part, nc, 1, qr);

  return qr;

  }

  @Override

  public ComponentConfig buildComponentConfig(ComponentParams params) throws WTException {

  ComponentConfigFactory factory = getComponentConfigFactory();

  TableConfig table = factory.newTableConfig();

  table.setLabel("MBOM");

  table.setType("wt.part.WTPart");

  // make row indd the table selectable

  table.setSelectable(true);

  table.setActionModel("shreyas_toolbar");

  ColumnConfig col = factory.newColumnConfig("Name", false);

  table.addComponent(col);

  table.addComponent(factory.newColumnConfig("Level", false));

  table.addComponent(factory.newColumnConfig(INFO_ACTION, false));

  table.addComponent(factory.newColumnConfig("Quantity", false));

  return table;

  }

}

Thanks

Shreyas

1 reply

satre-21-VisitorAnswer
1-Visitor
May 26, 2016

Aditya

below is one example of extending AbstractComponentBuilder class which implements  ComponentConfigBuilder and ComponentDataBuilder Interfaces

Hope it helps !!!

package ext.sra.mvc;

@ComponentBuilder("ext.sra.PartSearchBuilder")

public class PartSearchBuilder extends AbstractComponentBuilder {

  private static int level = 1;

  @SuppressWarnings("deprecation")

  @Override

  public Object buildComponentData(ComponentConfig config, ComponentParams params) throws Exception {

  ObjectVector result = new ObjectVector();

  String topLevelPartCriteria = (String) params.getParameter("oid");

  String name = (String) params.getParameter("name");

  JcaComponentParams localJcaComponentParams = (JcaComponentParams) params;

  HashMap<String, Object> map = localJcaComponentParams.getHelperBean().getNmCommandBean().getText();

  for (Iterator<String> itr = set.iterator(); itr.hasNext();) {

  String n = itr.next();

  System.out.println(n + "----" + map.get(n));

  }

  System.out.println("--AAA--" + localJcaComponentParams.getHelperBean().getNmCommandBean().getPageOid());

  System.out.println("--" + topLevelPartCriteria);

  System.out.println("--" + params.getAttribute("oid"));

  System.out.println("--" + params.getContextObject());

  wt.fc.ReferenceFactory oid = new wt.fc.ReferenceFactory();

  wt.fc.WTReference ref = oid.getReference(localJcaComponentParams.getHelperBean().getNmCommandBean().getPageOid().toString().split("~")[0]);

  NavigationCriteria nc = new NavigationCriteria();

  nc.setConfigSpecs(Arrays.asList(new LatestConfigSpec()));

  WTPart part = (WTPart) ref.getObject();

  QueryResult qr = new QueryResult();

  getStructure(part, nc, 1, qr);

  return qr;

  }

  @Override

  public ComponentConfig buildComponentConfig(ComponentParams params) throws WTException {

  ComponentConfigFactory factory = getComponentConfigFactory();

  TableConfig table = factory.newTableConfig();

  table.setLabel("MBOM");

  table.setType("wt.part.WTPart");

  // make row indd the table selectable

  table.setSelectable(true);

  table.setActionModel("shreyas_toolbar");

  ColumnConfig col = factory.newColumnConfig("Name", false);

  table.addComponent(col);

  table.addComponent(factory.newColumnConfig("Level", false));

  table.addComponent(factory.newColumnConfig(INFO_ACTION, false));

  table.addComponent(factory.newColumnConfig("Quantity", false));

  return table;

  }

}

Thanks

Shreyas