Call parents function

I have a class which extends CustomNode and returns a Node which is made up of a Group. This makes up a menu. However, it is produced by the main application container (called "Main") by using "Menu { }". In "Main", there is a function called "startLocal()" which I would like to call (with some parameters) from "Menu". As an example, in Action Script (very different I know), I would use parent.startLocal() Is there a way to do this in JavaFX? I have tried using "super" but this refers to the CustomNode that I am extending, not "Main".
Thanks in advance,
okey666

What you could do is have a variable in your CustomNode that is a function and then initialize the function to your Main's startLocal:
class MyCustomNode extends CustomNode {
    public-init var startLocal:function():Void;
// Main.fx
function startLocal():{
def myNode = MyCustomNode {
    startLocal: startLocal
}

Similar Messages

  • Calling parent function in override function?

    [AS]
    class Parent extends Grandfa
        override protected function display()
            //500 lines of code here
    class Child extends Parent
    private var isSquare:Boolean;
    override protected function display()
        if(isSquare)
            //child's display function
        } else {
            //call parent's display() to avoid rewrite 500 lines of code
    [/AS]
    Parent has "display()" funciton with 500 lines of code in it. Bur Child acts differently depending on a value in isSquare:Boolean. If it's true, it acts its own action; otherwise, it acts just like the parent does.
    Is there a way to act like parent in the override function without rewriting all the 500 lines of code?

    Do you actually call your classes Parent and Child or is this only Pseudo-code?
    (You shouldn´t do that if you did)
    super should provide what you are looking for.

  • IFRAME in portlet question - possible to call parent function from iframe?

    From the iframe I tried to call the parent function by doing this parent.myFunc(). I got a permission denied javascript message. Just curious if anyone has successfully done this. If so please share your thoughts and comments.

    Hi,
    You will get "Persmission denied" error due to cross site scripting. Either you need to change browser settings to allow cross site scripting or you need to make sure both the URLs fall under same parent domain like both URLs ending with "*.abc.com".
    Thanks

  • How call parent function through the module

    Hi, i want to call the function of parent application which add the module can you tell how i can do it???

    As long as you have the custom event classes accessible with import myClassDir.myClassSubdir.*;
    you should be able to create custom events with var myEvt:MyCustomClass - new MyCustomClass(); and then dispatchEvent(myEvt);
    You can communicate with the main app using mx.core.Application.applilcation or using parentDocument or parentApplication, though custom events are the way to go.
    If this post answers your question or helps, please mark it as such.

  • Can a loaded SWF call a function that lives in the parent?

    I'm building a pretty simple Flash site in AS3. There is a
    main movie (main.swf) that simply loads different swfs via buttons
    on a main nav bar. The user clicks on a MC in "main.swf" and a
    function is called, loadMyContent("section1.swf"), is called and it
    animates in nicely. Other buttons use the same function, loading
    section2.swf, section3.swf, etc.
    I've defined how "loadMyContent()" works in the the main
    movie's document class file. It's all working fine when I just need
    to load content from a user action from the buttons that live in
    "main.swf". I want to call that same "loadContent" function from
    within "section1.swf" and have "main.swf" run it's "loadContent"
    fuction, but I can't seem to figure out how to make a child call a
    function that lives in the parent.
    Is there any way of having my child do this?
    I have a suspicion I may have to define that "loadContent"
    somewhere else, but I'm a little stumped now. I'm not really
    familiar with design patterns yet, although I want to get an
    understanding of them sometime soon. Can anyone offer some help
    with my immediate need or suggest a route to a solution?
    Thanks.

    kglad,
    Thank you very much! That worked perfectly. My section1 FLA
    is now compiling it's SWF without complaint.
    In case someone else is following this, the exact code I
    ended up using to cast "this.parent.parent" as a MovieClip is:
    MovieClip(this.parent.parent).loadMyContent("section2.swf");
    The discussion I think kglad is referencing is
    this
    discussion. If that's not it, just let me know. Again, kglad,
    thank you!

  • Is it possible to call a function in a parent component from a child component in Flex 3?

    This is probably a very basic question but have been wondering this for a while.
    I need to call a function located in a parent component and make the call from its child component in Flex 3. Is there a way to access functions in a parent component from the child component? I know I can dispatch an event in the child and add a listener in the parent to call the function, but just wanted to know if could also directly call a parent function from a child (similar to how you can call a function in the main mxml file using Application.application). Thanks

    There are no performance issues, but it is ok if you are using the child component in only one class. Suppose if you want to use the same component as a child to some bunch of parents then i would do like the following
    public interface IParentImplementation{
         function callParentMethod();
    and the parent class should implement this 'IParentImplementation'
    usually like the following line
    public class parentClass extends Canvas implements IParentImplementation{
              public function callParentMethod():void{
         //code
    in the child  you should do something like this.
    (this.parent as IParentImplementation).callParentMethod();
    Here using the Interfaces, we re decoupling the parent and the child
    If this post answers your question or helps, please mark it as such.

  • How can a custom class call a function in "parent" class?

    Say I have an application (ultrasimplified):
    public class myApp {
    myClass mc;
    boolean foo=false;
    public static void main(String[] args) {
    mc = new myClass();
    public static void myFunc(boolean blah) {
    foo=blah;
    in a separate .java file where my questions lie:
    public class myClass {
    boolean bar=true;
    public void myClass() {
    // this is wrong, but how would I do this:
    foo = bar; // foo in myApp set to true
    // or how would I call "myFunc()" in myApp from this class:
    myFunc(bar);
    my problem is that I've created a new class that I share between two applications so I could share the code. However, I want this class I created to call a function in the application class that instanciated it. Or alternatively, I would like to set a variable in the class that instanciated myClass.
    How would go about this? I've used the "this" parameter in applets to pass the parent class to an inner class, but main() in applications doesn't allow the non-static "this":
    myClass my = new myClass(this);
    Is there something similar I can do?

    You can let MyApp implement an interface and refer to that object in MyClass:
    class MyApp implements Something {
    main() {
    MyApp app = new MyApp();
    MyClass mc = new MyClass(app);
    public void foo() { }
    class MyClass {
    Something app;
    MyClass(Something app) {
    this.app = app;
    app.foo();
    interface Something {
    public void foo();
    Better yet, you can let MyApp extend an abstract class that defines foo(). Then MyApp can override the foo() method. If later on, the abstract class needs to add a bar() method then default implementation can be done in the abstract class. If you make it an interface then all implementing classes will have to be updated to implement the new method.

  • Calling a Function in the Parent Window from the Child Window

    QUESTION: How do I call a function resident in the parent
    window from a child window?
    BACKGROUND
    I have a JavaScript function resident in the parent window
    that reformats information obtained from the Date object and writes
    the result to the parent window using the document.write( ) method.
    I would like to call this function from the child window and have
    it write to the child window instead. Is this possible? If not,
    must I rewrite the entire function and nest it in the below code?
    If so, what is the proper form of nesting?
    CODE: The code that creates and fills the child window is
    provided below. The highlighted area indicates where I would like
    to enter the information from the function resident in the parent
    window. I have tried every imaginable permutation of code that I
    can imagine and nearly destroyed my parent document in the process.
    I am very happy that I had a back-up copy!
    function openCitationWindow() {
    ciDow = window.open("", "", "width=450, height=175, top=300,
    left=300");
    ciDow.document.write("A proper way to cite a passage of text
    on this page:<br /><br />Stegemann, R. A. 2000.
    <cite>Imagine: Bridging a Historical Gap</cite>. " +
    document.title + ". [<a href='" + location.href + "'
    target='_blank'>online book</a>] &lt;" + location.href
    + "&gt; (");
    MISSING CODE;
    ciDow.document.write(").<br /><br /><input
    type='button' value='Close Window' onclick='window.close()'>");
    ciDow.focus();

    Never mind - I was doing something very stupid and wasn't
    calling the function as a method of a movie clip. I was simply
    calling checkTarget(event) rather than
    event.currentTarget.checkTarget(event); which seems to work.

  • Calling a function in child window from parent window

    Hi,
    How can I call a method in child window from parent window in adobe air using javascript. In the following example I need to call mytest() function in
    child.html from parent.html file.
    Thanks,
    ASM
    //parent.html
    <HTML><HEAD>
    <script>
    var initOptions = new air.NativeWindowInitOptions();
    initOptions.type = air.NativeWindowType.NORMAL;
    initOptions.systemChrome = air.NativeWindowSystemChrome.STANDARD;
    var bounds = new air.Rectangle(300, 300, 600, 500);
    var html2 = air.HTMLLoader.createRootWindow(false, initOptions, false, bounds);
    var urlReq2 = new air.URLRequest("child.html");
    html2.load(urlReq2);
    html2.stage.nativeWindow.activate();
    html2.window.mytest();       //NOT WORKING
    </script>
    </HEAD><body></body></HTML> 
    // child.html
    <HTML><HEAD>
    <script>
    function mytest()
      air.trace("in child window");
    </script>
    </HEAD> <body></body></HTML>

    I suspect your problem is that the child window hasn't been created by the time you call the function in the parent.Loading the content is an asynchronous processes -- AIR doesn't stop executing your code until the window has finished loading child.html. So, you will need to add an eventlistener to html2 and call the function from there:
    html2.addEventListener( "complete", onChildLoaded );
    function onChildLoaded( event )
         html2.window.mytest();

  • Problem:  Unable to call a function in parent swf from the child swf.

    I am working on a site right now that has a parent loader
    (all it contains are the menu bar [which is as3 tweened] and the
    functions for calling all of the other pages.) The problem that I
    am having right now, are some of the internal or child pages, need
    to call functions that are in the parent loader. For what ever
    reason, I am unable to do any of that.
    I have attached the code so you can look at that.
    Let me see if I can explain it any better.
    The code I just posted is for the Main Stage swf called
    loader.swf. It has the menu, and all the functions that control the
    menu's movement and when to load all the other swfs. The easiest
    way for me to ask this, is to show you.
    click
    http://dev.locallinux.com/mystictan/layout2.html
    When you get there, you will see the menu bar, and it is
    loading home.swf onto the stage behind the menu.
    Mouse over "The Perfect Tan" and click on "1: Base"
    You will notice it just loaded a new swf called ptbase.swf.
    Well in that swf is a button for "Products" That button
    basically needs to take you to "Products > 1: Base" on the menu
    (not working yet, I know. But theres no point in me making that,
    until I could get this working"
    What I would like is when you click on "Products" in
    ptbase.swf, it calls the function clickedProductsBase(), which does
    its thing. But that function is back in the loader.swf. Does that
    make sence?
    What am I missing here?

    RyanORo, thank you very much for your response.
    I try that, and I get this sort of error when I click on it:
    TypeError: Error #1006: fwd is not a function.
    at ptbase_fla::MainTimeline/testing()
    I know all that code that I posted was a bith much, but here
    is the movie loading part:
    function loadComplete(event:Event):void
    loaderbar.visible = false;
    mainbody.removeChild(thisMC);
    thisMC = MovieClip(myloader.content);
    myloader.unload();
    mainbody.addChild(thisMC);
    thisMC.gotoAndStop(1);
    TransitionManager.start(thisMC, {type:Fade,
    direction:Transition.IN, duration:5, easing:Strong.easeOut});
    mainbody is an empty mc under the menu, so that the loaded
    swf file appears under the menu.
    You know what, scratch all that . *MOOWHA* I could KISS you
    right now. "(parent as MovieClip).clickedProductsBase()" did not
    work because it was calling it out of the wrong parent. Just did
    "(this.parent.parent as MovieClip).clickedProductsBase()" and that
    did the magic I needed. Thanks...

  • Parent calling child function

    Hi,
    May i know how to call child function(layer 2) in parent(layer 1)?
    Layer 1 (Parent)
    function changeAction():void{
         changeColor();
    This method will give me the error -> Call to a possibly undefined method changeColor.
    Layer 2 (Child)
    function changeColor():void{
         trace("success");
    Thanks.

    You will need to assign an instance name to the child or have some reference to it for targeting it.  If you named the child "child1", then the parent function would be more like...
    function changeAction():void{
        child1.changeColor();

  • Calling parent application function from ItemRenderer

    Hi, I have a spark list control whose data is rendered using an  itemrenderer. Basically the Item renderer lays out the data within a  Panel.
    The Panel has a LinkButton, which when clicked needs to pass an Id to  the parent application. In the parent application I have a function  that dispatches a custom event to its parent. I want to know how to call  this function from the ItemRenderer.
    I tried using parentDocument.outerfunction etc but it throws an error..
    Can I do this using custom events ? If so, how ? Please explain in detail
    Thanks ,...

    You can Access via
    parentDocument.parentDocument;
    MainApp.MXML:
    <s:Application
    <s:Group width="100%">
                                  <s:HGroup left="40" top="40">
                                            <s:List width="100%" dataProvider="{items}"
                                                                itemRenderer="ServicesIR"
                                                                contentBackgroundColor="#E6E7E8" borderVisible="false">
                                                      <s:layout>
                                                                <s:HorizontalLayout columnWidth="50" gap="5"/>
                                                      </s:layout>
                                            </s:List>
    </Application>
    ServicesIR.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
                                            xmlns:s="library://ns.adobe.com/flex/spark"
                                            xmlns:mx="library://ns.adobe.com/flex/mx"
                                            autoDrawBackground="true">
    <fx:Script>
                        <![CDATA[
                                  override public function set data(value:Object):void
                                       var parent:MainApp =  parentDocument.parentDocument; //Instance of MainApp.mxml
    ]]>
              </fx:Script>
    <s:ToggleButton id="tab" isAlerted="false"  label="{(data.name}" horizontalCenter="0" verticalCenter="0"/>
    </s:ItemRenderer>

  • HTML5 Canvas: Calling a parent function

    Hey guys
    I'm currently banging my head against a brick wall trying to call a parent function with the HTML5 Canvas.
    I have the following code on the stage:
    function fromStage()
      console.log("This is on the stage");
    fromStage();
    This correctly outputs that message to the console in the browser.
    However, I have a button within a movie clip that I want to call this function from, my code in that movie clip is as follows:
    this.theButton.addEventListener("click", fl_MouseClickHandler.bind(this));
    this.theButton.name = "theButton";
    function fl_MouseClickHandler(e)
      this.parent.fromStage();
    However, this doesn't appear to be working, any ideas?
    Thanks

    use:
    on the stage:
    this.fromStage=function()
      console.log("This is on the stage");
    this.fromStage();
    code in that movie clip is as follows:
    this.theButton.addEventListener("click", fl_MouseClickHandler.bind(this));
    this.theButton.name = "theButton";
    function fl_MouseClickHandler(e)
      this.parent.fromStage();

  • Parent function calling a child function with arguments

    Can anyone give examples of a parent function which has at least 1 parameter, and is invoked from the Form Behavior, which in turn , depending on data, invokes 2 or more child functions passing to these functions the same parameter that was passed in to it.
    I am getting 'Object required' and do not know what I am doing wrong. Please let me know if you've done it, and how you've referenced it , if they are BOTH functions. Thank you!

    The best way to do this is probably using delegates, but to do it directly you have to solve the circular dependency problem (as you have discovered). See
    http://en.wikipedia.org/wiki/Circular_dependency
    In case it is not clear to you how the Wikipedia article relates to your case, your files should look something like this:
    // Form1.h
    #include "Watch.h"
    ref class Form1: public Form
    public:
    void SomeMethod()
    // implementation
    private:
    void SomeHandler()
    Watch watchForm(this);
    watchForm.ShowDialog();
    // Watch.h
    ref class Form1; // declaration only
    ref class Watch: public Form
    public:
    Watch(Form1^ f1);
    private:
    Form1^ form1;
    void SomeMethod();
    // Watch.cpp
    #include "Watch.h"
    #include "Form1.h"
    Watch::Watch(Form1^ f1)
    form1 = f1;
    void Watch::SomeMethod()
    form1->SomeMethod();
    David Wilkinson | Visual C++ MVP

  • LVOOP "call parent method" doesn't work when used in sibling VI

    It seems to me that the "call parent method" doesn't work properly according to the description given in the LabVIEW help.
    I have two basic OOP functions I am doing examples for. I can get one to work easily and the other one is impossible.
    Background
    There are 3 basic situations in which you could use the "call parent method"
    You are calling the parent VI (or method) of a child VI from within the child VI
    You are calling the parent VI (or method) of a child VI from within a sibling VI
    You are calling the parent VI (or method) of a child VI from a different class/object.
    From the LabVIEW help system for "call parent method":
    Calls the nearest ancestor implementation of a class method. You can use the Call Parent Method node only on the block diagram of a member VI that belongs to a class that inherits member VIs from an ancestor class. The child member VI must be a dynamic dispatching member VI and have the same name as the ancestor member VI
    From my reading of that it means situation 3 is not supported but 1 & 2 should be.
    Unfortunately only Situation 1 works in LabVIEW 2012.
    Here is what I want
    And this is what I actually get
    What this means is that I can perform a classic "Extend Method" where a child VI will use the parent's implementation to augment it's functions BUT I cannot perform a "Revert Method" where I call the parent method's implementation rather than the one that belongs to the object.
    If you want a picture
    Any time I try and make operation2 the VI with the "call parent method" it shows up for about 1/2 sec and then turns into operation.
    So there are only 3 possibilities I can see
    Bug
    Neither situation 2 or 3 are intended to work (see above) and the help is misleading
    I just don't know what I am doing (and I am willing to accept this if someone can explain it to me)
    The downside is that if situation 2 above doesn't work it does make the "call parent node" much less usefull AND it's usage/application just doesn't make sense. You cannot just drop the "call parent node" on a diagram, it only works if you have an existing VI and you perform a replace. If you can only perform situation 1 (see above) then you should just drop the "call parent node" and it picks up the correct VI as there is only 1 option. Basically if situation 2 is not intended to work then the way you apply "call parent method" doesn't make sense.
    Attachements:
    For the really keen I have included 2 zip files
    One is the "Revert Method labVIEW project" which is of course not working properly because it wants to "call parent method" on operation not operation2
    The other zip file is all pictures with a PIN for both "Revert Method" and "Extend Method" so you can see the subtle but important differences and pictrures of the relavant block diagrams including what NI suggested to me as the original fix for this problem but wasn't (they were suggesting I implement Extend Method).
     If you are wondering where I got the names, concepts and PIN diagrams from see:
    Elemental Design Patterns
    By: Jason McColm Smith
    Publisher: Addison-Wesley Professional
    Pub. Date: March 28, 2012
    Print ISBN-10: 0-321-71192-0
    Print ISBN-13: 978-0-321-71192-2
    Web ISBN-10: 0-321-71255-2
    Web ISBN-13: 978-0-321-71255-4
     All the best
    David
    Attachments:
    Call parent node fault.zip ‏356 KB
    Call parent node fault.zip ‏356 KB

    Hi tst,
    Thankyou for your reply. Can you have a look at my comments below on the points you make.
    1) Have to disagree on that one. The help is unfortunately not clear. The part you quote in your reply only indicates that the VI you are applying "Call Parent Node" to must be dynamic dispatch. There is nowhere in the help it actually states that the call parent node applies to the VI of the block diagram it is placed into. Basically case 2 in my example fulfills all that the help file requires of it. The dynamic dispatch VI's operation are part of a class that inherits from a given ancestor. Operation 2 for Reverted behaviour is a child VI that is dynamic dispatch and has the same name as the ancestor VI (operation2). The help is missing one important piece of information and should be corrected.
    2) True it does work this way. I was trying to build case 2 and had not yet built my ancestor DD for operation so the function dropped but wasn't associated with any VI. I was able to do this via a replace (obviously once the ancestor Vi was built) so this one is just bad operator
    3) Keep in mind this is an example not my end goal. I have a child implementation because this is a case where I am trying to do a "reverse override" if you like.
    3a) The point of the example is to override an objects method (operation2) with it's parent's method NOT it's own. The reason there is a child implementation with specific code is to prove that the parent method is called not the one that relates to the object (child's VI). If I start having to put case structures into the child VI I make the child VI have to determine which code to execute. The point of Revert method is to take this function out of the method that is doing the work. (Single Use Principal and encapsulation)
    3b) The VI I am calling is a Dynamic Dispatch VI. That means if I drop the superclass's VI onto the child's block diagram it will become the child's implementation. Basically I can't use Dynamic Dispatch in this case at all. It would have to be static. That then means I have to put in additional logic unless there is some way to force a VI to use a particular version of a DD VI (which I can't seem to find).
    Additional Background
    One of the uses for "Revert Method" is in versioning.
    I have a parent Version1 implementation of something and a child Version2. The child uses Version2 BUT if it fails the error trapping performs a call to Version1.
    LabVIEW has the possibility of handling the scenario but only if both Case 1 and Case 2 work. It would actually be more useful if all 3 cases worked.
    The advantage of the call parent method moving one up the tree means I don't have the track what my current object is and choose from a possible list, if, for example the hierarchy is maybe 5 levels deep. (so V4 calls V3 with a simple application of "call parent method" rather than doing additional plumbing with case structures that require care and feeding). Basically the sort of thing OOP is meant to help reduce. Anything that doesn't allow case 2 or 3 means you have to work around the limitation from a software design perspective.
    If at the end of the day Case 2 and case 3 don't and won't ever work then the help file entry needs to be fixed.
    All the best
    David

Maybe you are looking for

  • I bought a tv show episode and it wont transfer to my ipod

    I bought an episode of tv show but it cant transfer to my ipod. The day when i was purchasing it, the internet connection was very slow. It took couple hours to transfer a 25 min episode. The next day when i checked for it it wasnt under it's name( F

  • After a system recovery, my ipod nano is not recongnized by my computer or ITunes...

    the ipod is fine and is recognized on another computer and is charged.... just doesn't show up as a portable device in my computer or ITunes  after a system recovery i did.  help

  • Does anyone know what "The floater" is?

    I just installed CS5.5 for the third time, and still get the error message: "Unable to find file floatui.htm in the Configuration/Floaters directory. The floater will not be shown." when Dreamweaver is launched. The program seems to work OK as far as

  • Regarding Performance documents

    hai my project is in Integration testing phase . From monday , performance testing is going on.... . So i need some performance testing documents for knowing about performance testing in testing phase . So please send to my mail-id [email protected]

  • How can I adjust the toolbar font size in Firefox 10.0.2 using Linux?

    I have very poor vision. I am using NoSquint to enlarge all web sites that I visit, but I do not know how to enlarge the font on the toolbar, bookmarks, BBCN RSS news feed, etc. I have 1920x1080 resolution monitor, but I do not want to change from th