Access the cell nodes in a ListView

How do I access the cell nodes (listcells) in a listview?
For example, if i want to increase the size (specifically, the height) of the cells?

You have to write a CellFactory for your ListView, like this:
        ObservableList<String> items = FXCollections.observableArrayList("String1", "String2", "String3");
        ListView<String> listView = new ListView<String>();
        listView.setItems(items);
        listView.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {
            @Override
            public ListCell<String> call(ListView<String> stringListView) {
                ListCell<String> cell = new ListCell<String>() {
                    protected void updateItem(String item, boolean empty) {
                        super.updateItem(item, empty);
                        if (item != null) {
                            setText(item);
                cell.setPrefHeight(100);
                return cell;
        });Usually you probably want to write your own class for the cell factory.
You can either set a height or you can add a style class to your cell, and use padding in CSS.
(I don't know, why you can't set padding on the cell directly.)

Similar Messages

  • List UIBB - Access to cell editor for a certain table line possible

    Hi,
    I am looking for a way to access the cell editor of the last table line as I want to mark it as a special - summary - line.
    I intend a similar approach like in WebDynrpo ABAP when accessing the node info and modifying the "CELL DESIGN" attribute like in the following code (copied from WD Comp WDR_TEST_TABLE, View CELL DESIGN, method FILL_CELL_DESIGNS) :
      data tab type IF_CELL_DESIGN=>Elements_Cell_Designs.
      data line type IF_CELL_DESIGN=>Element_Cell_Designs.
      data node_info type ref to if_wd_context_node_info.
      data attribute_info type wdr_context_attribute_info.
      data attr_value type WDR_CONTEXT_ATTR_VALUE.
      node_info = node->get_node_info( ).
      attribute_info = node_info->get_attribute( 'CELL_DESIGN' ).
      line-is_expanded = abap_true.
      line-is_leaf     = abap_false.
      line-key         = 'FIRST'.
      loop at attribute_info-value_set into attr_value.
        line-text = sy-tabix.
        concatenate 'Text #' line-text into line-text. "#EC NOTEXT
        line-cell_design = attr_value-value.
        insert line into table tab.
        line-is_leaf = abap_true.
        line-key = attr_value-value.
        line-parent_key = 'FIRST'.
      endloop.
      node->bind_table( tab ).
    I suspect the method IF_FPM_GUIBB_LISTGET_DATA (or IF_FPM_GUIBB_LISTGET_DEFINITION) of my feeder class to be the right access point.
    But unfortunately, I have not yet found out how to change the cell design for specific lines, only for whole columns.
    Can anyone give me a hint here?
    BTW: The "summary" line is not a sum of the lines above, but determined by backend logic, so not ALV-summary line for me.
    Kind Regards

    Hi,
    A short update for all interested:
    My current work around is to always set the lead selection to the summary line. It does in a kind "mark" that line as special as long as I cannot mark it using a different cell design.
    How do I assure this?
    I have implemented the following code in a redefinition of the method ADJUST_SELECTION:
    *- alter selection
      DATA:
       ls_size TYPE rstabix.
      "get index of summary line
      ls_size-tabix = mo_collection->size( ).
      "change only if there are any cash conc. proposals
      IF ls_size-tabix > 0.
        "do FPM selection
        CLEAR: ev_lead_index, et_selection.
        ev_lead_index = ls_size-tabix.
        APPEND ls_size TO et_selection.
        "do BOL selection
        mo_collection->if_bol_bo_col_multi_sel~unmark_all( ).
        mo_collection->if_bol_bo_col_multi_sel~mark( iv_index = ls_size-tabix ).
      ENDIF.
    The general downside is, that no other selection is possible!
    The selection is always reset to the summary line with each roundtrip.
    Waiting for a better solution...
    Kind Regards,
    Robert

  • JSTL - access table cells

    I have an html table where rows are added by the user using javascript. I can't figure out a way to reference the table then subsequently the specific row and column. How do I access the cells of the table using jstl tags?
    Thanks, Bill
    Message was edited by:
    rx7haze

    Not sure what you mean.
    JSTL runs on the server, before the page is generated. Javascript runs on the client after the page is generated. So you are separated by both time (JSTL comes first, so can't reference what comes later), and space (the two things are running on different machines).
    If you want the info that the user puts into the table accessible to the server, you will have to submit a form, and all the info the user entered will need to be put in inputs.
    Once you submit the page, JSTL can access an array of all the values with a given input name using request.parameterValues, for which you can either iterate over, or index into.

  • Access the nodes data in a table view (generated by aet).

    Hi all ,
    I have created a table view in bp overview page.
    so it has created new component /ztable/zbol entity .
    Now how can i access the nodes of BP page..in the new component created?.

    thanks vishal ,
    but as per the thread,when we create table view using aet ,
    Table view in EHP1 CRM 7.0
    You dont need to worry about the component usage nor you need to create or handle anything like that for AET compoent for table extension. SAP has a special way to handle it in WD_USAGE_INITIALIZE of component controller for AET extension generated component so its nothing for us to do about it. Thanks to SAP
    so still i need to redefine..or can directly access the nodes in do_prepare_output.?

  • Accessing the device from one node to antoher node

    Hi All ,
    I have one local devices c1t0d0, the corresponding DID is d4. I want to access this device in another node. how to access this?
    Regards,
    R. Rajesh Kannan.

    Ah, not having access to a cluster explains a lot!
    The global namespace provides local and shared devices with a unique name. When a reference is made to a global device that isn't local to the system on which the command is issued, the kernel traps and proxies the request to the remote node to which the device is connected.
    If the device is shared, this request happens in the context of kernel based HA services which ensure that even if the primary I/O path is on a remote node, that path can be switched to another node transparently without causing the request, at user level, to fail.
    Some of this is covered in an old Blueprint that I wrote when SC3.0 came out:
    http://www.sun.com/blueprints/0901/sc30vs22.pdf
    the other description can be found in the Blueprint "Designing Enterprise Solutions with Sun Cluster 3.0" (See chapter 3)
    Posting those documents here would be a little excessive.
    Regards,
    Tim
    ---

  • A different cell renderer for the root node ??

    Is it possible to use one cell renderer for the root and a different cell renderer for the other nodes ?
    Thanks.

    Well I tried that and it didn't work.I do it without any problems so what how did you do it?
    Hint - in the renderer compare tree.getModel().getRoot() with the value using == .
    >
    Basically I have a checkbox at each node. So, I tried
    setting the checkbox invisible for the root. Hard work! Since you are just wanting to change the rendering rule for the root you should change the renderer.
    >
    But then all the nodes have an invisible
    checkbox.............................

  • The core node you are trying to access was not fou...

    "The core node you are trying to access was not found, it may have been deleted. Please refresh your original page and try the operation again" ????   Typical USELESS Microsoft response!!  I attempted to leave a message in the Forum but as usual with anything Microsoft I either get the above response or pure Gobbledegook!

    Hi Claudius, Thanks for your reply, I use Firefox because like everything Microsoft Internet Explorer does what Microsoft wants it to do instead of what their Customer wants to do! As they now are by Forcing me to use Skype! However I am using Firefox 18.02 on Windows 7 Professional on a Lenovo Thinkpad Edge 15 Laptop.. I live in a Rural Village where I receive usually less that 2Mbps with not much hope of fulfilling David Cameron's Promise of superfast Broadband for all by the end of 2013? But then that is a Politician's Promise! I really cannot remember where or when this undecipherable message occurred but on four occassions I had signed in and attempted to leave a question in different parts of this forum so I gave up and contacted you! This is my argument about Microsoft destroying the only thing that works correctly and replacing it with things that never work properly!!  Sorry I can't give you any more information, But as I said before Microsoft or skype in this instance give messages that are impossible to understand and even the professionals cannot work out what the problem is?  Why not a simple code that gives at least some idea where within the coding the problem occurred instead of an indecipheral message about a "Core Node"  Whatever that may be?

  • How to access the attribute of child node

    Uday,
    now i have changed my coding as
    lr_node_contacts = wd_context->path_get_node( 'CUSTOMER.CONTACTS' ).
    lr_node_contacts->set_attribute( exporting name = 'EMAIL_ID'
                                                    value = 'siva.palaniswamy' ).
    and trying to bind its value to another table using following code
    node->Bind_table( new_items = lr_node_contacts ).
    But am getting the syntax error as
    LR_NODE_CONTACTS is not compatible with NEW_ITEMS ,,,
    thanks,
    Siva

    Hi Siva,
    When you say bind_table( ) you need to pass the internal table with which you want to bind the context node with. You were above trying to pass the reference of the node instead. Thats the reason for the problem.
    So if you want to bind to CONTACTS you should have an internal table like:
    data: lt_contacts type ig_componentcontroller=>elements_contacts.
    You can then say like:
    lr_node_contacts->bind_table( new_items = lt_contacts ).
    I guess that you are a beginner trying to learn WebDynpro. Do go through the [document link|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60730016-dbba-2a10-8f96-9754a865b814] which I had sent you to get an idea about working with context nodes and attributes.
    Regards,
    Uday

  • How to access the structure of a dynamically created context node/element

    Hi All,
    in method wddoinit I have added a context node and some attributes
    lo_node = wd_context->get_child_node( name = wd_this->wdctx_instructors ).
      lo_node_info = lo_node->get_node_info( ).
      lo_node_info = lo_node_info->add_new_child_node( name                  = 'OCCUPANCY'
                                                       is_mandatory          = abap_true
                                                       is_multiple           = abap_false
                                                       is_multiple_selection = abap_false ).
          lo_node_info->add_attribute( ls_attr ).
    So far, I have node INSTRUCTORS (0...n) with a subnode OCCUPANCY (1...1)
    In the supply_method of INSTRUCTORS I would like to fill the instructors node and the OCCUPANCY subnode.
    The thing is I do not know the structure of the dynamicaly created subnode OCCUPANCY there. How can I get a description of this node (that, what in non-dynamic programming would be wd_this->element_occupancy...)??
    THANKS,
    Johannes

    ...I got this one solved by myself...
    I simply added this coding:
    lo_node_info = lo_node->get_node_info( ).
      lt_attributes = lo_node_info->get_attribute_names( ).
    This appers to be enough information to be good to gogo
    Thanks anyway.

  • Accessing the parent element of  a tree node !

    Hi All,
    I’m building a tree application, in which the user has the option for creating a new node at any level he wants. But my problem is, If the user wants to create a node at the same level of the selected node, how do I retrieve the parent element? Can someone help me in this regard? I’ve done the following
    1)     Created a node “TreeNode” with the required attributes & the recursive node.
    2)     When the user clicks on any node, I am able to retrieve the selected element through recursive traversal (i.e. the instance of TreeNodeElement, say elmt)
    3)     I was able to retrieve the parent element through the function elmt.node().getParentElement(). But it returns an instance of IWDNodeElement, which does not have the recursive node. Ofcourse, I cannot typecast IWDNodeElement to “TreeNodeElement”.
    Then How do I retrieve the “TreeNodeElement” instance of the parent element? Someone please help…..!
    Thanks in Advance,
    Best Regards,
    Nibu.

    Hi Nibu,
    you should type as follows
    IPrivateRecursiveTree.ITreeNodeElement ele=(IPrivateRecursiveTree.ITreeNodeElement)selectedElement.node().getParentElement();
    this way you will get the Parent element of the current node.
    Rgds,
    Vilish
    P.S. If prob solved, consider reward points

  • What exactly is the "cell factory?"

    So I've been seeing this term a lot on the forums, as well as http://docs.oracle.com/javafx/2/ui_controls/table-view.htm and on the ensemble, but I'm not 100% sure what it is.... It seems like just a method to set data into your tables, like the table model? Anyone have a more in depth explanation than the one in the docs, I would appreciate it!!!
    Thanks,
    ~KZ

    Cell factories create cells. A cell is a Labeled Node which contains some extra properties and methods for maintaining an editing and selection state and a link back to a cell value. Cells are used in a few places in JavaFX, for example in ListViews and TableViews, as well as TreeTables and ComboBoxes. The Cell is the visual representation (Node) which corresponds to a backing data item. The trick is that there is not necessarily a static one to one correspondence between cells and data values.
    Let's take an example. Here is an empty ListView in a Scene. When I run the app, it displays the ListView at it's preferred height, with 17 rows.
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.ListView;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    public class ListViewSample extends Application {
      @Override public void start(Stage stage) {
        ListView listView = new ListView();
        VBox layout = new VBox();
        VBox.setVgrow(listView, Priority.ALWAYS);
        layout.getChildren().addAll(listView);
        stage.setScene(new Scene(layout));
        stage.show();
      public static void main(String[] args) { launch(args); }
    }Each one of those 17 rows is empty. No Cell Factory has been set, yet you can see alternating light and dark shaded rows. Each one of these rows in the ListView corresponds to a Cell and each cell has been generated by the default ListView cell factory. When I drag the stage's bottom border to increase the size of the stage, the list view increases in size. When I drag the stage's bottom border to decrease the size of the stage, the list view decreases in size. When the list view increases in size, more rows are visible. Each of the new cells for the larger list view are generated by the cell factory on an as needed basis; i.e. the cells were not created when the app was first run but only created as there was a greater visible area available to the ListView in which the ListView could display more cells.
    Now everything is pretty boring so far. Let's add some data, using the following line of code:
    listView.setItems(FXCollections.observableArrayList("apple", "orange", "pear"));Now you will see the strings "apple", "orange" and "pear" rendered in the first three cells of the ListView again by using the default cell factory for the ListView. Again this is pretty boring.
    What we will do now is add some mutators which will change the observable list backing the list view in response to some user actions:
    import javafx.application.Application;
    import javafx.collections.FXCollections;
    import javafx.event.*;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import java.util.Collections;
    import java.util.Comparator;
    public class ListViewSample extends Application {
      @Override public void start(Stage stage) {
        final ListView<String> listView = new ListView<>();
        listView.setItems(FXCollections.observableArrayList("apple", "orange", "pear"));
        ListViewSorter listViewSorter = new ListViewSorter(listView).invoke();
        VBox layout = new VBox(10);
        VBox.setVgrow(listView, Priority.ALWAYS);
        listView.setMinHeight(0);
        layout.getChildren().addAll(
            listView,
            HBoxBuilder
                .create()
                .spacing(10)
                .children(
                    guavaCreator(listView),
                    listViewSorter.getSorter(),
                    listViewSorter.getReverser()
                .build()
        stage.setScene(new Scene(layout));
        stage.show();
      private Button guavaCreator(final ListView<String> listView) {
        final Button guavatron = new Button("Add Guava");
        guavatron.setOnAction(new EventHandler<ActionEvent>() {
          @Override public void handle(ActionEvent actionEvent) {
            listView.getItems().add("guava");
            guavatron.setDisable(true);
        return guavatron;
      public static void main(String[] args) { launch(args); }
      private class ListViewSorter {
        private final ListView<String> listView;
        private Button sorter;
        private Button reverser;
        public ListViewSorter(ListView<String> listView) {
          this.listView = listView;
        public Button getSorter() {
          return sorter;
        public Button getReverser() {
          return reverser;
        public ListViewSorter invoke() {
          sorter = new Button("Sort");
          sorter.setOnAction(new EventHandler<ActionEvent>() {
            @Override public void handle(ActionEvent actionEvent) {
              Collections.sort(listView.getItems());
          final Comparator<String> REVERSE_SORT = new Comparator<String>() {
            @Override  public int compare(String s1, String s2) {
              return -1 * s1.compareTo(s2);
          reverser = new Button("Reverse Sort");
          reverser.setOnAction(new EventHandler<ActionEvent>() {
            @Override public void handle(ActionEvent actionEvent) {
              Collections.sort(listView.getItems(), REVERSE_SORT);
          return this;
    }OK, now we have some extra buttons, the "Add guava" button will create a new item ("guava"), the "Sort" and "Reverse Sort", buttons will change the sort order of the backing list. Now to understand what happens behind the scenes when we use these buttons, let's take a look at the source code for the default list cell factory.
    new ListCell() {
       @Override public void updateItem(Object item, boolean empty) {
         super.updateItem(item, empty);
         if (empty) {
           setText(null);
           setGraphic(null);
         } else if (item instanceof Node) {
           setText(null);
           Node currentNode = getGraphic();
           Node newNode = (Node) item;
           if (currentNode == null || ! currentNode.equals(newNode)) {
             setGraphic(newNode);
         } else {
           setText(item == null ? "null" : item.toString());
           setGraphic(null);
    };This code is doing one of three things. If the list cell is empty, it sets the text and graphic to null, so you end up with a blank cell (the alternating light and dark grey bars are generated by the ListCell's parent setting differing style classes on alternate cells). If the item is a node, it sets the graphic to the node - this is the mechanism which allow you to place nodes directly in the backing list for the ListView and have the ListView display them OK. Otherwise a toString is called on the item to set the item's text (this is the case which is occurring for our simple example of Strings in the backing list).
    Now the important thing to note about the ListCell implementation is that the clever logic of translating the backing item for the cell to a visual representation is occurring in an updateItem call. This updateItem method is invoked by the JavaFX system on the ListCell whenever the backing item for the cell has been invalidated, for example the item has been edited, a new item added, or the items in the list have been reordered.
    So when somebody presses, the "Add Guava" button, a new ListCell is not created, instead updateItem is called on an already existing empty cell. This is because when we started the application, there was space for 17 rows, so 17 cells were already created, it is just that most of them were empty because we only had 3 items in the backing list for the ListView.
    Now, if we press one of the sort buttons to reorder the backing list, it will cause the existing list cells to become invalidated, and updateItem will be called on each of the cells according to the change permutations in the ObservableList. Note that as each item is updated, a new Labeled display node for the item is not created, instead the setText method is invoked which changes the text for the existing Labeled.
    There are a couple of extra cases to understand. Our backing list currently maxes out at 4 items. Let's say we drag the bottom of our stage up so that the available space for the ListView was made really small (e.g. only 2 rows high). In this case, you will two rows (cells) and a scrollbar you can use to scroll up and down. As you scroll up and down it seems that some rows are scrolling off the screen and some are scrolling on the screen. What is actually happening though is that the same two cells are remaining on screen and their contents being continually updated and replaced as backing items come in and out of view. This is the magic of how the ListView is able to achieve it's efficiency when dealing with potentially very large collections or collections where not all of the required data is available on the client at the current time. Instead of creating visual cells for all of the possible items which can be placed in the list, instead the ListView creates cells only for the visible items and updates the content of those cells on an as needed basis. This concept is known in the List Cell creators jargon as a Virtual Flow in a Virtualized control.
    OK, so that was a little more interesting, but there have been a lot of words so far, and no custom cell factory. This was partly on purpose - there is lot you can do with the default cell factory without needing to create your own custom cell factory.
    But sometimes you do actually want to create your own cell factory when you want fine control over the look or behaviour of the cells.
    Let's say you want to show each item in the list with a capitalized friendly name "Apple", "Orange" and "Pear" and an icon - a picture of the corresponding fruit. To do this you would create a cell factory - something that can produce the visual representation of these things from the corresponding data values.
    import javafx.application.Application;
    import javafx.collections.*;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.image.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class ListViewCustomCellFactorySample extends Application {
      ObservableMap<String, Image> iconMap = FXCollections.observableHashMap();
      @Override public void init() {
        iconMap.put(
          "apple", 
          new Image(
            "http://uhallnyu.files.wordpress.com/2011/11/green-apple.jpg",
            0, 32, true, true
        iconMap.put(
          "orange",
          new Image(
            "http://i.i.com.com/cnwk.1d/i/tim/2011/03/10/orange_iStock_000001331357X_540x405.jpg",
            0, 32, true, true
        iconMap.put(
          "pear",  
          new Image(
            "http://smoothiejuicerecipes.com/pear.jpg",
            0, 32, true, true
      @Override public void start(Stage stage) {
        final ListView<String> listView = new ListView<>();
        listView.setItems(FXCollections.observableArrayList("apple", "orange", "pear"));
        listView.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {
          @Override public ListCell<String> call(ListView<String> stringListView) {
            return new LabeledIconListCell();
        VBox layout = new VBox(10);
        VBox.setVgrow(listView, Priority.ALWAYS);
        listView.setMinHeight(0);
        layout.getChildren().addAll(
            listView
        stage.setScene(new Scene(layout));
        stage.show();
      public static void main(String[] args) { launch(args); }
      private class LabeledIconListCell extends ListCell<String> {
        @Override protected void updateItem(String item, boolean empty) {
          super.updateItem(item, empty);
          if (item != null) {
            String friendlyText = item.toString();
            if (item.length() > 0) {
              friendlyText = item.substring(0, 1).toUpperCase() + item.substring(1);
            setText(friendlyText);
            setGraphic(
                StackPaneBuilder
                    .create()
                    .prefWidth(55)
                    .children(
                        new ImageView(
                            iconMap.get(item)
                    .build()
          } else {
            setText("");
            setGraphic(null);
    }Here what the cell factory has done is to check what value of the backing item for the cell is whenever that item has been updated, and set some customized label text and graphic representation for the cell.
    As a minor point, for efficiency, and because there are only a few of them, the required images are loaded and scaled up front so that they don't been to be reloaded every time the cell is updated with a different value (which if the image loading was within the cell's updateItem call could mean that the same image could potentially get loaded multiple times.
    My personal take on this is that it is powerful but complicated. Often people will gravitate towards using the complex ListView and TableView APIs when they don't necessarily need all of the functionality and virtualization efficiency capabilities that the virtualized controls offer. In many cases, simple layout mechanisms such VBoxes and Grids can be a better choice. However, if you have a need for the virtualized functions, then it's good to know that things like ListView and TableView are there if you can work out how to use them well in your case.
    Also note that JavaFX 2.2+ has numerous convenience methods for creating different kinds of cells which you may be able to use in standard cases to avoid some of the overhead in creating your own, for example the CheckBoxListCell, the ComboBoxListCell and the TextFieldListCell. And there are many more such simplifying higher level abstractions in the DataFX library.
    One other point worth observing is that if you have a list of mutatable objects, for example Person objects with a changable last name field, then you need to make the object an Observable object with an invalidation implementation if you want the updateItem call in the cell factory to be invoked automatically whenever the object is mutated.
    A cell factory and a cell value factory are different things, but that is probably a topic for a different post.
    I realize this was a round about and lengthy explanation - hopefully it served some purpose and helped to explain some of the mysteries of cell factories.
    http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html
    http://www.javafxdata.org
    http://docs.oracle.com/javafx/2/ui_controls/list-view.htm

  • Data processing in multiple caches in the same node

    we are using a partitioned cache to load data ( multiple types of data) in multiple named caches. In one partition, we plan to have all related data and we have got this using key association.
    Now I want to do processing with in that node and do some reconciliation of the data from various sources. We tried entry processor, but we want to consolidate all data from multiple named caches in the node. In a very naive form, I am thinking each named cache as a table and i am looking at ways to have a processor that will do some some processing on the related data.
    I see we could use a combination of Invocable object, Invocation service and entry processors, but I am unable to implement it successfully.
    Can you please point me to any reference implementation where I can do processing at the data node without transfering data back to client.
    Also any reference implementation of Map reduce (at the server side) in coherence would be helpful.
    Regards
    Ganesan

    Hi Ganesan
    A common approach to perform processing in the grid is to execute background threads in response to backing map listener events. The processing is co-located with data because the listener will be called in the JVM that owns the data. The thread can then make Coherence calls to access caches just like any other Coherence client.
    The Coherence Incbutor has numerous examples of this at http://coherence.oracle.com/display/INCUBATOR/Home. The Incubator Common component includes an event processing package that simplifies the handling of events. See the messaging pattern for an example: Message.java and MessageEventManager.java
    I am not sure I answered your question but I hope the information helps.
    Paul

  • Is there a way to reference the property node value of a control in another VI?

    Let's say that I have a situation like the one shown in the attached image.
    I have an interlock system which is basically a bunch of booleans
    If for example the "RF Enable" button in the "interlock VI" is true, then I should be able to flick the ON switch in my other VI (in the back), but if the value is FALSE, then it shouldn't allow it.
    In other words, how do I check the value of a control across 2 separate VIs (running simultaneously)?
    Thanks!!
    Attachments:
    sample.jpg ‏295 KB

    Is one VI launched by the other, or are they launched independently? If it's the former then you just need to pass the control reference to the subVI via terminal node. If it's the latter there are a variety of ways to handle this:
    Use a global variable - somewhat "sloppy" as it requires a global variable, and can lead to race conditions. In the "Interlock" VI you just set the value of the global variable when you change the value of the Boolean. In the other you're just reading it.
    Action Engine - Ben wrote a Community Nugget a while back. Similar concept to a global variable.
    Queue - The "Interlock" VI simply pops an element onto the queue with the value. The other VI just monitors the queue for a new element. It just needs to have something like a shift register to keep track of the last state.
    Use the VI Server to access the controls of the "Interlock" VI. You can do this by accessing the "Interlock" VI's pane and get the control references. With the control reference you just need to get the value with a property node.
    ... (I'll let others chime in)

  • Report Query - Highlighting the cells that have a new value...

    hello all,
    I have to display a report in alv in web dynpro abap.
    In that I have to display two fields and both the fields are locations of different months.
    If the location is different than the previous one then i have to display cell with the new location in red color or highlighted.
    How can I achieve this.???
    Only for the changed ones it has to be highlighted or different color.....  I repeat.
    Happy Coding.

    IF want to display 2 locations , one  corresponding to location of previous month  and other corresponding to location of curr month  ,and if 2 are not same then current month location should be highlighted or displaying in red color . If this is what u want to do then try following .
    1]    In context where  ur data to be display exist  - In LIST NODE along with attribute  Location_previous_month , Location_current_month add attribute "COLOR" TYPE WDUI_TEXTVIEW_SEM_COL .
    2]   Find out the column which has to be marked with a different colour based on its content ( Location_ Current_ Month in your case )  . Assign the context attribute "COLOUR"  to the "Cell Design Fieldname" attribute of the respective column. This can be done while setting Column attributes for each of the ALV Columns
    IF find any problem in implementing above step then go thro' this link :
    http://wiki.sdn.sap.com/wiki/display/Snippets/ABAP%20Web%20Dynpro%20ALV%20-%20Change%20Cell%20Colour%20based%20on%20Content
    3] In the method to fill the data to  be displayed .
      CREATE INTERNAL TABLE OF TYPE List node
    FILLINTERNAL TABLE CREATED ABOVE  ( SAY ITAB  ) WITH VALUES FOR  LOCATION_ CURRENT_ MONTH  , LOCATION_PREVIOUS_MONTH .
    FILL COLOR VALUE FOR EACH ROW OF ITAB AS FOLLOW 
    LOOP AT  ITAB INTO LS_ITAB .
       IF LS_ITAB-LOCATION_CURRENT_MONTH  <> LS-ITAB- LOACTION_PREVIOUS_MONTH .
                     COLOR = 06 ." 06 IS COLOR CODE 
       ENDIF .
    4] BIND THIS INTERNAL TABLE WITH NODE LIST_NODE .
      DATA NODE_LS_NODE TYPE REF TO IF_WD_CONTEXT_NODE .
    NODE_LS_NODE = WD_CONTEXT->GET_CHILD_NODE( NAME = 'LIST_NODE' ) .
             NODE_LS_NODE->BIND_TABLE ( EXPORTING
                       NEW_TAB = ITAB ).
    Hope thid will help .
    THKS ,
    RUSHIKESH
    Edited by: RUSHI123 on Oct 31, 2009 8:59 PM

  • How to access the data in a TableView with build-in Dropdownlists

    Hi,
    I build up a TableView with DropdownListBoxes in the cells. All works so far but if I try to access the data in the cells I get the following error message :
         at java.lang.Thread.run(Thread.java:479)
    Caused by: java.lang.reflect.InvocationTargetException: java.lang.NullPointerException
         at com.sapportals.htmlb.table.DefaultTableViewModel.getIndexForColumnInModel(DefaultTableViewModel.java:354)
         at com.sapportals.htmlb.table.DefaultTableViewModel.getValueAt(DefaultTableViewModel.java:195)
         at com.sapportals.htmlb.table.TableView.getValueAt(TableView.java:774)
         at LogonPad$MyDynPage.onClickBack(LogonPad.java:467)
    Some hints ?
    Regards,
    Gerald

    Hello Anjum,  
    It looks that the view is based on the master data table itself and view doesn't contain data and is a logical representation of the underlying database tables.
    Moreover the view RSDVCHA is used for viewing the  characteristics, basic chars and local properties.
    Are you storing similar values in YMETADATA?
    [Thanks|http://chandranonline.blogspot.com/]
    [Chandran|http://chandranonline.blogspot.com/]

Maybe you are looking for

  • IPod replacement program -never received

    This is regarding Repair ID: A55963635 If you enter UPS with tracking number 1ZW9V0806802999523 on https://wwwapps.ups.com/WebTracking/detail#, you will see the following: Delivered On: Tuesday, 01/17/2012 at 10:11 A.M. Left At: Residential Signed By

  • Disparity in scores despite same reports?

    After reading the forums for a while i've finally decided to sign up and join everyone.I've been subscribed to experian for a while and it shows my score's coming in at a healthy(considering my currently sky high utilization) 632, however I found my

  • "Make this recurring" check box not visible on Mobile

    I have created and successfully used a Donation button for my 501c(3) business.It works great in browsers on laptop and desktop computers.However, the "Make this recurring" check box is not visible on IPhone, IPod, IPad, Android Pad, or Android phone

  • Indexing pdf documents with indextype ctxsys.context

    I have an application that stores the contents of uploaded documents in BLOB data fields. We provide web pages which search through the uploaded documents based on text entered by the user. We currently upload both MS Word .doc and HTML documents. Fo

  • Editing in HD

    i want to start editing projects in high definition. what type of MAC should i get? i'm in a tight budget right now. any suggestions?