Skip to main content
11-Garnet
April 22, 2016
Question

Remove details page tabs for reference document sub type

  • April 22, 2016
  • 1 reply
  • 937 views

We have configured a sub type of reference document and would like to remove some of the default tabs for this type.  The tabs we want to remove are Details, Structure, Content, Changes, and History.  We have done this previously but the tab we removed was applied to all types.  In this case, it is only for the sub type.   Is it possible to do this?

--Kirk Wemple

1 reply

16-Pearl
April 25, 2016

Hi Kirk,

Instead of removing the tabs from action*.xml file, I would prefer using a validator to hide the tabs. You can refer to customization guide page 440 for more details

http://support.ptc.com/WCMS/files/165581/en/10_2_M030_WindchillCustomizationGuide.pdf

You can use the following java for your reference.

package ext.validators;

import java.util.Locale;

import wt.fc.Persistable;

import wt.fc.WTReference;

import wt.util.WTException;

import com.ptc.core.ui.validation.DefaultUIComponentValidator;

import com.ptc.core.ui.validation.UIValidationCriteria;

import com.ptc.core.ui.validation.UIValidationKey;

import com.ptc.core.ui.validation.UIValidationResult;

import com.ptc.core.ui.validation.UIValidationResultSet;

import com.ptc.core.ui.validation.UIValidationStatus;

public class HideTabsForDocSubType extends DefaultUIComponentValidator{

  @Override

  public UIValidationResultSet performFullPreValidation(UIValidationKey arg0,

  UIValidationCriteria arg1, Locale arg2) throws WTException {

  // TODO Auto-generated method stub

  UIValidationResultSet resultSet = UIValidationResultSet.newInstance();

  UIValidationStatus status = UIValidationStatus.ENABLED;

  WTReference contextObject = arg1.getContextObject();

  Persistable persistable = null;

  if(contextObject != null && (contextObject.getObject() instanceof Persistable)){

  persistable = contextObject.getObject();

  if (persistable.getClass().isAssignableFrom(wt.doc.WTDocument.class)) {

  String s = wt.type.TypedUtility.getTypeIdentifier((wt.doc.WTDocument)persistable).toExternalForm();

  if(s.equalsIgnoreCase("WCTYPE|wt.doc.WTDocument|com.ptc.MyType")){

  status = UIValidationStatus.HIDDEN;

  }

  }

  resultSet.addResult(UIValidationResult.newInstance(arg0, status, contextObject));

  return resultSet;

  }

  return super.performFullPreValidation(arg0, arg1, arg2);

  }

  @Override

  public UIValidationResultSet performLimitedPreValidation(

  UIValidationKey arg0, UIValidationCriteria arg1, Locale arg2)

  throws WTException {

  // TODO Auto-generated method stub

  return super.performLimitedPreValidation(arg0, arg1, arg2);

  }

}

regards,

Bhushan