Urgent help ----problem of component id and attribute value

I want to produce a dynamic menu that compoment id and attribute value will be dynamic assigned when logon to system. That means i have to use id="#{aid}" and value="#{avalue}" in following codes.
The problem are:
1. Component id looks only accepts constant (hard code data) insteads of varable. I changed id="ADMIN", and it works. It can be empty, and tag will give me one. Therefore, it is not too much affected me.
2. The f:attribute value, when value="Value" works. However, when value="#{avalue}", first time works, second time it throws Illegal State Exception. I really need this value be assigned by varable.
Can anyone help me out?
----------------------------------------------Code----------------------------------------------
<h:command_link id="#{aid}" action="#{Action.action}" >
          <f:action_listener type="my.MenuListener"/>
          <h:output_text value="Logon"/>
          <f:attribute name="COMMAND" value="#{avalue}"/>
</h:command_link>

-----------2 TreeMenu---------------
public class MenuTree implements Serializable{
private String treeId = null;
private String name = null;
private Map submenus = new TreeMap(); // name as key, submenu is value;
private String actionClass = null;
private boolean isLeaf = false;
private boolean isRoot = true;
private MenuTree parent = null;
public boolean isRoot() {
     return isRoot;
public void setRoot(boolean root) {
     isRoot = root;
public MenuTree(){
public MenuTree getParent(){
     return parent;
public void setParent(MenuTree parent){
     this.parent = parent;
     if(parent != null) parent.putSubmenu(treeId, this);
     isRoot = false;
public String getName() {
     return name;
public void setName(String name) {
     this.name = name;
public Map getSubmenus() {
     return submenus;
public boolean getIsNode(){
     return submenus.size() > 0;
public void putSubmenu(String name, MenuTree menu){
     submenus.put(name, menu);
     * @return Returns the isLeaf.
     public boolean getIsLeaf() {
          return isLeaf;
     public boolean getIsRoot() {
          return isRoot;
     * @param isLeaf The isLeaf to set.
     public void setLeaf(boolean isLeaf) {
          this.isLeaf = isLeaf;
     * @param submenus The submenus to set.
     public void setSubmenus(Map submenus) {
          this.submenus = submenus;
     * @return Returns the actionClass.
     public String getActionClass() {
          return actionClass;
public void setActionClass(String actionClass) {
     this.actionClass = actionClass;
     public String getTreeId() {
          return treeId;
     * @param id The id to set.
     public void setTreeId(String treeId) {
          this.treeId = treeId;
------------3 JSP if want to test change subview to view. I am sure the treeId have value---------------------
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<% request.setAttribute("CONTEXT_PATH", request.getContextPath()); %>
<LINK rel="stylesheet" type="text/css" href='<c:out value="${requestScope.CONTEXT_PATH}"/>/style/menutree.css'/>
<SCRIPT type='text/javascript' src='<c:out value="${requestScope.CONTEXT_PATH}"/>/js/hideshow.js'></SCRIPT>
<!--f:loadBundle basename="bundle.common.Menu" var="bundle"/-->
<f:subview id="userMenuView">
<h:form id="userMenuForm">
<c:set var="root" value="${sessionScope.menuTree}"/>
<table class="" width="150px" bgcolor="blue">
<c:forEach var="menuBar" begin="0" items="${root.submenus}">
<c:set var="menu" value="${menuBar.value}"/>
     <tr>
     <td>
     <c:choose>
          <c:when test="${menu.isLeaf}">
               <c:set var="menuJSF" value="${menu}" scope="request"/>
               <h:command_link action="#{Action.action}">
                    <f:action_listener type="com.nusino.web.listener.menu.MenuListener"/>
                    <h:output_text value="#{menuJSF.name}"/>
                    <f:attribute value="#{menuItemJSF.treeId}">
               </h:command_link>
          </c:when>
          <c:otherwise>
               <span class="" onclick="javascript:hideshow('<c:out value="${menu.treeId}"/>')">
                    <c:out value="${menu.name}"/>
               </span>
               <div id='<c:out value="${menu.treeId}"/>' >
               <table class="">
               <c:forEach var="submenu" begin="0" items="${menu.submenus}">
                    <c:set var="menuItem" value="${submenu.value}"/>
                    <tr>
                    <td>
                    <c:choose>
                         <c:when test="${menuItem.isLeaf}">
                              <c:set var="menuItemJSF" value="${menuItem}" scope="request"/>
                              <h:command_link action="#{Action.action}">
                                   <f:action_listener type="com.nusino.web.listener.menu.MenuListener"/>
                                   <h:output_text value="#{menuItemJSF.name}"/>
                                   <f:attribute value="#{menuItemJSF.treeId}">
                              </h:command_link>
                         </c:when>
                         <c:otherwise>
                              <span class="" onclick="javascript:hideshow('<c:out value="${menuItem.treeId}"/>')">
                              <c:out value="${menuItem.name}"/>
                              </span>
                              <div id='<c:out value="${menuItem.treeId}"/>' >
                                   <table class="">
                                        <c:forEach var="item" begin="0" items="${menuItem.submenus}">
                                             <c:set var="itemObj" value="${item.value}"/>
                                             <tr>
                                             <td>
                                             <c:choose>
                                                  <c:when test="${itemObj.isLeaf}">
                                                  <c:set var="itemObjJSF" value="${itemObj}" scope="request"/>
                                                       <h:command_link action="#{Action.action}">
                                                            <f:action_listener type="com.nusino.web.listener.menu.MenuListener"/>
                                                            <h:output_text value="#{itemObjJSF.name}"/>
                                                            <f:attribute value="#{itemObjJSF.treeId}">
                                                       </h:command_link>
                                                  </c:when>
                                                  <c:otherwise>
                                                       <span class="">
                                                       <c:out value="${itemObj.name}"/>
                                                       </span>
                                                  </c:otherwise>
                                             </c:choose>
                                             </td>
                                             </tr>
                                        </c:forEach>
                                   </table>
                              </div>
                         </c:otherwise>
                    </c:choose>
                    </td>
                    </tr>
               </c:forEach>
               </table>
               </div>
          </c:otherwise>
     </c:choose>
     </td>
     </tr>
</c:forEach>
</table>
<script language= "javascript" >
     function prehide(){
          <c:forEach var="menuBar" begin="0" items="${root.submenus}">
               <c:set var="menu" value="${menuBar.value}"/>
               <c:if test="${!menu.isLeaf}">
                    hide('<c:out value="${menu.treeId}"/>');
                    <c:forEach var="submenu" begin="0" items="${menu.submenus}">
                         <c:set var="menuItem" value="${submenu.value}"/>
                         <c:if test="${!menuItem.isLeaf}">
                              hide('<c:out value="${menuItem.treeId}"/>');
                         </c:if>
                    </c:forEach>
               </c:if>
          </c:forEach>
     if(document.all){
          prehide();
</script>
</h:form>
</f:subview>

Similar Messages

  • Attributes and attribute values for a Product

    Hi all
    Is there any table or FM from where I can get a list of all the attributes and the attribute values linked to a particular product?
    I got tables which link product with Prod Category, Prod Category with Set types and so on.
    Could anyoe please provide me an FM which will give the attribute and its values for a particular product?
    Please help!!
    Regards
    Debolina

    Attributes created under s settype will be under the table with the name of that particular settype itself i.e Table name and the settype name are the same.
    The other part of your question of where to find the list of all settypes and their corresposing attributes, you can make use of COMM_PR_FRG_REL.
    Regards,
    Harshit

  • URGENT HELP! - The prefix "xsi" for attribute "xsi:type" is not bound

    Hi! i createD a WebService using the JWSDP 1.2. In the server-side i read a xml file, create another empty Document and using the importNode() method i populate the empty created doc. The problem is when i try to send client this created document. I'm using the DOMSource to send it to client side. Both client and WS method code are below! Does anyone know the answer??
    And I'm getting this error:
    [java] Endpoint address = http://localhost:8080/cm/ContextManager
    [java] [Fatal Error] :2:42: The prefix "xsi" for attribute "xsi:type" is not bound.
    [java] javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: The prefix "xsi" for attribute "xsi:type" is not bound.
    [java] at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:469)
    [java] at contextclient.CMClient.main(Unknown Source)
    [java] Caused by: org.xml.sax.SAXParseException: The prefix "xsi" for attribute "xsi:type" is not bound.
    [java] at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1139)
    [java] at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:452)
    [java] ... 1 more
    [java] ---------
    [java] org.xml.sax.SAXParseException: The prefix "xsi" for attribute "xsi:type" is not bound.
    [java] at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1139)
    [java] at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:452)
    [java] at contextclient.CMClient.main(Unknown Source)
    ====================CLIENT CODE================================
    Source getdevice = manager.getDevice("How");
    DOMResult domResult = new DOMResult();
    // getting a transformation factory instance
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    transformer.transform(getdevice, domResult);
    Node node = domResult.getNode();
    DOMSource domSRC = new DOMSource(node);               
    StreamResult streamResult = new StreamResult(System.out);
    transformer.transform(domSRC, streamResult);
    ===============================================================
    ===================WebService Method CODE======================
         public Source getDevice(String primaryContext)
              Source src = null;
              try
                   String uri = "C:\\foo\\DeviceInstance.xml";
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   DocumentBuilder builder = factory.newDocumentBuilder();
                   //create the first Document
                   Document doc1 = builder.parse(uri);
                   //create the second Document
                   Document doc2 = builder.newDocument();
                   //create the second doc's root element and append it
                   Element rootDoc2 = (Element)doc2.createElement("device");
                   doc2.appendChild(rootDoc2);               
                   //get root of first document
                   Element rootDoc1 = doc1.getDocumentElement();
                   NodeList list = rootDoc1.getElementsByTagName(primaryContext);
                   for(int i = 0; i < list.getLength(); i++)
                        Element nodeToMove = (Element) list.item(i);
                        Node newNode = doc2.importNode(nodeToMove, true);
                        rootDoc2.appendChild(newNode);
                   src = new DOMSource(doc2);          
              catch(DOMException dome)
                   dome.printStackTrace();
              catch(Exception e)
                   e.printStackTrace();
              return src;
    ===============================================================
    Does anyone know what could it be? Please, it's very urgent!
    Tks in Advance,
    Rodrigo.

    The xml i'm trying to send is below. It's important explain that in a standalone app it works perfectly. Unfortunately, when i perform the same actions in the WS world, it doesn't work. See, i tried to put the attributes inside the root element with the setAttributeNS() method but i got the same error again. How could i bound the attribute with no errors like that said before???
    <?xml version="1.0" encoding="UTF-8"?>
    <device xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="context.xsd">
    <Identity xsi:type="fooType">
                   <Name>
                        <GivenName>Rodrigo</GivenName>
                        <FamilyName>Felicio</FamilyName>
                   </Name>
              </Identity>
    <Identity xsi:type="foowType">
                   <DeviceID>dev00345</DeviceID>
              </Identity>
    </device>
    Regards,
    Rodrigo.

  • Need Help: Problem with iTunes 8 and artwork.....

    This is a weird issue. I'm trying to add album artwork for imported albums manually in itunes that it can't find or has incorrect. Every time I try (no matter which method) the artwork either doesn't take, iTunes freezes, or the album in question skips the first track until I delete the entire album and re-import. Any suggestions? I'm running 10.5.6. Any help would greatly appreciated

    Hi,
    Hope I can help. I had a similar problem. I could not update any information about the tracks album etc. I had checked permissions everything... finally I decided to go to ID3Tags and selected none and then the edits took. Strange don't know why, but in my case it has worked a number of times.
    Hans

  • Urgent Help : Problem with Native MQ Adapter

    We are receiving messages via MQ Series with a message format based on a COBOL copybook. We specified the layout in Fusion using the native feature of incorporating a COBOL copybook. However, if the data is not in the specified format – i.e., too long, too short, or containing invalid characters – then the adapter fails and throws the error in the log file (OC4J log) and never consumes the message from the queue. The key phrase there was “never consumes the message from the queue.” When this situation occurs our BPEL process continually processes the same message over and over (i.e., an infinite loop).
    JCA: ORABPEL-11162
    Error while reading native data.
    [Line=1, Col=1] Not enough data available in the input, when trying to read data of length "30" for "element with name CREATIONUSERID" from the specified position, using "style" as "fixedLength" and "length" as "30".
    Ensure that there is enough data from the specified position in the input.
    We are looking for a solution to this problem.
    Thanks in advance for the help

    I am not sure if this would help but you can try retrieving the message as "Native format translation is not required i.e. Opaque" instead of defining the exact format (COBOL copybook format). Once you have the message in the BPEL process then you can map it to the COBOL copybook after doing the validation.
    Not sure if this is a viable solution as I have not tried it myself.

  • Urgent Help : forget nokia messeging username and ...

    Hi,
    I forget my nokia messeging username and password, when i tried to setup email accounts in mobile it ask me for username and pwd of nokia messeging.
    Can you please let me know how to reset or get those information.
    I am using nokia e63
    Please help me to get this issue solve ASAP
    Thank you.

    Hi paultiffan,
    Thanks for your post and welcome to the forum.
    If you do not recall your Nokia Messaging login the best thing to do is to contact Nokia Care by phone, mail or chat (where available) to get your account reset or removed so you can set it up again.
    Hope this helps.
    Kosh
    Press the 'Accept As Solution' icon if I have solved your problem, click on the Star Icon below if my advice has helped you!

  • Problem with core data and attribute name "description"

    I have spent hours tying to figure out this problem.
    It appears that is you name an attribute "description", there can be problems at run-time.
    Perhaps, it is related to how I am doing things and letting interface builder do all the bindings.
    I create a core data application in Xcode.
    I create the entity with some attributes in Xcode and then I launch interface builder. I drag a "core data entity" object to the application window. I add a "Master/Detail View".
    I save the files and do a compile. When I click on the "add" button, something goes wrong and GDB launches and loads the stack frame into the debugger.
    I am using Xcode 3.1.2.

    description is the name of a method in the NSObject protocol; try to use another name for your attribute in CoreData, for example myDescription.

  • Help with Custom Component: Ajax and ValueChangeListener

    Hello,
    I am trying to create a custom component that triggers an update via Ajax. However, I would also like to trigger a ValueChangeListener method from the same component, however I am unsure of how to obtain and trigger the ValueChangeEvent.
    The code I have so far in the Phase Listener is:
    private void handleAjaxRequest(PhaseEvent event) {
         FacesContext context = event.getFacesContext();
            HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
            Object object = context.getExternalContext().getRequest();
            if (!(object instanceof HttpServletRequest)) {
                return;
            HttpServletRequest request = (HttpServletRequest)object;
            HttpSession session =  request.getSession();
            String requestType = request.getParameter("jsflotRequestType");
            if (requestType != null && requestType.equalsIgnoreCase("jsflotchartValueChange")) {
                 //Trigger valueChangeEvents
                 log.info("Handling JSFlot Chart Value Change Event.");
    }What I am looking for though, is some information regarding how to obtain the ValueChangeListener from the request/session objects.
    The component tag is called like this:
    <jsflot:flotChart id="valueTimeChart"
         value="#{chartMbean.chartSeries}"
         valueChangeListener="#{chartMbean.valueChangeListener}"Any help would be greatly appreciated!

    The field calculation order was not in the correct order, had a devil of a time figuring out how to get to it, in Acrobat X.
    My check boxes for shipping have the same name field but I don't see a tab for export value for the check boxes, and I have no idea how to implement your suggestions for a switch or if statement or what fields to attach them to. 
    My amatuer attempt at a shipping formula follows, I don't know if I can use a range for event value, or where to put the script, if it is even correct.
    if(event.value == "<25.01")
        nShipFee = 06;
    else if(event.value == "25.01 - 75")
        nShipFee = 11.50;
    else if(event.value == "75.01 - 125")
        nShipFee = 15;
    else if(event.value == "125.01 - 200")
        nShipFee = 20;
    else if(event.value == "200.01 - 300")
        nShipFee = 25;
    else if(event.value == "300.01 - 400")
        nShipFee = 30;
    else if(event.value == ">400")
        nShipFee = 50;

  • URGENT!  Problems with On-Commit and Key-Commit triggers!!

    Hi there,
    We are having a problem with our form actually saving a value to the database after the commit_form is given.
    When we hit the Save Button (which triggers the Key-Commit, and that in turn triggers the On-Commit trigger) we want a populated global variable to save to the database. Now when we hit Save, we can see the field get populated properly with this Global Variable (Global.Last_Tckt_Read), BUT it doesn't save to the database.
    Here is the code from the On-Commit trigger:
    IF :cg$bf_meter.closing_ticket_issued = 'N'
    THEN
    :CG$bf_meter.opening_meter_reading := :GLOBAL.LAST_TCKT_READ;
    :CG$bf_meter.opening_meter_reading_date := :GLOBAL.LAST_TCKT_DATE;
    :CG$bf_meter.closing_meter_reading_date := :CG$bf_meter.last_ticket_date;
    :GLOBAL.PREV_METER_READING := :CG$BF_METER.LAST_TICKET_READING;
    :GLOBAL.WINDOW_ACTIVE_CHECK := 'true';
    :GLOBAL.FTDAYCHM_SAVED := 'true';
    commit_form;
    ELSE
    :GLOBAL.PREV_METER_READING := :CG$BF_METER.LAST_TICKET_READING;
    :GLOBAL.WINDOW_ACTIVE_CHECK := 'true';
    :GLOBAL.FTDAYCHM_SAVED := 'true';
    commit_form;
    END IF;
    The code in the Key-Commit trigger is just commit_form;. Now, the code from the On-Commit seems to work fine if its in the Key-Commit trigger -- BUT we need to use the On-Commit in case the user exits the Form with the Exit Button on the toolbar or "X" on the title bar (Neither the Exit Button and the "X" will call the Key-Commit trigger).
    Any ideas how we can get this data value to actually SAVE in the database??
    Thanks for any help -- please respond, this deadline has already passed!
    Mike

    Well, I can't say I understand what you want, but:
    1) if you have only commit_form in key-commit - then you do not need this trigger. key-commit will fire when F10 (commit) is pressed, but since it is doing the same - there is no need.
    2) why don't you populate your block values to be saved right in SAVE button trigger and issue commit_form in the same trigger?
    Then you can have key-commit to cover the same functionality for F10 with code:
    go_item('save');
    execute_trigger('when-button-pressed');
    3) I cannot get the point of the "close" stuff - on close you want to check for changes or not? and to allow the user to exit with or without saving?

  • Urgent Help:read from text file and write to table

    Hi,
    I'm a super beginner looking for a vi to read this data from a text file and insert it into a table:
       #19
    Date: 05-01-2015
    ID= 12345678
    Sample_Rate= 01:00:00
    Total_Records= 2
    Unit: F
       1 03-23-2015 10:45:46   70.1   3.6
       2 03-23-2015 11:45:46   67.7   2.7
    Output table
    #     date                 time                 x          y        Sample rate    Total Records
    1          03-23-2015     10:45:46        76.8     2.8      01:00:00           2
    2          03-23-2015     10:45:46        48.7     2.1      01:00:00           2
    Thanks for your help in advance.
    Attachments:
    sample.txt ‏1 KB

    jcarmody wrote:
    Will there always be the same number of rows of noise header information?
    Show us how you've read the data and what you've tried to do to parse it.  Once you've got the last rows, you can loop over them using Spreadsheet String to Array (after cleaning up a few messy spaces).
    Jim,
    I didn't know you're that active on here.
    Yes, There will always be the same number of noise header information.
    I'll show you in person
    Regards,

  • Urgent help need:How inventory system and fulfillment system work

    Hi Every one ,
    I have an requirement to work on inventory and fulfillment system,below are my questions,
    1)I have stock level quantity for an sku is 2 ,if one user done with his order with quantity of 2 then how we can show quantity to the second customer (if stock not available we gone loss the business )
    how we can handle this ?
    2)There are few orders are completed(if some are orders are having quantity available in stock some or backorders)
    here how the fulfillment system understand those orders and how it will update the inventory.
    Could you please any one help me how to work on above requirements or else give me some other solutions to full fill above .
    Regards,
    Jyothi Chidurala
    Edited by: Jyothi.mj on May 22, 2013 5:08 AM
    Edited by: Jyothi.mj on May 23, 2013 4:28 AM

    >
    1)I have stock level quantity for an sku is 2 ,if one user done with his order with quantity of 2 then how we can show quantity to the second customer (if stock not available we gone loss the business )
    how we can handle this ?
    you can always call InventoryManager.AVAILABILITY_STATUS_IN_STOCK to check whether the item is available in inventory , It is the business call if item not available how they want to handle this .
    hope this helps

  • URGENT HELP IS NEEDED WITH IMOVIE and MY SONY HD CAMERA HDR XR100E

    Hi there Fellow Mac Users.
    ok heres the situation..
    i bought the brand new sony HDR xr100E Video camera and as soon as i connetced it a few weeks back to my Apple Mac IMOVIE opened automatically and i was able to edit the movie, add sound, titles etc.
    Now last week there was a IMOVIE Update launched via software update and i downloaded it and now since then my Sony Cameara does not work with IMOVIE as imovie does not recognise it any more.
    when ever you go to the option to import from cameara it does not find the camera but instead it opens the I sight Camera on the Macbook.
    i have uninstalled the operating system, reinstalled, i have uninstalled the imovie application, reinstalled and still nothing.
    Can some one , anyone please help me ASAP im desperate.. ow and PS has anyone else exeprienced this same issue since the Upgrade?

    Thanks. What we will be using it for is mainly videoing children and family and we would like the 1080 HD but not necessarily hooked on the tape system. A hydrid might be something... like the BD and HDD. I found the Sony autofocus a bit slow at times which we would like to improve and we would like to have something that easily allow some pre-editing before getting to the FCE (I mean deleting unwanted clips etc). Also preferably not too large and heavy...
    Hope that makes the advise easier. Thanks again.

  • (urgent help) problems connecting the muvo n

    i just bought it today and i was so happy.. but, i cant seem to connect it to the computer. i have connected the usb cable yet my computer says no device connected to the computer.. nor do i get that status diagram on my player.. the player turns on and off perfectly find but this is the only problem.. i searched the topics and dled the program it said to but still no luck..
    thanks in advance!!

    minkyung,
    As mention what's your OS? If it's Windows 98SE, you'll need to install the driver from the installation CD first before it get detected by the computer. Perhaps you can also try the player on another computer with OS such as Windows 2000 or XP to verify that the player is functioning properly.
    Jason

  • Download helper , problems with youtube downloads and the spinning balls don't spin all time like they used to.

    download helper's spinning balls used to spin all the time and downloading videos from youtube worked. But about a week ago the spinning ball stopped spinning all the time. When trying to download video's the spinning balls start spinning but download says it is starting but it won't download.

    first of all bro this is the funniest post ive seen since i started. second i dunno what happened it happening to me too'''bold text'''

  • Help - problems with mixin class and recursion

    I'm trying to set up functionality which will allow me to track gui node nesting.
    Basically, I'd like to have an optional name for each node and be able to generate a string which uses these to track descent. So, e.g., if I have "panel1" as my top scene, "control1" as a node within that scene and "image1" as a node within control1, I'd like to be able to produce the string "panel1.control1.image1" with a call to the image1 node.
    I am attempting to do this with a mixin class, as it seems precisely the sort of situation suited to mixins. So I have:
    import java.lang*;
    public mixin class Descent {
        public-init var objName:String = getClass().toString();
        public function getObjDescent():String;
    }When an object is created, it can be assigned a name - or, if there's no assignment, it gets given its class name. When I want the full "descent name" of the object, I'll call getObjDescent(). So far so good.
    But now it gets trickier. The idea is to track descent within javafx nodes. If I don't want to assume everything is set up properly, I've got to cover a few cases:
    (a) the class into which this object is mixed - the mixee - is not a javafx node
    (b) the mixee is a javafx node, but its parent is not
    (c) the mixee is a javafx node and descends from a javafx node
    Thus:
        public function getObjDescent():String
            var build:String="";
            // get parent's name, if it has it
            try {
                var nodeClass:Class[] = [javafx.scene.Node.class];
                var checkIsNode = this.getClass().getMethod("getNodeMaxHeight",nodeClass);
                if ((this as Node).parent != null) {
                    var parentDescentFn = (this as Node).parent.getClass().getMethod("getObjDescent",(null as Class[])) ;
                    build = ((this as Node).parent as Descent).getObjDescent();
                    build = build.concat(".");
            catch (e:NoSuchMethodException)
                build = "";
            build.concat(this.objName);
        };First I have to check if the mixee is a javafx Node. I can't do this by member checking because javafx doesn't support that. So I have to check by methods. I use one of the Node methods - getNodeMaxHeight - if it is defined for the mixee, the mixee is a node. If not, I'll get an error and can abort down to the catch section.
    If this mixee is a node, then it will have a parent node. If that parent also has descent info, I have to prefix that parent's descent name. So now I need to figure out if I can recursively call getObjDescent() on the parent.
    So I do the same getMethod() approach on the parent (if any) to see if it has a name I have to prefix. If not then, again, we abort out to the NoSuchMethodException error catch.
    Now I should be sure that this is a node and its parent has the Descent fields. So I should be safe to call the parent for its info.
    Here I've done this as
    ((this as Node).parent as Descent).getObjDescent().Though that gives me no errors, I'm not sure if that's the right way to cast things - will it look at the wrong portion of the object to find the method call? Better would be to call the function using the parentDescentFn variable, which I've gotten in checking to see if the parent has the Descent class mixed in, but I can't figure out how to go from a java.lang.reflect.Method variable to generating an actual call of that method. So there's a first question.
    However I get to that recursive call, I will get back the parent's descent name. I add my descent separator, '.', and then append the objName of this particular class. Voila - the full descent name.
    Though the above throws no warnings in the editor, it generates two compile errors.
    First, it tells me it cannot find the symbol:
    symbol  : method get$class()
    location: class javafx.scene.Node
                var nodeClass:Class[] = [javafx.scene.Node.class];I need to construct a Class[] containing Node for my call to getMethod in the next line. Is this not the right way to specify the Node class?
    The next error is:
    non-static variable this cannot be referenced from a static context
                var checkIsNode = this.getClass().getMethod("getNodeMaxHeight",nodeClass);I still find what javafx treats as "static" and what non-static to be mystifying. I'm fairly sure I've seen mixin classes which use "this" to grab the mixee object, and I certainly need to do so in this case to check if the mixee is a javafx Node and, subsequently, to get its parent Node.
    So... three problems:
    - Using "this" in a mixin class ... what's messing that up?
    - constructing the Class[] sequence for the first call to getMethod
    - (possibly) properly generating a call to the parent mixee's getObjDescent() method.
    urg.

    RE static vs non-static of this:
    I'm not sure, but I think it's a little less straightforward:
    e.g. if I type:
    var dummy = this; no problem. (This is analogous to what you did.)
    But if I type:
    var dummy = this.getClass();I get the static/non-static error. I take this to reflect the fact that getClass() is not defined by the mixin class, even if it is defined for any object which might use that class. (Perhaps, down deep in the code, "this" has been redirected to point just to that block of memory which gives the implementation of the mixin information?)
    Yet if I type
    var dummy = getClass();it works fine, and returns the class which is implementing the mixin.
    My guess is that "this" is being treated specially with a mixin class - I think, at compile time, if it just says "this" it is ignored by the "mixin" handling and passed along to the regular class compiling to process, but if it is this.method() or this.member, then the mixin class handles it and will throw that error if it gets any methods or members which it did not itself define.
    I haven't had any trouble using the Class objects in javafx, though I don't think I can easily make them do what I, here, specificly want to do. But getClass() seems to work just fine (as long as I don't say this.getClass() !!), as do calls to get or invoke members - I got that one of the 3 problems solved.
    I discovered that javafx seems to flatten its classes out to the single implementation of FXObject - when I attempted to parse the interfaces of the mixee class to see if "Node" was a member (which it should be, conceptually), I only got 2 interfaces: FXObject and my mixin class. So I can't use the Class commands to find out of the mixee class object implements Node or not.
    I also discovered that, given how javafx seems to compile itself into java, I could actually check for members as well as methods: getMethod("loc$parent") would actually return the parent member, if present. So getMethod can be used to check for the presence of both members and methods in javafx classes. I could not figure out, however, how to get from that reference to the value of the object itself - while invoke() works properly for methods, I couldn't get it to work for the members it retrieved. Though I didn't try too terribly hard.
    The getMethod() Class function did allow me to check if a class had my mixin class present - or, at least, if it contained a method with the same name as one defined in that class.
    Ultimately, though, I'm still stuck with trying to answer the questions, given a generic javafx class (implicit in this, which I could get by getClass()):
    - does this mixee class implement Node?
    - if so, what is the value of its "parent" member ((this as Node).parent didn't seem to work within the mixin class' code. Or so it seemed.)
    I've gotten around that problem by adding a Node member to the class, so that, rather than trying to deduce it from "this" or the Class functions, it simply uses its variable. Less elegant and more memory-using, but quicker and, actually, more flexible. That approach solves my immediate problem, though it does leave unanswered the more basic questions raised by the exercise.
    thanks for the feedback!

Maybe you are looking for

  • Restoring my photos and metadata after hard drive format. yep, I'm THAT guy

    Hi guys, Unfortunately my 17,000 photo aperture library (master files stored externally to the aperture library - ie referenced) was accidently deleted (long story) in a drive consolidating effort around my house. The good news is that I was able to

  • Brand new ipod nano not working

    so i JUST received an ipod nano second generation today and i tried to hook it up to my computer and it seemed to work at first. and then my computer said that there was some sort of connection difficulty. so i unplugged it when it said it was ok to

  • TV Show Album Artwork

    Hi, I would like to know how to see each album artwork of a TV Show season individually without only seeing one album artwork representing all the seasons (in Cover Flow)? And I don't want to rename my TV shows by adding "- Season X"... Can someone e

  • G-4 tower, PPC,10.4.11 PCI SCSI card install

    G-4 tower, PPC,10.4.11 and Classic 9.2. I have been trying to install a new Adptec SCSI card. From what I understand, this card should work?? I keep getting the "grey vail". The fix is to remove the PCI card.I have tried USB and network PCI cards. Bo

  • My program closed on me when i was downloading videos

    it just closed on me when i had 9 videos downloading and that thing popped up "send error report" or whatever and i did and then it closed on me. i lost all my files that were downloading and i spent money on them and i dont even get redeemed? I WANT