[CS3][JS][ScriptUI] Observing changes to user selection (advanced)

I have a simple ScruitUI palette working in InDesign which displays the area of a selected page item.
When the user selects a page item and launches the palette the area is calculated and the palette displays the result correctly.
I cannot work out, however, how to update the calculated area when the user changes the selection. I can use the onMove and onResize events on the palette window to trigger the recalculation, but I would like another way that did not involve the user moving or re-sizing the palette. Something like onActive so that all the user had to do was click on the palette to trigger a recalculation.
The simple way out is to create a button on the palette which the user clicks to update the area information, and this may be the best I can do at the moment. I was just wondering if any of the experts had some insight into other techniques for observing changes to selection from a palette. It would be amazing to have a scripted observer that could change the palette without the user doing anything special, in the same way that InDesign panels (like Info) work, but I realize I'm asking a lot from a scripting DOM that is already amazingly comprehensive.

Hi Kasyan,
Below roughly what I sent to Simon - it is not a full solution, but demonstrates the techniques you need.
With APIDToolAssistant installed and a document open, create a page item on the pasteboard; this page item will be used as a 'controller' for this demo. Select it and bring up the APID ToolAssistant palette.
Set the list of subjects to "*"
Set the event filter to "subjectSelected#myLittlePaletteEngine, subjectDeselected#myLittlePaletteEngine".
This captures the selection and deselection events for all page items, and routes them into a persistent engine (myLittlePaletteEngine) for handling.
Because the engine is persistent, it will 'remember' gPalette and gField on subsequent events after they have been created the first time around.
Set the script to:
var gPalette;
var gField;
var gController = theItem;
function CreatePalette()
gPalette =
new Window(
"palette",
"What is it");
gField = gPalette.add("statictext",[0,0,200,20],"testfield");
if (gPalette == undefined)
gController.setDataStore("$GROUP_EVENTS$",true);
CreatePalette();
gPalette.show();
gField.text = app.selection.toString();
This does work for 'page item' selections - it won't work for text selections. To make that work too, you need to change the event filter to "*#myLittlePaletteEngine" (* is a wildcard and matches all events, including idle - which is used to update the text selection info).
This last method (relying on idle) is not terribly good or efficient; I am currently looking how I could avoid the need for capturing 'idle' in version 1.0.46 (which will support CS4).

Similar Messages

  • Change UI configuration dynamically when ever user selects a new value in a drop down field in WebUI

    I enhanced the standard activity component (i.e BT126S_APPT ). In this component, in BT126S_APPT/ApptSQ view there is a field 'PROCESS_TYPE' which is a dropdown. I have created a server event for this dropdown. So that whenever user selects a value in that dropdown, a event is called and after that DO_CONFIG_DETERMINATION is called. In DO_CONFIG_DETERMINATION, I am checking the value of 'PROCESS_TYPE' and based on that i am setting different config keys, by calling SET_CONFIG_KEYS( ). But the configuration is not changing in WebUI. When I press F2 in WebUI its showing the config keys( searched for ) as I set, but the found config keys are same as before. I have created the configuration with the new configuration keys. Please help, I am new to crm.

    Hello Shakthi,
    The easier option would be to convert the DropDownByKey to DropDownByIndex. If you still want to proceed with DropDownByKey then you need to initialise the ALV data again.  do the following
    1. after changing the attribute-value_set, call the ALV interface controller method SET_DATA and pass the instance of the context node.
    2. reintiliase all the ALV settings like edit mode, converting the column editor to DropDownByKey etc....
    This will ensure the new attribute value set is reflected in the ALV component.
    BR, Saravanan

  • Dropdown display changes based on user selection in previous dropdown list

    Hi,
    I am really having trouble with this and spent a lot of time researching several blogs, tutorials, youtubes, etc. I just cannot get what I've found to work for me.  I am creating a simple form in LiveCycle Designer 8.0.  I have a table of 14 rows and four columns (row one is the header).  Each cell in the first 3 columns contain a dropdown filling the thirteen rows.  The last row is a user entered numerical field.  My query is related to the second column's drop downlist (months1) containing two items (24, 38) and the third column drop downlist (hours1) containing 5 items (4,000, 6,000, 8,000, 10,000, and 12,000).  In addition, there is a default item in each drop down set at <select>.
    I would like to have the instructions and script needed that will display the correct list of choices to the users in the "hours1" drop down list based on what was selected in the months1 dropdown.
    For example;
    if the user selects "24" in the months1 dropdown, then the hours1 dropdown should display "4,000, 6,000, and 8,000" only.
    if the user selects "36" in the months1 dropdown, then the hours1 dropdown should display "6,000, 8,000, 10,000 and 12,000" only.
    This type of coding would be great to replicate in other forms I have been tasked to do.  Thanks!

    This is helping me out. The only thing I am having trouble with is running the script from a function set up as a variable. I have a variable called "Members" set up with the following function:
    function TeamMembers()
              TimeSheetSF.EmployeeInfoSF.TeamMemDrop.rawValue = "";
              TimeSheetSF.EmployeeInfoSF.TeamMemDrop.clearItems();
              var myTeam = this.boundItem(xfa.event.newText);
              switch (myTeam)
                        case "Team 0":
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Cheryl");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Neil");
                                  break;
                        case "Team 1":
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Pat");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Carl");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Conn");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Gayle");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Gene");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("John");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Mich");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Malind");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Alan");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Maln");
                                  break;
                        case "Team 2":
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("David");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Cris");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Chad");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Linda");
                                  TimeSheetSF.EmployeeInfoSF.TeamsDrop.addItem("Steph");
                                  break;
    When I add the following to the change event of the first field and run it nothing happens. The drop down in the TeamsDrop drop-down field does nothing.
    Members.TeamMembers();
    If I add all of the code to the change event without it being wrapped in a function it works. I can't figure what I am doing wrong.
    I might add that I am creating the first drop down using a function in a variable and it works just fine.

  • Change portal language based on user selection in masthead7.3

    Hi All,
    I am trying to provide the language drop down option in Portal Masthead.
    I have created the Hovermenu in Masthead which displayes 2 options(English and German)
    When user selects German, the portal should be loaded in german language.
    Can you please guide me with the proper event handler which should be called, on clicking Hovermenu Item.
    Which URL should be called on clicking Hovermenu Item.
    I have checked some SDN links already.
    Regards,
    Sumangala

    Thanks for your answers.
    I have already checked those links.
    Now th problem what I am facing is,
    I am not able to call the function ChangeLanguage through javascript.
    I have created a dropdwon using Hovermenu and added English and German.
    Now when I click on these the function should be called.
    Please help me in getting how setClientSideScript() can be used to call a function.
    or any other way to call the function after clicking on Hovermenu Item.
    Thanks in advance,
    Sumangala

  • How do I change my user name in syn? I typed in the wrong email address. And I cancelled syn thinking this may work but no luck.

    How do I change my user name in syn? I typed in the wrong email address. And I cancelled syn thinking this may work but no luck.

    You have to clear saved password for this page:
    # Open you login page (where you have to enter username and password).
    # Right click on page and select '''Page Info''' form context menu.
    # On last tab ('''Security''') there is '''View saved passwords''' button, click it and delete all saved passwords for this page.
    # Also clear all related cookies (just in case) there is button for this next to first one.

  • How to avoid the user selecting a different path in my installer

    Hello again all you helpful forum-goers!
    I have an application and a corresponding installer, and then I have a separate installer putting some support files in the same directory.  My problem is that if the user selects a different path to which to install my primary application, the secondary installer will not put the required support files in the same spot.
    Now, I think I've figured out how to get the user-selected path from the "Run executable at the end of installation" option in the Advanced pane of the LabVIEW installer configuration, and I can pass that in to my secondary installer, and that should fix the problem.  However, what I'd really like to do is just not give the user the option to install my primary application in a different directory to begin with.  I've looked, but cannot find any way to do that.
    Does anyone know of any way to not present the option to install an application in a different directory when using the LabVIEW installer?
    Thanks in advance for any suggestions,
    -Joe

    Ben64,
    That's great!  Thank you so much for your quick reply.  The only reason I haven't already accepted that as my solution is that it requires a manual post-compile change to a text file.  Ideally I'd prefer not to have to remember to do that every time I rebuild my installer.  Is there any way that you know of to automate the process?
    If not, I'm happy to have a good solution even if it takes an extra step each time to implement.
    -Joe

  • Is that possible to display the user selection data in the printable page?

    Hi All,
    I'm going to add a printablepage button on my page.
    Here comes a questions.
    Is that possible to display the user selection data in the printable page?
    For example,
    I have a table in the page,with 10 records.User select 5 of them.Can I display these 5 records in the printable page?
    Please help.

    Hi Yannick,
    Thanks a lot for the information. It worked.
    The portlet data can be accessible using bindings, but parameter name can be different.
    Meanwhile I have got one more scenario, where the Portlet and Task Flow placed in different pages of WCP Application. On change of data in the Portlet the application should navigate to another page where the Task Flow placed and displays selected data.
    Basically I can not use any button for navigation. The navigation should happen once I do some action in Portlet.
    Is this possible? If yes can you please let me know the steps?
    Thanks in advance!
    Somnath
    Edited by: Somnath Basak on Dec 20, 2011 9:41 AM

  • How to update records in a table based on user selection..

    Hi all,
    This time the above doubt is totally based on the logic of coding which I tried a lot but didn't get any solution. so atlast I come to sdn site.
    please help..
    The requirement is like that I have a table with 6 fields (1 primary key and other are nonkeys). If the user inputs some values in the fields on the screen, then a row will be added in the table. Upto this i have done well. but when the user want to change some value  in the existing row of the table my program unable to do so. Because I couldn't get any logic to do that as there are 5 nonkey fields, so if any one field is modified then the respective row should be selected first based on the user selection and then it should be updated.
    At this point I could not get any idea as it may take a lots of if conditions (I guess) to reach to that particular row.
    Please help..
    thanks ,
    sekhar

    Hi Sekhar,
    I am afraid, the whole design of your program is wrong, let me explain
    Let us say you have two rows(5 non key fields) that the user wants to update and the data in these five non key fields are identical and in your program you are getting a number(which is the key) using a number range object. So you will have two entries in the table for the same data.
    And on the update page when the user enters the non key fields, how will the program know(or for that matter any one of us) which record to pick, if you have two identical books and if asked for a book wouldn't you ask which one among these two do you want?
    Possible Solution: Identify a possible key maintaining the integrity of the data, that is a combination of the non key fields which will help you identify a unique row and make these fields as key fields in the table.
    A more costly solution(if you do not want to change the non key field keys to key fields) would be to, adding a check(using select statement) to see if the non key fields combination already exists in the Z table before inserting a record into the table.
    If yes, throw a message to the user and just update the values in the table, else insert the record.
    Another solution would be to, use the non key fields to generate a key(using some logic) and using this instead of the number range object.
    regards,
    Chen

  • I recently lost my iphone 4 and have an iphone3 on loan until I get upgrade in Aug.  I want to sync my data - contacts most important  - from my itunes account...is this possible?  Is it possible to change the user ID on the borrowed phone to my ID?

    I recently lost my iphone 4 and have an iphone3 on loan until I get upgrade in Aug.  I want to sync my data - contacts most important  - from my itunes account...is this possible?  Is it possible to change the user ID on the borrowed phone to my ID?

    There are no contacts in itunes.
    Your contact should be on your computer in whatever program you have selected to sync.  Just sync them to the new one.
    Click Support at the top of this page, then click manuals
    Changing the itunes account on nthe iphone is covered there as is restoring the iphone as new or from backup.

  • How can I make a timer that turns on two relay channels where each channel can be on for different times of 0 to 10 seconds user selectable

    I am trying to make it clearer, I use a scxi-1161 and two of its relay channels to operate an MOV. I want to be able to apply power to two different pins on the MOV using two seperate relay channels.. but I want to be able to have it automatically cycle the two pins on and off by what time (in seconds) the user selects.. and the selection can be changed during cycling.

    Sorry I can't convert back to 5.1, but here are some pictures that might help. The mechanical action for the Start and Stop buttons is Latch When Released. In LabView 5.1, the While loop doesn't have a Stop if True option so you'll need to add an inverter between the terminal for the Stop button and the Continue terminal of the While loop.
    Attachments:
    TwoToggleTimers_frontpanel.jpg ‏31 KB
    TowToggleTimers_diagram_true.jpg ‏100 KB
    TowToggleTimers_diagram_false.jpg ‏99 KB

  • How to change the user of a cancelled background (batch) job?

    Hi All,
    I have a batch job which is being cancelled as the reference user account is locked. I want to update the job with a new user.
    How can I change the user for a cancelled job? I am able to change the user for a scheduled job (by right clicking the job >> Change) but not for a cancelled job.
    I am getting the error: "<<Job Name>> cannot be changed due to its status" when trying to change the cancelled job.
    Please help.
    Thanks
    Vijay

    Hi Vijay,
    change the user of a cancelled background (batch) job
    1) Goto <b>SM37</b>
    2) Select the cancelled job and goto menu bar select <b>Job</b> )&#61664; click on change.
    3) Click on step tab
    4) Select the job and click on change tab. Change the user name and save.
    regards,
    kanthi

  • Parameter weirdness: Report not using user selected parameter value

    I am writing my first report and cannot for the life of me figure out how to deal with this issue.
    When I call a report and pass the parameters in, it appears that the user cannot then change the parameter values and run the report again even though the parameters are displayed. When user hits run report, the values revert to what was passed in by original
    call.
    Scenario
    Report B has Parameter Period : Month, Quarter, Year displayed in a drop down list.
    Report A calls Report B and passes it the parameter: Quarter.
    Report B loads. User now changes parameter to Year via the drop down parameter list and hits Run Report.
    Instead of loading the report with user selected value (Year), it reverts back to the parameter it was called with, Quarter.
    I have tried changing the refresh option on the parameter to always, but no joy.
    The only way that seems to work is to put textboxes on the report to change the parameter.
    How can I stop this behaviour, and use the users new selection. 
    This should be really straight forward, and its driving me nuts that its not allowing the user to change the parameters
    Any help would be much appreciated.
    Thanks Jon

    Hi Jon,
    Did you use SSRS 2012? Based on my test, the issue is occurred in SSRS 2012 Business Intelligence Development Studio (BIDS). When we deploy the report to report server, it will disappear.
    In this situation, we can add another duplicate parameter to work around this issue. Please add two parameters in the report, and then hide one of the parameter. We can pass the parameter value to the hide parameter. If we want to select other values, we
    can change the visible parameter values.
    Alternatively, I recommend you that submit this suggestion at
    https://connect.microsoft.com/SQLServer/. If the suggestion mentioned by customers for many times, the product team may consider to add the feature in the next SQL Server version. Your feedback is valuable for us to improve our products and increase the
    level of service provided.
    Regards,
    Alisa Tang
    Alisa Tang
    TechNet Community Support

  • Reading dynamic table column based on user selection

    Hi there,
    I am having a problem of reading and manipulating the data stored in a standard SAP table. The following example simulates the table and what i am trying to do:
    Table: Storing sales data for sales person
    SALES_PERSON    REGION   YEAR   MTH_S1  MTH_S2  MTH_S3 MTH_S4...
    Richard  S               NORTH    2007     100          200         300        400
    John K                    SOUTH    2007      50           100         100        20
    Brad P                    NORTH    2007     300          100         100        50
    User have have the following selection option:
    1. Month.
    The program will calculate the sales based on the individual month selected
    Example, if user select Month = 3, then program take only MTH_S3 column value
    So total sales = 300100100=500
    2. Month range
    The program will calculate the sales based on the month range selected
    Example, if user select Month 2 to 4, then program take MTH 2 to MTH_S4 columns value
    So total sales = 400 (for MTH_S2) + 500 (for MTH_S3) + 470 (for MTH_S4) = 1370
    How should i write the logic or code for this requirement?
    Hope someone can help.
    Thanks,
    Pang HK

    Try something like this
    TABLES:
    t247.
    SELECT-OPTIONS:
      s_month FOR t247-mnr NO-EXTENSION.
    DATA:
      BEGIN OF fs_data,
        person(30),
        area(10),
        year(4),
        mon1 TYPE kbetr,
        mon2 TYPE kbetr,
        mon3 TYPE kbetr,
        mon4 TYPE kbetr,
        mon5 TYPE kbetr,
      END OF fs_data,
      t_data LIKE STANDARD TABLE OF fs_data,
      w_no_months TYPE i,
      w_kbetr TYPE kbetr,
      w_total TYPE kbetr.
      LOOP AT t_data INTO fs_data.
        CLEAR w_kbetr.
        DO 5 TIMES VARYING w_kbetr FROM fs_data-mon1
                                                          NEXT fs_data-mon2.
        IF sy-index IN s_month.
          w_total = w_total + w_kbetr.
        ENDIF.
        ENDDO.
      ENDLOOP.
    change the value 5, according to the no.of months in ur internal table

  • Login Page - Change How Users are Authenticated

    Hi all,
    I have done a function in a package:
    function checkPassword( p_username in varchar2, p_password in varchar2 ) return boolean
    is
    db_password number;
    begin
    select password into db_password
    from people
    where username = p_username;
    if db_password = dbms_utility.get_hash_value( p_password, 37, 1000000000 ) then
    return true;
    else
    return false;
    end if;
    end checkPassword;
    Now, I want to use this function to authenticate the user in the application but I don't know how to do it...
    I create a login page by default... what do I have to change?
    Thanks in advance
    Rdgs
    CD

    CD,
    Edit the authentication scheme's Authentication Function attribute to be:
    return your_package_name.checkPassword;
    You might also want that logic to allow for upper/lower case variations of the entered username.
    Scott

  • How to get the Multiplied value between measure and a dimension base on user selection using dynamically

    Hi Experts,
    We had developed a cube with the Measures and Dimensions.
    I had a requirment as the measures should be muliplied by the currency value of different countries and get me the results.
    For Example.
    In SSRS report, the user will select "EUR" then the measures should multiply with the EUR based value for the particular month and get the result in the SSRS report. If the user select any other currency value, that should multiply with the measure
    value and get the result in SSRS report.
    How to do that in SSAS Cube.
    Thanks
    Shashi

    Hi ,
    If I understand your requirement  correctly , then you need currency Conversion.
    you can refer this links.
    http://consultingblogs.emc.com/christianwade/archive/2006/08/24/Currency-Conversion-in-Analysis-Services-2005.aspx
    http://www.ssas-info.com/analysis-services-faq/27-mdx/244-how-change-currency-symbol-based-on-selected-currency-dimension-member
    http://social.technet.microsoft.com/wiki/contents/articles/18672.currency-conversion-in-ssas-2012-multidimensional-tabular.aspx
    May I know , You Require all this using MDX and SSRS Parameter ?
    Thanks

Maybe you are looking for