Two controls data, user interface

JDev 11.1.1.6.0 BPM

andrejusb.blogspot.com/2012_08_01_archive.html

In the link above, andrejus explained how to use a single UI for two human tasks.

I have a similar case to use with slightly different. I have to use the same user interface with or the other of the two controls different data available under certain conditions.

In other words, the UI remains same components will, but data will be filled with one of the controls two data.

Hope that I presented the use case clearly

Adaptive links (https://blogs.oracle.com/groundside/entry/towards_ultra_reusability_for_adf) should work for your use case.

Timo

Tags: Java

Similar Questions

  • VIX file in the user interface designer receives the data from the Web service application that communicates with the SQL server database

    I created the Web service VI ("Mt-insolacije.vi"), which has two terminals of the input string (FROM / TO) for the dates of arrival and exit of two data terminals (table 1 d) from database (MS SQL server). This VI communicates with the database with functions of the database with a DSN and SQL query appropriate palette. There are two tables with two data (time and Insolation) columns in the database.

    This VI works when you run in Labview 2010, but when I used it as VI in UI Builder it returns no data.

    Could you please help me find a solution. Is it possible to communicate with the SQL server database in this way or there is another way?

    There are two files attachmet: Image of .vix file in Interface builder and .vi file ("Mt-insolacije.vi")

    Please help me ASAP!

    Thank you

    Ivan

    I found the solution problem is in the DSN. I've been using the user instead of DSN system DSN.

    It's important to create the system DSN if you want your VI of web service to communicate with the database.

    PS Please put feature bundle format timestamp and XY graph in the web user interface designer. It's complicated to trace data with datetime on X axis without them.

  • Using ActiveX controls to the old user interface

    I tried to build a User Interface for TestStand 4.1.1 using LabView 8.6.1 (on Windows XP)

    However, ActiveX controls keep showing in the old non - 3d "block" style.

    This seems to be a problem when you build a new exe. If you use the included UI (Full Featured) in TestStand it appears correctly.

    I was able to replacte this problem on two other development systems (a new windows XP, LabVIEW 8.6.1 & TestStand 4.1.1 install).

    (1) take a copy of the full-functional UI of LabVIEW.

    (2) open the project file

    (3) rebuild the exe file

    It's only a problem when you use the exe file. When you run from the LabVIEW development system it looks good.

    Hi Simon,.

    For your UI to take on XP
    Theme controls, you will need to place a manifest file that specifies the activex control topics in the same
    directory as your executable file. TestStand comes with a manifest file for
    INTERFACE c# you can also use for the UI of LabVIEW. Just go to the \User Interfaces\Simple\CSharp and copy the file TestExec.exe.manifest in the directory of the LabVIEW User Interface executables.

    Note that the manifest file must have the same name as your executable file LabVIEW UI. For example, if you name your user interface, "MyCustomTSUI.exe", you will need to name the manifest file 'MyCustomTSUI.exe.manifest '.

    Please let me know if this solves your problem or if you have other questions. Thank you!

  • How can I update the user interface controls in the UI thread

    Hi all

    I want to do a custom image to display this URL source support.

    I start a thread to ask the image of the network data, and then update the display of the image with the data, but I get the error:

    ApplicationPrivate::resourceManager: ERROR called from the thread of user QThread (0x81eeb8c) interface
    ApplicationPrivate::resourceManager: A user interface thread named method

    It's my code segment:

    class URLImageView: public CustomControl, public QThread
    {
    public:
        URLImageView();
    private:
        void run();
    
        ImageView* mImageView;
        Container* mRootContainer;
    };
    
    URLImageView::URLImageView()
    {
        mRootContainer = Container::create().background(Color::Gray).preferredSize(100,100);
        mImageView = ImageView::create().image(QUrl("asset:///button.png"));
    
        mRootContainer->add(mImageView);
        setRoot(mRootContainer);
        start();
    }
    
    void URLImageView::run()
    {
        //get data from network
        //...
        //...
                //create image from binary data        Image* image = new Image(pixelBuffer);
        mImageView->setImage(image);
    }
    

    I know that in the old BB OS (Java Platform), I can get the lock of event request like this UI:

    synchronized (Application.getEventLock())
    {
            // I can update UI control here
    }
    

    Is it same way to Cascades BB10 or what is the right way, if I want to update the user interface in the UI thread?

    Thank you

    This looks like what signals are useful for, when it is connected with the option QueuedConnection. I don't have a link for you, but I'm sure that you can get with this description.

  • Slow response from the user interface with acquisition of data of type long time

    Hi all

    I have a question to ask more out of curiosity than necessity right now. I've built a program that acquires data from the accelerometer and the Treaty in a number of ways: filtering, FFT, FRFS, things like that, but the answer of the UI is still slow, because I need a resolution of frequency of 0.2 Hz for my data domain, which means that the sample acquisition time is 5s and all this awaits before execution.

    My question is this: is there a way to completely isolate the user interface of data acquisition so that it responds immediately?

    I tried a design model of producer consumer with queues, but found everything to be always waiting for samples to be taken. Maybe it was exactly as I did.

    Thank you

    Phil

    If you need to sample for 5 seconds in order to have enough data to analyze, so unless you can "predict the future" and "knowing" the five seconds of data, simply wait for the data that arrives.  Using parallel loops of producer-consumer will allow data acquisition to proceed (for the next 5 seconds of data) while you do the analysis, but you still have to wait for the data to be analyzed.

    Note that the previous paragraph assumes you are collecting data in 5 seconds 'chunks' and analyze each "chunk" (independent) on arrival.  You could also do something like having a "second 5 sliding window" which moves, say, a second at a time, giving your FFT a finer resolution of 'time' (at the expense of their independence).  This would be a (slight) change in your loop of producer (you want to taste in 1 second pieces, accumulate 5 these pieces) and the consumption loop (start analyzing, spewing a FFT every second, while replacing the older "chunk" with the most recent - a queue with loss can do for you).

    Bob Schor

  • Question tab User Interface control

    Heey everybody,

    I have disigned a program and user interface, on this user interface, there is a tab (see attachment) control in this tab control, you can select several measures. It is a school project and according to my professor is not clear enough what measure is selected.

    My question: is there a way to give the active tab a different color? If you know a way to create a nice user interface that has the same capabilities as the control tab (select measure and wire in measured values).

    Thank you

    Hi Grasman,

    It is possible to give different tabs of different colors, first of all, you must enable several colors - "just right-click on a tab on the control. "Select Advanced" allow multiple colors.

    To change only the color of the active tab, please see Steve birds VI, you can find it on the following forum post

    Color of the active tab

    Kind regards

    Tobias

  • User interface controls

    Hello

    I am analyzing the user interface controls for my application using the format shown in this picture.

    http://picasaweb.Google.com/shikha5579/SampleImages#5471685377447771410

    Small circles are the user interface controls buttons (to be made available by trackball) as power, speed, battery, etc. Below is the slider bar showing the progress of the video displayed in the central part of the screen.

    My question is, such a user interface can be created for blackberry-driven keyboard? If Yes, how should I go about this?

    Thank you!

    GaugeField done something similar, but take a look at this:

    How - to implement advanced buttons, fields and managers
    Article number: DB-00796
    http://www.BlackBerry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800505/800608/...

  • Several monitors, duplicate user interfaces

    Hey everybody,

    My application consists (as the title suggests) a computer running 4 touchscreen monitors. Three of the monitors will be completely different, but the 4th will be one combination of the other 3. The 4th is larger, so it will be good in fact whole face front of monitor 1.

    Here's a representation of what will be setup.

    The hardest part is that I need 4 monitor to act exactly like the other monitors in its respective sections. It would be nice to be able to do it without having to send my data to several places each time or code duplication. Someone of you have experience in the duplication of the user interface, or knows of a clever way to do this?

    I think I have to do is create a new interface for the 4th monitor which triggers other user interfaces and vice versa. The disadvantage is to further development on the top of the UIS, I already have, and if I change something with the first 3 UI, I have to come in and change the 4th manually. I also have to do an event overall fantasy trip LIKE THIS in order to communicate between two different screws

    Any help is appreciated.

    Thank you!

    If the VI opened on monitor 1-3 is re-entering, you can use a subgroup of experts to open a copy of it on the "master" VI If you are handy with the sub-panels you have small portions of the unique façade of several visible screws on the front of the master VI. The hard part is going to be designing a system of communication that allows screw incoming control safely the same resource without any kind of race condition.

    Search example: Create User Interfaces > General > live multiple in a Subpanel.vi

    Edit: lynn beat me to it

  • The best way to separate the user interface in the model LV 2012 queued Message Handler?

    If you create a new "queued Message Handler" new model 2012 LV, you will see a blue box in the case of "Update view" that says the following:

    Code Recommended - If you wish to decouple the Message Handling Loop from your user interface, consider creating User Events (like the "Stop" event in this VI) to message the Event Handling Loop whenever the user interface needs updating.
    

    I would like to give a suggestion, but I am struggling to find the best way to do this and still keep code modular.  The template creates a user - Stop.lvlib "event with a create/Destroy/fire Subvi.  I would like to create a library of "User event - Update UI.lvlib" similar with similar Create/Destroy/fire Subvi keep this new modular and separate user event.  The problem, I am struck, is that there may be only two hydrants in case Structure dynamic event so, how I modularlize creating user events in separate SubVIs and always maintain this dynamic event terminals?

    As a follow-up on the issue, it would be preferable to have a library of user by indicator events that must be updated or that a single UI update of the user and then event pass a cluster as the message that contains the name of the control for the update (to use with a structure of matter), then the data to go with it?

    Thank you!

    Instead of having the events to record in the 'create' methods, you could be part outside your 'create' SubVIs and then simply bundle them. Then, you create your individual event of the user management. See excerpt where I created a vi 'Create user event - Update' in front of the stop.

  • bean, containing the business logic and user interface components

    Hello experts design ADF, please guide me.   I came across a critical design aspects.  I have the homepage with a lot of UI, region 1, region 2 components. I bind the components of the user interface of the page at a session scope managed bean and is the reason why, when control passes to the region 1 or region 2, I'm going to do a lot of processing logic and then on that basis, I have to update the page user interface components.   Same thing with region 2 also.  And then I should be able to access the information in all regions and also through other components of interface user etc.

    I see only the scope session bean can help me here to get my tasks in all regions and in all the other components of the interface user to the page because I'm not able to spend too many parameters in all regions.     Now the problem is, I can't serialize this bean because as I've mentioned a lot of user interface components are updated based on logic.

    If I do not serialize the bean, I might have a problem in the future when the application must be deployed to the cluster envt.

    I don't know how can I go with my design now.   Please give me ideas, brilliant and very grateful for your advice.

    Thank you

    Hello

    I did not follow the entire thread, but this last message, I can tell that you are not using ADF how it should be used. So let me address two issues

    1. I use data controls generated on methods of bean managed my areas (workflow).

    If you create a POJO data control that you configured as controlled beans then this will be two instances (separated) from the same Java class. This means that they do not share anything. The only option to share state between a managed bean and a data control is if you would have the data dynamically control bean up the bean managed using the language of Expression of the 8which then however creates a dependency between the DC and the bean - however, there are use cases like that)

    2 activation / deactivation of the buttons in the parent view of a region

    This can be done using bean-injection, which is a bean managed in extended view defined on the parent view that you pass as parameter for the workflow. See: http://www.oracle.com/technetwork/issue-archive/2013/13-may/o33adf-1920483.html

    As said, I haven't read the entire thread, but want to point out that there is enough information in writing (product documentation) and video (Insider ADF - who teach the development of SFM practices http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html take the time to review this)

    Frank

  • Extensions without (visible) user interface?

    Hi all

    Question: is it possible to have extensions without a user interface, or with a UI in option? I managed to come close to how it works, but it seems to stay just beyond my reach. It's using InDesign.

    What I want to achieve: I want the extension to work permanently, so he can listen for events from documentAfterSave even when the Panel does not display and I want to have the status of 'visible panel' persist between sessions of the user.

    The first thing is to get the extension to load on startup of the application.

    In the Panel of lifecycle in the manifest Editor, I unchecked "AutoVisible" (do not know if this is important)

    Then I added the event applicationActivate for a list of the events 'started'.

    That made my extension appears when the application starts. Cool.

    But I want to be in control of the visibility of the Panel - that is, if the user had the Panel hidden when he used modified app, I want that the extension is hidden when the user runs the application at a later date.

    I want to know save state 'visible' to the extension between user sessions Panel. I tried to save and restore the visible state via the CSXSInterface.instance.whatchamacallit things, and I tried to listen for the change of State for WINDOW_SHOW and WINDOW_HIDE events, so I could keep track and maintain the visibility state of the group, but it seems that these events don't really work (see list of bugs of Harb elsewhere on this forum). I also tried to move the Panel out of the screen to simulate be hidden (old trick did not work).

    Before you give up and try a different approach (without extension generator), does anyone know if this can be made to work?

    Another doubt persistent: suppose that I managed to do the work, what is the documentAfterSave event? For example, when the user closes an unsaved document and then agrees to save the document when alerted (dialog box "do you want to save... »).

    The event will trigger early enough so I can still extract information from the document before InDesign starts to break down document data structures? Or I will end in the grey area, where simply access the half-disassembled document object can cause outages? Where can I get the document has already been closed since before the triggered event?

    See you soon,.

    Kris

    Hi Kris,

    AutoVisible = false means that when this extension is loaded its user interface is not made visible, leaving that up to the extension. Generally, the panels must have AutoVisible = true so that when a user selects the Control Panel on the menu, they can be assured that it will be made visible immediately, it also ensures a correct behavior when the Panel is anchored or closed.

    So the question is how to solve your problem?

    I suggest this broke into two extensions, an extension that is a sign of vanilla and another modeless extension which is hidden and is waiting for events. The hidden, should start on applicationActivate, have AutoVisible = false and does not have a

    element in its manifest (so it does not appear in the window > Extensions). This hidden extension may then respond to the save event, it can also activate your Panel on the first launch.

    That works for your use cases?

  • Flatten to a string to send arbitrary objects by messages from the user interface?

    Hi people,

    I am trying to send arbitrary data by messages from the user interface defined by the user to my labview interface. Something funny happens then: if I send the data through the message of ui, it seems I have something strange. There is only one character or nothing in the message of the user interface that reached my reminder.

    It seems that flatten channel also creates control characters that are interpreted by NI TestStand and Labview not as members of the chain, and for this reason I only get incomplete data. within the action of testand, which creates the flattened data, I put a dialog box to display the string data, and it seems that at least up to 255 (ascii) characters are used.

    Is there something like uuencode/uudecode to avoid this problem?

    Thanks in advance

    Okidoki, found.

    His «binary"produced by «Flatten the string» string Apparently I thought, the LabVIEW data type is incompatible with the API of TestStand from LabVIEW. In conclusion I would classify this as a bug (sorry people, at least there should be documentation) API for LabVIEW TestStand 2014.

    As a solution, I use flatten it in XML, which is a printable and human readable 'normal' string.

    It was trial and error, and I'm not enjoying this.

  • How to get an array of integers to user in the User Interface

    Hi all. I'm not a very experienced user of the CVI. I have almost exclusively coding in LabVIEW but have a client who wants all of their work in the CVI.

    I've been very fruitful so far (set up a Modbus API from scratch that supports all types of connection) but am confused on how I can get the integer multiples of the user without limiting the number of integers I can get. Essentially, I need to be able to get an array of integers to the user.

    General information, I am building a user interface to test my Modbus API. There are Modbus functions to 'Write multiple registers' and 'write multiple coils. I want the user to be able to enter all the values they want to write in one command.

    What is the best way to get an array of integers through the user interface?

    The easiest way is probably to allow user input in a textbox control numbers: items can be separated by spaces, commas, or even a line break (using ctrl + Enter). You will then need to extract the string from the TextBox and analyzed for numeric values using any non-digit character as a separator: strspn (string, '0123456789'); can be used for this.

    More complex, another possibility is to use a table control to receive user input: you Dresses an empty table with a reasonable number of roews, or you need some codes to add new lines as long as the user fills all those already existing. On the other hand, it will be easier since data recovery in a simple statement, you will all return values: GetTableCellRangeVals (panelHandle, PANEL_TABLE, VAL_TABLE_COLUMN_RANGE (1), table, VAL_COLUMN_MAJOR);

  • TestStand freezes when calling user interface

    Hello

    I did a bit of seraching but the problem I have is intermittent for one of the positions that I have found useful. I have a built in CVI user interface that is called the part edit-a type of step in time. When I call the UI for several times now (same step over and over) TestStand eventually freezes. Sometimes I get error messages, most of the time that it just hangs. When she throws and error, it is usually a one .NET. I received this message before the "object reference is not attached to an instance of an object", so that system level exceptions. I can't figure out exactly what is the cause. I posted my code below. If I comment on either of the two sections "BOLD" no error occurs. Also, if I do not change the setting in the user interface between the calls to the user interface I have never it freezes. So he definitley has something to do with the fill/adjustment control of the ring, or even reading the property 'ThisContext.Step.ConfigProperties.ParameterID' of TestStand. If I get more descriptive errors, I will update this post.

    Code:

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    void __stdcall __declspec(dllexport) ReadParameterTSEdit (CAObjHandle seqContextCVI, char reportText [1024], short * errorOccurred, long * errorCode, char errorMsg [1024])
    {
    ErrMsg errMsg = {'\0'};
    int hpanel;
    int executed;
    int index;
    int count;
    int numParams;
    char paramIDs [100] [64];
    char param [64];
    char indexparam [64];
    char * ActCntrlTLA = NULL;
    char * temp = NULL;
    char activecntlr [23] = "active controller: ';"
    VBOOL CntrlExists;
    TSObj_Property paramids = NULL;
    TSObj_PropertyObjectFile propObjFile;
    CAObjHandle seqfileobj;
       
    Check that the system has been initialized and a profile was loaded!
    TS_PropertyExists (seqContextCVI, NULL, "ThisContext.FileGlobals.ActCntrlTLA", 0, & CntrlExists);
    If (!.) CntrlExists)
    {
    MessagePopup ("read setting", "no profile has been loaded for this sequence!");
    GoTo error;
    }
    TS_PropertyGetValString (seqContextCVI, NULL, "ThisContext.FileGlobals.ActCntrlTLA", 0, & ActCntrlTLA);
    Initializes the parameter reading UI
    hpanel = LoadPanelEx (0, "ReadParamUI.uir", READ_PARAM, __CVIUserHInst);
     
    TS_PropertyGetPropertyObject (seqContextCVI, NULL, "ThisContext.FileGlobals.ParamIDs", 0, & paramids);
    TS_PropertyGetNumElements (paramids, NULL, & numParams);
     
    for (count = 0; count)< numparams;="">
    {
         TS_PropertyGetValStringByOffset (County of paramids, NULL, 0, &temp);)
    strcpy (param, Temp);
    InsertListItem (hpanel, READ_PARAM_PARAMETERS, count, param, count);
    }

    Build a string them of active controller
    strcat (activecntlr, ActCntrlTLA);
    SetCtrlVal (hpanel, READ_PARAM_ACTIVETLA, activecntlr);
     
    TS_PropertyGetValString (seqContextCVI, NULL, "ThisContext.Step.ConfigProperties.ParameterID", 0, &temp);)
    strcpy (param, Temp);
     for (count = 0; count)< numparams;="">
    {
    GetLabelFromIndex (hpanel, READ_PARAM_PARAMETERS, count, temp);
    strcpy (indexParam, Temp);
    If (strcmp (indexParam, param) == 0)
    {
    SetCtrlIndex (hpanel, READ_PARAM_PARAMETERS, count);
    GoTo done;
    }
    }
    Fact:
     
    The display panel and run the user interface
    Does not return until that of RunUserInterface until the
    you press the Finish"" button.
    DisplayPanel (hpanel);
    Run = RunUserInterface ();
    Get the index of the selected parameter
    If (run<>
    {
    GetCtrlIndex (hpanel, READ_PARAM_PARAMETERS, &index);)
    GetLabelFromIndex (hpanel, READ_PARAM_PARAMETERS, index, param);
    TS_PropertySetValString(seqContextCVI,,"ThisContext.Step.ConfigProperties.ParameterID",0,param);
    }
     
    Output:
    / * Release resources and return * /.
    DiscardPanel (hpanel);
    TS_PropertyGetPropertyObject (seqContextCVI, NULL, "ThisContext.RunState.SequenceFile", 0, & seqfileobj);
    TS_SeqFileAsPropertyObjectFile (seqfileobj, NULL, & propObjFile);
    TS_PropertyObjectFileIncChangeCount (propObjFile, NULL);
    If (& ActCntrlTLA)
    {
    CA_FreeMemory (ActCntrlTLA);
    }
    If (& temp)
    {
    CA_FreeMemory (temp);
    }
    If (& paramids)
    {
    CA_DiscardObjHandle (paramids);
    }
    CA_DiscardObjHandle (propObjFile);
    CA_DiscardObjHandle (seqfileobj);
     
    Error:
    }

    /*---------------------------------------------------------------------------*/
    / * Callback functions * /.
    /*---------------------------------------------------------------------------*/

    int CVICALLBACK Done(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
    {
    If (event is EVENT_COMMIT)
    {
    QuitUserInterface (0);
    }
    return 0;
    }

    int CVICALLBACK CLOSEPANEL(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
    {
    If (event is EVENT_COMMIT)
    {
    QuitUserInterface (1);
    }
    return 0;
    }

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    Thank you

    Josh

    The problem was with this line:

    GetLabelFromIndex (hpanel, READ_PARAM_PARAMETERS, count, temp);

    I shouldn't have been past at the time to write the label that I had previously used temp with functions of API of TS. Who should have caught before posting... but it's been a long day.

  • Impressive transformation slow due to the updating of the user interface

    Hello

    I feel a huge slow down in my test as engine

    I update the display after each test. It consists of a rather

    "simple table" with a subtle change of color and bold

    to indicate the failure or success of the test:

    I have also tried several things to determine what routine was

    make the program almost crawling like a snail, here's my

    results:

    No UI refresh: 0m48s (same as Teststand with no updates of the user interface)

    The discount but no page table switch: 1m06s

    Bay of refreshment and switch page: 1m26s

    There are 314 tests, up to 314 redraw and possibly

    switch page 314 to reposition the view. Which gives the

    following user interface refresh costs:

    Update of the table: 18 years/314 = 57ms (replacing just a single line, Center to top)

    Switch to page: 20 s/314 = 64ms (bottom right corner)

    Is this really the case? Is there a way to make the refresh of the user interface

    faster? Create two separate loops/threads, one to make

    the test, one for updating the UI asynchronously?

    I understood for an overall picture about different

    widgets, but here I'm 'just' display of channels...

    David Koch

    Well, multi-listbox control is a problem if your change causes access to the muliple property node. For each property node LabVIEW normally does a refresh of the user interface which is very quickly. Fortunately, there is a fairly easy way to fix this.

    Use a node of property for the current VI (just drop a property node and change its class type VI Server-> VI reference) to get the reference of the Panel. Then use another property node connected to your reference of the Panel and select update from the Panel to postpone. Set this value to true before your Listbox (and any other updated user interface) and set the value to false then.

Maybe you are looking for