Event handling in AJAX Blueprints Maps

I am trying display various information in a text box based on the map marker selected. I see that you can bind an individual map marker to the info, but is there any way to dynamically set the info based on the selected map marker?

Post Author: Eugene.Lozovan
CA Forum: Nsite
Nice!

Similar Messages

  • User Recon and Event Handler  Issue in OIM11g

    Hello Experts,
    I am developing a Trusted Source Recon (User) for a proprietary application. I have devloped two java classes and put them into a jar file and placed the same jar in both ScheduleTask and EventHandlers directory of OIM.
    1.UserRecon class -- for User Recon
    2. EventHandler class -- update user's password after reconciling the user using API.
    In the User Recon class , I have defined a static HashMap variable to store the user and user's password as a class variable. The flow will be like this,
    1. Query trsuted source
    2. Reconcile user (except password because password can not be)
    3. Update the map with userid (key) and password.
    4. After reconciling , In the event handler use the same map to read user's password and set the password in OIM using API. (setXelleratePassword).
    5.After successful password set remove the entry from Map.
    The idea is to avoid making additional call to trusted source to retrieve the user's password.
    This worked in OIM9102. But when I tested the same in 11g it did not work.... Though the User Recon class updates the record into the HashMap , In the eventhandler , the HashMap is always coming as "empty".
    I did the below changes for 11g,
    1. Modified the EventHandler class to suite for 11g.
    2. Deployed the event handler as a plugin
    3. Placed the same jar file in Schedule task directory of OIM 11g
    I am unable find out where it is going wrong?? and tired of troubleshooting. Can you assist me ?
    Thanks and Regards
    INIYA

    INIYA wrote:
    Hello Experts,
    I am developing a Trusted Source Recon (User) for a proprietary application. I have devloped two java classes and put them into a jar file and placed the same jar in both ScheduleTask and EventHandlers directory of OIM.
    1.UserRecon class -- for User Recon
    2. EventHandler class -- update user's password after reconciling the user using API.
    In the User Recon class , I have defined a static HashMap variable to store the user and user's password as a class variable. The flow will be like this,
    1. Query trsuted source
    2. Reconcile user (except password because password can not be)
    3. Update the map with userid (key) and password.
    4. After reconciling , In the event handler use the same map to read user's password and set the password in OIM using API. (setXelleratePassword).
    5.After successful password set remove the entry from Map.
    The idea is to avoid making additional call to trusted source to retrieve the user's password.
    This worked in OIM9102. But when I tested the same in 11g it did not work.... Though the User Recon class updates the record into the HashMap , In the eventhandler , the HashMap is always coming as "empty".
    I did the below changes for 11g,
    1. Modified the EventHandler class to suite for 11g.
    2. Deployed the event handler as a plugin
    3. Placed the same jar file in Schedule task directory of OIM 11gHope there are two jars, if this is the case place the secondary jar in lib folder, than make it as plugin.
    >
    I am unable find out where it is going wrong?? and tired of troubleshooting. Can you assist me ?
    put the printstacktrace, so that problem can be identify
    sample code
    HashMap hash= null;
    try{
    hash = get map from other class
    //class be load at this point, if class is not loaded than you will get exception.
    }catch(Throwable t){
    // hope you will get some error or exception here
    t.printstacktrace();
    >
    Thanks and Regards
    INIYAPaste you sample code, if it couldn't help.

  • 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

  • Event handler when using partial page refresh ?

    Hi
    I have a calendar, which uses partial page refresh. The problem is how to make javascript wait until the calendar has loaded and then do some updates on the calendar (after the user has pressed the next button that runs apex.widget.calendar.ajax_calendar('S','next');, for example ). I thought I could add "onreadystatechange" (or onload) event handler to the calendar like this: onreadystatechange="checkState()", where the function would check the state and if ready then do the updates. This doesn't work. Could somebody please tell me why not ?
    Tiina

    Hi,
    It seems that ajax calendar missing event apexafterrefresh.
    I do not know is this "bug" or just feature.
    That event would be useful to your case , if I understand correct what you looking for.
    For workaround , you can over write original function by placing this to calendar region footer
    <script>
    apex.widget.calendar.ajax_calendar=function(p_calendar_type, p_calendar_action, p_calendar_date, p_calendar_end_date){
    var l_cal_type_field = $v('p_cal_type_field_id');
    var l_cal_date_field = $v('p_cal_date_field_id');
    var l_cal_end_date_field = $v('p_cal_end_date_field_id');
    var l_cal_id = $v('p_calendar_id');
    var l_calendar_region = 'calendar' + l_cal_id;
    if ( p_calendar_type != 'C' ){
      $s(l_cal_date_field,$v('p_calendar_date'));
    }else{
      if ( $v(l_cal_date_field) == '' ) {
       $s(l_cal_date_field,$v('p_calendar_date'));
      if ( $v(l_cal_end_date_field) == '' ) {
       $s(l_cal_end_date_field,$v('p_calendar_end_date'));
    // create and apex.ajax.widget object
    var a = new apex.ajax.widget('calendar',function(){
      /* start the return function */
      if(p.readyState == 1){
       document.body.style.cursor = "wait";
      }else if(p.readyState == 2){
      }else if(p.readyState == 3){
      }else if(p.readyState == 4){
       $x(l_calendar_region).innerHTML = p.responseText ;
       $s(l_cal_date_field,$v('p_calendar_date'));
       if (p_calendar_type == 'C') $s(l_cal_end_date_field,$v('p_calendar_end_date'));
       document.body.style.cursor = "";
      /* DO HERE THINGS AFTER CALENDAR REFRESH */
      }else{return false;}
    // code for next,previous and today
    if (p_calendar_type == 'S'){
      p_calendar_type = $v('p_calendar_type');
    }else{
      $s(l_cal_type_field,p_calendar_type);
    a.ajax.addParam('p_widget_mod',p_calendar_type);
    a.ajax.addParam('p_widget_action',p_calendar_action);
    a.ajax.addParam('x01',l_cal_id);
    var lDate = (!!p_calendar_date && p_calendar_date !== '')?p_calendar_date:$v(l_cal_date_field);
    if (p_calendar_type == 'C') {
      var lendDate = (!!p_calendar_end_date && p_calendar_end_date !== '')?p_calendar_end_date:$v(l_cal_end_date_field);
    a.ajax.add(l_cal_date_field,lDate);
    if (p_calendar_type == 'C') a.ajax.add(l_cal_end_date_field,lendDate);
    a.ajax.addParam('x02',lDate);
    if (p_calendar_type == 'C') a.ajax.addParam('x05',lendDate);
    a.ajax.add(l_cal_type_field,p_calendar_type);
    a._get();
    </script>Where I have comment *"do here things after calendar refresh"*, you can hook own scripts.
    Of course this is not best way, but might help you till ajax calendar support dynamic actions fully
    Regards,
    Jari
    Edited by: jarola on Oct 20, 2010 3:11 PM

  • Custom Pre Process Event Handler in OIM 11g for middle initials

    Hi,
    I am trying to congiure a Custom Pre Process Event Handler for generating middle name in OIM 11g and I am following the steps as given in metalink ID: *1262803.1*
    Even after successfully performing all the steps I am not able to get the middle initials in Admin Console when I create a new user.
    1) Directory structure for the application that I have created through JDeveloper.
    CustomApplication/
    |-- CustomApplication.jws
    `-- CustomProject
    |-- CustomProject.jpr
    |-- classes
    | `-- com
    | `-- example
    | `-- custompph
    | `-- CustomPreProcessEventHandler.class
    `-- src
    `-- com
    `-- example
    `-- custompph
    `-- CustomPreProcessEventHandler.java
    2) Directory structure for Plugins directory
    My Plugin.xml :
    <?xml version="1.0" encoding="UTF-8" ?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="com.example.custompph.CustomPreProcessEventHandler"
    version="1.0" name="CustomPreProcessEventHandler" />
    </plugins>
    </oimplugins>
    plugin/
    |-- lib
    | `-- com
    | `-- example
    | `-- custompph
    | `-- CustomPreProcessEventHandler.class
    |-- middlename.zip
    `-- plugin.xml
    Copied the middlename.zip in the plugin folder in OIM_HOME and registered it successfully.
    3) Created a EventHandlers file and imported it successfully using importmetadata.
    My EventHandlers.xml:
    <?xml version='1.0' encoding='utf-8'?>
    <eventhandlers>
    <!-- Custom preprocess event handlers -->
    <action-handler
    class="com.example.custompph.CustomPreProcessEventHandler"
    entity-type="User"
    operation="CREATE"
    name="CustomPreProcessEventHandler"
    stage="preprocess"
    order="10"
    sync="TRUE"/>
    </eventhandlers>
    I checked the logs as well but could not find something which can help me to proceed.
    Also please advise is their any mapping that I need to do in *"Design Console"*
    Please advise !!!!!
    Thanks

    My lib file contains the package as mentioned in the metalink.
    Heirarchy in Plugin folder :
    1) plugin.xml
    2) Lib ( lib contains 3 folders : com/example/custompph; And inside custompph is my CustomPreProcessEventHandler.class file)
    You mean to say i should not copy the entire package in lib but only the jar file of the CustomPreProceessEventHandler.class* file.
    If i put only a .jar file in lib i get the following error.
    "Error occured during the use of plugin registering utility. The plugin zip does not contain the definition of plugin class com.example.custompph.CustomPreProcessEventHandler"
    Thanks
    Edited by: 870050 on Jul 4, 2011 4:30 AM

  • How to trigger navigation to a portal iView from server side event handler

    Hi,
    I am modifying the workset map application. I have created custom URL links under each iView which should navigate to different iViews depending on some business logic. So I had to provide a custom event handler for these iVIew links and the path to the next iview is dynamically created by the code in the event handler. Once the new PCD path is generated, the event handler should trigger a navigation to that PCD object. Which APIs can I use to trigger this navigation from the server side event handler? I have done this before in webdynpro where we used WDPortalNavigation (.absoluteNavigation or .relativeNavigation). Is there something similar that i can use in this case (i.e. when developing a simple Portal Application from an AbstractPortalComponent)?

    Hi,
    On my understanding of your requirement.
    the best solution what i think is use Object Based Navigation(OBN).
    Is much suitable to your requirement.
    Moreover you can use
    1.Relative navigation
    2.Absolute navigation.
    In the same way how you used in web dynpro.
    Same thing can be done in abstract portal component also.
    Try using that.
    Thanks & Regards,
    Lokesh
    Edited by: lokesh kamana on Aug 11, 2008 7:23 AM

  • Accessing properties file value in event handler in OIM11gR2

    Hi,
    Can i store the bolded values in below code in a propery file and call them. I am implementing this code in Post event handler.
         logger.debug("Function::Client Initiate: Initializing OIM client");
         String ctxFactory = "weblogic.jndi.WLInitialContextFactory";
         String serverURL = "t3://host:port";
         String username = "oim_user";
         String password = "some_password";
    String authConfigLocCl="C:/OIM11g/Oracle_IDM1/designconsole/config/authwl.conf";
         Hashtable<String, String> env = new Hashtable<String, String>();
         env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL,ctxFactory);
         env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, serverURL);
         logger.debug("Function::Client Initiate: Creating OIM client");
         System.setProperty("java.security.auth.login.config",authConfigLoc);
         System.setProperty("APPSERVER_TYPE", "wls");
         oimClient = new OIMClient(env);

    Another option to get OIM credentails dynamically using CSF map
    Try something like below code
    oracle.security.jps.JpsContext ctx;
    final oracle.security.jps.service.credstore.CredentialStore cs;
    oracle.security.jps.service.credstore.CredentialMap cmap;
    oracle.security.jps.service.credstore.Credential cred;
    oracle.security.jps.service.credstore.PasswordCredential pcred;
    ctx = oracle.security.jps.JpsContextFactory.getContextFactory().getContext();
    cs = ctx.getServiceInstance(oracle.security.jps.service.credstore.CredentialStore.class);
    final String mymapName="oracle.oim.sysadminMap";
    final String mykeyName="sysadmin";
    cred = AccessController.doPrivileged(new PrivilegedExceptionAction<Credential>() {
    public Credential run() throws CredStoreException {
    return cs.getCredential(mymapName, mykeyName);
    }, null);
    String oimUserName = "";
    String oimPassword = "";
    String oimURL = "";
    if (cred instanceof oracle.security.jps.service.credstore.PasswordCredential)
    pcred = (oracle.security.jps.service.credstore.PasswordCredential)cred;
    char[] p = pcred.getPassword();
    oimUserName = pcred.getName();
    oimPassword = new String(p);
    }

  • Preferred style of event handling?

    Having developed several java applications I found that my preferred method of event handling in java is to have one component (often named EventHandler) which implements ActionListener's, MouseListener's, ListSelectionListeners, etc. I like this approach because it allows me to finalize code such as menu bars, toolbars, etc and essentially turns the EventHandler into the engine of the application.
    The problem I often run into is that while a lot of our code is finalized and can be left alone, the EventHandler becomes monstrously large with all of the logic code necessary to make the application accomplish it's task.
    I would really appreciate some ideas/opinions on this topic and possibly ways to improve this design which might make it easier to handle the events of a java app.

    I find it useful to create event handlers that focus on a particular function like a toolbar or menubar or whatever. For example, I would create a MyFrameMenuEventHandler for all menu events. If that became to cumbersome I would break the event handler up into menus like MyFrameFileMenuEventHandler and MyFrameEditMenuEventHandler.
    All of my event handlers really do nothing but call handler methods on the parent object from which the event originated (usually a frame object). This allows mapping of the same event from different sources to the same handler code.
    It also allows subclasses to override the handler methods without needing to modify the event handlers. It is also useful for providing hooks like afterFileOpen and beforeFileOpen for the handleFileOpen handler method.
    If the class containing the handler methods becomes to cumbersome you could subclass the frame, for instance, and include a logical subset of handler methods. Provide additional subclasses for the remaining handler methods. For example, you might have MyFrame, which creates components, sets layout, providers component accessor methods, and creates event handlers and registers components. Then create a subclass of MyFrame called MyFrameMenuHandler that contains all handler methods for menu events and so on.
    Although if classes start getting this big you probably would need to break it up into logical components to make it more manageable.
    I have used this technique both in Java and Forte 4GL--where I original used the technique.

  • How to access UI components in event handler

    Hi
    How can I access all or a particular UI component's object in my event handler of a event which is not caused by that UI component which is being accessed.

    You need variable resolution:
    FacesContext context = FacesContext.getCurrentInstance();
    Application application = context.getApplication();
    WaferMap waferMap = (WaferMap)application.getVariableResolver().resolveVariable(context, "waferMap");or you can ask the event for ones near by
        //action from an h:commandLink
         public void seeMore(javax.faces.event.ActionEvent event)
           System.out.println("action: seeMore "+((HtmlCommandLink)event.getSource()).getAttributes());
            java.util.List map=((HtmlCommandLink)event.getSource()).getChildren();
            Iterator i=map.iterator();
            System.out.println("action: seeMore ");
            while(i.hasNext())
                Object obj=i.next();
                if(obj instanceof UIParameter)
                    UIParameter param=(UIParameter)obj;
                    System.out.println("\t seeMore "+param.getValue()+" ");
        }

  • How to create dynamic event handler methods?

    Hello!
    Is it possible to create dynamic event handler methods in the views of WDC and then subscribe to an event of another WD component completely dynamically.
    Many thanks,
    Smitha.

    By first realising AJAX is not Java but JavaScript and then reading a tutorial on JavaScript DOM manipulation and then by reading a tutorial on AJAX and then by applying your knowledge and then in the end by integrating it in your JSP.

  • How to use common event handler for selected movie clips?

    I have a 50-state map in a flash movie. Each state is a movie
    clip.
    Goal: when mouse moves over a state or is clicked in a state,
    the state will be highlighted in a bright color and a small box
    will pop up near the state and display some information about the
    state.
    Question: I know I can add mouse event handler for each state
    movie clip. But this is simply not good since this has to be done
    50 times and codes thus scattered different places. Ideally, I only
    want to have one script that determines where the mouse position is
    when events trigged and then do right things (highlight the state
    and display info. in a pop-up). How can this be implemented?
    Thanks!

    There are a number of ways. Which way is best depends on how
    you have things set up so far.
    E.g. If they have an enumerable naming convention:
    e.g. each clip is like state_0 , state_1 etc.
    Then you can loop through them and assign them all to the
    same mouse event handler via the loop. You would need properties
    other than the name of the clip to identify the state. E.g. each
    clip could contain its own data or the index could be a pointer to
    the state data (objects with state name and info properties) in a
    separate array.
    //state clips named
    for (var i=0;i<50;i++) {
    this["state_"+i].stateindex=i;
    this["state_"+i].onPress= statePressHandler;
    var stateData:Array = [{name:"StateName,info:"this state
    Info"}, name:"StateName,info:"this state Info"}, etc...]
    function statePressHandler() {
    trace(this);
    trace(stateData[this.stateindex].name+"="+stateData[this.stateindex].info);
    Other ways are possible too but the best approach depends on
    how you have named the clips and whether you're creating them with
    code or whether they're already on stage from authoring (my guess).
    If they're already on stage and they're called "Alaska" etc, then I
    would be inclined to put them all inside a container clip that
    contains nothing else other than states. It would avoid the need
    for an array of clip names or for checking some other specific
    property of each clip to determine if its a 'state' clip and not
    something else in a for..in loop.

  • How to pass parameter (tray name) to event handler for Trays?

    Hi,
         I've several UI tray elements in my view and all these elements are associated with the action onToggleTrays.
         I want to capture the name of the Tray and state of tray(expanded/collapsed).
         For this when I try to add parameters to this event handler method, through IWD ParameterPassing, I can add only the expanded property. I'm not able to add the UI element (tray name).
         Can you please suggest how to add/pass tray name and tray state to the event handler method?
    Regards
    Sagar Nanda

    create a parameter for the action OnToggle say "id".
    In wdDoModifyView get the reference of tray element and map its id to this parameter.
    IWDTray tray=(IWDTray)view.getElement("Tray1");
    tray.mappingOfOnToggle().addParameter("id",tray.getId());
    IWDTray tray2=(IWDTray)view.getElement("Tray2");
    tray2.mappingOfOnToggle().addParameter("id",tray2.getId());
    Hope it helps.

  • Event handling timing

    Hi,
    I've 1 main component and i sub component. The sub component contains a table. I use the sub component twice in the main component. The amount of visible rows have to be different for the 2 usages though. The way i figured, i created a method on the interface controller which enables you to set the amount of visible rows. In this method, the interface controller fires an event to which the view listens. The view gets the table and does the setAmount of visible rows....no problem.
    The only things is that i want this to happen right when the component is shown so i put the setAmountOfVisbleRows() in the wdInit. It looks like the event is fired correctly and the set on the table is done but the view isnt updated. When i put it in the wdDoModifyView and i trigger this one, it works..... Can anyone enlighten me why my view isnt updated and how to fix this?
    Much thanks,
    Hugo

    Hugo,
    <i>Can anyone enlighten me why my view isnt updated and how to fix this?</i>
    At time when even fired the view is not visible, so view is not subscribed to event by WD framework yet.
    Better option is to just use context mapping (all below are done inside inner component):
    1. In interface controller create attribute VisibleRowsCount of type integer and set this attribute from interface controller method.
    2. In view create mapped attribute VisibleRowCount, define source of mapping as attribute from interface controller
    3. Bind Table.visibleRowCount to attribute defined in view.
    4. Remove event/event handler
    Valery Silaev
    SaM Solutions
    http://www.sam-solutions.net

  • How can I execute an external program from within a button's event handler?

    I am using Tomcat ApacheTomcat 6.0.16 with Netbeans 6.1 (with the latest JDK/J2EE)
    I need to execute external programs from an event handler for a button on a JSF page (the program is compiled, and extremely fast compared both to plain java and especially stored procedures written in SQL).
    I tried what I'd do in a standalone program (as shown in the appended code), but it didn't work. Instead I received text saying the program couldn't be found. This error message comes even if I try the Windows command "dir". I thought with 'dir' I'd at least get the contents of the current working directory. :-(
    I can probably get by with cgi on Apache's httpd server (or, I understand tomcat supports cgi, but I have yet to get that to work either), but whatever I do I need to be able to do it from within the button's event handler. And if I resort to cgi, I must be able to maintain session jumping from one server to the other and back.
    So, then, how can I do this?
    Thanks
    Ted
    NB: The programs that I need to run do NOT take input from the user. Rather, my code in the web application processes user selections from selection controls, and a couple field controls, sanitizes the inoputs and places clean, safe data in a MySQL database, and then the external program I need to run gets safe data from the database, does some heavy duty number crunching, and puts the output data into the database. They are well insulated from mischeif.
    NB: In the following array_function_test.pl was placed in the same folder as the web application's jsp pages, (and I'd tried WEB-INF - with the same result), and I DID see the file in the application's war file.
            try {
                java.lang.ProcessBuilder pn = new java.lang.ProcessBuilder("array_function_test.pl");
                //pn.directory(new java.io.File("K:\\work"));
                java.lang.Process pr = pn.start();
                java.io.BufferedInputStream bis = (java.io.BufferedInputStream)pr.getInputStream();
                String tmp = new String("");
                byte b[] = new byte[1000];
                int i = 0;
                while (i != -1) {
                    bis.read(b);
                    tmp += new String(b);
                getSelectionsDisplayTextArea().setText(getSelectionsDisplayTextArea().getText() + "\n\n" + tmp);
            } catch (java.io.IOException ex) {
                getSelectionsDisplayTextArea().setText(getSelectionsDisplayTextArea().getText() + "\n\n" + ex.getMessage());
            }

    Hi Fonsi!
    One way to execute an external program is to use the System Exec.vi. You find it in the functions pallet under Communication.
    /Thomas

  • Copying text to the clipboard in AVDocDidOpen event handler causes Acrobat 9 to crash

    I'm trying to copy the filename of a document to the clipboard in a plugin with my AVDocDidOpen event handler.  It works for the first file opened; however when a second file is opened, Acrobat crashes.  The description in the application event log is: "Faulting application acrobat.exe, version 9.1.0.163, faulting module gdi32.dll, version 5.1.2600.5698, fault address 0x000074cc."
    I've confirmed that the specific WIN32 function that causes this to happen is SetClipboardData(CF_TEXT, hText);  When that line is commented out and remaining code is left unchanged, Adobe doesn't crash.
    Is there an SDK function that I should be using instead of WIN32's SetClipboardData()?  Alternately, are there other SDK functions that I need to call be before or after I call SetClipboardData()
    Bill Erickson

    Leonard,
    I tried it with both "DURING, HANDLER, END_HANDLER" and "try catch," as shown below.  However, it doesn't crash in the event handler; it crashes later, so the HANDLER/catch block is never hit.
    The string that's passed to SetClipboardData() is good, because I'm able to paste it into the filename text box of the print dialog when I try to create the "connector line" PDF.  I also got rid of all the string manipulation and tried to pass a zero-length string to the clipboard but it still crashes.
    Here's the code:
    ACCB1 void ACCB2 CFkDisposition::myAVDocDidOpenCallback(AVDoc doc, Int32 error, void *clientData)
        PDDoc pdDoc = AVDocGetPDDoc(doc);
        char* pURL = ASFileGetURL(PDDocGetFile(annotDataRec->thePDDoc));
        if (pURL)    {
            if (strstr(pURL, "file://") && strstr(pURL, "Reviewed.pdf")) {
                // Opened from file system so copy filename to clipboard for connector line report
                char myURL[1000];
                strcpy(myURL, pURL);
                ASfree(pURL);    // Do this before we allocate a Windows handle just in case Windows messes with this pointer
                pURL = NULL;
                HGLOBAL hText = GlobalAlloc(GMEM_MOVEABLE, 1000);
                if (hText)    {
                    try
                        // Skip path info and go right to filename
                        char *pText = (char *)GlobalLock(hText);
                        char *pWork = strrchr(myURL,'/');
                        if (pWork)    {
                            strcpy(pText, pWork+1);
                        } else {
                            strcpy(pText, myURL);
                        char *pEnd = pText + strlen(pText);    // Get null terminator address
                        // Replace "%20" in filename with " "
                        pWork = strstr(pText, "%20");
                        while (pWork)    {
                            *pWork = ' ';
                            memmove(pWork+1, pWork+3, (pEnd - (pWork+2)));
                            pWork = strstr(pText, "%20");
                        // Append a new file extension
                        pWork = strstr(pText, ".pdf");
                        *pWork = 0;    // truncate the string before ".pdf"
                        strcat(pWork,".Connectors.pdf");
                        GlobalUnlock(hText);     // Must do this BEFORE SetClipboardData()
                        // Write it to the clipboard
                        OpenClipboard(NULL);
                        EmptyClipboard();
                        SetClipboardData(CF_TEXT, hText);     // Here's the culprit
                        CloseClipboard();
                        GlobalFree(hText);
                    } catch (char * str) {
                        AVAlertNote(str);
            if (pURL)
                ASfree(pURL);

Maybe you are looking for

  • Drag & Drop in finder and spotlight stopped working after 10.5.7 update

    Fresh brand new iMac here, clean install 10.5.6, everything fine, copied user data back, all fine, applied 10.5.7 update, bang, admin and user can no longer drag & drop. I did a permission fix which finds a LOT wrong, that worked, once, next restart

  • I just talked to an apple representativ and.....

    she told me..because i ordered my nano last night...it would come with a pouch that did not protect the nano very well...but she told me that the material that the nano was being made with was replaced with a " new space age " material that would pre

  • Multiple instances of the same program

    Well, I'm looking for some help with the following: I'm making an app that is suposed to have many instances running at the same time. (it's a Swing GUI app). I need to get these instances to "find each other", to reflect on all the instances every c

  • Can not create a pdf file from print menue using mountain lion

    I can not seem print a page from Safari to desktop as a pdf.

  • Time Machine Failed - Won't Recognize Drives now

    I was backing up my Mac Book Pro to an external Firewire drive. I was also backing up some files that are on another external USB drive. Time Machine just froze up. When I restarted my computer, it wouldn't boot and just sat at the grey screen. The o