cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

ybulankou
Participant

How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

Hi All

Trying to add a custom action to right-click menu in Part Structure Builder (PSB)

Uncommented:

<action name="customActionGWT" type="psb"/>

in psb-actionmodels.xml

and

<action name="customActionGWT" ajax="component">

            <command class="com.ptc.cat.ui.client.action.LaunchURLAction" method="execute" url="/ptc1/psb/customAction" windowType="popup"/>

                        <supportedTypes>

                                <type value="wt.part.WTPart"/>

                                <type value="wt.part.WTPartUsageLink"/>

                                <type value="wt.part.PartUsesOccurrence"/>

                                <type value="wt.part.RTPartPathOccurrence"/>

                        </supportedTypes>     

        </action>

in psb-actions.xml

The menu item appears.

When i change command:

<command class="com.ptc.cat.ui.client.action.LaunchURLAction" method="execute" url="/ptc1/psb/customAction" windowType="popup"/>

to :

<command class="com.myCompany.MySimpleAction"/>

menu item disappears.

MySimpleAction class looks like this:

package com.myCompany;

import com.google.gwt.user.client.rpc.AsyncCallback;

import com.ptc.cat.ops.client.OperationResult;

import com.ptc.cat.ui.client.action.AbstractAction;

import com.ptc.cat.ui.client.action.ActionDefinition;

public class MySimpleAction extends AbstractAction {

    public MySimpleAction(ActionDefinition ad) {

        super(ad);

    }

    @Override

    public void run(AsyncCallback<OperationResult> ac) {

        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.

    }

   

}

Tried adding my class through adding JAR to WC/lib

and .java to WC/src and building

It is Windchill 10.2 M030

no .xconfs and .properties added or modified

jcaDebug somehow doesn't work for PSB tree menus

Does anybody know how to add a custom action class properly?

Thanks in advance!

6 REPLIES 6

Re: How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

Hello,

 

I am also facing same issue. Does anyone know how to solve this.

Custom action went disable when use custom class in <command class=""/>

Re: How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

Hello,

 

Same issue for me, with a JSP or with an existing action which calls a java class there is no problem and the menu item is visible.

When I use my own java class it went wrong.

 

@Roshni or @ybulankou did one of you found a solution?

Re: How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

Add me to the stack of devs unable to add a custom action to the PSB context menu that uses a class other than com.ptc.cat.ui.client.action.LaunchURLAction.  I'm leveraging of the 25 custom report actions to fire my popup because we have more than one action to add.

<objecttype name="psb" resourceBundle="com.company.customResourceRB">
	<action name="psbCustomReportGWT19" ajax="component">
		<command class="com.ptc.cat.ui.client.action.LaunchURLAction" method="execute" url="/ptc1/part/awesomeCustomTool" windowType="popup" />
		<!-- filters -->
	</action>
</objecttype>

 

As soon as I change the command class to my custom class, the action disappears.  The command class extends com.ptc.cat.ui.client.action.LaunchURLAction.  Refactoring my custom class to the same package as LaunchURLAction has no effect.

 

If feels like the PSB leverages a white list of acceptable action definitions.  If a new action is introduced that does not match the object type + name + command class in the list, the action is rejected.

 

Anyone?

Re: How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

I am facing the exact same issue trying to use custom class for one custom right click action. The moment i give my custom class as command class, action disappears.

Did anyone find any solution?

Tags (1)

Re: How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

I opened a case with PTC for our company.  It made it through R&D and is now closed.  Basically, to use a custom action class outside of the two provided -- LaunchURLAction and LaunchCustomURLAction -- requires recompilation of the GWT toolset from PTC, even if the custom class extends either base class.  So much for polymorphism.

 

PTC wrote:

Unfortunately, in order for you to control what the GWT action command class should do, it would need to be GWT compiled. The compilation of custom GWT code is not supported. R&D has no plans at this time to implement any changes for this issue.


@ntiwari-2I am not sure what you need your action class to do.  In my case, I needed to uniquely identify the parent of the WTPart the action was launched from.  LaunchCustomURLAction passes a parameter called "spaths" which concatenates all OIDs from the selected node up to the root, including links.  While having to parse a string generated by code that we do not control just to extract the immediate parent ID feels dirty, it does allow the tool to work and therefore the business is happy.

Re: How to add a custom action to Windchill PSB where command is not a JSP, but a custom class?

https://www.ptc.com/en/support/article/CS320109?&language=en&posno=1&q=SPR%209810813&source=search

 

There is an SPR  9810813 for this issue applies to Windchill PDMLink 11.0 to 11.2

Announcements