Passing Method to Mydeclarative Component
dear All
i can pass facets,Attributes to my Declartative component , but i failed to pass the methods.
can any one help ?
thanks
Hi,
did you read [url http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html]ADF Code Corner.
*024. How-to build a reusable toolbar with Oracle ADF Declarative Components*
"In the Create JSF Declarative Component dialog, click on the Methods tab and enter the names or the parameters: each method relating to a navigation action. You should also define the signature of the method you plan on hooking up to these parameters. For an ADF Action binding (which is what the various Next, Previous actions are) the type is:
javax.faces.event.ActionEvent"
Edited by: Martin on 23.01.2011 20:13
Similar Messages
-
Not able pass the data from component to other component.
Hello All
I am not able pass the data from component to other component.
I have done like this.
1 Main Component (Parent component ) having below two child components.Embeded as used components.
2) Search Component and Details Component
3) In the Search Component having buttons, Say : Button u201CXu201D on click of button I am navigating to Details component view through FPM.
4) When I am clicking above button u201CXu201D raising the event to call the parent business logic method, there I am getting Structure with values and binded this structure to the node and Mapped this node to the Details component interface node. FYI : I kept the debugging point Structure is having data , I had set static attributes table to node instance.
5) In the Details component node data is not coming mean empty.
Thanks in Advance.
Br-
CW
Edited by: CarlinWilliams on Jul 4, 2011 9:21 AMHi,
When you use input Ext. check that the parent component should not be used as used component in child component.
Only in the parent component the child components should be used as used components and the usage has to be created for the
Child Components and the binding of the Node should be done from comp. controller of parent component to child node
by which you will be able to see double arrow against the node.This should work
Thanks,
Shailaja Ainala. -
Create interface method in standard component.
Hi Experts,i want to enhance standard component.in that i created one attribute and i used in my component.For that attribute the value is passing from some other component.i try to create interface method in standard component.but it is not possible.so please help me out this issue.
Regards
prasadHi,
No, You cannot create Interface Methods/Nodes in Standard Component by Enhancing. I would suggest to create a Singleton class and create your method in that class and can access across components.
Regards,
Kiran -
Pass values between two component
Hi,
I have createed ZGAF_COMP1 having one context node COMP1_NODE and one context attribute ATTR_COMP1, ZGAF_COMP2 having one context node COMP2_NODE and one context attribute ATTR_COMP2.
Then I have created required component conf. and appl conf based on FPM_GAF_COMPONENT and FPM_IDR_COMPONENT.
now what have I need to do to pass the value of ATTR_COMP1 to the second component?
any help will be appreciated.
Thanks,
-HareshHi,
You can use shared data component to pass your data from one component to other component
Each component which wants to use a shared data component needs to declare a usage to the shared data component. The lifecycle handling is now handled completely by the FPM. Whenever a component is instantiated by the FPM (e.g. a UIBB which is
configured for a given screen), the FPM analyzes all usages of that component. If it detects a usage pointing to a component which implements the IF_FPM_SHARED_DATA interface, a singleton of this shared data component is automatically attached to the usage.
please follow the below steps to perform data transfer
Create a component which implements the IF_FPM_SHARED_DATA interface.
This component contains methods to retrieve data from the business logic and
exposes the extracted UI data via its Web Dynpro context or interface
methods.
Each component accessing this shared data defines a usage of the shared data
component. This usage is automatically instantiated by the FPM.
The consuming component can now communicate with the shared data
component via Web Dynpro context mapping, attribute access or method calls.
Thanks
Senthil -
How to modify a java method in Folder component
Hi,
I need to add some custom java code after a java method in Folder component (I am using UCM 10g, the java method is "buildResultSet" in service "COLLECTION_COPY_LOT").
I defined service handler as described in Bex's book. My static table is:
<@table custom_ServiceHandler@>
<tr>
<td>serviceName</td><td>handler</td><td>searchOrder</td>
</tr>
<tr>
<td>Service</td><td>myPackage.MyClass</td><td>1</td>
</tr>
</table>
Java code is :
package myPackage
public class MyClass extends ServiceHandler {
public void buildResultSet() trows DataException,ServiceException
............. mu custom code
m_service.doCodeEx("",this);
If a change java method to addFiles and in static table Service to DocService, when i execute Checkin_new service it executes my custom code. I tried to change to loadorder, but have no success.
Pls someone to tell me how can i modify this method or any other java method in "COLLECTION_COPY_LOT" service. Do i have to make some additional settings ? What other ways to modify java methods i should try ?
I hope someone who has done someything like this to help me out.
Thanks in advanceA service handler might be the right way to run some code at the end of a service call (another way would be to make use of filters).
First, make sure your static table is merged with ServiceHandlers.
Secondary, change your custom method name into one that is not already in the service definition of COLLECTION_COPY_LOT (preferably a unique method name like collectionCopyLotLastAction that describes its purpose) and remove the following line from your code:
m_service.doCodeEx("",this);Now create a service definition for COLLECTION_COPY_LOT in your custom component based on the original COLLECTION_COPY_LOT (copy paste from the original service definition) and add you own method collectionCopyLotLastAction as the last step in the service. Play with the load order to make sure CS is using your service definition of COLLECTION_COPY_LOT instead of the original.
regards,
Fabian -
Could not resolve method to a component implementation
Hello,
I have created an action script class extending httpservice while using in mxml page i am trying to set some requests.
Example
<Utils:CustomHTTPService id="httpGetAllStations" url="Stations.aspx" method="POST" resultFormat="e4x"
result="httpGetAllStationsResultHandler(event)" fault="httpGetAllStationsFaultHandler(event)">
<Utils:request>
<method>{onMove}</method>
</Utils:request>
</Utils:CustomHTTPService>
but this line (<method>{onMove}</method>) throws error(Could not resolve <method> to a component implementation).
How can i resolve this?
Thanks in Advance.yeah, i know that
are you sure you have xmlns:mx="xmlns:mx="http://www.adobe.com/2006/mxml" -
Copying methods from one component controller to other ?
Hi,
I have many methods in one component controller, which i wish to copy to another component controller through standard buttons. When i try to copy them, it says 'The method or methods are copied to the clipboard'. But, i was unable to copy them to another component's componentcontroller. It says as 'The clipboard' doesnot contain data. Can someone help me in providing solution in copying all the methods in one shot to other ?
Thanks & Regards,
Gaurav.Hi,
I think You are trying it to paste after making new method in the other component directly with the help of Cntrl+V
I am able to do same by using copy and paste buttons.
First go to method tab and copy it then go in methods tab in which you want to paste click where we create for new method and click standard button for paste.
By this way the name of the methods will be same. But if you want that you can rename it.
I hope it helps.
Regards,
Rohit -
Methods in the Component controller
Hello,
When is better call a method in the component controller, than run only a viewu2019s method?
In other words, what kind of methods should to be in the component controller and what kind of methods should to be in the view?
Could you give me some examples?
Regards
Janethhi
The EventHandler methods like on Action<actionname>() and methods to fire plugs we will generally used in view controllers.
If we want to intialise any attributes we will do it in WdDoInit() method of view Controller.
Generally its not preferrable to write business logic which is used by many components like service contoller generated methods in a view.
Its a good way to use Service Controller methods like execute<bapiname> in Component Controller.
For Dynamic Generation of UiElements we will use the WdDoModifyView(..) we use it in View.
Regards
sowmya. -
How to pass control from one component to other component
Hi,
I have a requirement to pass control from one component to other component.
Here is my requirement.. l have two portal components, one is search component and other is result component. I have this search component as quick navigation iView where we can enter a value and results will display in results iView, it's a main iView.
When search view gets the results, I will display the count in search view and result in results view. .i.e.. both the iviews are viewed at any time.
Can any one advise me how to acheive this.
Thanks,
Chinna.Hi Sandeep,
Thanks for the reply. I have gone through the EPCF API, and tried with doNavigate('iViewName').
when I click on the button in search view (quikc navigation frame), instead of page getting refreshed in result iView, whole page is replaced by results iview. I want only search view and results view gets refreshed.
can you please tell me which even should I use for this scenario...
Thanks,
Chinna -
Javascript enabling and using JS methods on TextEdit component
Hello Friends:
I am working to display data using TableView component.
In each row, one of the cell contains a group of radio
buttons and an other cell contains TextEdit component.
For an event on the group of radio buttons, the TextEdit
should flip editable to non-editable and vice-versa.
I am using the TextEdit attribute method,
<b>setJsObjectNeeded(true)</b>
to expose the JavaScript methods of the component.
I am using the following bits of code for accessing the
TextEdit JavaScript functionality.
var funcName = htmlb_formid+"_getHtmlbElementId";
func = window[funcName];
var text_edit_comp = eval(func(id_of_textedit));
<b>text_edit_comp.setEnabled()</b>;
Whole thing works as planned, but it is not possible to
disable or enable the TextEdit component using the
JavaScript, as shown above.
In the portal documentation, the JavaScript object
methods were mentioned only for certain components, NOT
including TextEdit !!
If I replace TextEdit with InputField, it works perfectly
as like needed.
How to hack it to work for TextEdit ?
Thank you very much for your kind answers.
Prasad NutalapatiI did use the suggestion. No use.
When I say,
var textedit = eval(func("<id-of-the-textedit-from-java"));
I am getting the object reference.
When I say,
<b>var id = textedit.id;
var elem = document.getElementById(id);</b>
I am getting the HTML name/id and object of the text edit.
Now when I use JS methods and properties,
alert("type="+elem.type);
alert("name="+elem.name);
I get them back correctly.
Then when I say,
<b>alert("disable ?"+ document.forms[0].elements[elem.name].disabled;</b>
I am getting answer as 'false' which is not correct. It
is initially disabled, when I defined with Java.
And subsequently, when I say,
<b>document.forms[0].elements[elem.name].disabled = false;</b>
It didn't affect it at all.
If I try to use the JS methods provided by Portal, like..
<b>textedit.setEnabled();</b>
It is giving an JS error saying that the object doesn't
have that method. -
Passing control across portal component
Hi Gurus,
I have a portal componenet A , on clicking a button of the jsp of the compoenent A,
I open a new window in a javascript function of jsp of A .
window.open();
in this window I open a jspdynpage portal component B.
On click of a button in the jsp of B , I want
i) To invoke a function in the controller of component B (easily done)
ii) Close the window (I can close the window through window.close , but the issue is I want to close teh window after i) happend and i) happens through a server side event , which is fired after teh client side event)
iii) pass the control to component A , such that PBO is fired once to show the updated content.the only solution is to use POM.
See PRT Guide for a very short explanation of this.
Unfortenately POM was never released public, so you have to find out yourself how it works.
BR, Oliver -
How to pass data from one component to other component.
Hi,
I have created a table view in Item Details Page Under Price Agreement Assignment Block. Price Agreement Assignment Block has one table as standard. I have created one more view Under the Assignment block of Price agreement(CRMCMP_CND). In that view I have an option to enter data when the user click on edit. In that custom view, If user cnages to edit mode and enter data. it has to save when user click's on save button in Quotation page(BT116QH_SRVQ). From Quotation page user clicks on item to get the Item details. In the Item details there is an Price Agreement Assignment Block. In that Custom view was created and assigned to it. Data entred in that view needs to be stored when user clciks on Save button on Quotation page when he comes back. How to get the custom view data from CRMCMP_CND to BT116QH_SRVQ). Please advice. Thanks In Advance.Hi Satish,
Global custom controllers are not available everywhere. So before using them please make sure that they are available for your case.
http://sapdiary.com/index.php?option=com_content&view=article&id=2402:sap-network-blog-interaction-center-global-custom-controllers&catid=81:data-services&Itemid=81
if you find problems in navigating data using component controllers then you can also navigate it through navigation links.
If you see your outbound plug method op_xxxxx, then there is a method call to navigate method. This method has an option to pass your data collection. Pass your data collection and also inbound plug so that in target component you can read and temporarily store data as soon as you hit target component.
Hope that helps,
BJ -
Calling a method in a component from main application
Hi,
I have a mxml component( menu1.mxml) . In the menu1.mxml
there is a include for the actionscript file(menu1.as). In the main
application page(SampleLogin.mxml) I want to call the method in the
btnSubmit_Click() on the saveIndex() method for case 0. I am
attaching all the code belowcase 0:
menuOne.btnSubmit_Click( );
break;
Also it would probably be following best practices to used a
custom event to pass the information in your "LoginButton_Click()"
function to the application. -
Calling a method in Parent component from Title Window
Hi all,
I have a parent component that opens up a Title window when I
click a button. Now I want to call a method in that parent
component from the Title window. How do I do this in Flex? Could
anyone give me a hint please.
Thank you in advance for the help"happybrowndog" <[email protected]> wrote in
message
news:gctmql$4t5$[email protected]..
> That's goddamned ridiculous. What were Flex developers
thinking that you
> have
> to write a custom event to call back to a parent
component?? Other GUI
> libraries such as WxWidgets, Fox, Qt, Delphi, MFC,
WinForms, etc., all
> allow
> you to either call via a reference to the parent object
or submit a
> callback
> function into the child object. That's just basic OO
programming. Flex
> is
> looking more and more ridiculous and more like Swing -
tons of unnecessary
> coding to do simple things.
You absolutely _do_ have the capability to pass in a
reference to the parent
component, or to create a "hard" reference to
Application.application. But
these are not recommended practices, because anything you
create this way is
then tied to an environment that implements those properties
and methods.
Q (3): I want to run a function in my main application from
inside my
custom component. But when I try to refer to myFunction() in
that
component, I get a compile time error Call to a possibly
undefined function
myFunction. How can I fix this?
A: Your component has its own scope, so it doesn't know
anything
about the functions in the main file. You can get around this
by directly
referencing the main application scope like this:
Application.application.myFunction(). However, this makes
your component
tightly coupled, which is a quick way of saying that your
component is only
usable in an application that has a myFunction() function in
it. You're
better off dispatching an event from your component and
letting the
application decide how to handle it. For more information,
check out the
following resources:
http://www.adobe.com/devnet/flex/articles/loose_coupling.html
http://www.adobe.com/devnet/flex/articles/graduating_pt1.html
From
http://www.magnoliamultimedia.com/flex_examples/Amys_Flex_FAQ.pdf -
Problem passing values to cfc component
I have a cfc component with methods to insert, retrieve and
update a record in a table. There are several forms associated with
the component, each which handles a subset of the fields in the
table. The update method is called with arguments that identify
which subset of fields is to be modified and the values for those
fields.
The forms typically have a couple of radio button groups and
a couple of lists, most of which allow multiple selections. I want
to create a variable for each radio button group and each list. The
variables give the button selected (for the buttons) and a string
of the values selected (for the lists). These are to be passed as
arguments to the update method.
I can construct the variables using standard Java script
statements (if, for,etc.). But if I do, CFINVOKEARGUMENT doesn't
recognize them. The same thing happens if I try to use CFQUERY
directly. I get a message like "variable is undefined". If I try to
set the values using CFSET statements, it doesn't recognize the
form fields. It says the field is not an element of the form.
So I can look at the form fields to create a variable but
then the variable can't be used by the update method. Or I can
create an argument that can be passed to update, but it doesn't
know anything about the form values. I've tried all variations I
can think of with and without #'s and single & double quotation
marks.
Suggestions would be appreciated.See in line comments.
waz69 wrote:
> Sorry for the delayed response...I was pulled away right
after I posted my
> problem. Here are extracts from the code. I've only
included the sections
> that deal with updating the table.
>
> In the CFC file:
>
> <cffunction access="public" name="SaveFormValues"
output="false"
> returntype="boolean">
> <cfargument name="Screen" type="string"
required="yes">
> <cfargument name="Arg1" type="string"
required="yes">
> <cfargument name="Arg2" type="string"
required="yes">
> <cfargument name="Arg3" type="string"
required="yes">
> <cfargument name="Arg4" type="string"
required="no">
> <cfargument name="Arg5" type="string"
required="no">
> <cfargument name="Arg6" type="string"
required="no">
> <cfset var isSuccessful=true>
> <cftry>
> <cfquery name="SaveValues" datasource="FPDS
Sample">
> UPDATE Report_specs SET
> <cfif arguments.Screen EQ "Scope">
> ReportOn = '#arguments.Arg1#',
> SubtotalGroup = '#arguments.Arg2#',
> Projects = '#arguments.Arg3#',
> Sites = '#arguments.Arg4#'
> </cfif>
> <cfif arguments.Screen EQ "Criteria"> (,,code goes
here for next set of
> fields...) </cfif>
> <cfif arguments.Screen EQ "Table"> (,,code goes
here for next set of
> fields...) </cfif>
> <cfif arguments.Screen EQ "Chart"> (,,code goes
here for next set of
> fields...) </cfif>
> <cfif arguments.Screen EQ "Detail"> (,,code goes
here for next set of
> fields...) </cfif>
> WHERE Report_specs.rid = #Session.FPRU_rid#
> </cfquery>
> <cfcatch type="Database"><cfset
isSuccessful=false></cfcatch>
> </cftry>
> <cfreturn isSuccessful />
> </cffunction>
>
> In the CFM file:
>
> <head>
> <script language="JavaScript">
>
> function SaveValues(frm) {
> var RptOn="", SubGrp="", SL="", PL="" ;
> for(var i=0; i<3; i++)
> {if(frm.ReportOn
.checked) RptOn = frm.ReportOn.value ;
> if(frm.SubtotalGroup
.checked) SubGrp = frm.SubtotalGroup.value ; } ;
> for(i = 0; i < frm.Projects.options.length; i++)
> {if(frm.Projects.options
.selected ) PL = PL + ', ' +
> frm.Projects.options.value ; } ;
> for(i = 0; i < frm.Sites.options.length; i++)
> {if(frm.Sites.options
.selected ) SL = SL + ', ' +
> frm.Sites.options.value ; } ;
>
> ...(This is the section where I'm having problems. I
have the values I want
> to pass the variables just defined.
> But I can't get them into the CFINVOKEARGUMENT
statements below. I've
> tried variations of #'s, CFSETS, etc.)...
>
> <cfobject component="RecordAccess"
name="SaveValues">
> <cfinvoke component="#SaveValues#"
method="SaveFormValues" >
> <cfinvokeargument name="Screen" value="Scope">
> <cfinvokeargument name="Arg1" value="RptOn">
> <cfinvokeargument name="Arg2" value="SubGrpr">
> <cfinvokeargument name="Arg3" value="PL">
> <cfinvokeargument name="Arg4" value="SL">
> </cfinvoke>
> }
>
> </script>
> </head>
This is never going to work. JavaScript is executed on the
client's
computer in the browser. It is no idea of what is CFC is or
how to
access one. The cfc lives on the server, it can only exist
and run
while the http request is being built by the CF engine.
>
> <body onFocus="GetValues(this.form)" >
>
> <form action="" method="post" name="ScopeDetail"
id="ScopeDetail">
> <table width="85%" border="0" cellspacing="2"
cellpadding="2">
> <tr>
>
> ...(various buttons)...
>
> <td width="8%"><input name="SaveForm"
type="button" id="SaveForm"
> onclick="SaveValues(this.form)"
value="Save"></td>
>
> ...(other buttons)...
>
> </table>
>
> <table width="96%" border="0" cellspacing="2"
cellpadding="2">
> <tr>
> ...(column headers)...
> </tr>
>
> <tr>
> <td rowspan="3" align="right"
valign="top"> </td>
> <td height="110" colspan="2" align="right"
valign="top"><div
> align="left">
> <p>
> <label> <input name="ReportOn" type="radio"
value="Users" checked>
> Unique users</label>
> <br>
> <label> <input type="radio" name="ReportOn"
value="AllVisits"> All
> visits</label>
> <br>
> <label> <input name="ReportOn" type="radio"
value="LastVisit"> Last visit
> only</label>
> <br>
> </p>
> </div></td>
> <td rowspan="3" valign="top"> </td>
> <td colspan="3" rowspan="3"
valign="top"><p><select name="Projects"
> size="10" multiple id="Projects"
onChange="getSites(this.form)"><cfoutput
> query="ProjectList">
> <option
>
value="#ProjectList.projectid#">#ProjectList.projectname#</option>
> </cfoutput></select></p></td>
> <td width="3%" rowspan="3"
valign="top"> </td>
> <td width="34%" rowspan="3"
valign="top"><select name="Sites" size="15"
> multiple id="Sites">
> <option> ---------------------------------------
</option>
> </select></td>
> <tr>
> <td height="23" colspan="2" align="right"
valign="top"><div align="left">
> <h3>Show Summaries of </h3>
> </div></td>
> <tr>
> <td height="100" colspan="2" align="right"
valign="top"><div
> align="left">
> <label> <input name="SubtotalGroup"
type="radio" value="Both" checked>
> Project & Sites</label>
> <br>
> <label> <input type="radio"
name="SubtotalGroup" value="Projects">
> Projects only</label>
> <br>
> <label> <input type="radio"
name="SubtotalGroup"
> value="Sites"> Sites only</label>
> </div></td>
>
> </table>
> </form>
> </body>
waz69 wrote:
> I tried creating hidden fields to which I assign my
desired values. The
> CFINVOKEARGUMENTs then become:
>
> <cfinvokeargument name="Arg1" value=frm.Hide1>
> <cfinvokeargument name="Arg2" value=frm.Hide2>
> etc.
>
> What ends up in the table is the name of the field
(frm.Hide1) not
the value
> of the field. I've also tried with with quotes (single
and double)
which give
> the same result and with #'s which gives me an error
about undefined
element.
>
This is what your are going to need to do. But the javascript
form
object no longer exists once the request has been sent to the
server.
After that you are dealing with the "form" structure. So your
arguments
are going to look something like.
<cfinvokeargument name="Arg1" value="#form.Hide1#">
OR interchangeably
<cfinvokeargument name="Arg2" value="#form['Hide2']#">
When blending JavaScript and ColdFusion, one must be
constantly aware of
the order of actions. JavaScript can only run and exist on
the client,
it has no direct knowledge of any ColdFusion variables or
logic.
Vice-a-versa, ColdFusion only runs and exists on the server.
It has no
direct knowledge of the Client or its state.
To blend the two you have to carefully pass any required,
shared
information from one location to the other.
Maybe you are looking for
-
IPhone app store downloading problem
I have iPhone app store downloading problem (iOS 5). I could not download or update any software successfully from yesterday. Every app shows "waiting for download" but nothing happen for two days. It seems my app store does not connect to server. I
-
Sending Files from a server to a client (PrintWriter)
I've only been using Java for a few months and this may be in the wrong forum (sorry if it is)... but I've run into a bit of a problem. I've recently been asked to create Excel files using database records and output a file (HTML table) to a client's
-
Repaint problem while clicking the popup menuitem
Hi all, iam facing repainting problem in my application. User can initiate a single action from different options such as JButton, double-click of mouse and clicking the menu item form the JPopupMenu. All these will execute the same code. But when ia
-
SXMB_ADM for setting Integration server configuration
Hi, Default client 001 is set as integration server. Can anyone suggest whether it is recommened to use this 001 as integration server or we can use a new client say 200 as integration server. Thanks and Regards, Sailesh K
-
Filling select-option dynamically
Hi, I have two radio buttons. I want to fill the select-options (account group ktokk) when i click a radio button. I tried to fill them at INITIALIZATION event. But it is not working. Is it possible to do so. Please answer my question. Thanks Rekha