Event Handling - In what layer/pane is a JMenu contained?

In what layer is a JMenu contained?
I ask this because I am trying to figure out what object gets the event first - the component with a keybinding of WHEN_IN_FOCUSED_WINDOW or my menu. I want my menu to clear itself for certain keystrokes and allow the event to be picked up by the component that is listening for it in the focused window.
I know the FocusManager, focused component, gets to process the event first. Then to keylisteners of super(), Keybindings, and then menubar.
I know the JFrame implements the RootPane interface. The RootPane contains a glassPane and a layeredPane. The layered pane puts the jmenubar(optional) and content pane in the JLayered panes frameContentLayer.
The menu is added to the JMenuBar so is the menu in the JLayeredPane PopUpLayer or is it in the FrameContentLayer?
If the menu is part of the menubar and the menu bar is the last to get notified...
Would the JMenu receive an event only after a component in the content layer has processed it? Will the component in the content layer that is listening for a certain keypress in the focused window even get notified since the FocusManager has the event source as the JMenu?
If anyone has any clarification on the JMenu and how events/panes/layers work with the JMenu I would greatly appreciate your help. I understand the other components I am just confused about the JMenu.

JMenu is contained in default_layer
DEFAULT_LAYER
The standard layer, where most components go. This the bottommost layer.
PALETTE_LAYER
The palette layer sits over the default layer. Useful for floating toolbars and palettes, so they can be positioned above other components.
MODAL_LAYER
The layer used for modal dialogs. They will appear on top of any toolbars, palettes, or standard components in the container.
POPUP_LAYER
The popup layer displays above dialogs. That way, the popup windows associated with combo boxes, tooltips, and other help text will appear above the component, palette, or dialog that generated them.
DRAG_LAYER
When dragging a component, reassigning it to the drag layer ensures that it is positioned over every other component in the container. When finished dragging, it can be reassigned to its normal layer.

Similar Messages

  • Javascript embedded in button pl/sql event handler not being executed

    Javascript calls not working from pl/sql button event handler. What am I missing? Are specific settings needed to execute javascript from pl/sql proceedures?
    Example: Want to toggle target='_blank' off and on in a button pl/sql event handler to open url call in new window & then reset when processing submit is done & the app returns to the form.
    portal form button's pl/sql submit handler:
    begin
    htp.p('<script language=JavaScript>') ;
    htp.p('this.form.target="_blank"') ;
    htp.p('</script>') ;
    PORTAL.wwa_app_module.set_target('http://www.oracle.com') ;
    htp.p('<script language=JavaScript>') ;
    htp.p('this.form.target="_blank"') ;
    htp.p('</script>') ;
    end ;
    Putting the following in the button's javascript on_click event handler works great:
    this.form.target='_blank'
    to force opening new window with a call in the button's submit pl/sql code via:
    PORTAL.wwa_app_module.set_target('http://www.oracle.com') ;
    but then the target='_blank' is left on when the submit is done & we return to the form.
    putting the above javascript as a function (called fcn_newpage) elsewhere (e.g., after form opens) & calling in the submit pl/sql with
    htp.p('fcn_newpage') ;
    also doesn't work.
    Metalink thought this was an application issue instead of a bug, so thought I'd see if anyone knows what's going wrong here. (Portal 9.0.4.1)

    thanks for your discussion of my post.
    Please clarify:
    "htp.p('fcn_newwindow') sends a string":
    What would you suggest the proper syntax for a function fcn_newwindow() call from a pl/sql javascript block that differs from
    htp.p('<script language="Javascript">') ;
    htp.p('fcn_newwindow');
    htp.p('</script>');
    or more simply
    htp.p('fcn_newwindow') ;
    More generally, what I'm trying to figure out is under what conditions javascript is executed, if ever, in the pl/sql of a button (either the submit or custom event handler, depending on the button).
    I've seen lots of posts asking how to do a simple htp.p('alert("THIS IS TROUBLE")') ; in a pl/sql event handler for a button on a form, but no description of how this can be done successfully.
    In addition to alerts, in my case, I'd like to call a javascript fcn from a pl/sql event handle that would pass a URL (e.g., http://www.oracle.com) where the javascript fcn executed
    window.open(URL). The API call to set_target(URL) in pl/sql has no ability to open in a new window, so calling that is inadequate to my needs and I must resort to javascript.
    Its clear in the PL/SQL of a button, you can effect form components since p_session..set_target & p_session.get_target set or get the contents of form components.
    So to see if javascript ever works, I tried to focus on something simple that only had to set what amounts to an enviromental variable when we returned to the form after a post. I chose to try to change the html value of TARGET from javascript in the PL/SQL button because it doesn't need to be implemented until we finish the post and return to the form.
    So I focused on a hack, setting this.form.TARGET='_blank' in the on_click event handler that forced every subsequent URL call or refresh of the form to be a new window. I then wanted to turn off opening new windows once I'd opened the URL call in a new window by setting TARGET='' in the portal form. I can achieve what I want by coding this.form.TARGET='' in the javascript (on_focus, on_change, or on_mousedown, ...) of every form component that might refresh the form. However, that is a ridiculous hack when a simple htp.p('<script>') ; htp.p('this.form.target=""') ; htp.p('</script>') ; at the end of the button's pl/sql event handle should do the same thing reliably if javascript ever works in the pl/sql event handler.
    If we didn't have access to form components through p_session calls, I'd assume it was a scope issue (what is available from the pl/sql event handler). But unless my syntax is just off, when, if ever, can javascript be used in a portal form's pl/sql event handler for a button?
    if I code a javascript funtion in the forms' pl/sql before displaying form:
    htp.p('<script language="JavaScript">') ;
    htp.p('function fcn_new_window(URL)') ;
    htp.p('window.open(URL)' ) ;
    htp.p('</script>') ;
    the function can be called from a button's on_click javascript event handler:
    fcn_new_window('http://www.oracle.com')
    but from the same button's pl/sql submit event handler this call doesn't work: htp.p('fcn_new_window("http://www.oracle.com")')
    So my questions remain: Is there other syntax I need, or does javascript ever work properly from the pl/sql of a form button's event handler? If it doesn't work, isn't this a bug that should be fixed by Oracle?
    I can probably figure out hacks to make things work the way I need, but executing javascript from pl/sql event handlers seems to be the expected way to affect portal html pages (forms, reports, ...) and it seems not to work as expected. I don't feel I should have to implement hacks for something as simple as calling a javascript function from pl/sql when almost every example I've found in metalink or the forums or Oracle Press's "portal bible" suggests using javascript from pl/sql via the utility htp.p() to effect web page components in portal.
    My TAR on the subject, while still open, returned the result basically: "We can reproduce your situation. Everything looks okay to us, but we can't explain how to use javascript where you want or point you to any documentation that would solve your problem or expain why it should not work the way you want it to. We don't feel its a technical issue. Why don't you post the problem on the portal applications forum."
    I'm hoping I'm just missing something fundamental and everything will work if I implement it a little differently. So if anyone sees my error, please let me know.
    by the way, not sure this is germain, but in reference to your comment:
    "redirections in pl/sql procedures give a peculiar result. in a pl/sql procedure, usually, portals give the last redirection statement and ignore anything else coming after it."
    if I try to raise an alert:
    htp.p('alert("you screwed up")');
    return;
    in a pl/sql event handler, it still doesn't raise the alert, even though its the last thing implemented in the event handler. But if I set the value of a text box using p_session..set_value_as_string() at the same spot, it correctly sets the text box value when I return to the form.

  • Trying to use set_value in onChange event handler

    Is it acceptable to use p_session.set_value in the onChange event handler?
    I am trying to do a couple of things in this event handler, I am trying to validate a code and if the code is invalid I wish to
    show an alert. If the code is valid I then wish to fill another field with a value from the database. Both fields I am working
    with in the event handler are table columns. I have not been able to track down a specific error message, however, when
    I view source the code for this is blinking. Here is what I am trying, in the onChange event handler.
    declare
    l_acct varchar2(21);
    l_codeid number;
    begin
    l_acct := p_session.get_value
    (p_block_name => 'DETAIL_BLOCK',
    p_attribute_name => 'A_CONCATENATED_ACCT',
    p_index => 1);
    if l_acct is not null then
    select code_combination_id
    into l_codeid
    from webapp1.an_code_combinations_v
    where concatenated_acct = l_acct;
    if sql%found then
    p_session.set_value
    (p_block_name => 'DETAIL_BLOCK',
    p_attribute_name => 'A_CODE_COMBINATION_ID',
    p_index => 1,
    p_value => l_codeid);
    else
    --- how can I display an alert?????
    end if;
    end if;
    end;
    Any suggestions on how to show an alert, and how to display values into fields would be very helpful.

    I think you are trying to use PL/SQL in the JAVASCRIPT onChange event handler. What you need to do is use JAVASCRIPT.
    Put the following function on the (... before displaying the page) option on the Additional PL/SQL page.
    Javascript function that loop through all fields on a form.
    Set value Example:
    htp.p('<script language = "JavaScript1.3">
    function setCommValue(form,target,value)
    var itemname;
    for(var i = 0; i < form.length; i++)
    itemname = form.elements.name.split(".");
    if (itemname[2] == target)
    form.elements[i].value = value;
    </script>');
    You can call the above code from a Javascript Event Handler for a Form item. Example: (an item's OnChange Event)
    setCommValue(this.form,'SITE_ID',this.value);
    Good Luck and let us know if you experience in Lessons Learned.
    Thanks,
    Linda Gowen

  • OIM 11gR2 - RoleUser PostProcess Event Handler not triggered

    Hi,
    I'm trying to create a postprocess event-handler for RoleUser entity so that when a role is assigned (or removed) to a user an UDF is populated with the list of its roles.
    I developed my event-handler and registered it following instructions on http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/oper.htm#OMDEV4749 but the event-handler is not triggered.
    I've read and tried a lot of things but nothing seems to work.
    I use System.out.println() and a Logger in the event-handler methods as well as breakpoints debugging via Eclipse, all this indicates the event-handler is not triggered.
    I checked the event-handler is registered by using getEventHandlers(RoleUser,CREATE) method on IAMAppDesignMBean through Enterprise Manager. Result is :
    Postprocess,-2147483648,PostProcessingInitiation,/metadata/iam-features-request/event-definition/EventHandlers.xml,true
    Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
    Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
    Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
    Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
    Postprocess,1020,RoleGrantPostProcessActionHandler,/metadata/iam-features-identity/event-definition/EventHandlers.xml,false
    Postprocess,9988,AsyncHandler,/metadata/iam-features-asyncwsclient/EventHandlers.xml,true
    Postprocess,3000000,CallBackOAACGWithApprove,/metadata/iam-features-rolesod/EventHandlers.xml,true
    Postprocess,2147483647,RequestCompleted,/metadata/iam-features-request/event-definition/EventHandlers.xml,true
    Note that I dont understand why the handler appears four times..
    Also, when I unregister it, it still appears one time.
    Here is my event handler XML file (in META-INF folder of the plugin zip) :
    <?xml version='1.0' encoding='utf-8'?>
    <eventhandlers
      xmlns="http://www.oracle.com/schema/oim/platform/kernel/"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
      <action-handler
      class="package.MyHandler"
      entity-type="RoleUser"
      operation="ANY"
      name="MyHandler"
      stage="postprocess"
      order="FIRST"
      sync="TRUE" />
    </eventhandlers>
    plugin.xml file (root of plugin zip) :
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
      <plugin
      pluginclass="package.MyHandler"
      version="1.0"
      name="Myhandler" />
      </plugins>
    </oimplugins>
    Java code (in a JAR in lib folder of plugin zip) :
    public class MyHandler implements PostProcessHandler {
    @Override
    public EventResult execute(long processId, long eventId, Orchestration orchestration) {
      System.out.println("Inside EventResult execute ");
      LOGGER.log(Level.SEVERE, "Inside eventResult execute");
      // Some code
      return new EventResult();
    @Override
    public BulkEventResult execute(long processId, long eventId, BulkOrchestration orchestration) {
      String operation = orchestration.getOperation().trim().toString();
      System.out.println("<---------- Calling " + getClass().getName() + ": Operation[" + operation + "] Execute ---------->");
      LOGGER.log(Level.SEVERE, "Inside BulkEventResult execute");
      // Some code
      return new BulkEventResult();
    Maybe I'm missing something ? Any help would be really appreciated
    Thanks,
    Gael
    EDIT :
    Also note that I see these messages in the logs but I'm not sure it concern my event handler from what I read on some pages :
    XML schema validation failed for XML eventhandlers and it will not be loaded by kernel.
    [CALLBACKMSG] Found 0 possible matches for applicable policies for step POST_PROCESS, entity RoleUser, operation CREATE.
    Related link : Post process event handler when a role is created or modified in OIM

    I eventually got it working but I'm not sure of how.. !
    I changed the name of the handler (it was not "MyHandler" but something very long, I shortened it). I copy and paste exactly what was described here : Post process event handler when a role is created or modified in OIM. I did purge cache. I tried to apply it on another entity (Role), it was triggered, then I applied it back to RoleUser and it still works.
    If it can help someone, my plugin zip contains :
    plugin.xml :
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
      <plugin pluginclass="fr.xxx.RoleUserProcessor"
      version="1.0" name="RoleUserProcessor" />
      </plugins>
    </oimplugins>
    META-INF/EventHandlers.xml :
    <?xml version="1.0" encoding="UTF-8"?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
      <action-handler class="fr.xxx.RoleUserProcessor"
      entity-type="RoleUser" operation="ANY" name="RoleUserProcessor" order="9999"
      stage="postprocess" sync="TRUE" />
    </eventhandlers>
    lib/xxx.jar/RoleUserProcessor.java :
    @Override
      public EventResult execute(long processId, long eventId, Orchestration orchestration) {
      LOGGER.log(Level.INFO, "Execution RoleUserProcessor EventHandler (mode non bulk)");
      String operation = orchestration.getOperation().trim().toString();
      LOGGER.log(Level.INFO, "Operation : " + operation);
      return new EventResult();
      @Override
      public BulkEventResult execute(long processId, long eventId, BulkOrchestration orchestration) {
      LOGGER.log(Level.INFO, "Execution RoleUserProcessor EventHandler (mode bulk)");
      String operation = orchestration.getOperation().trim().toString();
      LOGGER.log(Level.INFO, "Operation : " + operation);
      return new BulkEventResult();
    Thank you
    Also, a thing that may help some people, I found out that the ORCHEVENTS table in OIM schema contains the history of handlers triggered.

  • Event handler for dropdownlistbox how to determine selection ?

    Hello,
    As a newby in BSP programming, I'm trying to build a small application with a menu structure . This menu is defined in a page fragment and consists of dropdownlistboxes. The event handling is located in the main page which contains the page fragment.
    My problem is that I cannot get these dropdownlist boxes to work. The coding in the page fragment is :
    ==========================
    <htmlb:content>
      <htmlb:form>
        <htmlb:dropdownListBox id             = "myDropdownListBox1"
                                 tooltip        = "Tooltip for my DropdownListBox"
                                 onClientSelect = "alert('myDropdownListBox1')"
                                 onSelect       = "mySelect" >
            <htmlb:listBoxItem key   = "k1"
                               value = "MenuChoice1" />
            <htmlb:listBoxItem key   = "k2"
                               value = "MenuChoice2" />
            <htmlb:listBoxItem key   = "k3"
                               value = "MenuChoice3" />
            <htmlb:listBoxItem key   = "k4"
                               value = "MenuChoice4" />
            <htmlb:listBoxItem key   = "k5"
                               value = "MenuChoice5" />
            <htmlb:listBoxItem key   = "k6"
                               value = "MenuChoice6" />
          </htmlb:dropdownListBox>
        </htmlb:form>
    </htmlb:content>
    ==========================
    The event handler ( OnInputProcessing ) code is :
    ==========================
    CLASS CL_HTMLB_MANAGER DEFINITION LOAD.
      DATA: event TYPE REF TO if_htmlb_data,
            ddlb_event TYPE REF TO CL_HTMLB_EVENT_SELECTION.
      event = CL_HTMLB_MANAGER=>get_event( runtime->server->request ).
      IF event IS NOT INITIAL AND event->event_name =
                 'dropdownListBox'.
          ddlb_event ?= event.
        CASE event->event_id.
          WHEN 'myDropdownListBox1'.
            CASE ddlb_event->selection.
           WHEN 'k1'.
            .......( Contains other statements )
           WHEN 'k2'.
            .......( Contains other statements )
           WHEN 'k3'.
            .......( Contains other statements )
           WHEN 'k4'.
            .......( Contains other statements )
           WHEN 'k5'.
            .......( Contains other statements )
           WHEN 'k6'.
            .......( Contains other statements )
         ENDCASE.
        ENDCASE.
        ENDIF.
    ==========================
    I have tried several different event handlers including the example in the documentation of the dropdownlistbox HTMLB element, but in the event handler I don't know how to determine the selection made.
    I would appreciate it hugely if someone could give me an example how to do this ?
    With regards,
    Fred van de Langenberg

    Hello,
    Thanks for your answers & suggestions Subramanian, Ulli & Sebastian.
    I forgot the <htmlb:content> tags ( thanks Ulli ) and eventually I got things working with the following :
    Main page layout : dopdownlistbox element
       <htmlb:dropdownListBox
                id          = "Ddlb1"
                onSelect    = "OnInputProcessing" >
                selection   = "<%= selection1 %>"
            <htmlb:listBoxItem key   = " "
                               value = " "/>
            <htmlb:listBoxItem key   = "k1"
                               value = "k1" />
            <htmlb:listBoxItem key   = "k2"
                               value = "k2" />
            <htmlb:listBoxItem key   = "k3"
                               value = "k3" />
            <htmlb:listBoxItem key   = "k4"
                               value = "k4" />
            <htmlb:listBoxItem key   = "k5"
                               value = "k5" />
          </htmlb:dropdownListBox>
    Event handler
    CLASS CL_HTMLB_MANAGER DEFINITION LOAD.
    IF event_id = CL_HTMLB_MANAGER=>EVENT_ID.
    Scenario 1: Read event from manager.
      DATA: event TYPE REF TO CL_HTMLB_EVENT.
      event = CL_HTMLB_MANAGER=>get_event( runtime->server->request ).
      IF event IS NOT INITIAL AND event->name = 'dropdownListBox'.
        DATA: data TYPE REF TO CL_HTMLB_DROPDOWNLISTBOX.
        data ?= CL_HTMLB_MANAGER=>GET_DATA(
                  request = runtime->server->request
                  name    = 'dropdownListBox'
                  id      = 'Ddlb1'
         CASE data->selection.
           WHEN 'k1'.
           WHEN 'k2'.
           WHEN 'k3'.
           WHEN 'k4'.
           WHEN 'k5'.
         ENDCASE.
       ENDIF.
    ENDIF.
    Fred van de Langenberg

  • What event handling code do I need to access a web site ?

    Hello
    I am doing a GUI program that would go to a program or a web site when a button is clicked. What event handling code do I need to add to access a web site ?
    for instance:     if (e.getSource() == myJButtonBible)
              // go to www.nccbuscc.org/nab/index.htm ? ? ? ? ? ? ?
            } below is the drive class.
    Thank you in advance
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import javax.swing.JEditorPane.*;
    public class TryGridLayout
      public TryGridLayout() {
        JFrame myJFrame = new JFrame("Choose your program");
        Toolkit myToolkit = myJFrame.getToolkit();
        Dimension myScreenSize = myToolkit.getDefaultToolkit().getScreenSize();
        //Center of screen and set size to half the screen size
        myJFrame.setBounds(myScreenSize.width / 4, myScreenSize.height / 4,
                           myScreenSize.width / 2, myScreenSize.height / 2);
        //change the background color
        myJFrame.getContentPane().setBackground(Color.yellow);
        //create the layout manager
        GridLayout myGridLayout = new GridLayout(2, 2);
        //get the content pane
        Container myContentPane = myJFrame.getContentPane();
        //set the container layout manager
        myContentPane.setLayout(myGridLayout);
        //create an object to hold the button's style
        Border myEdge = BorderFactory.createRaisedBevelBorder();
        //create the button size
        Dimension buttonSize = new Dimension(190, 100);
        //create the button's font object
        Font myFont = new Font("Arial", Font.BOLD, 18);
        //create the 1st button's object
        JButton myJButtonCalculator = new JButton("Calculator");
        myJButtonCalculator.setBackground(Color.red);
        myJButtonCalculator.setForeground(Color.black);
        // set the button's border, size, and font
        myJButtonCalculator.setBorder(myEdge);
        myJButtonCalculator.setPreferredSize(buttonSize);
        myJButtonCalculator.setFont(myFont);
        //create the 2nd button's object
        JButton myJButtonSketcher = new JButton("Sketcher");
        myJButtonSketcher.setBackground(Color.pink);
        myJButtonSketcher.setForeground(Color.black);
    // set the button's border, size, and font
        myJButtonSketcher.setBorder(myEdge);
        myJButtonSketcher.setPreferredSize(buttonSize);
        myJButtonSketcher.setFont(myFont);
        //create the 3rd button's object
        JButton myJButtonVideo = new JButton("Airplane-Blimp Video");
        myJButtonVideo.setBackground(Color.pink);
        myJButtonVideo.setForeground(Color.black);
    // set the button's border, size, and font
        myJButtonVideo.setBorder(myEdge);
        myJButtonVideo.setPreferredSize(buttonSize);
        myJButtonVideo.setFont(myFont);
        //create the 4th button's object
        JButton myJButtonBible = new JButton("The HolyBible");
        myJButtonBible.setBackground(Color.white);
        myJButtonBible.setForeground(Color.white);
    // set the button's border, size, and font
        myJButtonBible.setBorder(myEdge);
        myJButtonBible.setPreferredSize(buttonSize);
        myJButtonBible.setFont(myFont);
        //add the buttons to the content pane
        myContentPane.add(myJButtonCalculator);
        myContentPane.add(myJButtonSketcher);
        myContentPane.add(myJButtonVideo);
        myContentPane.add(myJButtonBible);
        JEditorPane myJEditorPane = new JEditorPane();
        //add behaviors
        ActionListener myActionListener = new ActionListener() {
          public void actionPerformed(ActionEvent e) throws Exception
            /*if (e.getSource() == myJButtonCalculator)
              new Calculator();
            else
            if (e.getSource() == myJButtonSketcher)
              new Sketcher();
            else
            if (e.getSource() == myJButtonVideo)
              new Grass();
            else*/
            if (e.getSource() == myJButtonBible)
               // Go to http://www.nccbuscc.org/nab/index.htm
        }; // end of actionPerformed method
        //add the object listener to listen for the click event on the buttons
        myJButtonCalculator.addActionListener(myActionListener);
        myJButtonSketcher.addActionListener(myActionListener);
        myJButtonVideo.addActionListener(myActionListener);
        myJButtonBible.addActionListener(myActionListener);
        myJFrame.setVisible(true);
      } // end of TryGridLayout constructor
      public static void main (String[] args)
        new TryGridLayout();
    } // end of TryGridLayout class

    Hello
    I am doing a GUI program that would go to a program or a web site when a button is clicked. What event handling code do I need to add to access a web site ?
    for instance:     if (e.getSource() == myJButtonBible)
              // go to www.nccbuscc.org/nab/index.htm ? ? ? ? ? ? ?
            } below is the drive class.
    Thank you in advance
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import javax.swing.JEditorPane.*;
    public class TryGridLayout
      public TryGridLayout() {
        JFrame myJFrame = new JFrame("Choose your program");
        Toolkit myToolkit = myJFrame.getToolkit();
        Dimension myScreenSize = myToolkit.getDefaultToolkit().getScreenSize();
        //Center of screen and set size to half the screen size
        myJFrame.setBounds(myScreenSize.width / 4, myScreenSize.height / 4,
                           myScreenSize.width / 2, myScreenSize.height / 2);
        //change the background color
        myJFrame.getContentPane().setBackground(Color.yellow);
        //create the layout manager
        GridLayout myGridLayout = new GridLayout(2, 2);
        //get the content pane
        Container myContentPane = myJFrame.getContentPane();
        //set the container layout manager
        myContentPane.setLayout(myGridLayout);
        //create an object to hold the button's style
        Border myEdge = BorderFactory.createRaisedBevelBorder();
        //create the button size
        Dimension buttonSize = new Dimension(190, 100);
        //create the button's font object
        Font myFont = new Font("Arial", Font.BOLD, 18);
        //create the 1st button's object
        JButton myJButtonCalculator = new JButton("Calculator");
        myJButtonCalculator.setBackground(Color.red);
        myJButtonCalculator.setForeground(Color.black);
        // set the button's border, size, and font
        myJButtonCalculator.setBorder(myEdge);
        myJButtonCalculator.setPreferredSize(buttonSize);
        myJButtonCalculator.setFont(myFont);
        //create the 2nd button's object
        JButton myJButtonSketcher = new JButton("Sketcher");
        myJButtonSketcher.setBackground(Color.pink);
        myJButtonSketcher.setForeground(Color.black);
    // set the button's border, size, and font
        myJButtonSketcher.setBorder(myEdge);
        myJButtonSketcher.setPreferredSize(buttonSize);
        myJButtonSketcher.setFont(myFont);
        //create the 3rd button's object
        JButton myJButtonVideo = new JButton("Airplane-Blimp Video");
        myJButtonVideo.setBackground(Color.pink);
        myJButtonVideo.setForeground(Color.black);
    // set the button's border, size, and font
        myJButtonVideo.setBorder(myEdge);
        myJButtonVideo.setPreferredSize(buttonSize);
        myJButtonVideo.setFont(myFont);
        //create the 4th button's object
        JButton myJButtonBible = new JButton("The HolyBible");
        myJButtonBible.setBackground(Color.white);
        myJButtonBible.setForeground(Color.white);
    // set the button's border, size, and font
        myJButtonBible.setBorder(myEdge);
        myJButtonBible.setPreferredSize(buttonSize);
        myJButtonBible.setFont(myFont);
        //add the buttons to the content pane
        myContentPane.add(myJButtonCalculator);
        myContentPane.add(myJButtonSketcher);
        myContentPane.add(myJButtonVideo);
        myContentPane.add(myJButtonBible);
        JEditorPane myJEditorPane = new JEditorPane();
        //add behaviors
        ActionListener myActionListener = new ActionListener() {
          public void actionPerformed(ActionEvent e) throws Exception
            /*if (e.getSource() == myJButtonCalculator)
              new Calculator();
            else
            if (e.getSource() == myJButtonSketcher)
              new Sketcher();
            else
            if (e.getSource() == myJButtonVideo)
              new Grass();
            else*/
            if (e.getSource() == myJButtonBible)
               // Go to http://www.nccbuscc.org/nab/index.htm
        }; // end of actionPerformed method
        //add the object listener to listen for the click event on the buttons
        myJButtonCalculator.addActionListener(myActionListener);
        myJButtonSketcher.addActionListener(myActionListener);
        myJButtonVideo.addActionListener(myActionListener);
        myJButtonBible.addActionListener(myActionListener);
        myJFrame.setVisible(true);
      } // end of TryGridLayout constructor
      public static void main (String[] args)
        new TryGridLayout();
    } // end of TryGridLayout class

  • Javascript error in event handler! edge 4.0.0.js, what to do about it?

    Site
    Hello everyone. I get an error in my chrome cosole, what can I do about this?
    I dont have this problem in all browsers, just in chrome, and in some versions of Firefox.
    The problem occurs when I click any label in the iframe (see website, speaks for itself).
    line 5838      window.console.log("Javascript error in event handler! Event Type = " + eventType);
    does anyone know how to fix this?
    And why do I only have this problem in some browsers?

    I basically want the labels in the Iframe to make the parent page animate to a specific anchor tag.
    ps. This is what I posted on the jquery forum as well:
    I tried to do this by letting the iframe .trigger a .click to a button on the .parent page.
    I did this in two ways.
    one: the click is triggerd in (/by) the iframe
    two: the click is triggerd by a script in the parent window, that script is launched by the iframe
    Here's the thing:
    this is what one of the <a>'s that the iframe will click looks like:
    <a class="nonblock nontext anim_swing" id="u185" href="index.html#contact"><!-- simple frame --></a>
    The code is generated by adobe muse which has a function to smoothly scroll to a location on the page, and I am guessing the "anim_swing" class takes care of that.
    I would like the colorful labels in the iframe to do the same thing as the <a> above.
    and it works in some browsers on some computers but somehow not on all of them (with method two the adblocker doesn't seem to be an issue ).
    I also tried to let the parent page scroll directly with the jquery .scrollto function. That did not work either (see the jquery forum).

  • What is an event handler..?

    I'm trying to learn how to make responsiveness UI. I've read that I can not use SwingUtilities.invokeLater() method if I am in a event handler. The question can seems stupid but I'm only a beginner: what is a event handler? From what I know it might be the actionPerformed method..is it right? Could somebody give me an example? thanks!

    Basically an event handler is a class that performs code.
    It can be any class (even the same that fires the event), but it has to implement the proper interface for the event you want to catch. If you want to perform special code when someone clicks on a button you want to catch an Action, therefor you need an ActionListener, a class that either implements the ActionListener interface (and therefor the method actionPerformed) or your class has to extend AbstractAction (and therefor has an actionPerformed, too).
    It you want to perform special code when someone chooses an element from a list, you want to be informed about a ListSelectionEvent and therefor need a class that implements the ListSelectionListener Interface (and provides the method selectionChanged).
    The class that should react on the event has to be declared as being a listener to the object that fires the events. So an actionListener on a Button would be added by
    button.addActionListener(listener);or
    button.setAction(action);(Note that all variables used are just for clarifiing the type you need and have to be exchanged by the names of your declared objects)
    There are many more events ... really, read the tutorial!

  • What is the correct process to return errors from an Event Handler

    I have a pre-Create and pre-Modify Event Handlers. If the event handler detects an error, I want to throw an exception back to terminate the create user or modify user event. I also want to display a meaningful error message on the OIM UI. In my pre-modify event handler I am throwing the following exception when an error is detected:
    throw new EventFailedException(processId, null, "User ID not available", "", "MODIFY", null);
    However, the OIM UI is not displaying the message "User ID not available" as I want it to. Instead it is displaying the following error message:
    An error occurred. The corresponding error code is IAM-0080062
    Does anyone know where that error code is coming from? My event handler is not doing that. Also, does anyone know where I can find any documentation on the proper use of the EventFailedException? What do the parameters mean? How do I get a meaningful error message to display on the OIM UI?
    Thank you for any help here.
    -Dave

    Please try to cancel the PO 1st and then Cancel Sales order...
    Refer following note id
    How to Cancel a Drop Ship Order Line (Doc ID 393688.1)
    Thanks

  • Event handler method definitions - whats the difference

    hi folks,
    i'm a newbie and have just started trying to get my head
    around flash 8 actionscript.
    is anyone able to advise me what is the
    distinction/difference/subtlety between defining an event handler
    method ON a keyframe as compared to defining an event handler
    method WITHIN a keyframe.
    evidently this is a keypoint to understand so if i don't get
    this clear i expect it'll cause me grief later.
    thanx for your response.
    regards,
    avonova

    I wouldn't say ON a keyframe, that sounds like on a frame. I
    believe you mean the difference between on(clip event) which is
    placed on an instance of a movieclip or myClip.onClipEvent which is
    code placed on a timeline/frame.
    Thanks aniebel for that link. David Stiller is a genius and
    really hit the point.
    For me code consolidation is certainly the biggest reason for
    it as well. But from that you start to see ways to put your code
    together that are just better and lead naturally into OOP style and
    concepts.
    avonova – it is totally worth learning how to do it
    this way. In AS3 you will no longer be able to use any of the
    on(clipEvent) style coding. (Still supported in CS3 if you publish
    to earlier versions of AS2 or 1.)

  • What is event handler in oopsand why we need it  and how to use it ?

    Hi  everyone ,
    I am new to sdn.I did not understand event handler  in oops .Please replay to this .
    Thanks & Regards,
    Sudeep Subudhi.
    Moderator Message: Welcome to SDN. Please read the [Forum Rules of Engagment|Welcome and Rules of Engagement; before posting your question.
    Edited by: Suhas Saha on Jan 9, 2012 2:51 PM

    EDIT: BAH! I posted too slow... but there is still some information about saving and clearing in there
    Its for making a playlist while your 'on the go'. So you click and hold the middle button the selected song (or album) should flash... Then you go into the playlist menu (music>playlists>on-the-go) and use it like any normal playlist...
    When there's songs on the playlist it gives you the option to save or clear at the end of the song list, you select either one and it'll ask for conformation.
    It works in both manually sync and auto sync mode. But if you have it on auto sync the play list will be created in iTunes...
    So I'm not sure why you don't see songs in it after yo assign them to it, try sending a whole album and then music>playlists>on-the-go the album songs should be listed.
    As for reasons to use it well maybe while out and about you realise that you want to hear from two artists at the same time, Radiohead and Bowie, in a shuffle mode. You could make it a on-the-go playlist. Or there's a few podcasts you want to hear in order... so you go down the list and assign them to on-the-go.
    Some people use the On the go to note songs that need to be looked at in iTunes later, maybe because its too quiet, badly imported or they don't understand how such a bad song found its way onto the iPod.
    Once you save it if you try and put more songs to it, 'on-the-go-1' will be created.
    -hope this helps

  • What's different between event handle by bsp frame & MAC

    Hi,
    Can anyone know the different between event handle by BSP frame & handle by MAC?
    and how to know which event is handle by BSP frame or MAC?
    thanks
    Gang

    Hi Abdul,
    So that means the add_entry event is standard event handle by BSP frame.
    thanks
    Gang

  • Event handler of inbound plug not called when plug fired by event handler

    Hello All,
    I have a rather bizzare problem, hopefully someone out there can figure out what is going on, as I'm rather stumped.
    I have 2 views, A and B. They are linked by plugs, InA, InB, OutToA, OutToB. OutToB is linked to InB from A to B, OutToA is linked to InA from B to A.
    There is an onActionLink in view A. Clicking on this triggers an action which calls the wdFirePlugOutToB method.
    In view B some handling is done in the method onPlugInB, then wdFirePlugOutToA is called to change the displayed view back to A.
    As far as the user is concerned they don't ever see view B. (this bit works perfectly!)
    Now also in view A I have an event handler which handles a event from the component controller. It also calls wdFirePlugOutToB.
    If I trigger an event in the component controller this event handler is called and the method called. However, when I put a breakpoint in the onPlugInB, flow never reaches here. Flow does get to the wdDoModifyView of view B but never to the inbound plug event handler.
    Any suggestions as to what I might need to do? I would have thought calling the wdFirePlugOutToB method would ALWAYS trigger the linked event handler onPlugInB.
    I am running NW04 SP18.
    Thanks!

    Hi Bharathwaj,
    The project I'm working on has a requirement to allow for a road-mapped process (FPM) which has one step in which multiple screens can be accessed. I'll give an example: A user in step A selects the cost centre that they want to work with, in step B they need to maintain several pages of information about this cost centre. The do not want to break this information into steps, as there is no logical progression from one step to the next, and it may well be that the user wishes to go from maintaining screen 1 to screen 3, and then screen 2, and then screen 4. Stepping between all screens (1->2->3->2->3->4) wastes time and is not very user friendly. Step C of the process confirms the data that the user entered in step B, and Step D is the validation that the changes have been committed to the database. (a very familar 4 step process for those using ESS).
    To allow for this requirement, I have designed a left navigation pane type screen. links appear on the left of the screen and the user can use these to navigate between different screens (implemented as FPM IVAC VCs) on the right of the screen.
    It is quite an elegant solution (even if I do say so myself although quite complex to implement. I have relied very heavily on reading the code SAP put together for the FPM. The most complex part is that in order to update the the content of view containers in an application you must trigger a web dynpro view navigation by firing a plug to a different view.
    Unfortunately I don't have any sample application code, only the finished product, which I can't really share. But I can say that if you look at the FPM code carefully, working from where the wdInit of the FPM is called, it will eventually make sense.
    One thing I found slightly frustrating, you can't use the FPM's component usage register (FPM method attachComponentUsage(IWDComponent, IWDComponentUsage)) to add a VC... darned inconvienient really (you'd think that the web dynpro framework could have implemented the concept of extending an interface, but the IBLC and IVAC interfaces are different! - even though the IVAC is just IBLC + a few methods), but then again you can manage the instantiation of the used VC yourself and call the onInit method of the VC passing the current fpm reference, to attach it to a common FC, and given that you should be sharing context through the FC and never the VC, then really this isn't too much of an issue. (I spent ages worrying that I couldn't add the instances of the VC that I was using within my navigation pane VC to the fpm instance list, until I realised that it really didn't matter!)
    One day - when I have time (yeah right!) I might put together a blog about this sort of stuff, in the meantime, it keeps me plenty busy enough not to have the time!
    Hope this helped in some small way,
    Cheers,
    Chris

  • Beginners Questions about Multiple JPanels in JFrame and event handling

    I am a newbie with SWING, and even a newerbie in Event Handling. So here goes.
    I am writing a maze program. I am placing a maze JPanel (MazePanel) at the center of a JFrame, and a JPanel of buttons (ButtonPanel) on the SOUTH pane. I want the buttons to be able to re-randomize the maze, solve the maze, and also ouput statistics (for percolation theory purposes). I have the backbone all done already, I am just creating the GUI now. I am just figuring out EventHandlers and such through the tutorials, but I have a question. I am adding an ActionListener to the buttons which are on the ButtonPanel which are on JFrame (SOUTH) Panel. But who do I make the ActionListener--Basically the one doing the work when the button is pressed. Do I make the JFrame the ActionListener or the MazePanel the ActionListener. I need something which has access to the maze data (the backbone), and which can call the Maze.randomize() function. I'm trying to make a good design and not just slop too.
    Also I was wondering if I do this
    JButton.addActionListener(MazePanel), and lets say public MazePanel implments ActionListenerdoesn't adding this whole big object to another object (namely the button actionlistener) seem really inefficient? And how does something that is nested in a JPanel on JFrame x get information from something nested in another JPanel on a JFrame x.
    Basically how is the Buttons going to talk to the maze when the maze is so far away?

    I'm not an expert, but here's what I'd do....
    You already have your business logic (the Maze classes), you said. I'm assuming you have some kind of public interface to this business logic. I would create a new class like "MazeGui" that extends JFrame, and then create the GUI using this class. Add buttons and panels as needed to get it to look the way you want. Then for each button that does a specific thing, add an anonymous ActionListener class to it and put whatever code you need inside the ActionListener that accesses the business logic classes and does what it needs to.
    This is the idea, though my code is totally unchecked and won't compile:
    import deadseasquirrels.mazestuff.*;
    public class MazeGui extends JFrame {
      JPanel buttonPanel = new JPanel();
      JPanel mazePanel = new JPanel();
      JButton randomizeB = new JButton();
      JButton solveB = new JButton();
      JButton statsB = new JButton();
      // create instanc(es) of your Maze business logic class(es)
      myMaze = new MazeClass();
      // add the components to the MazeGui content pane
      Component cp = getContentPane();
      cp.add(); // this doesn't do anything, but in your code you'd add
                // all of your components to the MazeGui's contentpane
      randomizeB.addActionListener(new ActionListener {
        void actionPerformed() {
          Maze newMaze = myMaze.getRandomMazeLayout();
          mazePanel.setContents(newMaze); // this is not a real method!
                                          // it's just to give you the idea
                                          // of how to manipulate the JPanel
                                          // representing your Maze diagram,
                                          // you will probably be changing a
                                          // subcomponent of the JPanel
      solveB.addActionListener(new ActionListener {
        void actionPerformed() {
          Solution mySolution = myMaze.getSolution();
          mazePanel.setContents(mySolution); // again, this is not a real
                                             // method but it shows you how
                                             // the ActionListener can
                                             // access your GUI
      // repeat with any other buttons you need
      public static void main(String[] args) {
        MazeGui mg = new MazeGui();
        mg.setVisible(true);
        // etc...
    }

  • Event Handling for Graphic Shapes

    Hi guys,
    I have a problem on the implementation of a piece of software that i'm making, to be more specific i implement a GUI. In this GUI i draw rectangles, lines and that kind of things.
    The problem is that i want when clicking on a rectangle, an event to take place such as the drawing of something else, or a message, etc.
    How am i to achieve that? I've tried many things but didn't succeeded it unfortunately. How am i going to "give" life to my rectangles by adding event handling for them? What code should i write?
    Note: My class extends JPanel & i'm using paint(Graphics g) for drawing the shapes
    Thanks,
    John.

    Try this:
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.util.*;
    public class Shapes extends JFrame
         DPanel pan = new DPanel();
    public Shapes()
         addWindowListener(new WindowAdapter()
              public void windowClosing(WindowEvent ev)
                   dispose();
                   System.exit(0);
         setBounds(10,10,400,350); 
         setContentPane(pan);
         setVisible(true);
    public class DPanel extends JPanel implements MouseListener
         Vector shapes = new Vector();
         Shape  cs;
    public DPanel()
         addMouseListener(this);
         shapes.add(new Rectangle(20,20,100,40));
         shapes.add(new Rectangle(40,80,130,60));
         shapes.add(new Line2D.Double(20,150,200,180));
    public void paintComponent(Graphics g)
         super.paintComponent(g);
         Graphics2D g2 = (Graphics2D)g;
         for (int j=0; j < shapes.size(); j++)
              g2.draw((Shape)shapes.get(j));
         g.setColor(Color.red);
         if (cs != null) g2.draw(cs);
    public void mouseClicked(MouseEvent m) {}
    public void mouseEntered(MouseEvent m) {}
    public void mouseExited(MouseEvent m)  {}
    public void mouseReleased(MouseEvent m){}
    public void mousePressed(MouseEvent m)
         for (int j=0; j < shapes.size(); j++)
              Shape s = (Shape)shapes.get(j);
              Rectangle r = new Rectangle(m.getX()-1,m.getY()-1,2,2);
              if (s.intersects(r))
                   cs = s;
                   repaint();
    public static void main (String[] args) 
          new Shapes();
    }Noah

Maybe you are looking for