Dynamic user interfaces

Hello,
here's a little teaser for user interface experts out there:
I wonder what kind of techniques ABAP offers for creating dynamic user interfaces.
When talking of 'dynamic' I imagine something like an arbitrary number of 'containers' where other programs (classes f.ex.) can draw their own user interface into.
In Java this could be realized with the container concept in swing.
I have done some research on this topic and the results are so far:
a plain dynpro: seems to have no dynamic at all -> not an option
a plain dynpro with a tabstrip: in case the number of tabs CAN be set at runtime AND the subscreens CAN be drawn from inside separate classes -> a definite option otherwise not an option
any kind of web-frontend (BSP, JSP etc.): web-frontends are not allowed by company restrictions -> not an option
dynamic documents: I could not find many information on these yet (also not on sdn). In case that an arbitrary number of parts of the dynamic document can be created from inside separate classes -> an option otherwise not an option
I will be happy about any further information on this topic.
Best regards,
Patrick Baer

I spent some time today doing research on BSP's and built a "BSP-Viewer" embedded into the SAP-GUI. Though I like the concept of BSP's a lot (like I did already with JSP's) but company restricitions are too strict. So BSP's are out of the play.
After the discussion I started to play around with the different containers and basically I'm quite pleased with them and the "cl_gui_container_bar" allows an arbirtary number of "subscreens" which matches my requirements.
But as usual there's still a downside:
I found no option to built text labels and text fields into a container. Unless this is possible I can't give this approach a chance. I already found some postings which seemed to confirm that this is in fact not possible but I can't really believe it. At least from what it looks like it seems to me that the object navigator utilizes both: splitters, containers and all the stuff AS WELL AS the "classical" elements like text boxes, labels and so on.
Any ideas on how to combine the container concept with text fields, labels maybe whole dynpros or subscreens ?
Best regards,
Patrick Baer

Similar Messages

  • Dynamic user events freeze user interface

    Hi all,
    I am having problem with dynamic user events.
    Dynamic user event is registered to the event structure, and many dynamic user events come in very fast, about every 30 ms. It freezes up the user interface, no response to mouse and keyboard, even after all user events finish execution.
    Any idea or work around?
    Thanks for any help.
    Anne

    Hi Anne,
    > Dynamic user event is registered to the event structure, and many dynamic user events come in very fast, about every 30 ms.
    The 30ms rate is not unreasonably fast as long as the processing for the event(s) can be completed in less than 30ms.
    What tasks are you doing in the User Event?
    For tasks that may take time to complete (like logging) you could queue up the data and send it to a consumer loop.
    > It freezes up the user interface, no response to mouse and keyboard, even after all user events finish execution.
    My *guess* here is that you got stuck in an event that never completed.
    steve
    Help the forum when you get help. Click the "Solution?" icon on the reply that answers your
    question. Give "Kudos" to replies that help.

  • Why do I get -18001 Errors using Customised TestStand User Interface

    Hi all
    I have a problem when attempting to run my application on my host NT PC. I have a customised operator interface to TestStand written using Labview 5.1.1 and built using the LabVIEW application builder. I am running the TestStand Development (Run-Time) System on my host PC.
    The problem is that as soon as I go to run my sequence of vis (mass compiled using the same version of LabVIEW and assembled for run-time distribution) I receive the error '-18001 VI Not Executable.'
    I think this is probably to do with how I've included the ActiveX server in my LabVIEW User Interface application, but knowing very little about ActiveX I'm not sure exactly what the problem is.
    If anyone
    has any ideas, I would be extremely grateful for any assistance you could offer. My TS version is 1.0.1
    Thanks
    Dave

    David,
    I would like to add to Richard's input. The typical reasons a VI cannot be executed that cause this message are:
    1) There is an error in the VI such that the run arrow of the VI is broken when the VI is open in the LV development environment. This problem is usually easy to debug because you should get the error (shown below) when running your sequence in the sequence editor using the default "LabVIEW" ActiveX server provided by the LV development environment (not the LV ActiveX server provided by your operator interface which is by default named "TestStandLVGUIRTS" ).
    An error occurred in the 'MyVIStep' step of the 'MainSequence' sequence in 'MySequence.seq'.
    LabVIEW : VI is not executable.
    An error occurred accessing the LabVIEW ActiveX automation server. Error Code: -18001
    2) The same error will occur when
    a. you are using any LV ActiveX server other than the "LabVIEW" server provided by the LV development environment, AND
    b. at least one of the called VI was not assembled for distribution properly. This means that not all test VIs and their *entire* hierarchy were distributed.
    I am not sure exactly what you have done so have compiled some information that I think will help. Below I have included the document, Overview of Distributing TestStand when your Sequences use the LV Standard Prototype Adapter, which will appear in the NIDZ shortly. Another useful document is the NIDZ document Distributing LabVIEW Test VIs, which you can obtain from our website. Read these documents before preceding with the steps immediately below, which give you an example process for distributing. This may help provide a better understanding and guidance in the distribution process. We are working to simplify this process in future versions of TestStand.
    For the following example distribution I recommend that you are use default shipping code so that the problem is not complicated with potential errors added through customizations you have made.
    Building The Operator Interface
    The following are steps if you are using a LabVIEW operator interface.
    1) Copy the contents of \OperatorInterfaces\NI\LV to \OperatorInterfaces\User\LV.
    2) Open a new VI in LabVIEW. Make sure all other VIs are closed.
    3) In LabVIEW Select Tools>>Build Application or Shared Library
    4) In the builder click the Load button and load \OperatorInterfaces\User\LV\testexec.bld. This build script is configured to create testexec.exe that contains the LV ActiveX server with the name of TestStandLVGUIRTS (see the Application tab of the builder).
    5) In the builder click Build.
    6) Once the application testexec.exe is built, run it once so that the server TestStandLVGUIRTS is automatically registered. You do not need to run a sequence. Close texec.exe.
    Creating a LabVIEW Run-time Server
    If you are using the LabVIEW operator interface then skip this section. The following steps are meant for those who use an operator interface written in a ADE other than LabVIEW. They provide you with a LabVIEW run-time server that is used by TS to run your VIs.
    1) Copy the contents of \Components\NI\RuntimeServers to \Components\User\RuntimeServers.
    2) Open a new VI in LabVIEW. Make sure all other VIs are closed.
    3) In LabVIEW Select Tools>>Build Application or Shared Library
    4) In the builder click the Load button and load \Components\User\RuntimeServers\LabVIEW\TestStandLVRTS.bld. This build script is configured to create TestStandLVRTS.exe that contains the LV ActiveX server with the name of TestStandLVRTS (see the Application tab of the builder).
    5) In the builder click Build.
    6) Once the application TestStandLVRTS.exe is built, run it once so that the server TestStandLVRTS is automatically registered on your development machine. Close TestStandLVRTS.exe.
    Assembling the Test VIs for Run-Time Distribution
    This distribution process uses one of the shipping TS examples that calls LV VIs.
    1) From LV mass compile all VIs in the directory \Examples\AccessingArrays\UsingLabVIEW\. Please make sure that there were no error messages in the Status tab of the Mass Compile dialog box.
    2) In the sequence editor open \Examples\AccessingArrays\UsingLabVIEW\AccessingArrays.seq
    3) Confirm that the sequence runs without problem.
    4) In the sequence editor select Tools>>Assemble Test VIs for Run-time Distribution.
    5) If you are using TestStand 2.0 select \Examples\AccessingArrays\UsingLabVIEW\AccessingArrays.seq as the file from which the VIs should be assembled.
    6) Set the target directory to be something distinct like C:\temp\AssblVIs.
    7) If you are using TestStand 2.0 skip adding Dynamic VIs
    8) Save with or without diagrams. Its your choice.
    Change Search Directories
    Once the VIs are assembled successfully, you must add the new target directory to the TS search directories.
    1) In the sequence editor select Configure>>Search Directories.
    2) Add your target search directory (e.g. C:\temp\AssblVIs) to the search directories.
    3) Close the Edit Search Directories dialog box.
    4) Confirm that your sequence steps now reference the assembled VIs. Right click on a step in the sequence and select Specify Module.
    5) The dialog should show that the code module is found in the target directory (e.g. C:\temp\AssblVIs) that you just added to the search directories.
    6) Run the sequence. This is the initial test to see if the VIs are assembled properly.
    Switch the LV Adapter to use the TestStandLVRTS server or TestStandLVGUIRTS
    1) In the sequence editor select Configure>>Adpaters.
    2) In the Configurable Adapters control select the LabVIEW Standard Prototype Adapter and then click the Configure button.
    3a) If you are not using the LV operator interface then switch the ActiveX server to TestStandLVRTS.
    3b)If you are using the LV operator interface then switch the ActiveX server to TestStandLVGUIRTS.
    4) Close the adapter configuration dialog boxes. You will get a couple of questions boxes. Just click OK each time.
    5) Now run your sequence. If successful you are no longer using the LV development environment to run your VIs. This shows that the VIs were assembled correctly, the LV ActiveX server is working properly and that the search directories are configured properly.
    You can now try and run the sequence using your operator interface on you development computer. If this test works it means that you have also confirmed that your operator interface is working correctly with all the other components. Now it is just a matter of moving all the component correctly to the target machine.
    Distributing Components
    -To distribute your operator interface use the distribution tool of the application development environment (ADE) in which you built your operator interface.
    -To distribute the TS engine using the Run Engine Installation Wizard tool. This tool is typically not used for distributing your sequences and VIs, which you will probably distribute more frequently than the TS engine. It does distribute and register your LV run-time server (if you are using one) as long as you have stored it in \Components\User\RuntimeServers. It also distributes other TS components that you have stored under the directory \Components\User\.
    -You can use whatever distribution system you like to distribute your VIs and sequence files (e.g. ZIP and network transfer are popular) . Ensure that you distribute the assembled VIs and not the development VIs. Also ensure that the location of the VIs on the target machine is one of the TS search directories.
    Hope this helps.
    Regards,
    Kitt
    =========================================
    Title:
    Overview of Distributing TestStand when your Sequences use the LV Standard Prototype Adapter
    The general outline of the components to be distributed and the actions to take are followed by a more detailed description.
    Components that need to be distributed:
    TS engine
    Operator interface
    LabVIEW executable that will act as a LabVIEW ActiveX automation server (If the operator interfaces is written in LabVIEW, it can function as the LabVIEW ActiveX automation server.).
    LabVIEW run-time engine
    LabVIEW test VIs
    Test sequence files
    Actions before distributing:
    It is recommended that you test the distribution components on the development machine before you distribute them to your target machine. In this manner you can more easily debug errors that you may encounter
    Create the executable that will serve as your LabVIEW ActiveX server on the target machine (components 2 or 3 above).
    Assemble the test VIs for distribution.
    Update the TestStand search directories so that the sequences reference the assembled VIs.
    Configure the LabVIEW Standard Prototype Adapter to use the LabVIEW ActiveX server that you will install on the target machine.
    Test the distribution components on the development machine.
    Enter section headings, separating each section with a line break:
    TS Engine Component
    Operator Interface Component
    LabVIEW ActiveX Server
    Configuring the LabVIEW Standard Prototype Adapter
    LabVIEW Run-time Engine Component
    Assembling your Test VIs for Distribution
    Note
    TS Engine Component
    With any TestStand distribution you must install the TestStand runtime engine on the target machine. The Run Engine Installation Wizard tool, found under Tools menu of the Sequence Editor, facilitates this process. The wizard tool will create two files, SetupTSEngine.exe and TSEngine.cab. Move the two files to your target machine and run SetupTSEngine.exe to install the TestStand engine.
    These installation files include the current configuration settings that exist in the Sequence Editor at the time the tool is invoked. It also includes all process models, TestStand types and step type modules. If you have customized components of TestStand and saved them under the directory TestStand\Components\User, then the components will also be included with the engine installation.
    You must purchase at least a base deployment or debug deployment license for each machine on which you install the TestStand engine.
    Operator Interface Component
    You will also need to install an operator interface executable on the target machine. This program acts as a client to the TS runtime engine, controlling the execution of sequences and displaying their progress. TestStand ships with several versions of TestStand operator interfaces, which are written in different application development environments (ADE). For distributing the operator interface executable, refer to the application development environment in which it was created.
    LabVIEW ActiveX Server
    You must have a LabVIEW ActiveX server on the target machine. TestStand uses the LabVIEW ActiveX server to run VIs using either the LabVIEW development environment or the LabVIEW runtime engine. The LabVIEW ActiveX server is provided by either LabVIEW development environment or by any LabVIEW executable that has been built with �Enable ActiveX Server� selected. This setting can be accessed in the LabVIEW Application Builder during the build process. When this preference is enabled, you must enter a server name. You will use the server name to configure the LabVIEW Standard Prototype adapter in TestStand.
    If your operator interface is written in LabVIEW, then it can act as the LabVIEW ActiveX server on your target machine. TestStand ships with two operator interfaces written in LabVIEW. The standard LabVIEW operator interface is located in TestStand\OperatorInterfaces\NI\LV, while a simplified version is located in TestStand\Examples\OperatorInterfaces\Simple LV. LabVIEW buildscripts are provided for these applications to facilitate building an operator interface in the latest version of LabVIEW. The settings of these buildscripts are such that the applications are LabVIEW ActiveX servers with the server names of TestStandLVGUIRTS for the standard operator interface, and TestStandSimpleLVGUIRTS for the simple operator interface. The applications register the servers the first time they are executed. If you want to manually register or unregister one of the servers, you can invoke the executable with the /RegServer and /UnregServer command-line arguments respectively.
    If your operator interface is programmed in a language other than LabVIEW, then you will need a separate LabVIEW executable to provide the LabVIEW ActiveX server on your target machine. For this purpose, TestStand ships with a LabVIEW run-time server application located in TestStand\Components\NI\RuntimeServers\LabVIEW. A LabVIEW buildscript is provided for this application to facilitate building a run-time server in the latest version of LabVIEW. The settings of this buildscript are such that the application is a LabVIEW ActiveX server with the server name of TestStandLVRTS.
    Note: When an ActiveX executable server is accessed, the executable is launched automatically if it is not already executing.
    Configuring the LabVIEW Standard Prototype Adapter
    When TestStand runs a VI using the LabVIEW Standard Prototype adapter, it does so using a LabVIEW ActiveX server. By default the adapter is configured to use the �LabVIEW� server, which is provided by the LabVIEW development environment. If you do not have the LabVIEW development environment on your target machine then you must configure the LabVIEW Standard Prototype adapter within TestStand to use a different server (e.g. TestStandLVGUIRTS, TestStandLVRTS, or TestStandSimpleLVGUIRTS).
    To configure your LabVIEW Standard Prototype adapter, select Configure>>Adapters from the menu. In the Adapter Configuration dialog box that appears, select the LabVIEW Standard Prototype Adapter in the Configurable Adapters section. Click the Configure button. You can select or type a server name in the Select or Type Which LabVIEW ActiveX Server to User control. If your server name is not in the list you will need to type it.
    As explained in the LabVIEW ActiveX Server section above, TestStand ships with LabVIEW buildscripts to build a LabVIEW operator interface and a LabVIEW run-time server application. These applications are LabVIEW ActiveX servers with server names TestStandLVGUIRTS and TestStandLVGRTS, respectively. You can configure you LabVIEW Standard Prototype adapter to use one of these servers.
    LabVIEW Run-time Engine Component
    If any of your sequence steps use the LabVIEW adapter or if your operator interface is written in LabVIEW, then you must install the LabVIEW runtime engine on the target machine. It is important that your LabVIEW run-time engine is the same version as the VIs that TestStand executes.
    You can find installation files for the LABVIEW 5.1 run-time engine in the LabVIEW installation directory, Labview\APPLIBS\installs\RunTime. In addition, you can choose to automatically distribute and install the LabVIEW run-time engine with the distribution of a LabVIEW executable. Refer to LabVIEW documentation.
    Assembling your Test VIs for Distribution
    After distributing TestStand, you must ensure that your sequences are able to locate the VIs they call, and the VIs must be able to locate their required resources.
    One common mistake is to simply copy the original VIs from the development machine to the target machine. Once you have configured your LabVIEW Standard Prototype adapter to use a LabVIEW ActiveX server other than LabVIEW, your sequence will not be able to execute your original test VIs that your sequences call.
    TestStand provides the Assemble Test VIs for Distribution tool, which gathers test VIs and their required resources, and places them in a common location for distribution. You can then modify your TestStand search directories so that your sequences reference the assembled VIs. These topics are covered in the NIDZ document Distributing LabVIEW Test VIs.
    Links: See Distributing LabVIEW Test VIs below
    Note
    Remember to test your distribution components on your TestStand development system before distributing TestStand. If the execution does not work on the development system it is not going to work on your target machine. On your development machine you have more ability to debug problems you may encounter.
    Note: One common problem of testing distribution components on your TestStand development system is that your sequences reference the original Test VIs instead of the assembled test VIs. Refer to the NIDZ document Distributing LabVIEW Test VIs for assistance.
    Once the components work on your development machine, you are ready to install them on your target machine. The order in which you install these components on the target machine is irrelevant.
    ==============================================

  • Help needed, Createing Dynamic User input

    Hello,
    I am attempting to create some dynamic user input by "predicting" what the user requires in a text box.
    For example if the user enters "Smi" I have a select list pop up which gives the user all options that begin with "Smi".
    I am able to achieve the popups but the interface is quite jerky and not terribly responsive I am trying to solve this by using a thread which starts and stops when new input is received but it is still not quite right.
    The program uses a Sorted TreeSet to hold the data (I thought this would give me a quick search time) and a simple interface at this stage.
    Any help would be fantastic
    Thanks in advance :P
    import java.io.*;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.text.*;
    import java.util.*;
       /** This program represents part of a larger user interface for allowing the
       user to select data from a file or database.
       <p>
       When the program starts up, it will read in data from a given file, and hold
       it in some type of container allowing rapid access.
       <p>
       The user may then type in the first few letters of the surname of a person,
       and this program should immediately present in a popup dialog the names which
       match.  The user will be able to click on one of the names in the popup and
       that will cause all data about that person to be displayed in the JTextArea
       at the bottom of the window.
       <p>
       This program requires the FormLayout.class, FormLayout$Placement.class, and
       FormLayout$Constraint.class files in the same directory
       (folder) or in its classpath.  These is provided separately.
    class PartMatch extends JFrame implements Runnable
                        /** Close down the program. */
       JButton quitbtn;
                        /** Field for the surname. */
       JTextField namefld;
                        /** Full details of the person(s). */
       JTextArea  results;
                        /** Popup dialog to display the names and addresses which
                        match the leading characters given in namefld. */
       Chooser matches;
                      /** Default background color for a window. */
       final static  Color            defBackground = new Color(0xD0C0C0);
                      /** Default foreground color for a window. */
       final static  Color            defForeground = new Color(0x000000);
                      /** Default background color for a field */
       final static  Color            fldBackground = new Color(0xFFFFFF);
                      /** Default background color for a button */
       final static  Color            btnBackground = new Color(0xF0E0E0);
       final static  Color            dkBackground = new Color(0xB0A0A0);
                      /** Larger font */
       final static  Font bold = new Font("Helvetica", Font.BOLD, 30);
       TreeSet members;
       String input;
       String[] found;
       public static void main(String arg[])
          UIManager.put("TextField.background",fldBackground);
          UIManager.put("TextField.foreground",defForeground);
          UIManager.put("TextField.selectionBackground",btnBackground);
          UIManager.put("TextArea.background",fldBackground);
          UIManager.put("TextArea.foreground",defForeground);
          UIManager.put("TextArea.selectionBackground",btnBackground);
          UIManager.put("Panel.background",defBackground);
          UIManager.put("Label.background",defBackground);
          UIManager.put("Label.foreground",defForeground);
          UIManager.put("Button.background",btnBackground);
          UIManager.put("Button.foreground",defForeground);
          UIManager.put("CheckBox.background",defBackground);
          UIManager.put("ScrollBar.background",defBackground);
          UIManager.put("ScrollBar.thumb",btnBackground);
          UIManager.put("ComboBox.background",btnBackground);
          UIManager.put("ComboBox.selectionBackground",dkBackground);
          PartMatch trial = new PartMatch(arg);
       public PartMatch( String [] arg )
          super("Part Match");
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          Container cpane = getContentPane();
          FormLayout form = new FormLayout(cpane);
          JLabel lab1 = new JLabel("Fetch details") ;
          lab1.setFont( bold );
          form.setTopAnchor( lab1, 4 );
          form.setLeftAnchor( lab1, 4 );
          JLabel lab2 = new JLabel("Surname: ") ;
          form.setTopRelative( lab2, lab1, 4 );
          form.setLeftAlign( lab2, lab1 );
          namefld = new JTextField( 30 );
          form.setBottomAlign( namefld, lab2 );
          form.setLeftRelative( namefld, lab2, 4 );
          namefld.addCaretListener( new CaretListener()
             public void caretUpdate(CaretEvent e)
                 showMatches();
          quitbtn = new JButton( "Quit" );
          quitbtn.addActionListener( new ActionListener()
             public void actionPerformed(ActionEvent e)
                quitProcessing();
          form.setBottomAlign( quitbtn, namefld );
          form.setLeftRelative( quitbtn, namefld, 15 );
          results = new JTextArea( 10,50 );
          results.setEditable(false);
          JScrollPane jsp = new JScrollPane( results,
                                     JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                     JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
          form.setTopRelative( jsp, lab2, 6 );
          form.setLeftAlign( jsp, lab2 );
          form.setBottomAnchor( jsp, 5 );
          form.setRightAnchor( jsp, 5 );
          form.setRightAnchor( quitbtn, 5 );
          matches = new Chooser( this );
          //matches.setUndecorated(true);
          pack();
          setVisible(true);
          namefld.requestFocus();
          if (arg.length > 0) init(arg[0]);
          else init("triathlon.txt"); //<<<<<<<<<<<<<<<< Place the default filename here
          /** Called once only, at the end of the constructor, to read the data
            * from the membership file.
       public void init( String fname )
          members = new TreeSet();
           try {
               FileReader fr = new FileReader(new File (fname));
               Scanner scan = new Scanner(fr);
               trimember cmem;
               String cLine, eTag, memberNo, first, last, gender, yob, tel ,addr,
                       club;
               while(scan.hasNextLine())
                   cLine = scan.nextLine();
                   Scanner scan2 = new Scanner(cLine);
                   scan2.useDelimiter(";");
                   eTag = scan2.next().trim();
                   memberNo = scan2.next().trim();
                   first = scan2.next().trim();
                   last = scan2.next().trim();
                   gender = scan2.next().trim();
                   yob = scan2.next().trim();
                   tel = scan2.next().trim();
                   addr = scan2.next().trim();
                   club = scan2.next().trim();
                   cmem = new trimember(eTag, memberNo, first, last, gender, yob,
                           tel, addr, club);
                   members.add(cmem);
           catch (FileNotFoundException ex)
               results.append("Sorry can't find the input file\n");
               results.append("Please check file name and location and try again");
               ex.printStackTrace();
          /** Called every time there is a change in the contents of the text field
            * namefld.  It will first clear the text area.  It then needs to search
            * through the container of data to find all records where the surname
            * starts with the characters that have been typed.  The names and
            * addresses need to be set up as strings and placed in
            * an array of Strings.  This can be placed in the "matches" window and
            * displayed for the user, inviting one to be selected.
            * <p>
            * The performance of this is very important.  If necessary, it may be
            * necessary to run as a separate thread so that the user interface is
            * not delayed.  It is essential that the user be able to type letters at a
            * reasonable speed and not have the keystroke processing held up by
            * previous text.
       public void showMatches( )
           run();
                // First clear the text area
          //results.setText("");
                // Determine the leading characters of the surname that is wanted
                input = namefld.getText();
                // Locate the data for this name, and display each matching item
                //  in the JTextArea ...
                // Example of how to set the data in the popup dialog
          matches.list.setListData(found);
          matches.pack();   // resize the popup
                // set the location of the popup if it is not currently visible
          if ( ! matches.isVisible())
             Dimension sz = matches.getSize();
             Point mouse = getMousePosition();
             Point framepos = getLocation();
             int x=0, y=0;
             if (mouse == null)
                Point pt = results.getLocation();
                x = pt.x + 20 + framepos.x;
                y = pt.y + 20 + framepos.y;
             else
                x = mouse.x - 2 + framepos.x;
                y = mouse.y - 2 + framepos.y;
             matches.setLocation(x,y);
          matches.setVisible(true);
          namefld.requestFocus();
          /** Perform any final processing before closing down.
       public void quitProcessing( )
          // Any closing work.  Then
          System.exit(0);
        public void run()
            ArrayList<String> foundit = new ArrayList<String>();
            System.out.println(input);
            if(input != null)
            Iterator it = members.iterator();
            while(it.hasNext())
               trimember test = (trimember) it.next();
               if (test.last.startsWith(input))
                   foundit.add(test.last +", "+ test.first);
            found = new String[foundit.size()];
            for(int i=0; i<foundit.size();i++)
                found[i] = foundit.get(i);
         /** A window for displaying names and addresses from the data set which
          match the leading characters in namefld.
          <p>
          This will automatically pop down if the user moves the mouse out of the
          window.
          <p>
          It needs code added to it to respond to the user clicking on an item in
          the displayed list. */
       class Chooser extends JWindow
                /** To display a set of names and addresses that match the leading
                characters of the namefld text field. */
          public JList list = new JList();
          Chooser( JFrame parent )
             super( parent );
             Container cpane = getContentPane();
             cpane.addMouseListener( new MouseAdapter()
                public void mouseExited(MouseEvent e)
                   Chooser.this.setVisible(false);
             cpane.add("Center",list);
             list.addListSelectionListener( new ListSelectionListener()
                public void valueChanged(ListSelectionEvent e)
                   Chooser.this.setVisible(false);
                   System.out.println("ValueChanged");
                   // First clear the text area
                   results.setText("");
                   String in = (String) list.getSelectedValue();
                   System.out.println("Selected Value was : "+in);
                   String[] inlf = in.split(", ");
                   System.out.println("inlf[0]:"+inlf[0]+" inlf[1]:"+inlf[1]);
                   results.append("Surname \tFirst \teTag \tMemberNo \tSex \tYOB " +
                           "\tTel \tAddress \t\t\tClub\n");
                   Iterator it = members.iterator();
                   while(it.hasNext())
                       trimember test = (trimember) it.next();
                       if (test.last.equals(inlf[0])&&test.first.equals(inlf[1]))
                           results.append(test.toString()+"\n");
                   namefld.requestFocus();
          public class trimember implements Comparable
           String eTag;
           public String memberNo;
           public String first;
           public String last;
           String gender;
           String yob;
           String tel;
           String addr;
           String club;
           public trimember(String eT, String me, String fi, String la,
                   String ge, String yo, String te, String ad, String cl)
               eTag = eT;
               memberNo = me;
               first = fi;
               last = la;
               gender = ge;
               yob = yo;
               tel = te;
               addr = ad;
               club = cl;         
           //To String method to output string of details
           public String toString()
               return last + "\t" + first + "\t" + eTag + "\t" +
                       memberNo + "\t" + gender + "\t" + yob + "\t"+ tel + "\t" +
                       addr + "\t" + club;
           //Compare and sort on Last name
           public int compareTo(Object o)
               trimember com = (trimember) o;
               int lastCmp = last.compareTo(com.last);
               int firstCmp = first.compareTo(com.first);
               int memCmp = memberNo.compareTo(com.memberNo);
               if (lastCmp == 0 && firstCmp !=0)return firstCmp;
               else if (lastCmp==0&&firstCmp==0)return memCmp;
               else return lastCmp;
    }

    Please don't cross-post. It is considered very rude to do that here:
    http://forum.java.sun.com/thread.jspa?messageID=9953193

  • Help needed, Providing Dynamic User input

    Hello,
    I am attempting to create some dynamic user input by "predicting" what the user requires in a text box.
    For example if the user enters "Smi" I have a select list pop up which gives the user all options that begin with "Smi".
    I am able to achieve the popups but the interface is quite jerky and not terribly responsive I am trying to solve this by using a thread which starts and stops when new input is received but it is still not quite right.
    The program uses a Sorted TreeSet to hold the data (I thought this would give me a quick search time) and a simple interface at this stage.
    Any help would be fantastic
    Thanks in advance :P
    import java.io.*;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.text.*;
    import java.util.*;
       /** This program represents part of a larger user interface for allowing the
       user to select data from a file or database.
       <p>
       When the program starts up, it will read in data from a given file, and hold
       it in some type of container allowing rapid access.
       <p>
       The user may then type in the first few letters of the surname of a person,
       and this program should immediately present in a popup dialog the names which
       match.  The user will be able to click on one of the names in the popup and
       that will cause all data about that person to be displayed in the JTextArea
       at the bottom of the window.
       <p>
       This program requires the FormLayout.class, FormLayout$Placement.class, and
       FormLayout$Constraint.class files in the same directory
       (folder) or in its classpath.  These is provided separately.
    class PartMatch extends JFrame implements Runnable
                        /** Close down the program. */
       JButton quitbtn;
                        /** Field for the surname. */
       JTextField namefld;
                        /** Full details of the person(s). */
       JTextArea  results;
                        /** Popup dialog to display the names and addresses which
                        match the leading characters given in namefld. */
       Chooser matches;
                      /** Default background color for a window. */
       final static  Color            defBackground = new Color(0xD0C0C0);
                      /** Default foreground color for a window. */
       final static  Color            defForeground = new Color(0x000000);
                      /** Default background color for a field */
       final static  Color            fldBackground = new Color(0xFFFFFF);
                      /** Default background color for a button */
       final static  Color            btnBackground = new Color(0xF0E0E0);
       final static  Color            dkBackground = new Color(0xB0A0A0);
                      /** Larger font */
       final static  Font bold = new Font("Helvetica", Font.BOLD, 30);
       TreeSet members;
       String input;
       String[] found;
       public static void main(String arg[])
          UIManager.put("TextField.background",fldBackground);
          UIManager.put("TextField.foreground",defForeground);
          UIManager.put("TextField.selectionBackground",btnBackground);
          UIManager.put("TextArea.background",fldBackground);
          UIManager.put("TextArea.foreground",defForeground);
          UIManager.put("TextArea.selectionBackground",btnBackground);
          UIManager.put("Panel.background",defBackground);
          UIManager.put("Label.background",defBackground);
          UIManager.put("Label.foreground",defForeground);
          UIManager.put("Button.background",btnBackground);
          UIManager.put("Button.foreground",defForeground);
          UIManager.put("CheckBox.background",defBackground);
          UIManager.put("ScrollBar.background",defBackground);
          UIManager.put("ScrollBar.thumb",btnBackground);
          UIManager.put("ComboBox.background",btnBackground);
          UIManager.put("ComboBox.selectionBackground",dkBackground);
          PartMatch trial = new PartMatch(arg);
       public PartMatch( String [] arg )
          super("Part Match");
          setDefaultCloseOperation(EXIT_ON_CLOSE);
          Container cpane = getContentPane();
          FormLayout form = new FormLayout(cpane);
          JLabel lab1 = new JLabel("Fetch details") ;
          lab1.setFont( bold );
          form.setTopAnchor( lab1, 4 );
          form.setLeftAnchor( lab1, 4 );
          JLabel lab2 = new JLabel("Surname: ") ;
          form.setTopRelative( lab2, lab1, 4 );
          form.setLeftAlign( lab2, lab1 );
          namefld = new JTextField( 30 );
          form.setBottomAlign( namefld, lab2 );
          form.setLeftRelative( namefld, lab2, 4 );
          namefld.addCaretListener( new CaretListener()
             public void caretUpdate(CaretEvent e)
                 showMatches();
          quitbtn = new JButton( "Quit" );
          quitbtn.addActionListener( new ActionListener()
             public void actionPerformed(ActionEvent e)
                quitProcessing();
          form.setBottomAlign( quitbtn, namefld );
          form.setLeftRelative( quitbtn, namefld, 15 );
          results = new JTextArea( 10,50 );
          results.setEditable(false);
          JScrollPane jsp = new JScrollPane( results,
                                     JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                     JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
          form.setTopRelative( jsp, lab2, 6 );
          form.setLeftAlign( jsp, lab2 );
          form.setBottomAnchor( jsp, 5 );
          form.setRightAnchor( jsp, 5 );
          form.setRightAnchor( quitbtn, 5 );
          matches = new Chooser( this );
          //matches.setUndecorated(true);
          pack();
          setVisible(true);
          namefld.requestFocus();
          if (arg.length > 0) init(arg[0]);
          else init("triathlon.txt"); //<<<<<<<<<<<<<<<< Place the default filename here
          /** Called once only, at the end of the constructor, to read the data
            * from the membership file.
       public void init( String fname )
          members = new TreeSet();
           try {
               FileReader fr = new FileReader(new File (fname));
               Scanner scan = new Scanner(fr);
               trimember cmem;
               String cLine, eTag, memberNo, first, last, gender, yob, tel ,addr,
                       club;
               while(scan.hasNextLine())
                   cLine = scan.nextLine();
                   Scanner scan2 = new Scanner(cLine);
                   scan2.useDelimiter(";");
                   eTag = scan2.next().trim();
                   memberNo = scan2.next().trim();
                   first = scan2.next().trim();
                   last = scan2.next().trim();
                   gender = scan2.next().trim();
                   yob = scan2.next().trim();
                   tel = scan2.next().trim();
                   addr = scan2.next().trim();
                   club = scan2.next().trim();
                   cmem = new trimember(eTag, memberNo, first, last, gender, yob,
                           tel, addr, club);
                   members.add(cmem);
           catch (FileNotFoundException ex)
               results.append("Sorry can't find the input file\n");
               results.append("Please check file name and location and try again");
               ex.printStackTrace();
          /** Called every time there is a change in the contents of the text field
            * namefld.  It will first clear the text area.  It then needs to search
            * through the container of data to find all records where the surname
            * starts with the characters that have been typed.  The names and
            * addresses need to be set up as strings and placed in
            * an array of Strings.  This can be placed in the "matches" window and
            * displayed for the user, inviting one to be selected.
            * <p>
            * The performance of this is very important.  If necessary, it may be
            * necessary to run as a separate thread so that the user interface is
            * not delayed.  It is essential that the user be able to type letters at a
            * reasonable speed and not have the keystroke processing held up by
            * previous text.
       public void showMatches( )
           run();
                // First clear the text area
          //results.setText("");
                // Determine the leading characters of the surname that is wanted
                input = namefld.getText();
                // Locate the data for this name, and display each matching item
                //  in the JTextArea ...
                // Example of how to set the data in the popup dialog
          matches.list.setListData(found);
          matches.pack();   // resize the popup
                // set the location of the popup if it is not currently visible
          if ( ! matches.isVisible())
             Dimension sz = matches.getSize();
             Point mouse = getMousePosition();
             Point framepos = getLocation();
             int x=0, y=0;
             if (mouse == null)
                Point pt = results.getLocation();
                x = pt.x + 20 + framepos.x;
                y = pt.y + 20 + framepos.y;
             else
                x = mouse.x - 2 + framepos.x;
                y = mouse.y - 2 + framepos.y;
             matches.setLocation(x,y);
          matches.setVisible(true);
          namefld.requestFocus();
          /** Perform any final processing before closing down.
       public void quitProcessing( )
          // Any closing work.  Then
          System.exit(0);
        public void run()
            ArrayList<String> foundit = new ArrayList<String>();
            System.out.println(input);
            if(input != null)
            Iterator it = members.iterator();
            while(it.hasNext())
               trimember test = (trimember) it.next();
               if (test.last.startsWith(input))
                   foundit.add(test.last +", "+ test.first);
            found = new String[foundit.size()];
            for(int i=0; i<foundit.size();i++)
                found[i] = foundit.get(i);
         /** A window for displaying names and addresses from the data set which
          match the leading characters in namefld.
          <p>
          This will automatically pop down if the user moves the mouse out of the
          window.
          <p>
          It needs code added to it to respond to the user clicking on an item in
          the displayed list. */
       class Chooser extends JWindow
                /** To display a set of names and addresses that match the leading
                characters of the namefld text field. */
          public JList list = new JList();
          Chooser( JFrame parent )
             super( parent );
             Container cpane = getContentPane();
             cpane.addMouseListener( new MouseAdapter()
                public void mouseExited(MouseEvent e)
                   Chooser.this.setVisible(false);
             cpane.add("Center",list);
             list.addListSelectionListener( new ListSelectionListener()
                public void valueChanged(ListSelectionEvent e)
                   Chooser.this.setVisible(false);
                   System.out.println("ValueChanged");
                   // First clear the text area
                   results.setText("");
                   String in = (String) list.getSelectedValue();
                   System.out.println("Selected Value was : "+in);
                   String[] inlf = in.split(", ");
                   System.out.println("inlf[0]:"+inlf[0]+" inlf[1]:"+inlf[1]);
                   results.append("Surname \tFirst \teTag \tMemberNo \tSex \tYOB " +
                           "\tTel \tAddress \t\t\tClub\n");
                   Iterator it = members.iterator();
                   while(it.hasNext())
                       trimember test = (trimember) it.next();
                       if (test.last.equals(inlf[0])&&test.first.equals(inlf[1]))
                           results.append(test.toString()+"\n");
                   namefld.requestFocus();
          public class trimember implements Comparable
           String eTag;
           public String memberNo;
           public String first;
           public String last;
           String gender;
           String yob;
           String tel;
           String addr;
           String club;
           public trimember(String eT, String me, String fi, String la,
                   String ge, String yo, String te, String ad, String cl)
               eTag = eT;
               memberNo = me;
               first = fi;
               last = la;
               gender = ge;
               yob = yo;
               tel = te;
               addr = ad;
               club = cl;         
           //To String method to output string of details
           public String toString()
               return last + "\t" + first + "\t" + eTag + "\t" +
                       memberNo + "\t" + gender + "\t" + yob + "\t"+ tel + "\t" +
                       addr + "\t" + club;
           //Compare and sort on Last name
           public int compareTo(Object o)
               trimember com = (trimember) o;
               int lastCmp = last.compareTo(com.last);
               int firstCmp = first.compareTo(com.first);
               int memCmp = memberNo.compareTo(com.memberNo);
               if (lastCmp == 0 && firstCmp !=0)return firstCmp;
               else if (lastCmp==0&&firstCmp==0)return memCmp;
               else return lastCmp;
    }Edited by: Roger on Nov 3, 2007 11:50 AM

    Please don't cross-post. It is considered very rude to do that here:
    http://forum.java.sun.com/thread.jspa?threadID=5233033&messageID=9953169#9953169

  • Dynamic User Tracking with WS-C4506-E

    Hello,
    I've the following problem, configured dynamic user tracking on a
    WS-C4506-E with a WS-X45-SUP6L-E, System image file is a Version 12.2(53)SG2
    Interface configuration:
    snmp trap mac-notification change added
    snmp trap mac-notification change removed
    Global configuration:
    snmp-server enable traps mac-notification change
    snmp-server host xx.xxx.xx.xxx version 2c COMMUNITY udp-port 1431 mac-notification
    mac address-table notification change interval 60
    mac address-table notification change history-size 50
    mac address-table notification change
    #sh mac address-table notification change
    MAC Notification Feature is Enabled on the switch
    Interval between Notification Traps : 60 secs
    Number of MAC Addresses Added : 21509
    Number of MAC Addresses Removed : 21484
    Number of Notifications sent to NMS : 11632
    Maximum Number of entries configured in History Table : 50
    Current History Table Length : 50
    MAC Notification Traps are Enabled
    UTU2 does not found any records for the device name or if I search for a directly connected PC to this switch.

    Where is this Collector Status screen? What dashboard is it on ?
    >> Device Center > Troubleshooting Workflow
    The  fact that you have success for usertracking does not mean you server  receives mac address notification traps. It only means the passive  usertracking has run. The UT results from the other switch may come from  this process.
    >> Yes you're right.
    Only via snoop or packetcapture you can be sure you receive the traps you want.
    >> I set up a packetcapture on the server, the server receives the mac address notification traps on UDP port 1431.
    >>Dynamic user tracking of switches from the same site works...for example I have three WS-C3750V2-48PS-S over >>there.
    Also  if you look at the Collection Sumary in the Inventory -> Device  Status dashboard you may find that some devics fail on usertracking.
    >> Both switches are not under the failed devices.
    >>I'm a little bit confused now.... I can't even start a acquisition manually, LMS says device is not reacheable... but in Device Center (1st picture) "ping", "snmp" etc... is OK...

  • User interfaces to access Content services...

    I am using the following user interfaces to access content services:
    1) Web UI
    2) Oracle drive
    3) WebDAV with Windows XP
    But in the oracle content sevices data sheet which I downloaded from the Oracle site, its given there is a rich WebUI with dynamic tree structure with drag & drop features. I want to know if this exits? If yes, I want to know how to access that and work with it. Does it need any downloads or configurations to be done.

    Hi
    I have selected "Accessiblity mode" button to launch the web interface. Now for this user even if i select the "Lauch" button. it still shows up the interface of accessibility mode. Is there any way I forced the user to switch back to the Lauch button interface mode.
    Regards,
    Navin

  • When i add menu bar in my user interface gives me error that this handle is not a panel handle(return value -42)

    i have 3 panels in my application and parent panel is displayed first then i display other two panels which come to the front then on entering correct password i discard the child panel and then you can see parent panel , but there is an issue when i add menu to my parent panel i dont know whats wrong when i add menu bar in my user interface (parent panel)  gives me error that this handle is not a panel handle(return value -42) for a child panel. when i dont open and display child panel then its fine , and even without menu added to my parent panel all my panels and my application works perfactly

    Hello smartprogrammer,
    some more informations are needed in order to properlu help you in this situation:
    - Are you adding menus dynamically at runtime or in the UIR editor? If dynamically: how are you loading the menu bar?
    - Are you dynamically tailoring the menu bar at runtime (adding or deleting menu items, dimming / undimming some of them or checking / unchecking)?
    - Can you post the code where you are getting the error, documenting variables and scope (local to the function, global to the source file, global to the project)?
    You can look at uirview.prj example that ships with CVI for an example of LoadMenuBar (the exampl eis in <CVI samples>\userint folder): in that project, the menu bar is shown as a context menu when you right-click on a tree element (see DeferredMenuCB callback).

  • Xcontrols and dynamic User Events

    Hi all,
    I'm trying to build a XControl with an Event Structure that accepts User Events generated by a separate parallel loop on the block diagram.
    A monitoring loop with its own Event Strucure on the block diagram seems to handle the User Events generated by my producer loop but the XControl seems to ignore the User Events.
    Example LabView 8.5.1 project is attached
    Any ideas?
    Attachments:
    XControl.zip ‏75 KB

    Hi Anne,
    > Dynamic user event is registered to the event structure, and many dynamic user events come in very fast, about every 30 ms.
    The 30ms rate is not unreasonably fast as long as the processing for the event(s) can be completed in less than 30ms.
    What tasks are you doing in the User Event?
    For tasks that may take time to complete (like logging) you could queue up the data and send it to a consumer loop.
    > It freezes up the user interface, no response to mouse and keyboard, even after all user events finish execution.
    My *guess* here is that you got stuck in an event that never completed.
    steve
    Help the forum when you get help. Click the "Solution?" icon on the reply that answers your
    question. Give "Kudos" to replies that help.

  • Event structure without user interface

    I looked for a fast and efficient solution for an event structure which does not have a timeout case and is part of a vi that does not have user interface but I need to sent data configuration to this event structure.
    I will be more clear: I have a camera which is generating multiple events taken by a loop with event structure inside.
    The camera provider give me this Labview code example with all the events I am interested on and how they are implemented. I must mention that when you write a command to camera this one answer
    with an event, but when you first connect to camera there are over 100
    events generated by it, or when you download camera there are also
    multiple events. When there is no communication to camera the event
    structure from the example is idle. The example has a user interface for changing parameters and program responds very well.
    I have to integrate this camera in s big application in which camera is going to be configured pragmatically with no the type of user interface existing in the example given by camera manufacturer.  First I tried to design a loop with timeout case in which a queue can send data configuration for setting camera. Everything is good until the download when the code must take events to a certain way; in my case one event is taken another goes to timeout and so on. After two series of 100 frames downloading, during the third series Labview gets blocked (Labview does not respond) and I have to kill Labview. I understood from camera's designer that if camera events are not taken they are kept on a stack and when the stack gets full causes the Labview being locked.
    Maybe I give too many details but the issue is: how to communicate with a event structure which does not have a timeout case and is not part of a user interface vi (it does not have an open panel in my application)?
    Solved!
    Go to Solution.

    Hi Virginia,
     I've attached an NI KnowledgeBase article that contains an example VI here from a previous similar issue.  In this VI, however, the user event is triggered by a certain keystroke, but I think you should be able to modify it to do what you are trying to do. 
    http://ae.natinst.com/public.nsf/web/searchinternal/1199d3582e97ce6786256f2a0010b69f
     In the example, the output of the subVI (in your case, your event data VI) is wired directly to the dynamic event terminal of the event structure that contains the Generate User Event VI. 
    This VI was written in an old version (7.1), but I was able to open it up in 2010 here.
    If trying something like they did in the example still doesn't work for you, then could you attach your code, especially your VI that is generating the camera data?
    Thanks,
    Austin
    Regards,
    Austin S.
    National Instruments
    Academic Field Engineer

  • How can I display step info in User Interface with Tracing Disabled?

    I'm trying to modify the CVI Operator Interface application to update the execute panel with some step information during the execution of the program. i.e. I want to display the measurement, high & low limits during the run WHEN TRACING IS DISABLED. (Doing this, when tracing is enabled is easy, all you do is access the step record that's been constructed (I can cope with that!))
    I've successfully implemented a User defined execution event to signal the User Interface application when the current step is a result (using TS_UIMsg_UserMessageBase etc. I'm posting a UI Message in the Process Model under the ProcessModelPostStep so that I will only display if its a result step.) I've added a user defined
    entry in the execute.c module execution event switch statement which will call a function in the exedisp.c module to update the display. However, I don't have a context to the step that I can use. (I can't use e.g. the exeRec record since this is only completed with the context if tracing is enabled.) I've got a handle to the correct panel to write the information to, but how do I get the context to the current step when tracing is disabled?
    Regards,
    Brian

    Hi,
    no problem - btw, if you wanted to acheive this in TS 1.x, you could always write to a local variable with the ActiveX reference for the step concerned, and then use the msg reference that you have in the OI within the UI Message handler, to dig through to the Execution ->Sequence File->Sequence->Locals, or Execution->Thread->SequenceContext (and you can get almost anywhere from that).
    Hope that helps
    S.
    // it takes almost no time to rate an answer

  • Error while creating a callable object - User Interface

    Hello,
    When i'm trying to create a callable object - User Interface in the guided procedure design time. i'm getting an error. An internal server error. This is happening while i'm trying to create a guided procedure with webdynpro's.
    Is there any body who allready had somthing like this.
    Greetings
    Kurt

    Hi Raja Akella,
    I allready had the roles and my portal version is upgraded until SP8 and all the possible patches.
    I get an internal server error when i want to create a callable object. specially when i want to create a webdynpro ( ABAP / JAVA).
    In the visual administrator i get the following  errors.
    <b>Error 1</b>
    Exception occured during processing of a Web Dynpro application: "com.sap.tc.webdynpro.repository.RepositoryRuntimeException: Failed to get Related Model Object for the object com.sap.caf.eu.gp.dt.comp.semanticbrowser.SemanticBrowserApp, relation Component.".
    [EXCEPTION]
    com.sap.tc.webdynpro.repository.RepositoryRuntimeException: Failed to get Related Model Object for the object com.sap.caf.eu.gp.dt.comp.semanticbrowser.SemanticBrowserApp, relation Component.
         at com.sap.tc.webdynpro.repository.model.DelegatorRepositoryModelClass.getRelatedModelObject(DelegatorRepositoryModelClass.java:640)
         at com.sap.tc.webdynpro.progmodel.repository.IWDApplicationInfo$Implementation.getComponentInternal(IWDApplicationInfo.java:286)
         at com.sap.tc.webdynpro.progmodel.repository.IWDApplicationInfo$Implementation.getComponent(IWDApplicationInfo.java:270)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.COConfigWDApp.addWdappsElement(COConfigWDApp.java:646)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.COConfigWDApp.readWebDynproApps(COConfigWDApp.java:631)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.COConfigWDApp.readApplications(COConfigWDApp.java:308)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.wdp.InternalCOConfigWDApp.readApplications(InternalCOConfigWDApp.java:190)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.VSelect.initCreate(VSelect.java:306)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.VSelect.onPlugFromDispatch(VSelect.java:174)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.wdp.InternalVSelect.wdInvokeEventHandler(InternalVSelect.java:168)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.navigate(ClientApplication.java:826)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.navigate(ClientComponent.java:873)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doNavigation(WindowPhaseModel.java:498)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:144)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:330)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:299)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:711)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:665)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:232)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: com.sap.tc.webdynpro.repository.RepositoryRuntimeException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >: (:main:, row:1, col:491)
         at com.sap.tc.webdynpro.repository.persistence.xml.XMLConfigurationParserWriter.startParsing(XMLConfigurationParserWriter.java:178)
         at com.sap.tc.webdynpro.repository.persistence.xml.XMLPersistence.doReadVMO(XMLPersistence.java:126)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.readVMO(RepositoryPersistence.java:356)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.doFindRepositoryObject(RepositoryPersistence.java:598)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.findRepositoryObject(RepositoryPersistence.java:170)
         at com.sap.tc.webdynpro.repository.model.Repository.findRepositoryObjectInternal(Repository.java:590)
         at com.sap.tc.webdynpro.repository.model.RepositoryObjectRelation$XMLGuidWrapper.getModelObject(RepositoryObjectRelation.java:462)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.getCurrentLayerObject(RepositoryPersistence.java:702)
         at com.sap.tc.webdynpro.repository.model.Repository.getCurrentLayerObject(Repository.java:1483)
         at com.sap.tc.webdynpro.repository.model.NonSharedRelationToOne.doMergeInheritedTarget(NonSharedRelationToOne.java:85)
         at com.sap.tc.webdynpro.repository.model.NonSharedRelationToOne.mergeInheritedTargets(NonSharedRelationToOne.java:49)
         at com.sap.tc.webdynpro.repository.model.RelationToOne.getTarget(RelationToOne.java:93)
         at com.sap.tc.webdynpro.repository.model.AbstractRepositoryModelClass.getRelatedModelObject(AbstractRepositoryModelClass.java:234)
         at com.sap.tc.webdynpro.repository.model.DelegatorRepositoryModelClass.getRelatedModelObject(DelegatorRepositoryModelClass.java:636)
         ... 39 more
    Caused by: com.sap.engine.lib.xml.parser.NestedSAXParserException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >: (:main:, row:1, col:491)(:main:, row=1, col=491) -> com.sap.engine.lib.xml.parser.ParserException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >:(:main:, row:1, col:491)
         at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:148)
         at com.sap.tc.webdynpro.repository.persistence.xml.XMLConfigurationParserWriter.startParsing(XMLConfigurationParserWriter.java:166)
         ... 52 more
    Caused by: com.sap.engine.lib.xml.parser.ParserException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >:(:main:, row:1, col:491)
         at com.sap.engine.lib.xml.parser.XMLParser.scanAttList(XMLParser.java:1566)
         at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1687)
         at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2792)
         at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:227)
         at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:141)
         at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:156)
         at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:259)
         at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:278)
         at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:340)
         at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
         ... 53 more
    <b>error 2</b>
    Processing HTTP request to servlet [dispatcher] finished with error. The error is: com.sap.tc.webdynpro.repository.RepositoryRuntimeException: Failed to get Related Model Object for the object com.sap.caf.eu.gp.dt.comp.semanticbrowser.SemanticBrowserApp, relation Component.
         at com.sap.tc.webdynpro.repository.model.DelegatorRepositoryModelClass.getRelatedModelObject(DelegatorRepositoryModelClass.java:640)
         at com.sap.tc.webdynpro.progmodel.repository.IWDApplicationInfo$Implementation.getComponentInternal(IWDApplicationInfo.java:286)
         at com.sap.tc.webdynpro.progmodel.repository.IWDApplicationInfo$Implementation.getComponent(IWDApplicationInfo.java:270)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.COConfigWDApp.addWdappsElement(COConfigWDApp.java:646)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.COConfigWDApp.readWebDynproApps(COConfigWDApp.java:631)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.COConfigWDApp.readApplications(COConfigWDApp.java:308)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.wdp.InternalCOConfigWDApp.readApplications(InternalCOConfigWDApp.java:190)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.VSelect.initCreate(VSelect.java:306)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.VSelect.onPlugFromDispatch(VSelect.java:174)
         at com.sap.caf.eu.gp.ui.co.config.wdapp.wdp.InternalVSelect.wdInvokeEventHandler(InternalVSelect.java:168)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.navigate(ClientApplication.java:826)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.navigate(ClientComponent.java:873)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doNavigation(WindowPhaseModel.java:498)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:144)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:330)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:299)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:711)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:665)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:232)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: com.sap.tc.webdynpro.repository.RepositoryRuntimeException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >: (:main:, row:1, col:491)
         at com.sap.tc.webdynpro.repository.persistence.xml.XMLConfigurationParserWriter.startParsing(XMLConfigurationParserWriter.java:178)
         at com.sap.tc.webdynpro.repository.persistence.xml.XMLPersistence.doReadVMO(XMLPersistence.java:126)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.readVMO(RepositoryPersistence.java:356)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.doFindRepositoryObject(RepositoryPersistence.java:598)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.findRepositoryObject(RepositoryPersistence.java:170)
         at com.sap.tc.webdynpro.repository.model.Repository.findRepositoryObjectInternal(Repository.java:590)
         at com.sap.tc.webdynpro.repository.model.RepositoryObjectRelation$XMLGuidWrapper.getModelObject(RepositoryObjectRelation.java:462)
         at com.sap.tc.webdynpro.repository.persistence.RepositoryPersistence.getCurrentLayerObject(RepositoryPersistence.java:702)
         at com.sap.tc.webdynpro.repository.model.Repository.getCurrentLayerObject(Repository.java:1483)
         at com.sap.tc.webdynpro.repository.model.NonSharedRelationToOne.doMergeInheritedTarget(NonSharedRelationToOne.java:85)
         at com.sap.tc.webdynpro.repository.model.NonSharedRelationToOne.mergeInheritedTargets(NonSharedRelationToOne.java:49)
         at com.sap.tc.webdynpro.repository.model.RelationToOne.getTarget(RelationToOne.java:93)
         at com.sap.tc.webdynpro.repository.model.AbstractRepositoryModelClass.getRelatedModelObject(AbstractRepositoryModelClass.java:234)
         at com.sap.tc.webdynpro.repository.model.DelegatorRepositoryModelClass.getRelatedModelObject(DelegatorRepositoryModelClass.java:636)
         ... 39 more
    Caused by: com.sap.engine.lib.xml.parser.NestedSAXParserException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >: (:main:, row:1, col:491)(:main:, row=1, col=491) -> com.sap.engine.lib.xml.parser.ParserException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >:(:main:, row:1, col:491)
         at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:148)
         at com.sap.tc.webdynpro.repository.persistence.xml.XMLConfigurationParserWriter.startParsing(XMLConfigurationParserWriter.java:166)
         ... 52 more
    Caused by: com.sap.engine.lib.xml.parser.ParserException: XMLParser: Bad attribute list. Expected WhiteSpace, / or >:(:main:, row:1, col:491)
         at com.sap.engine.lib.xml.parser.XMLParser.scanAttList(XMLParser.java:1566)
         at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1687)
         at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2792)
         at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:227)
         at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:141)
         at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:156)
         at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:259)
         at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:278)
         at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:340)
         at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)
         ... 53 more
    <b>error 3</b>
    Processing HTTP request to servlet [dispatcher] finished with error.
    The error is: com.sap.tc.webdynpro.repository.RepositoryRuntimeException: Failed to get Related Model Object for the object com.sap.caf.eu.gp.dt.comp.semanticbrowser.SemanticBrowserApp, relation Component.
    Exception id: [00505691431B006F0000003E00000FE800041B45B87F7617]
    thanks in advance
    Kurt

  • UI (User Interface) text size and colors

    Recent versions of Elements (7, 8, 9) have changed to a user interface which is predominantly shades of gray and black with few if any user options for color or font. The font size cannot be altered because Adobe use their own pixel-based font which is not compatible with Windows Desktop settings. So on many flat screens with high resolutions the font becomes almost unreadable. The upper case 'E' in the menu bar Edit for example, is a mere 2.03mm high on a 22" display at 1920x1080 resolution.
    This has been mentioned a number of times over these releases to no avail, but at last there may be a change on the way for PSE 10 (later later this year?).
    So if you feel the gray/black UI needs attention I suggest you visit
    http://feedback.photoshop.com/photoshop_family/topics/my_eyes_need_help_with_photoshop
    where there are a number of comments. This is monitored by Adobe so may influence the next release. The more request there are I suspect the more likely some action. Adobe have already commented: "The amount of conversation that this thread has generated among Elements customers was unanticipated." on the thread.
    If you wish to place a comment you will need a Photoshop Account and to be logged in. If you didn't create an account when you installed the product then just click Create Account at the top of the link above.

    Font sizes are hard-coded in teh apps and there is no way to change that. The new CC versiosn support high-DPI displays and resolve those issues (mostly).
    Mylenium

  • Status LIS9 of the User interface MP000200 missing

    Hi All,
    While creating leaving action. System is giving error (Status LIS9 of the User interface MP000200 missing.
    Mentions below are my configuration.
    Infogroup
    COP 0001 Org assignment
    LIS9 0002 Personal Data
    LIS9 0006 address
    LIS9 0105 Communication
    And Personnel Action type are:- 0 0 0 MSN20 (Tick) (Tick) (Not tick)
    Let me know how to resolve it.
    Regard
    Ashish

    Hi,
    make sure that LIS9 should not be used to the Infotypes which are having Time  Constraint 1
    Check V_T582A for time constratints and also check V_T588D to remove the operation LIS9 forLeaving/ termination action.
    for your information
    Infotype 0002 should NEVER be delimited as part of the Leaving Action.
    The help text for the Operations field of the Info Group states the following:
    In the Leaving action, use the "delimit" (LIS9) operation to delimit records.
    Please remove the infotype 0002 from the info group, then run the leaving action, you will not find an error message
    The reason why you get the error is because the status LIS9 does not exist on MP000200 .
    You can see this via the menu painter via SE41.
    regards,
    mohammed
    Edited by: 0mohammed1 on Oct 14, 2011 1:51 PM

  • User Interface Template for Interactive Report Region

    In 3.2, where do we set the user interface template for Interactive Reports region?
    No matter what out of the box theme I switch to, the Interactive Reports region shows the same. What and where do I change the template so that alternating rows use two different colors?

    There is no template for Interactive Reports like for a "normal" report. You need to modify the CSS and supply your own for this to happen.
    I believe most things are tagged with #apexir - firebug with Firebox is invaluable. This thread may help:
    Re: changing the look and feel of interactive report.

Maybe you are looking for

  • Finding Inactive users in 30 minutes.

    I use this technique to find iplanet 5.x inactive users. NOTE: In each mailbox root there is a file store.idx which get update everytime a new message recieved. find /your/path/to/store/partition/primary/=user -mtime +45 -name store.idx -type f > ina

  • Mac book pro over heating

    the cpu is getting hot and the battery life seriously decreases but there are no apps running and no video is being used

  • Photo's look diff in Mac vs PC--HELP!!!

    I'm having an issue with photos looking amazing on my iMac but on PC or iPhone they look terrible!  Like skin tones are green or yellow.  This only happens about 5-10% of time.  I don't know if it's my workflow or actions I'm using or I need a monito

  • Air Application not installing included folders on Win 7

    Hi All i have a really strange problem. I have made a native air installer. I have included a folder in the included files panel before publishing. When I publish it publishes fine. And when I install the air app it installs the only problem is When

  • Unable to install FCS2 on a new mac that has better spec's than min. req,

    I got 2 new MacPro's with 2x 3.2Ghz Quads, 16gigs RAM, Nvidia 8800GT's, Snow Leapord fully updated, Each has the OS on VelociRaptor Drives and a extra 3TB of space...... My problem is when I try and install Final Cut Studio 2 on them...It says I dont