Linking af:selectInputDate component to other Components

Hello All,
Can someone offer me any advice here? I have two components on my screen. One is a SelectInputDate component and the other component is a daily schedule component. Here's my problem (bear with me, its not as easy as it first appears). When the user selects the date from the selectInputDate control, I want to call an action on my backing bean which refreshes the Schedule component. Now, I thought I could bind the Action property of the selectInputDate control to my backing Bean method but if you do that, the action to popup the calendar dialog is intercepted so you don't get the popup calendar. How can I make the selection of a date trigger another action method? I've tried the listeners, but they don't perform an action method.
One solution was to simply add a command button next to the selectInputDate control and make the user first select the date, then press the commandButton; but as you can imagine, this is really ugly.
It's as if I need a second Action method that I can bind to once the date has been selected, or at least implement in code the call to the Date dialog and then add my action code after it.
Any help would, as always be greatly appreciated.
Nigel

Hi,
you can use partial page triggers for this
- open the property inspector for the selectInputDate component
- give a value to the ID property and set the autoSubmit property to true
- Select the component to refresh and open the property inspector
- select the PartialTrigger property and open the dialog [...] button
- choose the ID of the inputDate component as a value
This will refresh the component (e.g. table, panel, etc) upon value change
Frank

Similar Messages

  • How to get active component of other components component usage

    Hi all,
    let me try to describe you the issue.
    I've got three components interacting with another. Lets call them CA, C1 and C2.
    CA uses both C1 and C2, so CA has component usages CUA1 and CUA2. But C1 also uses C2 with component usage CU12.
    C1 calls an interface method of component usage CU12 (of component C2).
    But although I've got an active component on CA-level for CUA1 (lets call this active component ACT1), C1 does not call the interface method of ACT1. (Even events are not triggered.)
    How can I assign the active component of CUA1 to C1 at runtime and how do I call its interface method from C1?
    Can I search for active components within C1 by name (I've got several active components, how do I differentiate them)?
    Thank you for your help.
    ismail
    FYI: The scenario:
    CA uses C1 as a global search component.
    CA has several list components C2.1, C2.2 etc.
    C2.1 lists all arrival/departure flights from NY. It also offers a minor search functionality for flight regarding NY.
    C2.2 lists all arrival/departure flights from LA. It also offers a minor search functionality for flight regarding LA. etc...
    I want to use C1 as a global search which uses the minor searches of C2.1, C2.2 etc. The outcome of the minor searches shall be displayed in C1, but also in C2.1, C2.2 etc. when I switch to the C2.1, C2.2 etc.
    Example usage 1:
    1. At CA I go to C2.1 and search for all flights to NY from London.
    2. Then I switch to C2.2 and search for all flights from LA to Berlin.
    3. When I switch back to C2.1 the former results remain there, I can still see all flights to NY from London.
    Example usage 2:
    1. At CA I go to C1 and make a global search for all departures to London.
    2. If I now switch to C2.2 I want to see all flights from LA to London, without a search here.
    3. If I now switch to C2.1 I want to see all flights from NY to London, without a search here.

    You use a desktop pane, but save a reference as a JLayeredPane. So make the reference of type JDesktopPane and check out [the documentation API|http://java.sun.com/javase/6/docs/api/javax/swing/JDesktopPane.html#getSelectedFrame()].
    For the next time, bookmark [http://java.sun.com/javase/6/docs/api/] and use you browsers search function to quickly jump to the class you want. Swing component usually also have a link to the relevant tutorial.

  • Loading components 1 by 1 [passing value from 1st component to other]

    Hi all,
    can anyone tell that how to load component one after one.
    In my application I have created components and placed in
    another component. when i load the page each component is loading
    the data Asyncronesly. But i want to load 1st component 1st and
    then set value to other components from 1st component.
    In 1st component i am filling dropdown and setting property
    in that component after setting the property i want to pass that
    value to other components and based on that property i set the
    corresponding data should be populated in ohter component. how can
    i achieve this.
    like in second component i am filling tje datagrid items
    based on selected value from the dropdown in 1st component..
    I just want to pass the property which i set in 1st component
    to other components and load the other components after the 1st
    component is loaded completely with data..
    reply asap
    Girish

    Hi Tracy,
    I am quering / retrieving data from salesforce database using
    AsyncResponder method. In each component i have written login
    method [logging into salesforce db].
    Created all my mxml component separately and drag&dropped
    in another mxml component.

  • Simple Connect access other Components

    Hi !!
    I'm using FMS components, in that I'm not able to connect the
    simple connect component with other components which were in other
    frame.
    Can any one please help in solving this issue.
    Thanks in advance
    Anil Golla :

    Hi anil!
    well it was not the problem with the instance name! well i
    even i am not quiet sure what is the problem or now can say what
    was the problem!
    one fine day it started working automatically, with out me
    doing any changes!!!
    Unusual right?

  • PApplet/component is always above all other components except...

    Hi,
    I am working with java and a program off shoot of Java called Processing. Processing aids in the creation of java and it integrates itself into a swing component by extending into a PApplet(Processing�s version of an applet) which a JFrame sees as a component.
    Example:
    newJFrame.add(PApplet); <--- works perfectly except�
    The integration of java/swing and processing in an application works very well except for one problem. The Processing class (PApplet) draws to the screen and when I put it into a JFrame, JPanel, JInternalFrame, etc � the graphics are always above all other component except the JMenuBar. I found a fix for the JMenuBar to be this line of code �JPopupMenu.setDefaultLightWeightPopupEnabled(false);� I guess it tells the popup manager of the JMenuBar to not setDefaultLightWeightPopupEnabled which in turn, allows the JMenuItems to popup above the PApplet.
    Is there a way to force the PApplet/component to follow the rules of all other components? (setComponentZOrder, setLayer, etc�) It works for the JMenuBar so I feel it should be able to work for all other components � is there a way?
    Thanks,
    4dplane

    Thanks for the info; I believe you hit the nail on the head. Processing is open source so I looked in the PApplet class and it extends Applet, so this means processing is awt based.
    Thanks,
    4dplane

  • [svn:fx-trunk] 12878: When sub-components don' t have a tabIndex and when VideoPlayer instance does, assigned tabIndex to each inner-component to ensure that they appear in the correct tab order with other components on the stage .

    Revision: 12878
    Revision: 12878
    Author:   [email protected]
    Date:     2009-12-11 19:07:40 -0800 (Fri, 11 Dec 2009)
    Log Message:
    When sub-components don't have a tabIndex and when VideoPlayer instance does, assigned tabIndex to each inner-component to ensure that they appear in the correct tab order with other components on the stage.
    QE notes: none
    Doc notes: none
    Bugs: n/a
    Reviewer: Gordon
    Tests run: checkintests
    Is noteworthy for integration: no
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/VideoPlayerAccImpl.as

    Michael,
    "Michael Caughey" <[email protected]> wrote in message news:413f0af6$1@mail...
    If I'm doing something wrong what is it? Obviously there is something
    different about how I configured my environment a year ago.What happens if you bring down ms02?
    Regards,
    Slava Imeshev

  • Component always displays "under" other components......

    Hi there,
    I have a component derived from a "panel" - I'm adding it to the applet but it always displays itself "under" the other components in the applet, never above (which is where I want it).
    I've tried adding it last and adding it first - doesn't make any difference. When I add the component I set it to "setVisible(false)" and "setVisible(true)" when the user clicks a button. I'm a bit confused as to why its underneath everything else!
    Any ideas?
    Thanks.

    I am using my own paint methods indeed - I mean I'm calling "super" and then rendering the component - or calling "super" in a container component and rendering other stuff on the container afterwards.
    But this is all working on the version you see on the website - the one I'm working on is broken.
    btw. I'm using a "Panel" (derives from Container, its a lightweight thingy, nout to do with Schwing etc.).

  • Ideas to display which component drives the other components in the canvas

    I have 4 components in my canvas and I would like to learn some ideas from gurus on what are the best ways to display which component drives (drills down)  the other components in the dashboard.  Any info would be appreciated.

    Hi,
    There is no such rule on which component should drive other in Xcelsius. It all depends upon the data that you are using. Always a component with summarized data should drive a component with granular data. For eg: If you are showing Total sales in a country using Column chart and want to drilldown to the percentage of sales in each region of a particular country , you can use pie chart to show it. Here Column chart drives Pie chart and u can show this in other way also.
    Hope it helps!
    Thanks,
    Arun US

  • Creating GUI component that includes other components

    Hello, I need to create an UNIVERSAL FORM (panel) consisting of several textboxes and labels. These textboxes and labels will be defined in XML. I want it as a GUI JavaBean. It should be made from a panel with some layout and it should consist other components. Here are my questions:
    1) What class to derive from? JPanel?
    2) Well, when I override a GUI Swing component I must implement a paint method but this is a bit strange. I just want to set up the textboxes -- I do not need any special painting. A question appears -- is JavaBean technology good for this situation? Is there any better solution?

    I mean why this doesn`t work:
    public class Uniform extends JComponent implements
    Serializable {
         private String xmlContent;
         private int type;
         private JPanel panel;
         public Uniform() {
              panel = new JPanel(new GridLayout(1,2));
              panel.add(new JTextField("A"));
              panel.add(new JTextField("B"));
         public void paint(Graphics g) {
              panel.paint(g);
    }Is it a good solution? How would you solve the
    problem?
    Thanks for your ideas.If you mean by 'dont' work' that your text boxes and panel doesn't appear, then it's because you're missing this line in your constructor:
    public Uniform() {
      this.add (panel, BorderLayout.CENTER);
    }Regards,
    Devyn

  • Adding Component to JFileChooser excludes other components

    I want to add a JComboBox component to a JFileChooser but when I do, the default components that are supposed to be in that space don't show up.
    For example, in the JFileChooser, there are several components (like the accept and cancel buttons) in the SOUTH area of the BorderLayout. When I add a custom combobox like so:
    JFileChooser fc = new JFileChooser();
    cb = new JComboBox();
    fc.add(cb, BorderLayout.SOUTH);
    dialogResult = fc.showSaveDialog();the combobox I added is the ONLY component which shows up in the SOUTH area.
    I have tried adding the combobox as an accessory, but it always shows up to the right of the file browser window. If I can control where the accessory shows up, that would be fine, but I don't see any way to do that.
    I don't understand why the other components wouldn't show up?
    Thanks in advance for any help.

    fc.add(cb, BorderLayout.SOUTH);
    This line replaces the components that were
    previously in that space - read the tutorial on
    BorderLayout. In addition, this code is very brittle
    and you can have no guarantee that it will work under
    different look-and-feels and in future versions of
    JDK, since you're making some far-fetching
    assumptions on the internal implementation of the
    file chooser dialog.Thanks very much for the help!
    Fundamentally, i did not realize that in BorderLayout you may only set ONE component to each area (NORTH, SOUTH, CENTER, etc.).
    Once I understood that, I grabbed the component at the bottom of the filechooser and placed it in a JPanel with the components I wanted to Add to the bottom.
    This worked perfectly!
    I am uncertain, however, about why you say the code is "brittle" and what you mean by making assumptions regarding the internal implementation.
    In any case, thanks again for your help!
    For anyone else who is interested, here is what the code looks like
    JFileChooser fc = new JFileChooser();
    JComboBox cb = new JComboBox();
    JPanel panel = new JPanel();
    BoxLayout box = new BoxLayout(panel,BoxLayout.Y_AXIS);
    BorderLayout layout = (BorderLayout) fc.getLayout();
    panel.setLayout(box);
    Component comp = layout.getLayoutComponent(BorderLayout.SOUTH);
    panel.add(comp);
    panel.add(cb);
    fc.add(panel,BorderLayout.SOUTH);

  • Menus appearing underneath other components

    I am having a problem making my menus appear on top when they 'pop up'. I know this is a problem with mixing heavyweight and lightweight components, and I have been trying to force the menus to be heavyweight but to no avail.
    I have been trying to set the menus to be heavyweight by calling this method after the menu has been instantiated:
    [menuname].getPopupComponent().lightWeightPopupEnabled(false);
    Here is an image showing my problem:
    http://www.inf.brad.ac.uk/~jpcatter/menus.jpg
    Edited by: JonCat on Jul 26, 2008 8:47 AM

    It is not a mix of swing and awt. The browser component is the mozswing MozillaPanel component, and it is this that is being drawn on top of my menus, as can be seen from the screenshot that I posted. Another thought I had was that the browser component is the last to be drawn, as it is added to the tab control once all other components are drawn. Could it be the Z ordering of components causing the overlap, or is it strictly a heavy / light weight issue?
    Here is a link to the mozswing homepage for anyone who is interested:
    http://confluence.concord.org/display/MZSW/Home

  • Not able pass the data from component to other component.

    Hello All
    I am not able pass the data from component to other component.
    I have done like this.
    1 Main Component (Parent component ) having below  two child components.Embeded as used components.
    2)     Search Component  and Details Component
    3)     In the Search Component having buttons,  Say : Button u201CXu201D on click of button I am navigating to Details component view through FPM.
    4)     When I am clicking above button u201CXu201D raising the event to call the parent   business logic method, there I am getting  Structure with values and binded this structure to the node and Mapped this node to the Details component  interface node. FYI : I kept the debugging point Structure is having data , I had set static attributes table to node instance.
    5)     In the Details component node data is not coming mean empty.
    Thanks in Advance.
    Br-
    CW
    Edited by: CarlinWilliams on Jul 4, 2011 9:21 AM

    Hi,
    When you use input Ext. check that the parent component should not be used as used component in child component.
    Only in the parent component the child components should be used as used components and the usage has to be created for the
    Child Components and the binding of the Node should be done from comp. controller of parent component to child node
    by which you will be able to see double arrow against the node.This should work
    Thanks,
    Shailaja Ainala.

  • SelectInputDate component in a search form - JDev 10.1.3.0.4

    Cheers to all of you buddies in this valley of tears, have a good day
    I have a table that contains a date column, and a search form to do "query by example" and its date field is a "selectInputDate" with its date chooser.
    The date column in the table is formatted as yyyy-MM-dd (assigned in the underlying BO).
    I assigned a "convertDateTime" with a pattern yyyy-MM-dd to the selectInputDate component.
    At this point, the page works correctly. I select a date and get the appropiate results.
    The problem rised when adding a validator to the "selectInputDate" component.
    I added a "validateDatatimeRange" validator and binded the Maximum and Minimum values to two java.util.Date fields (minDate and maxDate) defined in a session managed bean named depSessionBean. The binding was done using EL as #{depSessionBean.minDate} and #{depSessionBean.maxDate}. The effect is that the date chooser only enables dates within the range (good).
    The problem arises when I click on the "Execute" action button. All I get is a lovely error complaining about date conversions.
    The attached converter returns a String that is correctly used to query the data but the validator expects a java.util.Date (it does not accept String values).
    So, am I missing something? How can I get the converter and validator to work together?
    Thanks a heap for any help.
    A.Gurisatti
    This is the error I get when executing the query (2006-08-14 is the chosen date):
    500 Internal Server Error
    oracle.adfinternal.view.faces.convert.ConvertException: Could not convert instance:2006-08-14 of type:class java.lang.String into type:class java.util.Date
         at oracle.adfinternal.view.faces.convert.GenericConverterFactory.convert(GenericConverterFactory.java:189)
         at oracle.adfinternal.view.faces.validator.DateTimeRangeValidator.validate(DateTimeRangeValidator.java:27)
         at oracle.adf.view.faces.component.UIXEditableValue.validateValue(UIXEditableValue.java:378)
         at oracle.adf.view.faces.component.UIXEditableValue.validate(UIXEditableValue.java:206)
         at oracle.adf.view.faces.component.UIXEditableValue._executeValidate(UIXEditableValue.java:522)
         at oracle.adf.view.faces.component.UIXEditableValue.processValidators(UIXEditableValue.java:302)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839)
         at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839)
         at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689)
         at javax.faces.component.UIForm.processValidators(UIForm.java:170)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839)
         at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildrenImpl(UIXComponentBase.java:855)
         at oracle.adf.view.faces.component.UIXComponentBase.validateChildren(UIXComponentBase.java:839)
         at oracle.adf.view.faces.component.UIXComponentBase.processValidators(UIXComponentBase.java:689)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:912)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:342)
         at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:78)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:627)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)

    Frank,
    Thanks for your reply and yes I'm using BC (I allways forget that important piece of information).
    Unfortunatelly I still have a few doubts:
    - I suppose that assigning a pattern to a date column in a BO is for display purposes and in some cases to have the right conversions in where clauses. In this case, choosing yyyy-MM-dd (that is the default) is a coincidence and in this case, you are right it is superfluous. But suppose we use dd/MM/yyyy. In this case, the date will be rendered with this new pattern. Even more, I suppose that in a query by example, when building the where clause, JDev expects the given date to be a string with that same pattern (dd/MM/yyyy). So, we have the first conclusion: The selected date must be a String with the given pattern. That is why I assigned a converter to the selectInputDate component.
    I did some tests and concluded: The patterns in the BO and in the converter assigned to the selectInputDate component must match or the query won't work.
    The second step is to narrow the date range. The way I found to do it is by assigning a datetime validator to the selectInputDate component. This validator expects java.util.Date values for its min and max dates, and the date chooser works well (by enabling only dates between the given range).
    The problem rises when you submit the form. At validation time you have: a date expressed as a formatted String (needed for the query) and a validator expecting a java.util.Date to perform the validation. So, you get a casting error.
    All this is what I understood and concluded about the situation and, of course I could be completelly wrong.
    If my steps for configuring the search parameters are correct, there must be a way to do the String - Date casting and avoid the error.
    If my approach is wrong then there must be a correct approach for this kind of situation.
    Thanks a lot for your help,
    A. Gurisatti

  • Accessing a button in a Component from other component

    I have a two components Test_Interface.mxml & teacher_fullscreen. I called teacher_fullscreen.mxml from Test_Interface.mxml by
                  private var tfull:teacher_fullscreen = new teacher_fullscreen();
                  tfull.title = "Teacher Window";            
                  tfull.maximizable=true;             
                  tfull.systemChrome = 'none';
                  tfull.minWidth = 800;
                  tfull.minHeight = 600;             
                  tfull.open();              
    Now I created an instance of Test_interface in my 2nd mxml by
    public var par:Test_Interface=new Test_Interface();
    Actually, I wanted to disable a button in Test_interaface.mxml with id = "b1" from my 2nd mxml using the object created above.
    So I gave par.b1.enabled=false; It did not give any compile errors but during run time cannot access object or method of null reference sandbox error was returned for the statement par.b1.enabled=false. So how do I change the property of a button in one component from other. Please Help me.

    We need more information.
    1) Is this an AIR application?
    2) What is the name of the main app MXML file??
    3) Please boil this down to a minimal yet complete set of code files and post the entire code here for all files.
    I think based on what you mentioned you should be able to boil it down and post just a few lines of code for each file and the answer to your problem should come soon. But with the error you are getting it is too easy to make assumtions that may not reflect your situation.

  • How to read URL parameters of one wdp component into other WDP component?

    Dear Experts,
    Can anyone let me know how to read URL parameters of one wdp component into other WDP component?
    My requirement is i have one standard WDP component with 3 URL parameters and i needto
    read that URL parameters along with their values in my Z-WDP component.
    Thanks
    SK

    Hi Santosh,
    You can read parameters send from one WebDynpro Component to another component by adding code in "HANDLEDEFAULT" Event Handler method ( Window )of your target Web Dynpro Component.
    data: lt_parameter             type tihttpnvp,
             ls_parameter             type ihttpnvp.
    lo_api_controller ?= wd_this->wd_get_api( ).
       call method lo_api_controller->get_message_manager
         receiving
           message_manager = lo_message_manager.
       clear : ls_parameter.
       refresh : lt_parameter[].
    * Read all URL parameters
       wdevent->get_data( exporting name = if_wd_application=>all_url_parameters importing value = lt_parameter ).
    if not lt_parameter[] is initial.
         clear : ls_parameter.
         read table lt_parameter into ls_parameter index 1.
         if ls_parameter-name = 'ACTION' and
            ls_parameter-value is initial.
           lv_flag = 'X'.
           clear : lo_msg.
           lo_msg = 'Action Parameter Missing in URL Link !'.
    *         report message
           call method lo_message_manager->report_error_message
             exporting
               message_text = lo_msg.
         else.
         endif.
    Best Regards
    Priyesh Shah

Maybe you are looking for